diff --git a/embeddings/ModuleEmbeddings.py b/embeddings/ModuleEmbeddings.py
index f8dec771806909e1df4f4c35382b076ee1e991ec..53918f853a2df9522b677e4f3a3b2a9c57787003 100644
--- a/embeddings/ModuleEmbeddings.py
+++ b/embeddings/ModuleEmbeddings.py
@@ -101,7 +101,7 @@ class ModuleEmbeddingTrainer:
         model.load_state_dict(torch.load(model_path, map_location=torch.device('cpu')))
 
         # unpickle the module_to_ix
-        with open(model_path.replace('mod-emb', 'mod_to_ix_mod-emb'), 'rb') as f:
+        with open(model_path.replace('module-emb', 'mod_to_ix_module-emb'), 'rb') as f:
             model.module_to_ix = pickle.load(f)
 
         return model
@@ -128,9 +128,10 @@ class ModuleEmbedding(nn.Module):
         log_probs = F.log_softmax(out, dim=1)
         return log_probs
 
-    def get_tag_embedding(self, module: str):
-        assert module in self.module_to_ix, "Tag not in vocabulary!"
-        assert self.module_to_ix is not None, "Tag to index mapping not set!"
+    def get_module_embedding(self, module: str):
+        assert self.module_to_ix is not None, "Module to index mapping not set!"
+        if module not in self.module_to_ix:
+            return torch.zeros(self.embedding.weight.shape[1])
         return self.embedding.weight[self.module_to_ix[module]]
 
 
diff --git a/embeddings/Visualize.py b/embeddings/Visualize.py
new file mode 100644
index 0000000000000000000000000000000000000000..1678fbcb4d0eb5df6aaebe67afeac6cebd4ab07a
--- /dev/null
+++ b/embeddings/Visualize.py
@@ -0,0 +1,222 @@
+# Original version: https://gist.github.com/mogproject/50668d3ca60188c50e6ef3f5f3ace101
+
+from collections import defaultdict
+import networkx as nx
+import plotly.graph_objects as go
+from typing import Any, List, Dict, Tuple, Union, Callable
+
+Vertex = Any
+Edge = Tuple[Vertex, Vertex]
+Num = Union[int, float]
+
+
+class GraphVisualization:
+    def __init__(
+        self,
+        G: nx.Graph,
+        pos: Dict[Vertex, Union[Tuple[Num, Num], Tuple[Num, Num, Num]]],
+        node_text: Union[Dict[Vertex, str], Callable] = None,
+        node_text_position: Union[Dict[Vertex, str], Callable, str] = None,
+        node_text_font_color: Union[Dict[Vertex, str], Callable, str] = None,
+        node_text_font_family: Union[Dict[Vertex, str], Callable, str] = None,
+        node_text_font_size: Union[Dict[Vertex, Num], Callable, str] = None,
+        node_size: Union[Dict[Vertex, Num], Callable, Num] = None,
+        node_color: Union[Dict[Vertex, Union[str, Num]], Callable, Union[str, Num]] = None,
+        node_border_width: Union[Dict[Vertex, Num], Callable, Num] = None,
+        node_border_color: Union[Dict[Vertex, str], Callable, str] = None,
+        node_opacity: Num = None,
+        edge_width: Union[Dict[Edge, Num], Callable, Num] = None,
+        edge_color: Union[Dict[Edge, str], Callable, str] = None,
+        edge_opacity: Num = None,
+    ):
+        # check dimensions
+        if all(len(pos.get(v, [])) == 2 for v in G):
+            self.is_3d = False
+        elif all(len(pos.get(v, [])) == 3 for v in G):
+            self.is_3d = True
+        else:
+            raise ValueError
+
+        # default settings
+        self.default_settings = dict(
+            node_text=str,  # show node label
+            node_text_position="middle center",
+            node_text_font_color='#000000',
+            node_text_font_family='Arial',
+            node_text_font_size=14,
+            node_size=10 if self.is_3d else 18,
+            node_color='#fcfcfc',
+            node_border_width=2,
+            node_border_color='#333333',
+            node_opacity=0.8,
+            edge_width=4 if self.is_3d else 2,
+            edge_color='#808080',
+            edge_opacity=0.8,
+        )
+
+        # save settings
+        self.G = G
+        self.pos = pos
+        self.node_text = node_text
+        self.node_text_position = node_text_position
+        self.node_text_font_color = node_text_font_color
+        self.node_text_font_family = node_text_font_family
+        self.node_text_font_size = node_text_font_size
+        self.node_size = node_size
+        self.node_color = node_color
+        self.node_border_width = node_border_width
+        self.node_border_color = node_border_color
+        self.node_opacity = node_opacity
+        self.edge_width = edge_width
+        self.edge_color = edge_color
+        self.edge_opacity = edge_opacity
+
+    def _get_edge_traces(self) -> List[Union[go.Scatter, go.Scatter3d]]:
+        # group all edges by (color, width)
+        groups = defaultdict(list)
+
+        for edge in self.G.edges():
+            color = self._get_setting('edge_color', edge)
+            width = self._get_setting('edge_width', edge)
+            groups[(color, width)] += [edge]
+
+        # process each group
+        traces = []
+        for (color, width), edges in groups.items():
+            x, y, z = [], [], []
+            for v, u in edges:
+                x += [self.pos[v][0], self.pos[u][0], None]
+                y += [self.pos[v][1], self.pos[u][1], None]
+                if self.is_3d:
+                    z += [self.pos[v][2], self.pos[u][2], None]
+
+            params = dict(
+                x=x,
+                y=y,
+                mode='lines',
+                hoverinfo='none',
+                line=dict(color=color, width=width),
+                opacity=self._get_setting('edge_opacity'),
+            )
+
+            traces += [go.Scatter3d(z=z, **params) if self.is_3d else go.Scatter(**params)]
+
+        return traces
+
+    def _get_node_trace(self, showlabel, colorscale, showscale, colorbar_title, reversescale) -> Union[go.Scatter, go.Scatter3d]:
+        x, y, z = [], [], []
+        for v in self.G.nodes():
+            x += [self.pos[v][0]]
+            y += [self.pos[v][1]]
+            if self.is_3d:
+                z += [self.pos[v][2]]
+
+        params = dict(
+            x=x,
+            y=y,
+            mode='markers' + ('+text' if showlabel else ''),
+            hoverinfo='text',
+            marker=dict(
+                showscale=showscale,
+                colorscale=colorscale,
+                reversescale=reversescale,
+                color=self._get_setting('node_color'),
+                size=self._get_setting('node_size'),
+                line_width=self._get_setting('node_border_width'),
+                line_color=self._get_setting('node_border_color'),
+                colorbar=dict(
+                    thickness=15,
+                    title=colorbar_title,
+                    xanchor='left',
+                    titleside='right'
+                ),
+            ),
+            text=self._get_setting('node_text'),
+            textfont=dict(
+                color=self._get_setting('node_text_font_color'),
+                family=self._get_setting('node_text_font_family'),
+                size=self._get_setting('node_text_font_size')
+            ),
+            textposition=self._get_setting('node_text_position'),
+            opacity=self._get_setting('node_opacity'),
+        )
+
+        trace = go.Scatter3d(z=z, **params) if self.is_3d else go.Scatter(**params)
+        return trace
+
+    def _get_setting(self, setting_name, edge=None):
+        default_setting = self.default_settings.get(setting_name)
+        def_func = default_setting if callable(default_setting) else lambda x: default_setting
+        setting = self.__dict__.get(setting_name)
+
+        if edge is None:  # vertex-specific
+            if setting is None:  # default is used
+                if callable(default_setting):  # default is a function
+                    return [def_func(v) for v in self.G.nodes()]
+                else:  # default is a constant
+                    return default_setting
+            elif callable(setting):  # setting is a function
+                return [setting(v) for v in self.G.nodes()]
+            elif isinstance(setting, dict):  # setting is a dict
+                return [setting.get(v, def_func(v)) for v in self.G.nodes()]
+            else:  # setting is a constant
+                return setting
+        else:  # edge-specific
+            if setting is None:  # default is used
+                return def_func(edge)
+            elif callable(setting):  # setting is a function
+                return setting(edge)
+            elif isinstance(setting, dict):  # setting is a dict
+                return setting.get(edge, def_func(edge))
+            else:  # setting is a constant
+                return setting
+
+    def create_figure(
+        self,
+        showlabel=True,
+        colorscale='YlGnBu',
+        showscale=False,
+        colorbar_title='',
+        reversescale=False,
+        **params
+    ) -> go.Figure:
+        axis_settings = dict(
+            autorange=True,
+            showgrid=False,
+            zeroline=False,
+            showline=False,
+            visible=False,
+            ticks='',
+            showticklabels=False,
+        )
+        scene = dict(
+            xaxis=axis_settings,
+            yaxis=axis_settings,
+            zaxis=axis_settings,
+        )
+
+        layout_params = dict(
+            paper_bgcolor='rgba(255,255,255,255)',  # white
+            plot_bgcolor='rgba(0,0,0,0)',  # transparent
+            autosize=False,
+            height=400,
+            width=450 if showscale else 375,
+            title='',
+            titlefont_size=16,
+            showlegend=False,
+            hovermode='closest',
+            margin=dict(b=5, l=0, r=0, t=20),
+            annotations=[],
+            xaxis=axis_settings,
+            yaxis=axis_settings,
+            scene=scene,
+        )
+
+        # override with the given parameters
+        layout_params.update(params)
+
+        # create figure
+        fig = go.Figure(layout=go.Layout(**layout_params))
+        fig.add_traces(self._get_edge_traces())
+        fig.add_trace(self._get_node_trace(showlabel, colorscale, showscale, colorbar_title, reversescale))
+        return fig
diff --git a/embeddings/__pycache__/ModuleEmbeddings.cpython-38.pyc b/embeddings/__pycache__/ModuleEmbeddings.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..91b931008672a282f177d8ab34106df91f7ce73e
Binary files /dev/null and b/embeddings/__pycache__/ModuleEmbeddings.cpython-38.pyc differ
diff --git a/embeddings/__pycache__/Visualize.cpython-38.pyc b/embeddings/__pycache__/Visualize.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..6bb283018781805357e628992f5b9886cac816f0
Binary files /dev/null and b/embeddings/__pycache__/Visualize.cpython-38.pyc differ
diff --git a/embeddings/__pycache__/dataset.cpython-38.pyc b/embeddings/__pycache__/dataset.cpython-38.pyc
index a6459c8c7b7eddb6d7c7d41d4c0fe8c1c770aece..05d3eee3ff36256b85b90bfb9541b5349d0b6872 100644
Binary files a/embeddings/__pycache__/dataset.cpython-38.pyc and b/embeddings/__pycache__/dataset.cpython-38.pyc differ
diff --git a/embeddings/__pycache__/static_graph_construction.cpython-38.pyc b/embeddings/__pycache__/static_graph_construction.cpython-38.pyc
index bec59c5069360c27e86c82750a2ff8b3ffcb8fa4..25ddf94535803d6606156bd35f630605d2bf1fbe 100644
Binary files a/embeddings/__pycache__/static_graph_construction.cpython-38.pyc and b/embeddings/__pycache__/static_graph_construction.cpython-38.pyc differ
diff --git a/embeddings/dataset.py b/embeddings/dataset.py
index 8d6a3cccf18e1c417ef48502195f30cb3a88a8f2..319af3ea3f12a3cae30ee59ca39c13bcb09c910b 100644
--- a/embeddings/dataset.py
+++ b/embeddings/dataset.py
@@ -3,13 +3,14 @@ import os.path
 import pickle
 import re
 import sqlite3
-from typing import List
+from typing import List, Any, Optional
 import time
 
 import pandas as pd
 import torch
 from bs4 import MarkupResemblesLocatorWarning
 from torch_geometric.data import Dataset, download_url, Data, HeteroData
+from torch_geometric.data.hetero_data import NodeOrEdgeStorage
 from tqdm import tqdm
 import warnings
 warnings.filterwarnings('ignore', category=MarkupResemblesLocatorWarning)
@@ -18,7 +19,7 @@ from post_embedding_builder import PostEmbedding
 from static_graph_construction import StaticGraphConstruction
 
 logging.basicConfig()
-logging.getLogger().setLevel(logging.DEBUG)
+logging.getLogger().setLevel(logging.INFO)
 log = logging.getLogger("dataset")
 
 
@@ -148,6 +149,7 @@ class UserGraphDataset(Dataset):
         file_name = [filename for filename in os.listdir('../data/processed/') if filename.startswith(f"data_{idx}")]
         if len(file_name):
             data = torch.load(os.path.join(self.processed_dir, file_name[0]))
+
             return data
         else:
             raise Exception(f"Data with index {idx} not found.")
@@ -230,10 +232,12 @@ if __name__ == '__main__':
     '''
 
 
-    ds = UserGraphDataset('../data/', db_address='../stackoverflow.db', skip_processing=True)
+    ds = UserGraphDataset('../data/', db_address='../stackoverflow.db', skip_processing=False)
     data = ds.get(1078)
     print("Question ndim:", data.x_dict['question'].shape)
     print("Answer ndim:", data.x_dict['answer'].shape)
     print("Comment ndim:", data.x_dict['comment'].shape)
     print("Tag ndim:", data.x_dict['tag'].shape)
     print("Module ndim:", data.x_dict['module'].shape)
+    print("Question:", data.question_emb.shape)
+    print("Answer:", data.answer_emb.shape)
diff --git a/embeddings/hetero_GAT.py b/embeddings/hetero_GAT.py
index f1b87be62741286e0ddeb1b96a276236b2bb7526..55047e8ee77d4a9a9ece90f090c172a6c1cad733 100644
--- a/embeddings/hetero_GAT.py
+++ b/embeddings/hetero_GAT.py
@@ -1,11 +1,19 @@
+import json
 import logging
+import string
+import time
 
+import networkx as nx
+import plotly
 import torch
 from sklearn.metrics import f1_score, accuracy_score
 from torch_geometric.loader import DataLoader
 from torch_geometric.nn import HeteroConv, GATConv, Linear, global_mean_pool
+import wandb
+from torch_geometric.utils import to_networkx
 
 from dataset import UserGraphDataset
+from Visualize import GraphVisualization
 
 logging.basicConfig()
 logging.getLogger().setLevel(logging.INFO)
@@ -35,7 +43,8 @@ class HeteroGNN(torch.nn.Module):
         self.softmax = torch.nn.Softmax(dim=-1)
 
 
-    def forward(self, x_dict, edge_index_dict, batch_dict, post_emb=2):
+    def forward(self, x_dict, edge_index_dict, batch_dict, post_emb):
+        #print("IN", post_emb.shape)
         for conv in self.convs:
             x_dict = conv(x_dict, edge_index_dict)
             x_dict = {key: x.relu() for key, x in x_dict.items()}
@@ -43,11 +52,17 @@ class HeteroGNN(torch.nn.Module):
         outs = []
         for x, batch in zip(x_dict.values(), batch_dict.values()):
             if len(x):
-                outs.append(global_mean_pool(x, batch))
+                outs.append(global_mean_pool(x, batch=batch, size=len(post_emb)))
             else:
+                #print("EMPTY")
                 outs.append(torch.zeros(1, x.size(-1)))
-        out = torch.cat(outs, dim=-1)
-        out = torch.cat([torch.squeeze(out), post_emb], dim=-1)
+
+        #print([x.shape for x in outs])
+        out = torch.cat(outs, dim=1)
+
+        out = torch.cat([out, post_emb], dim=1)
+
+        #print("B4 LINEAR", out.shape)
         out = self.lin(out)
         out = out.relu()
         out = self.softmax(out)
@@ -56,40 +71,122 @@ class HeteroGNN(torch.nn.Module):
 
 
 def train(model, train_loader):
-    model.train()
+    running_loss = 0.0
 
-    for data in train_loader:  # Iterate in batches over the training dataset.
-        print(data)
+    model.train()
+    for i, data in enumerate(train_loader):  # Iterate in batches over the training dataset.
+        #print(data)
         data = data.to(device)
-        out = model(data.x_dict, data.edge_index_dict, data.batch_dict, torch.concat([data.question_emb, data.answer_emb]))  # Perform a single forward pass.
-        loss = criterion(torch.unsqueeze(out,0), data.label)  # Compute the loss.
+
+        optimizer.zero_grad()  # Clear gradients.
+        #print("DATA IN", data.question_emb.shape, data.answer_emb.shape)
+        post_emb = torch.cat([data.question_emb, data.answer_emb], dim=1)
+        out = model(data.x_dict, data.edge_index_dict, data.batch_dict, post_emb)  # Perform a single forward pass.
+
+        loss = criterion(out, torch.squeeze(data.label, -1))  # Compute the loss.
         loss.backward()  # Derive gradients.
         optimizer.step()  # Update parameters based on gradients.
-        optimizer.zero_grad()  # Clear gradients.
+
+        running_loss += loss.item()
+        if i % 5 == 0:
+            log.info(f"[{i+1}] Loss: {running_loss / 2000}")
+            running_loss = 0.0
+
 
 
 def test(loader):
+    table = wandb.Table(columns=["graph", "ground_truth", "prediction"]) if use_wandb else None
+    model.eval()
+
     predictions = []
     true_labels = []
 
-    model.eval()
+    loss_ = 0
+
     for data in loader:  # Iterate in batches over the training/test dataset.
         data = data.to(device)
-        out = model(data.x_dict, data.edge_index_dict, data.batch_dict, torch.concat([data.question_emb, data.answer_emb]))
-        pred = torch.unsqueeze(out,0).argmax(dim=1)  # Use the class with highest probability.
-        predictions.append(pred.item())
-        true_labels.append(data.label.item())
 
-    return accuracy_score(true_labels, predictions), f1_score(true_labels, predictions)  # Derive ratio of correct predictions.
+        post_emb = torch.cat([data.question_emb, data.answer_emb], dim=1).to(device)
 
+        out = model(data.x_dict, data.edge_index_dict, data.batch_dict, post_emb)  # Perform a single forward pass.
+
+        loss = criterion(out, torch.squeeze(data.label, -1))  # Compute the loss.
+        loss_ += loss.item()
+        pred = out.argmax(dim=1)  # Use the class with highest probability.
+        predictions += list([x.item() for x in pred])
+        true_labels += list([x.item() for x in data.label])
+
+        if use_wandb:
+            print("PRED", pred, data.label)
+            for pred, label in zip(pred, torch.squeeze(data.label, -1)):
+                table.add_data(wandb.Html(plotly.io.to_html(create_graph_vis(data))), label, pred)
+
+    #print("PRED", predictions, true_labels)
+    return accuracy_score(true_labels, predictions), f1_score(true_labels, predictions), loss_ / len(loader), table
+
+def create_graph_vis(graph):
+    g = to_networkx(graph.to_homogeneous())
+    pos = nx.spring_layout(g)
+    vis = GraphVisualization(
+        g, pos, node_text_position='top left', node_size=20,
+    )
+    fig = vis.create_figure()
+    return fig
+
+def init_wandb(project_name: str, run_name: str, dataset):
+    wandb.init(project=project_name, name=run_name)
+    # Log all the details about the data to W&B.
+    wandb.log(data_details)
+
+    # Log exploratory visualizations for each data point to W&B
+    table = wandb.Table(columns=["Graph", "Number of Nodes", "Number of Edges", "Label"])
+    for graph in dataset:
+        fig = create_graph_vis(graph)
+        n_nodes = graph.num_nodes
+        n_edges = graph.num_edges
+        label = graph.label.item()
+
+        graph_vis = plotly.io.to_html(fig, full_html=False)
+
+        table.add_data(graph_vis, n_nodes, n_edges, label)
+    wandb.log({"data": table})
+
+    # Log the dataset to W&B as an artifact.
+    dataset_artifact = wandb.Artifact(name="static-graphs", type="dataset", metadata=data_details)
+    dataset_artifact.add_dir("../data/")
+    wandb.log_artifact(dataset_artifact)
+
+    # End the W&B run
+    wandb.finish()
+
+def start_wandb_for_training(wandb_project_name: str):
+    wandb.init(project=wandb_project_name)
+    wandb.use_artifact("static-graphs:latest")
 
 if __name__ == '__main__':
     device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
     log.info(f"Proceeding with {device} . .")
+
     # Datasets
     dataset = UserGraphDataset(root="../data", skip_processing=True)
     train_dataset, val_dataset, test_dataset = torch.utils.data.random_split(dataset, [0.6, 0.1, 0.3])
 
+    # Weights&Biases dashboard
+    data_details = {
+        "num_node_features": dataset.num_node_features,
+        "num_classes": 2
+    }
+    log.info(f"Data Details:\n{data_details}")
+
+    setup_wandb = False
+    wandb_project_name = "heterogeneous-GAT-model"
+    wandb_run_name = f"run@{time.strftime('%Y%m%d-%H%M%S')}"
+    if setup_wandb:
+        init_wandb(wandb_project_name, wandb_run_name, dataset)
+    use_wandb = True
+    if use_wandb:
+        start_wandb_for_training(wandb_project_name)
+
     # Class weights
     train_labels = [x.label for x in train_dataset]
     counts = [train_labels.count(x) for x in [0,1]]
@@ -97,7 +194,7 @@ if __name__ == '__main__':
     sampler = torch.utils.data.WeightedRandomSampler([class_weights[x] for x in train_labels], len(train_labels))
 
     # Dataloaders
-    train_loader = DataLoader(train_dataset, sampler=sampler, batch_size=1)
+    train_loader = DataLoader(train_dataset, sampler=None, batch_size=16)
     val_loader = DataLoader(val_dataset, batch_size=1)
     test_loader = DataLoader(test_dataset, batch_size=1)
 
@@ -105,12 +202,39 @@ if __name__ == '__main__':
     model = HeteroGNN(hidden_channels=64, out_channels=2, num_layers=3)
     model.to(device)
 
-
-    optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
+    optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
     criterion = torch.nn.CrossEntropyLoss()
 
     for epoch in range(1, 10):
         train(model, train_loader)
-        train_acc, train_f1 = test(train_loader)
-        val_acc, val_f1 = test(val_loader)
+        train_acc, train_f1, train_loss, train_table = test(train_loader)
+        val_acc, val_f1, val_loss, val_table = test(val_loader)
+        test_acc, test_f1, test_loss, test_table = test(test_loader)
+
         print(f'Epoch: {epoch:03d}, Train F1: {train_f1:.4f}, Validation F1: {val_f1:.4f}')
+        if use_wandb:
+            wandb.log({
+                "train/loss": train_loss,
+                "train/accuracy": train_acc,
+                "train/f1": train_f1,
+                "train/table": train_table,
+                "val/loss": val_loss,
+                "val/accuracy": val_acc,
+                "val/f1": val_f1,
+                "val/table": val_table,
+                "test/loss": test_loss,
+                "test/accuracy": test_acc,
+                "test/f1": test_f1,
+                "test/table": test_table,
+            })
+            # Log model checkpoint as an artifact to W&B
+            artifact = wandb.Artifact(name="heterogenous-GAT-static-graphs", type="model")
+            checkpoint_file_name = f"../models/model-{epoch}.pt"
+            torch.save(model.state_dict(), checkpoint_file_name)
+            artifact.add_file(checkpoint_file_name)
+            wandb.log_artifact(artifact)
+
+    print(f'Test F1: {test_f1:.4f}')
+
+    if use_wandb:
+        wandb.finish()
diff --git a/embeddings/static_graph_construction.py b/embeddings/static_graph_construction.py
index e8c37fa134d15b1761ffbf8ae7a8f825ce330845..e8e9f3baf6e6b3ef13b6154a7956e6b9fcbfd958 100644
--- a/embeddings/static_graph_construction.py
+++ b/embeddings/static_graph_construction.py
@@ -1,6 +1,9 @@
-from typing import List
+from typing import List, Any, Optional
 import logging
 
+from torch_geometric.data.hetero_data import NodeOrEdgeStorage
+
+from ModuleEmbeddings import ModuleEmbeddingTrainer
 from NextTagEmbedding import NextTagEmbeddingTrainer
 
 logging.basicConfig()
@@ -15,16 +18,27 @@ from post_embedding_builder import Import, PostEmbedding
 import torch_geometric.transforms as T
 
 
+class BatchedHeteroData(HeteroData):
+
+    def __cat_dim__(self, key: str, value: Any,
+                    store: Optional[NodeOrEdgeStorage] = None, *args,
+                    **kwargs):
+
+        if key in ['question_emb', 'answer_emb', 'label']:
+            return None
+        return super().__cat_dim__(key, value)
+
 class StaticGraphConstruction:
 
     # PostEmbedding is costly to instantiate in each StaticGraphConstruction instance.
     post_embedding_builder = PostEmbedding()
     tag_embedding_model = NextTagEmbeddingTrainer.load_model("../models/tag-emb-7_5mil-50d-63653-3.pt", embedding_dim=50, vocab_size=63654, context_length=3)
+    module_embedding_model = ModuleEmbeddingTrainer.load_model("../models/module-emb-1milx5-30d-49911.pt", embedding_dim=30, vocab_size=49911)
 
     def __init__(self):
         self._known_tags = {}  # tag_name -> index
         self._known_modules = {}  # module_name -> index
-        self._data = HeteroData()
+        self._data = BatchedHeteroData()
         self._first_n_tags = 3
 
         self._tag_to_question_edges = []
@@ -116,13 +130,13 @@ class StaticGraphConstruction:
         if not len(self._known_tags):
             return None
         for tag in self._known_tags:
-            yield self.tag_embedding_model.get_tag_embedding(tag)
+            yield StaticGraphConstruction.tag_embedding_model.get_tag_embedding(tag)
 
     def process_modules(self):
         if not len(self._known_modules):
             return None
         for module in self._known_modules: # TODO: Map module name to its embedding
-            yield torch.rand(110)
+            yield StaticGraphConstruction.module_embedding_model.get_module_embedding(module)
 
     """
     Utility functions
@@ -163,9 +177,9 @@ class StaticGraphConstruction:
 
         self._data['comment'].x = torch.stack(comment_nodes) if len(comment_nodes) else torch.empty(0, 768)
 
-        self._data['tag'].x = torch.stack(tag_nodes) if len(tag_nodes) else torch.empty(0, 90)
+        self._data['tag'].x = torch.stack(tag_nodes) if len(tag_nodes) else torch.empty(0, 50)
 
-        self._data['module'].x = torch.stack(module_nodes) if len(module_nodes) else torch.empty(0, 110)
+        self._data['module'].x = torch.stack(module_nodes) if len(module_nodes) else torch.empty(0, 30)
 
         # Assign edge indexes
         self._data['tag', 'describes', 'question'].edge_index = torch.tensor(self._tag_to_question_edges).t().contiguous() if len(self._tag_to_question_edges) else torch.empty(2,0, dtype=torch.long)
diff --git a/embeddings/training_set_builder.ipynb b/embeddings/training_set_builder.ipynb
index b9c124f4e460415d706d436371f9941712edd4d5..79dc96d4958dd987ba1f269142205027dbef2481 100644
--- a/embeddings/training_set_builder.ipynb
+++ b/embeddings/training_set_builder.ipynb
@@ -25,7 +25,7 @@
    "execution_count": 2,
    "outputs": [],
    "source": [
-    "QUESTIONS_RETREIVED = 200"
+    "QUESTIONS_RETREIVED = 10000"
    ],
    "metadata": {
     "collapsed": false
@@ -37,8 +37,8 @@
    "outputs": [
     {
      "data": {
-      "text/plain": "     post_id                                      question_body  \\\n0        337  <p>I am about to build a piece of a project th...   \n1        469  <p>I am using the Photoshop's javascript API t...   \n2        502  <p>I have a cross-platform (Python) applicatio...   \n3        535  <p>I am starting to work on a hobby project wi...   \n4        594  <p>There are several ways to iterate over a re...   \n..       ...                                                ...   \n195    68774  <p>I want to open a TCP client socket in Pytho...   \n196    69645  <p>I want to take a screenshot via a python sc...   \n197    70528  <p>Python gives us the ability to create 'priv...   \n198    70577  <p>I am new to any scripting language. But, St...   \n199    70797  <p>How do I have a Python script that a) can a...   \n\n                                        question_title  question_user_id  \n0                             XML Processing in Python             111.0  \n1    How can I find the full path to a font from it...             147.0  \n2              Get a preview JPEG of a PDF on Windows?             147.0  \n3    Continuous Integration System for a Python Cod...             154.0  \n4       cx_Oracle: How do I iterate over a result set?             116.0  \n..                                                 ...               ...  \n195                Best way to open a socket in Python            5324.0  \n196     Take a screenshot via a Python script on Linux         1724701.0  \n197  Why are Python's 'private' methods not actuall...         1943957.0  \n198              Best online resource to learn Python?           11372.0  \n199  How to prompt for user input and read command-...         1384652.0  \n\n[200 rows x 4 columns]",
-      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>post_id</th>\n      <th>question_body</th>\n      <th>question_title</th>\n      <th>question_user_id</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>337</td>\n      <td>&lt;p&gt;I am about to build a piece of a project th...</td>\n      <td>XML Processing in Python</td>\n      <td>111.0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>469</td>\n      <td>&lt;p&gt;I am using the Photoshop's javascript API t...</td>\n      <td>How can I find the full path to a font from it...</td>\n      <td>147.0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>502</td>\n      <td>&lt;p&gt;I have a cross-platform (Python) applicatio...</td>\n      <td>Get a preview JPEG of a PDF on Windows?</td>\n      <td>147.0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>535</td>\n      <td>&lt;p&gt;I am starting to work on a hobby project wi...</td>\n      <td>Continuous Integration System for a Python Cod...</td>\n      <td>154.0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>594</td>\n      <td>&lt;p&gt;There are several ways to iterate over a re...</td>\n      <td>cx_Oracle: How do I iterate over a result set?</td>\n      <td>116.0</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>195</th>\n      <td>68774</td>\n      <td>&lt;p&gt;I want to open a TCP client socket in Pytho...</td>\n      <td>Best way to open a socket in Python</td>\n      <td>5324.0</td>\n    </tr>\n    <tr>\n      <th>196</th>\n      <td>69645</td>\n      <td>&lt;p&gt;I want to take a screenshot via a python sc...</td>\n      <td>Take a screenshot via a Python script on Linux</td>\n      <td>1724701.0</td>\n    </tr>\n    <tr>\n      <th>197</th>\n      <td>70528</td>\n      <td>&lt;p&gt;Python gives us the ability to create 'priv...</td>\n      <td>Why are Python's 'private' methods not actuall...</td>\n      <td>1943957.0</td>\n    </tr>\n    <tr>\n      <th>198</th>\n      <td>70577</td>\n      <td>&lt;p&gt;I am new to any scripting language. But, St...</td>\n      <td>Best online resource to learn Python?</td>\n      <td>11372.0</td>\n    </tr>\n    <tr>\n      <th>199</th>\n      <td>70797</td>\n      <td>&lt;p&gt;How do I have a Python script that a) can a...</td>\n      <td>How to prompt for user input and read command-...</td>\n      <td>1384652.0</td>\n    </tr>\n  </tbody>\n</table>\n<p>200 rows × 4 columns</p>\n</div>"
+      "text/plain": "      post_id                                      question_body  \\\n0         337  <p>I am about to build a piece of a project th...   \n1         469  <p>I am using the Photoshop's javascript API t...   \n2         502  <p>I have a cross-platform (Python) applicatio...   \n3         535  <p>I am starting to work on a hobby project wi...   \n4         594  <p>There are several ways to iterate over a re...   \n...       ...                                                ...   \n9995  3483718  <p>Today I have come across a surprising defin...   \n9996  3483723  <p>I was wondering if anyone can explain why a...   \n9997  3484019  <p>Given a python class <code>class Student():...   \n9998  3484149  <p>I am trying to output the first 255 charact...   \n9999  3484293  <p>I've been trying to make a <code>dict</code...   \n\n                                         question_title  question_user_id  \n0                              XML Processing in Python             111.0  \n1     How can I find the full path to a font from it...             147.0  \n2               Get a preview JPEG of a PDF on Windows?             147.0  \n3     Continuous Integration System for a Python Cod...             154.0  \n4        cx_Oracle: How do I iterate over a result set?             116.0  \n...                                                 ...               ...  \n9995  When to inline definitions of metaclass in Pyt...          336455.0  \n9996     Python interactive mode history and arrow keys           71809.0  \n9997               Python list to store class instance?          413897.0  \n9998  Limit number of characters with Django Templat...          206506.0  \n9999  Is there a description of how __cmp__ works fo...          420501.0  \n\n[10000 rows x 4 columns]",
+      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>post_id</th>\n      <th>question_body</th>\n      <th>question_title</th>\n      <th>question_user_id</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>337</td>\n      <td>&lt;p&gt;I am about to build a piece of a project th...</td>\n      <td>XML Processing in Python</td>\n      <td>111.0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>469</td>\n      <td>&lt;p&gt;I am using the Photoshop's javascript API t...</td>\n      <td>How can I find the full path to a font from it...</td>\n      <td>147.0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>502</td>\n      <td>&lt;p&gt;I have a cross-platform (Python) applicatio...</td>\n      <td>Get a preview JPEG of a PDF on Windows?</td>\n      <td>147.0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>535</td>\n      <td>&lt;p&gt;I am starting to work on a hobby project wi...</td>\n      <td>Continuous Integration System for a Python Cod...</td>\n      <td>154.0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>594</td>\n      <td>&lt;p&gt;There are several ways to iterate over a re...</td>\n      <td>cx_Oracle: How do I iterate over a result set?</td>\n      <td>116.0</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>9995</th>\n      <td>3483718</td>\n      <td>&lt;p&gt;Today I have come across a surprising defin...</td>\n      <td>When to inline definitions of metaclass in Pyt...</td>\n      <td>336455.0</td>\n    </tr>\n    <tr>\n      <th>9996</th>\n      <td>3483723</td>\n      <td>&lt;p&gt;I was wondering if anyone can explain why a...</td>\n      <td>Python interactive mode history and arrow keys</td>\n      <td>71809.0</td>\n    </tr>\n    <tr>\n      <th>9997</th>\n      <td>3484019</td>\n      <td>&lt;p&gt;Given a python class &lt;code&gt;class Student():...</td>\n      <td>Python list to store class instance?</td>\n      <td>413897.0</td>\n    </tr>\n    <tr>\n      <th>9998</th>\n      <td>3484149</td>\n      <td>&lt;p&gt;I am trying to output the first 255 charact...</td>\n      <td>Limit number of characters with Django Templat...</td>\n      <td>206506.0</td>\n    </tr>\n    <tr>\n      <th>9999</th>\n      <td>3484293</td>\n      <td>&lt;p&gt;I've been trying to make a &lt;code&gt;dict&lt;/code...</td>\n      <td>Is there a description of how __cmp__ works fo...</td>\n      <td>420501.0</td>\n    </tr>\n  </tbody>\n</table>\n<p>10000 rows × 4 columns</p>\n</div>"
      },
      "execution_count": 3,
      "metadata": {},
diff --git a/embeddings/wandb/debug-cli.liamb.log b/embeddings/wandb/debug-cli.liamb.log
new file mode 100644
index 0000000000000000000000000000000000000000..32fa24fc15ebbf2e9c4c3de0d7db6829ce29c63d
--- /dev/null
+++ b/embeddings/wandb/debug-cli.liamb.log
@@ -0,0 +1,170 @@
+2023-02-24 12:26:07 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:07 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:07 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:07 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:07 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:07 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:07 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:07 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:07 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:07 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:08 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:09 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:09 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:09 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:09 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:09 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:09 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:26:10 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:29 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:30 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:30 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:30 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:30 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:30 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:30 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:30 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:30 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:33 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:35:41 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:52 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:52 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:52 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:52 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:52 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:53 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:54 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:54 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:54 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 12:36:54 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:32 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
+2023-02-24 16:37:40 WARNING Connection pool is full, discarding connection: storage.googleapis.com. Connection pool size: 10
diff --git a/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/config.yaml b/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..4dd72c16bd1cba17aaec63d249c1d4f8c5895702
--- /dev/null
+++ b/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677238241.509167
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/output.log b/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..4bb3f930ff0385a117f51804f3fb3961466b8793
--- /dev/null
+++ b/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/output.log
@@ -0,0 +1,24 @@
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 138, in <module>
+    wandb.log(data_details)  # 🪄🐝
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 371, in wrapper
+    return func(self, *args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 334, in wrapper
+    return func(self, *args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 1713, in log
+    self._log(data=data, step=step, commit=commit)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 1495, in _log
+    self._partial_history_callback(data, step, commit)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 1365, in _partial_history_callback
+    self._backend.interface.publish_partial_history(
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\interface\interface.py", line 580, in publish_partial_history
+    item.value_json = json_dumps_safer_history(v)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\util.py", line 953, in json_dumps_safer_history
+    return json.dumps(obj, cls=WandBHistoryJSONEncoder, **kwargs)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\json\__init__.py", line 234, in dumps
+    return cls(
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\json\encoder.py", line 199, in encode
+    chunks = self.iterencode(o, _one_shot=True)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\json\encoder.py", line 257, in iterencode
+    return _iterencode(o, 0)
+TypeError: keys must be str, int, float, bool or None, not tuple
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/requirements.txt b/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/wandb-metadata.json b/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..940fff33f5b19d644f3d20beadcc38258a4864fe
--- /dev/null
+++ b/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T11:30:42.081633",
+    "startedAt": "2023-02-24T11:30:41.495164",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 352.297119140625
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/wandb-summary.json b/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..fe9e22cf416d08fa3b43b9f0c278f2270e8d86cd
--- /dev/null
+++ b/embeddings/wandb/run-20230224_113041-0mj5jj8w/files/wandb-summary.json
@@ -0,0 +1 @@
+{"_wandb": {"runtime": 0}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_113041-0mj5jj8w/logs/debug-internal.log b/embeddings/wandb/run-20230224_113041-0mj5jj8w/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..c1275bd2e6605a2e9b55e59dfd4248e661cd23b6
--- /dev/null
+++ b/embeddings/wandb/run-20230224_113041-0mj5jj8w/logs/debug-internal.log
@@ -0,0 +1,170 @@
+2023-02-24 11:30:41,509 INFO    StreamThr :3444 [internal.py:wandb_internal():87] W&B internal server running at pid: 3444, started at: 2023-02-24 11:30:41.508166
+2023-02-24 11:30:41,511 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: status
+2023-02-24 11:30:41,512 INFO    WriterThread:3444 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\run-0mj5jj8w.wandb
+2023-02-24 11:30:41,516 DEBUG   SenderThread:3444 [sender.py:send():336] send: header
+2023-02-24 11:30:41,561 DEBUG   SenderThread:3444 [sender.py:send():336] send: run
+2023-02-24 11:30:41,984 INFO    SenderThread:3444 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files
+2023-02-24 11:30:41,984 INFO    SenderThread:3444 [sender.py:_start_run_threads():1067] run started: 0mj5jj8w with start time 1677238241.509167
+2023-02-24 11:30:41,984 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 11:30:41,985 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 11:30:41,985 INFO    SenderThread:3444 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 11:30:41,986 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: check_version
+2023-02-24 11:30:42,059 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 11:30:42,076 DEBUG   HandlerThread:3444 [system_info.py:__init__():31] System info init
+2023-02-24 11:30:42,076 DEBUG   HandlerThread:3444 [system_info.py:__init__():46] System info init done
+2023-02-24 11:30:42,077 INFO    HandlerThread:3444 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 11:30:42,077 INFO    SystemMonitor:3444 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 11:30:42,077 INFO    HandlerThread:3444 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 11:30:42,080 INFO    SystemMonitor:3444 [interfaces.py:start():168] Started cpu
+2023-02-24 11:30:42,081 DEBUG   HandlerThread:3444 [system_info.py:probe():195] Probing system
+2023-02-24 11:30:42,081 INFO    SystemMonitor:3444 [interfaces.py:start():168] Started disk
+2023-02-24 11:30:42,081 INFO    SystemMonitor:3444 [interfaces.py:start():168] Started memory
+2023-02-24 11:30:42,090 INFO    SystemMonitor:3444 [interfaces.py:start():168] Started network
+2023-02-24 11:30:42,101 DEBUG   HandlerThread:3444 [system_info.py:_probe_git():180] Probing git
+2023-02-24 11:30:42,206 DEBUG   HandlerThread:3444 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 11:30:42,206 DEBUG   HandlerThread:3444 [system_info.py:probe():241] Probing system done
+2023-02-24 11:30:42,206 DEBUG   HandlerThread:3444 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T11:30:42.081633', 'startedAt': '2023-02-24T11:30:41.495164', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 352.297119140625}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 11:30:42,206 INFO    HandlerThread:3444 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 11:30:42,206 INFO    HandlerThread:3444 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 11:30:42,206 DEBUG   HandlerThread:3444 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 11:30:42,207 DEBUG   HandlerThread:3444 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 11:30:42,210 INFO    HandlerThread:3444 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 11:30:42,220 DEBUG   SenderThread:3444 [sender.py:send():336] send: files
+2023-02-24 11:30:42,220 INFO    SenderThread:3444 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 11:30:42,228 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 11:30:42,228 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 11:30:42,389 DEBUG   SenderThread:3444 [sender.py:send():336] send: telemetry
+2023-02-24 11:30:42,391 DEBUG   SenderThread:3444 [sender.py:send():336] send: exit
+2023-02-24 11:30:42,392 INFO    SenderThread:3444 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 11:30:42,392 INFO    SenderThread:3444 [sender.py:send_exit():561] handling runtime: 0
+2023-02-24 11:30:42,392 INFO    SenderThread:3444 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 11:30:42,393 INFO    SenderThread:3444 [sender.py:send_exit():567] send defer
+2023-02-24 11:30:42,393 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:42,393 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 11:30:42,393 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:42,393 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 11:30:42,393 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 1
+2023-02-24 11:30:42,394 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:42,394 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 11:30:42,394 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:42,394 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 11:30:42,394 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 2
+2023-02-24 11:30:42,394 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:42,394 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 11:30:42,394 INFO    HandlerThread:3444 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 11:30:42,395 DEBUG   SystemMonitor:3444 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 11:30:42,395 DEBUG   SystemMonitor:3444 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 11:30:42,395 DEBUG   SystemMonitor:3444 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 11:30:42,396 INFO    HandlerThread:3444 [interfaces.py:finish():175] Joined cpu
+2023-02-24 11:30:42,396 INFO    HandlerThread:3444 [interfaces.py:finish():175] Joined disk
+2023-02-24 11:30:42,396 INFO    HandlerThread:3444 [interfaces.py:finish():175] Joined memory
+2023-02-24 11:30:42,396 INFO    HandlerThread:3444 [interfaces.py:finish():175] Joined network
+2023-02-24 11:30:42,397 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:42,397 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 11:30:42,397 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 3
+2023-02-24 11:30:42,398 DEBUG   SenderThread:3444 [sender.py:send():336] send: stats
+2023-02-24 11:30:42,398 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:42,399 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 11:30:42,400 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:42,400 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 11:30:42,400 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 4
+2023-02-24 11:30:42,400 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:42,400 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 11:30:42,400 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:42,401 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 11:30:42,401 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 5
+2023-02-24 11:30:42,401 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:42,401 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 11:30:42,401 DEBUG   SenderThread:3444 [sender.py:send():336] send: summary
+2023-02-24 11:30:42,402 INFO    SenderThread:3444 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 11:30:42,402 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:42,403 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 11:30:42,403 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 6
+2023-02-24 11:30:42,403 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:42,403 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 11:30:42,403 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:42,403 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 11:30:42,407 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 11:30:42,593 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 7
+2023-02-24 11:30:42,593 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:42,593 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 11:30:42,594 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:42,594 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 11:30:42,760 INFO    wandb-upload_0:3444 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp5ugh02wtwandb\2ue29pmz-wandb-metadata.json
+2023-02-24 11:30:42,997 INFO    Thread-17 :3444 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\config.yaml
+2023-02-24 11:30:42,997 INFO    Thread-17 :3444 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\wandb-summary.json
+2023-02-24 11:30:42,998 INFO    Thread-17 :3444 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\wandb-metadata.json
+2023-02-24 11:30:42,998 INFO    Thread-17 :3444 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\requirements.txt
+2023-02-24 11:30:42,998 INFO    Thread-17 :3444 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\output.log
+2023-02-24 11:30:43,259 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 11:30:44,399 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 8
+2023-02-24 11:30:44,399 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 11:30:44,400 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:44,400 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 11:30:44,401 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:44,401 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 11:30:44,423 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 9
+2023-02-24 11:30:44,424 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:44,424 DEBUG   SenderThread:3444 [sender.py:send():336] send: artifact
+2023-02-24 11:30:44,424 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 11:30:45,019 INFO    Thread-17 :3444 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\output.log
+2023-02-24 11:30:45,674 INFO    wandb-upload_0:3444 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpdcfhpo7n
+2023-02-24 11:30:45,675 INFO    wandb-upload_1:3444 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpims1clb7
+2023-02-24 11:30:46,926 INFO    SenderThread:3444 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'digest': 'dbe34f6e8b990dacc5d7c5e1ab1d02a4', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': None}, 'version': 'latest'}
+2023-02-24 11:30:46,926 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:46,926 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 11:30:46,926 INFO    SenderThread:3444 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 11:30:47,040 INFO    SenderThread:3444 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files
+2023-02-24 11:30:47,041 INFO    SenderThread:3444 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\config.yaml config.yaml
+2023-02-24 11:30:47,041 INFO    SenderThread:3444 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\output.log output.log
+2023-02-24 11:30:47,042 INFO    SenderThread:3444 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\requirements.txt requirements.txt
+2023-02-24 11:30:47,045 INFO    SenderThread:3444 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 11:30:47,045 INFO    SenderThread:3444 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\wandb-summary.json wandb-summary.json
+2023-02-24 11:30:47,048 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 10
+2023-02-24 11:30:47,051 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:47,052 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 11:30:47,055 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:47,056 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 11:30:47,056 INFO    SenderThread:3444 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 11:30:47,538 INFO    wandb-upload_0:3444 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\config.yaml
+2023-02-24 11:30:47,583 INFO    wandb-upload_1:3444 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\output.log
+2023-02-24 11:30:47,586 INFO    wandb-upload_2:3444 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\requirements.txt
+2023-02-24 11:30:47,612 INFO    wandb-upload_3:3444 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\files\wandb-summary.json
+2023-02-24 11:30:47,822 INFO    Thread-16 :3444 [sender.py:transition_state():587] send defer: 11
+2023-02-24 11:30:47,822 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:47,822 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 11:30:47,822 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:47,823 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 11:30:47,823 INFO    SenderThread:3444 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 11:30:47,823 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 12
+2023-02-24 11:30:47,823 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:47,823 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 11:30:47,823 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:47,823 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 11:30:47,971 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 13
+2023-02-24 11:30:47,971 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:47,971 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 11:30:47,972 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:47,972 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 11:30:47,972 INFO    SenderThread:3444 [sender.py:transition_state():587] send defer: 14
+2023-02-24 11:30:47,972 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:30:47,972 DEBUG   SenderThread:3444 [sender.py:send():336] send: final
+2023-02-24 11:30:47,973 INFO    HandlerThread:3444 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 11:30:47,973 DEBUG   SenderThread:3444 [sender.py:send():336] send: footer
+2023-02-24 11:30:47,973 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:30:47,973 INFO    SenderThread:3444 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 11:30:47,974 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 11:30:47,974 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 11:30:47,974 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 11:30:47,975 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 11:30:47,975 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 11:30:47,975 DEBUG   SenderThread:3444 [sender.py:send_request():363] send_request: server_info
+2023-02-24 11:30:48,160 INFO    MainThread:3444 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 11:30:48,161 INFO    MainThread:3444 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 11:30:48,161 INFO    MainThread:3444 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 11:30:48,161 DEBUG   HandlerThread:3444 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 11:30:48,161 INFO    HandlerThread:3444 [handler.py:finish():841] shutting down handler
+2023-02-24 11:30:48,979 INFO    WriterThread:3444 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\run-0mj5jj8w.wandb
+2023-02-24 11:30:49,166 INFO    SenderThread:3444 [sender.py:finish():1493] shutting down sender
+2023-02-24 11:30:49,166 INFO    SenderThread:3444 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 11:30:49,166 INFO    SenderThread:3444 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_113041-0mj5jj8w/logs/debug.log b/embeddings/wandb/run-20230224_113041-0mj5jj8w/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..6a7beb126a37331b26ccbcb40045986e3dcce935
--- /dev/null
+++ b/embeddings/wandb/run-20230224_113041-0mj5jj8w/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 11:30:41,498 INFO    MainThread:14884 [wandb_setup.py:_flush():68] Configure stats pid to 14884
+2023-02-24 11:30:41,499 INFO    MainThread:14884 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 11:30:41,499 INFO    MainThread:14884 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 11:30:41,499 INFO    MainThread:14884 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 11:30:41,499 INFO    MainThread:14884 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 11:30:41,500 INFO    MainThread:14884 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\logs\debug.log
+2023-02-24 11:30:41,500 INFO    MainThread:14884 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_113041-0mj5jj8w\logs\debug-internal.log
+2023-02-24 11:30:41,500 INFO    MainThread:14884 [wandb_init.py:init():532] calling init triggers
+2023-02-24 11:30:41,500 INFO    MainThread:14884 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 11:30:41,501 INFO    MainThread:14884 [wandb_init.py:init():588] starting backend
+2023-02-24 11:30:41,501 INFO    MainThread:14884 [wandb_init.py:init():592] setting up manager
+2023-02-24 11:30:41,504 INFO    MainThread:14884 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 11:30:41,508 INFO    MainThread:14884 [wandb_init.py:init():599] backend started and connected
+2023-02-24 11:30:41,511 INFO    MainThread:14884 [wandb_init.py:init():687] updated telemetry
+2023-02-24 11:30:41,560 INFO    MainThread:14884 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 11:30:41,984 INFO    MainThread:14884 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 11:30:42,052 INFO    MainThread:14884 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 11:30:42,052 INFO    MainThread:14884 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 11:30:42,228 INFO    MainThread:14884 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 11:30:42,229 INFO    MainThread:14884 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 11:30:42,229 INFO    MainThread:14884 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 11:30:42,229 INFO    MainThread:14884 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 11:30:42,230 INFO    MainThread:14884 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 11:30:49,244 WARNING MsgRouterThr:14884 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_113041-0mj5jj8w/run-0mj5jj8w.wandb b/embeddings/wandb/run-20230224_113041-0mj5jj8w/run-0mj5jj8w.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..74f93e0d2c49b66f18b98da902935de1d784bec2
Binary files /dev/null and b/embeddings/wandb/run-20230224_113041-0mj5jj8w/run-0mj5jj8w.wandb differ
diff --git a/embeddings/wandb/run-20230224_114452-o512xqpv/files/config.yaml b/embeddings/wandb/run-20230224_114452-o512xqpv/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e07c16dfa74300bd0ff2f12bdcda533dd939221a
--- /dev/null
+++ b/embeddings/wandb/run-20230224_114452-o512xqpv/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677239093.006892
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_114452-o512xqpv/files/output.log b/embeddings/wandb/run-20230224_114452-o512xqpv/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..5905b833b1956a8c7832f64785cc93533d1f6699
--- /dev/null
+++ b/embeddings/wandb/run-20230224_114452-o512xqpv/files/output.log
@@ -0,0 +1,24 @@
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 138, in <module>
+    wandb.log(data_details)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 371, in wrapper
+    return func(self, *args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 334, in wrapper
+    return func(self, *args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 1713, in log
+    self._log(data=data, step=step, commit=commit)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 1495, in _log
+    self._partial_history_callback(data, step, commit)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 1365, in _partial_history_callback
+    self._backend.interface.publish_partial_history(
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\interface\interface.py", line 580, in publish_partial_history
+    item.value_json = json_dumps_safer_history(v)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\util.py", line 953, in json_dumps_safer_history
+    return json.dumps(obj, cls=WandBHistoryJSONEncoder, **kwargs)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\json\__init__.py", line 234, in dumps
+    return cls(
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\json\encoder.py", line 199, in encode
+    chunks = self.iterencode(o, _one_shot=True)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\json\encoder.py", line 257, in iterencode
+    return _iterencode(o, 0)
+TypeError: keys must be str, int, float, bool or None, not tuple
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_114452-o512xqpv/files/requirements.txt b/embeddings/wandb/run-20230224_114452-o512xqpv/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_114452-o512xqpv/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_114452-o512xqpv/files/wandb-metadata.json b/embeddings/wandb/run-20230224_114452-o512xqpv/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..9efdf5c93889dfada05c228eca65ce99055f9534
--- /dev/null
+++ b/embeddings/wandb/run-20230224_114452-o512xqpv/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T11:44:55.955178",
+    "startedAt": "2023-02-24T11:44:52.992893",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 352.3754081726074
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_114452-o512xqpv/files/wandb-summary.json b/embeddings/wandb/run-20230224_114452-o512xqpv/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..fe9e22cf416d08fa3b43b9f0c278f2270e8d86cd
--- /dev/null
+++ b/embeddings/wandb/run-20230224_114452-o512xqpv/files/wandb-summary.json
@@ -0,0 +1 @@
+{"_wandb": {"runtime": 0}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_114452-o512xqpv/logs/debug-internal.log b/embeddings/wandb/run-20230224_114452-o512xqpv/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..74427c4d66dde00e28cc8b0de18674e9a174b881
--- /dev/null
+++ b/embeddings/wandb/run-20230224_114452-o512xqpv/logs/debug-internal.log
@@ -0,0 +1,170 @@
+2023-02-24 11:44:53,006 INFO    StreamThr :10900 [internal.py:wandb_internal():87] W&B internal server running at pid: 10900, started at: 2023-02-24 11:44:53.005896
+2023-02-24 11:44:53,008 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: status
+2023-02-24 11:44:53,009 INFO    WriterThread:10900 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\run-o512xqpv.wandb
+2023-02-24 11:44:53,013 DEBUG   SenderThread:10900 [sender.py:send():336] send: header
+2023-02-24 11:44:53,058 DEBUG   SenderThread:10900 [sender.py:send():336] send: run
+2023-02-24 11:44:55,331 INFO    SenderThread:10900 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files
+2023-02-24 11:44:55,331 INFO    SenderThread:10900 [sender.py:_start_run_threads():1067] run started: o512xqpv with start time 1677239093.006892
+2023-02-24 11:44:55,331 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 11:44:55,331 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 11:44:55,332 INFO    SenderThread:10900 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 11:44:55,332 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: check_version
+2023-02-24 11:44:55,935 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 11:44:55,953 DEBUG   HandlerThread:10900 [system_info.py:__init__():31] System info init
+2023-02-24 11:44:55,954 DEBUG   HandlerThread:10900 [system_info.py:__init__():46] System info init done
+2023-02-24 11:44:55,954 INFO    HandlerThread:10900 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 11:44:55,954 INFO    SystemMonitor:10900 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 11:44:55,954 INFO    HandlerThread:10900 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 11:44:55,955 DEBUG   HandlerThread:10900 [system_info.py:probe():195] Probing system
+2023-02-24 11:44:55,958 INFO    SystemMonitor:10900 [interfaces.py:start():168] Started cpu
+2023-02-24 11:44:55,958 INFO    SystemMonitor:10900 [interfaces.py:start():168] Started disk
+2023-02-24 11:44:55,959 INFO    SystemMonitor:10900 [interfaces.py:start():168] Started memory
+2023-02-24 11:44:55,975 INFO    SystemMonitor:10900 [interfaces.py:start():168] Started network
+2023-02-24 11:44:55,976 DEBUG   HandlerThread:10900 [system_info.py:_probe_git():180] Probing git
+2023-02-24 11:44:56,072 DEBUG   HandlerThread:10900 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 11:44:56,072 DEBUG   HandlerThread:10900 [system_info.py:probe():241] Probing system done
+2023-02-24 11:44:56,072 DEBUG   HandlerThread:10900 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T11:44:55.955178', 'startedAt': '2023-02-24T11:44:52.992893', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 352.3754081726074}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 11:44:56,072 INFO    HandlerThread:10900 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 11:44:56,072 INFO    HandlerThread:10900 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 11:44:56,073 DEBUG   HandlerThread:10900 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 11:44:56,073 DEBUG   HandlerThread:10900 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 11:44:56,075 INFO    HandlerThread:10900 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 11:44:56,083 DEBUG   SenderThread:10900 [sender.py:send():336] send: files
+2023-02-24 11:44:56,083 INFO    SenderThread:10900 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 11:44:56,092 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 11:44:56,092 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 11:44:56,344 INFO    Thread-17 :10900 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\requirements.txt
+2023-02-24 11:44:56,345 INFO    Thread-17 :10900 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\wandb-summary.json
+2023-02-24 11:44:56,345 INFO    Thread-17 :10900 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\wandb-metadata.json
+2023-02-24 11:44:56,934 DEBUG   SenderThread:10900 [sender.py:send():336] send: telemetry
+2023-02-24 11:44:56,936 DEBUG   SenderThread:10900 [sender.py:send():336] send: exit
+2023-02-24 11:44:56,936 INFO    SenderThread:10900 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 11:44:56,936 INFO    SenderThread:10900 [sender.py:send_exit():561] handling runtime: 0
+2023-02-24 11:44:56,937 INFO    SenderThread:10900 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 11:44:56,937 INFO    SenderThread:10900 [sender.py:send_exit():567] send defer
+2023-02-24 11:44:56,937 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:44:56,937 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 11:44:56,938 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:44:56,938 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 11:44:56,938 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 1
+2023-02-24 11:44:56,938 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:44:56,938 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 11:44:56,939 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:44:56,939 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 11:44:56,939 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 2
+2023-02-24 11:44:56,939 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:44:56,939 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 11:44:56,939 INFO    HandlerThread:10900 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 11:44:56,939 DEBUG   SystemMonitor:10900 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 11:44:56,940 DEBUG   SystemMonitor:10900 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 11:44:56,940 DEBUG   SystemMonitor:10900 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 11:44:56,940 INFO    HandlerThread:10900 [interfaces.py:finish():175] Joined cpu
+2023-02-24 11:44:56,941 INFO    HandlerThread:10900 [interfaces.py:finish():175] Joined disk
+2023-02-24 11:44:56,941 INFO    HandlerThread:10900 [interfaces.py:finish():175] Joined memory
+2023-02-24 11:44:56,941 INFO    HandlerThread:10900 [interfaces.py:finish():175] Joined network
+2023-02-24 11:44:56,941 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:44:56,941 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 11:44:56,941 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 3
+2023-02-24 11:44:56,941 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:44:56,942 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 11:44:56,942 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:44:56,942 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 11:44:56,942 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 4
+2023-02-24 11:44:56,942 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:44:56,942 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 11:44:56,942 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:44:56,943 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 11:44:56,943 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 5
+2023-02-24 11:44:56,943 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:44:56,943 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 11:44:56,943 DEBUG   SenderThread:10900 [sender.py:send():336] send: summary
+2023-02-24 11:44:56,944 INFO    SenderThread:10900 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 11:44:56,944 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:44:56,944 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 11:44:56,944 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 6
+2023-02-24 11:44:56,944 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:44:56,944 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 11:44:56,945 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:44:56,945 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 11:44:56,949 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 11:44:57,102 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 11:44:57,351 INFO    Thread-17 :10900 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\wandb-summary.json
+2023-02-24 11:44:57,351 INFO    Thread-17 :10900 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\output.log
+2023-02-24 11:44:58,809 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 7
+2023-02-24 11:44:58,809 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 11:44:58,810 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:44:58,810 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 11:44:58,810 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:44:58,810 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 11:44:58,983 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 8
+2023-02-24 11:44:58,983 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:44:58,983 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 11:44:58,983 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:44:58,983 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 11:44:58,997 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 9
+2023-02-24 11:44:58,997 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:44:58,997 DEBUG   SenderThread:10900 [sender.py:send():336] send: artifact
+2023-02-24 11:44:58,997 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 11:44:59,318 INFO    wandb-upload_0:10900 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpzhiodajpwandb\u28acvtu-wandb-metadata.json
+2023-02-24 11:44:59,368 INFO    Thread-17 :10900 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\config.yaml
+2023-02-24 11:44:59,369 INFO    Thread-17 :10900 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\output.log
+2023-02-24 11:45:02,150 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 11:45:03,447 INFO    SenderThread:10900 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'digest': 'dbe34f6e8b990dacc5d7c5e1ab1d02a4', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'versionIndex': 0}}, 'version': 'v0'}
+2023-02-24 11:45:03,447 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:45:03,447 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 11:45:03,447 INFO    SenderThread:10900 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 11:45:04,414 INFO    SenderThread:10900 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files
+2023-02-24 11:45:04,415 INFO    SenderThread:10900 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\config.yaml config.yaml
+2023-02-24 11:45:04,415 INFO    SenderThread:10900 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\output.log output.log
+2023-02-24 11:45:04,418 INFO    SenderThread:10900 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\requirements.txt requirements.txt
+2023-02-24 11:45:04,422 INFO    SenderThread:10900 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 11:45:04,422 INFO    SenderThread:10900 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\wandb-summary.json wandb-summary.json
+2023-02-24 11:45:04,423 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 10
+2023-02-24 11:45:04,429 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:45:04,429 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 11:45:04,429 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 11:45:04,430 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:45:04,430 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 11:45:04,430 INFO    SenderThread:10900 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 11:45:05,181 INFO    wandb-upload_2:10900 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\requirements.txt
+2023-02-24 11:45:05,187 INFO    wandb-upload_1:10900 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\output.log
+2023-02-24 11:45:05,202 INFO    wandb-upload_3:10900 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\wandb-summary.json
+2023-02-24 11:45:05,231 INFO    wandb-upload_0:10900 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\files\config.yaml
+2023-02-24 11:45:05,441 INFO    Thread-16 :10900 [sender.py:transition_state():587] send defer: 11
+2023-02-24 11:45:05,442 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:45:05,442 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 11:45:05,442 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:45:05,442 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 11:45:05,442 INFO    SenderThread:10900 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 11:45:05,442 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 12
+2023-02-24 11:45:05,443 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:45:05,443 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 11:45:05,443 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:45:05,443 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 11:45:05,650 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 13
+2023-02-24 11:45:05,650 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:45:05,650 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 11:45:05,651 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:45:05,651 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 11:45:05,651 INFO    SenderThread:10900 [sender.py:transition_state():587] send defer: 14
+2023-02-24 11:45:05,651 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:45:05,651 INFO    HandlerThread:10900 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 11:45:05,652 DEBUG   SenderThread:10900 [sender.py:send():336] send: final
+2023-02-24 11:45:05,652 DEBUG   SenderThread:10900 [sender.py:send():336] send: footer
+2023-02-24 11:45:05,652 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:45:05,652 INFO    SenderThread:10900 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 11:45:05,653 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 11:45:05,653 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 11:45:05,653 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 11:45:05,653 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 11:45:05,653 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 11:45:05,654 DEBUG   SenderThread:10900 [sender.py:send_request():363] send_request: server_info
+2023-02-24 11:45:05,855 INFO    MainThread:10900 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 11:45:05,855 INFO    MainThread:10900 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 11:45:05,855 INFO    MainThread:10900 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 11:45:05,855 DEBUG   HandlerThread:10900 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 11:45:05,855 INFO    HandlerThread:10900 [handler.py:finish():841] shutting down handler
+2023-02-24 11:45:06,655 INFO    WriterThread:10900 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\run-o512xqpv.wandb
+2023-02-24 11:45:06,858 INFO    SenderThread:10900 [sender.py:finish():1493] shutting down sender
+2023-02-24 11:45:06,858 INFO    SenderThread:10900 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 11:45:06,858 INFO    SenderThread:10900 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_114452-o512xqpv/logs/debug.log b/embeddings/wandb/run-20230224_114452-o512xqpv/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..67d35d2fb51d148688c5b8fe11c6451c18296372
--- /dev/null
+++ b/embeddings/wandb/run-20230224_114452-o512xqpv/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 11:44:52,996 INFO    MainThread:15960 [wandb_setup.py:_flush():68] Configure stats pid to 15960
+2023-02-24 11:44:52,996 INFO    MainThread:15960 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 11:44:52,996 INFO    MainThread:15960 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 11:44:52,996 INFO    MainThread:15960 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 11:44:52,996 INFO    MainThread:15960 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 11:44:52,996 INFO    MainThread:15960 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\logs\debug.log
+2023-02-24 11:44:52,997 INFO    MainThread:15960 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_114452-o512xqpv\logs\debug-internal.log
+2023-02-24 11:44:52,997 INFO    MainThread:15960 [wandb_init.py:init():532] calling init triggers
+2023-02-24 11:44:52,997 INFO    MainThread:15960 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 11:44:52,997 INFO    MainThread:15960 [wandb_init.py:init():588] starting backend
+2023-02-24 11:44:52,997 INFO    MainThread:15960 [wandb_init.py:init():592] setting up manager
+2023-02-24 11:44:53,000 INFO    MainThread:15960 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 11:44:53,005 INFO    MainThread:15960 [wandb_init.py:init():599] backend started and connected
+2023-02-24 11:44:53,008 INFO    MainThread:15960 [wandb_init.py:init():687] updated telemetry
+2023-02-24 11:44:53,057 INFO    MainThread:15960 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 11:44:55,330 INFO    MainThread:15960 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 11:44:55,927 INFO    MainThread:15960 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 11:44:55,928 INFO    MainThread:15960 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 11:44:56,092 INFO    MainThread:15960 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 11:44:56,093 INFO    MainThread:15960 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 11:44:56,093 INFO    MainThread:15960 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 11:44:56,093 INFO    MainThread:15960 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 11:44:56,094 INFO    MainThread:15960 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 11:45:06,925 WARNING MsgRouterThr:15960 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_114452-o512xqpv/run-o512xqpv.wandb b/embeddings/wandb/run-20230224_114452-o512xqpv/run-o512xqpv.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..82913f75ce076c13489a3f3dea9f417f2c7b1249
Binary files /dev/null and b/embeddings/wandb/run-20230224_114452-o512xqpv/run-o512xqpv.wandb differ
diff --git a/embeddings/wandb/run-20230224_115923-vm4jp14g/files/config.yaml b/embeddings/wandb/run-20230224_115923-vm4jp14g/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1604618937550eef1210ee70f53e271aeb1be2d9
--- /dev/null
+++ b/embeddings/wandb/run-20230224_115923-vm4jp14g/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677239963.287443
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_115923-vm4jp14g/files/output.log b/embeddings/wandb/run-20230224_115923-vm4jp14g/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..8dd8ac4a27fceb2b4c6a88f355480eaf4bc3b759
--- /dev/null
+++ b/embeddings/wandb/run-20230224_115923-vm4jp14g/files/output.log
@@ -0,0 +1,24 @@
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 140, in <module>
+    wandb.log(data_details)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 371, in wrapper
+    return func(self, *args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 334, in wrapper
+    return func(self, *args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 1713, in log
+    self._log(data=data, step=step, commit=commit)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 1495, in _log
+    self._partial_history_callback(data, step, commit)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 1365, in _partial_history_callback
+    self._backend.interface.publish_partial_history(
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\interface\interface.py", line 580, in publish_partial_history
+    item.value_json = json_dumps_safer_history(v)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\util.py", line 953, in json_dumps_safer_history
+    return json.dumps(obj, cls=WandBHistoryJSONEncoder, **kwargs)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\json\__init__.py", line 234, in dumps
+    return cls(
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\json\encoder.py", line 199, in encode
+    chunks = self.iterencode(o, _one_shot=True)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\json\encoder.py", line 257, in iterencode
+    return _iterencode(o, 0)
+TypeError: keys must be str, int, float, bool or None, not tuple
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_115923-vm4jp14g/files/requirements.txt b/embeddings/wandb/run-20230224_115923-vm4jp14g/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_115923-vm4jp14g/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_115923-vm4jp14g/files/wandb-metadata.json b/embeddings/wandb/run-20230224_115923-vm4jp14g/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..caa7e91bf298b25428cdb372d0113678b6d04c9d
--- /dev/null
+++ b/embeddings/wandb/run-20230224_115923-vm4jp14g/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T11:59:23.870010",
+    "startedAt": "2023-02-24T11:59:23.274441",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 352.37733459472656
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_115923-vm4jp14g/files/wandb-summary.json b/embeddings/wandb/run-20230224_115923-vm4jp14g/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..fe9e22cf416d08fa3b43b9f0c278f2270e8d86cd
--- /dev/null
+++ b/embeddings/wandb/run-20230224_115923-vm4jp14g/files/wandb-summary.json
@@ -0,0 +1 @@
+{"_wandb": {"runtime": 0}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_115923-vm4jp14g/logs/debug-internal.log b/embeddings/wandb/run-20230224_115923-vm4jp14g/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..8cc21d65d1dad22086cc50a9fea65c631ff51dba
--- /dev/null
+++ b/embeddings/wandb/run-20230224_115923-vm4jp14g/logs/debug-internal.log
@@ -0,0 +1,168 @@
+2023-02-24 11:59:23,287 INFO    StreamThr :14952 [internal.py:wandb_internal():87] W&B internal server running at pid: 14952, started at: 2023-02-24 11:59:23.287443
+2023-02-24 11:59:23,289 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: status
+2023-02-24 11:59:23,291 INFO    WriterThread:14952 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\run-vm4jp14g.wandb
+2023-02-24 11:59:23,294 DEBUG   SenderThread:14952 [sender.py:send():336] send: header
+2023-02-24 11:59:23,339 DEBUG   SenderThread:14952 [sender.py:send():336] send: run
+2023-02-24 11:59:23,771 INFO    SenderThread:14952 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files
+2023-02-24 11:59:23,771 INFO    SenderThread:14952 [sender.py:_start_run_threads():1067] run started: vm4jp14g with start time 1677239963.287443
+2023-02-24 11:59:23,772 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 11:59:23,772 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 11:59:23,773 INFO    SenderThread:14952 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 11:59:23,773 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: check_version
+2023-02-24 11:59:23,849 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 11:59:23,866 DEBUG   HandlerThread:14952 [system_info.py:__init__():31] System info init
+2023-02-24 11:59:23,866 DEBUG   HandlerThread:14952 [system_info.py:__init__():46] System info init done
+2023-02-24 11:59:23,866 INFO    HandlerThread:14952 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 11:59:23,867 INFO    SystemMonitor:14952 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 11:59:23,867 INFO    HandlerThread:14952 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 11:59:23,870 DEBUG   HandlerThread:14952 [system_info.py:probe():195] Probing system
+2023-02-24 11:59:23,870 INFO    SystemMonitor:14952 [interfaces.py:start():168] Started cpu
+2023-02-24 11:59:23,871 INFO    SystemMonitor:14952 [interfaces.py:start():168] Started disk
+2023-02-24 11:59:23,872 INFO    SystemMonitor:14952 [interfaces.py:start():168] Started memory
+2023-02-24 11:59:23,881 INFO    SystemMonitor:14952 [interfaces.py:start():168] Started network
+2023-02-24 11:59:23,890 DEBUG   HandlerThread:14952 [system_info.py:_probe_git():180] Probing git
+2023-02-24 11:59:23,981 DEBUG   HandlerThread:14952 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 11:59:23,981 DEBUG   HandlerThread:14952 [system_info.py:probe():241] Probing system done
+2023-02-24 11:59:23,981 DEBUG   HandlerThread:14952 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T11:59:23.870010', 'startedAt': '2023-02-24T11:59:23.274441', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 352.37733459472656}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 11:59:23,981 INFO    HandlerThread:14952 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 11:59:23,981 INFO    HandlerThread:14952 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 11:59:23,981 DEBUG   HandlerThread:14952 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 11:59:23,982 DEBUG   HandlerThread:14952 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 11:59:23,983 INFO    HandlerThread:14952 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 11:59:23,992 DEBUG   SenderThread:14952 [sender.py:send():336] send: files
+2023-02-24 11:59:23,992 INFO    SenderThread:14952 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 11:59:23,999 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 11:59:23,999 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 11:59:24,151 DEBUG   SenderThread:14952 [sender.py:send():336] send: telemetry
+2023-02-24 11:59:24,153 DEBUG   SenderThread:14952 [sender.py:send():336] send: exit
+2023-02-24 11:59:24,153 INFO    SenderThread:14952 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 11:59:24,153 INFO    SenderThread:14952 [sender.py:send_exit():561] handling runtime: 0
+2023-02-24 11:59:24,154 INFO    SenderThread:14952 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 11:59:24,154 INFO    SenderThread:14952 [sender.py:send_exit():567] send defer
+2023-02-24 11:59:24,154 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:24,155 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 11:59:24,155 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:24,155 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 11:59:24,155 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 1
+2023-02-24 11:59:24,155 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:24,155 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 11:59:24,156 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:24,156 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 11:59:24,156 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 2
+2023-02-24 11:59:24,157 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:24,157 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 11:59:24,157 INFO    HandlerThread:14952 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 11:59:24,157 DEBUG   SystemMonitor:14952 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 11:59:24,157 DEBUG   SystemMonitor:14952 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 11:59:24,157 DEBUG   SystemMonitor:14952 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 11:59:24,158 INFO    HandlerThread:14952 [interfaces.py:finish():175] Joined cpu
+2023-02-24 11:59:24,158 INFO    HandlerThread:14952 [interfaces.py:finish():175] Joined disk
+2023-02-24 11:59:24,158 INFO    HandlerThread:14952 [interfaces.py:finish():175] Joined memory
+2023-02-24 11:59:24,158 INFO    HandlerThread:14952 [interfaces.py:finish():175] Joined network
+2023-02-24 11:59:24,160 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:24,160 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 11:59:24,160 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 3
+2023-02-24 11:59:24,160 DEBUG   SenderThread:14952 [sender.py:send():336] send: stats
+2023-02-24 11:59:24,160 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:24,160 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 11:59:24,162 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:24,163 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 11:59:24,163 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 4
+2023-02-24 11:59:24,163 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:24,163 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 11:59:24,163 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:24,163 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 11:59:24,163 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 5
+2023-02-24 11:59:24,163 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:24,163 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 11:59:24,164 DEBUG   SenderThread:14952 [sender.py:send():336] send: summary
+2023-02-24 11:59:24,164 INFO    SenderThread:14952 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 11:59:24,165 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:24,165 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 11:59:24,165 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 6
+2023-02-24 11:59:24,165 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:24,165 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 11:59:24,165 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:24,165 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 11:59:24,170 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 11:59:24,350 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 7
+2023-02-24 11:59:24,350 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:24,350 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 11:59:24,351 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:24,351 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 11:59:24,590 INFO    wandb-upload_0:14952 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp6u00l1sxwandb\srbfekf4-wandb-metadata.json
+2023-02-24 11:59:24,782 INFO    Thread-17 :14952 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\config.yaml
+2023-02-24 11:59:24,782 INFO    Thread-17 :14952 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\output.log
+2023-02-24 11:59:24,782 INFO    Thread-17 :14952 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\wandb-metadata.json
+2023-02-24 11:59:24,783 INFO    Thread-17 :14952 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\wandb-summary.json
+2023-02-24 11:59:24,783 INFO    Thread-17 :14952 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\requirements.txt
+2023-02-24 11:59:25,014 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 11:59:26,165 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 8
+2023-02-24 11:59:26,166 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 11:59:26,166 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:26,166 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 11:59:26,167 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:26,167 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 11:59:26,181 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 9
+2023-02-24 11:59:26,181 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:26,181 DEBUG   SenderThread:14952 [sender.py:send():336] send: artifact
+2023-02-24 11:59:26,181 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 11:59:26,797 INFO    Thread-17 :14952 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\output.log
+2023-02-24 11:59:27,104 INFO    SenderThread:14952 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'digest': 'dbe34f6e8b990dacc5d7c5e1ab1d02a4', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'versionIndex': 0}}, 'version': 'v0'}
+2023-02-24 11:59:27,105 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:27,105 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 11:59:27,105 INFO    SenderThread:14952 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 11:59:27,810 INFO    SenderThread:14952 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files
+2023-02-24 11:59:27,811 INFO    SenderThread:14952 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\config.yaml config.yaml
+2023-02-24 11:59:27,811 INFO    SenderThread:14952 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\output.log output.log
+2023-02-24 11:59:27,814 INFO    SenderThread:14952 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\requirements.txt requirements.txt
+2023-02-24 11:59:27,818 INFO    SenderThread:14952 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 11:59:27,818 INFO    SenderThread:14952 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\wandb-summary.json wandb-summary.json
+2023-02-24 11:59:27,821 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 10
+2023-02-24 11:59:27,822 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:27,822 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 11:59:27,826 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:27,826 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 11:59:27,826 INFO    SenderThread:14952 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 11:59:28,462 INFO    wandb-upload_3:14952 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\wandb-summary.json
+2023-02-24 11:59:28,578 INFO    wandb-upload_0:14952 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\config.yaml
+2023-02-24 11:59:28,664 INFO    wandb-upload_2:14952 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\requirements.txt
+2023-02-24 11:59:28,922 INFO    wandb-upload_1:14952 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\files\output.log
+2023-02-24 11:59:29,130 INFO    Thread-16 :14952 [sender.py:transition_state():587] send defer: 11
+2023-02-24 11:59:29,130 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:29,130 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 11:59:29,130 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:29,130 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 11:59:29,130 INFO    SenderThread:14952 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 11:59:29,130 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 12
+2023-02-24 11:59:29,130 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:29,131 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 11:59:29,131 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:29,131 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 11:59:29,279 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 13
+2023-02-24 11:59:29,279 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:29,279 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 11:59:29,279 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:29,279 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 11:59:29,280 INFO    SenderThread:14952 [sender.py:transition_state():587] send defer: 14
+2023-02-24 11:59:29,280 DEBUG   SenderThread:14952 [sender.py:send():336] send: final
+2023-02-24 11:59:29,280 DEBUG   SenderThread:14952 [sender.py:send():336] send: footer
+2023-02-24 11:59:29,280 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 11:59:29,280 INFO    HandlerThread:14952 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 11:59:29,281 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: defer
+2023-02-24 11:59:29,281 INFO    SenderThread:14952 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 11:59:29,281 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 11:59:29,282 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 11:59:29,282 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 11:59:29,282 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 11:59:29,282 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 11:59:29,283 DEBUG   SenderThread:14952 [sender.py:send_request():363] send_request: server_info
+2023-02-24 11:59:29,444 INFO    MainThread:14952 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 11:59:29,444 INFO    MainThread:14952 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 11:59:29,444 INFO    MainThread:14952 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 11:59:29,445 DEBUG   HandlerThread:14952 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 11:59:29,445 INFO    HandlerThread:14952 [handler.py:finish():841] shutting down handler
+2023-02-24 11:59:30,294 INFO    WriterThread:14952 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\run-vm4jp14g.wandb
+2023-02-24 11:59:30,449 INFO    SenderThread:14952 [sender.py:finish():1493] shutting down sender
+2023-02-24 11:59:30,449 INFO    SenderThread:14952 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 11:59:30,449 INFO    SenderThread:14952 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_115923-vm4jp14g/logs/debug.log b/embeddings/wandb/run-20230224_115923-vm4jp14g/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..a674f60958d67fc4eaf51611bd5dad4637021bce
--- /dev/null
+++ b/embeddings/wandb/run-20230224_115923-vm4jp14g/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 11:59:23,277 INFO    MainThread:14384 [wandb_setup.py:_flush():68] Configure stats pid to 14384
+2023-02-24 11:59:23,278 INFO    MainThread:14384 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 11:59:23,278 INFO    MainThread:14384 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 11:59:23,278 INFO    MainThread:14384 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 11:59:23,278 INFO    MainThread:14384 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 11:59:23,279 INFO    MainThread:14384 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\logs\debug.log
+2023-02-24 11:59:23,279 INFO    MainThread:14384 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_115923-vm4jp14g\logs\debug-internal.log
+2023-02-24 11:59:23,279 INFO    MainThread:14384 [wandb_init.py:init():532] calling init triggers
+2023-02-24 11:59:23,279 INFO    MainThread:14384 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 11:59:23,280 INFO    MainThread:14384 [wandb_init.py:init():588] starting backend
+2023-02-24 11:59:23,280 INFO    MainThread:14384 [wandb_init.py:init():592] setting up manager
+2023-02-24 11:59:23,282 INFO    MainThread:14384 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 11:59:23,286 INFO    MainThread:14384 [wandb_init.py:init():599] backend started and connected
+2023-02-24 11:59:23,288 INFO    MainThread:14384 [wandb_init.py:init():687] updated telemetry
+2023-02-24 11:59:23,338 INFO    MainThread:14384 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 11:59:23,771 INFO    MainThread:14384 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 11:59:23,841 INFO    MainThread:14384 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 11:59:23,842 INFO    MainThread:14384 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 11:59:23,999 INFO    MainThread:14384 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 11:59:24,000 INFO    MainThread:14384 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 11:59:24,000 INFO    MainThread:14384 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 11:59:24,000 INFO    MainThread:14384 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 11:59:24,001 INFO    MainThread:14384 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 11:59:30,517 WARNING MsgRouterThr:14384 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_115923-vm4jp14g/run-vm4jp14g.wandb b/embeddings/wandb/run-20230224_115923-vm4jp14g/run-vm4jp14g.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..cdc1f6b443db31e9382806b0d28f979d635670c3
Binary files /dev/null and b/embeddings/wandb/run-20230224_115923-vm4jp14g/run-vm4jp14g.wandb differ
diff --git a/embeddings/wandb/run-20230224_120117-qfekmmpk/files/config.yaml b/embeddings/wandb/run-20230224_120117-qfekmmpk/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..38eb0ccfb7edc676da9ebff2b601b11f72e5a767
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120117-qfekmmpk/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677240077.507399
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_120117-qfekmmpk/files/output.log b/embeddings/wandb/run-20230224_120117-qfekmmpk/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..f14dd4347cf0ee05dfad399a8895314d04ebe6bd
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120117-qfekmmpk/files/output.log
@@ -0,0 +1,8 @@
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 143, in <module>
+    fig = create_graph(dataset[0])
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 113, in create_graph
+    g = to_networkx(graph)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\torch_geometric\utils\convert.py", line 133, in to_networkx
+    for key, value in data(*(node_attrs + edge_attrs + graph_attrs)):
+TypeError: 'BatchedHeteroData' object is not callable
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_120117-qfekmmpk/files/requirements.txt b/embeddings/wandb/run-20230224_120117-qfekmmpk/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120117-qfekmmpk/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_120117-qfekmmpk/files/wandb-metadata.json b/embeddings/wandb/run-20230224_120117-qfekmmpk/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..b0917d21d019ce104f495c9f7479b2e164895af8
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120117-qfekmmpk/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T12:01:18.174900",
+    "startedAt": "2023-02-24T12:01:17.495398",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 352.37308502197266
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_120117-qfekmmpk/files/wandb-summary.json b/embeddings/wandb/run-20230224_120117-qfekmmpk/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..95f05789d50499a0aca287c647e6d8b9ebe6b8f9
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120117-qfekmmpk/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677240078.310901, "_runtime": 0.8035018444061279, "_step": 0, "_wandb": {"runtime": 0}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_120117-qfekmmpk/logs/debug-internal.log b/embeddings/wandb/run-20230224_120117-qfekmmpk/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..91f8a7eef38da7825dd90e0538636df77fa2d2bd
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120117-qfekmmpk/logs/debug-internal.log
@@ -0,0 +1,175 @@
+2023-02-24 12:01:17,508 INFO    StreamThr :14680 [internal.py:wandb_internal():87] W&B internal server running at pid: 14680, started at: 2023-02-24 12:01:17.507400
+2023-02-24 12:01:17,509 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: status
+2023-02-24 12:01:17,511 INFO    WriterThread:14680 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\run-qfekmmpk.wandb
+2023-02-24 12:01:17,514 DEBUG   SenderThread:14680 [sender.py:send():336] send: header
+2023-02-24 12:01:17,558 DEBUG   SenderThread:14680 [sender.py:send():336] send: run
+2023-02-24 12:01:18,029 INFO    SenderThread:14680 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files
+2023-02-24 12:01:18,029 INFO    SenderThread:14680 [sender.py:_start_run_threads():1067] run started: qfekmmpk with start time 1677240077.507399
+2023-02-24 12:01:18,029 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:01:18,029 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 12:01:18,030 INFO    SenderThread:14680 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:01:18,031 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: check_version
+2023-02-24 12:01:18,152 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 12:01:18,169 DEBUG   HandlerThread:14680 [system_info.py:__init__():31] System info init
+2023-02-24 12:01:18,170 DEBUG   HandlerThread:14680 [system_info.py:__init__():46] System info init done
+2023-02-24 12:01:18,170 INFO    HandlerThread:14680 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 12:01:18,170 INFO    SystemMonitor:14680 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 12:01:18,170 INFO    HandlerThread:14680 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 12:01:18,173 INFO    SystemMonitor:14680 [interfaces.py:start():168] Started cpu
+2023-02-24 12:01:18,174 DEBUG   HandlerThread:14680 [system_info.py:probe():195] Probing system
+2023-02-24 12:01:18,174 INFO    SystemMonitor:14680 [interfaces.py:start():168] Started disk
+2023-02-24 12:01:18,175 INFO    SystemMonitor:14680 [interfaces.py:start():168] Started memory
+2023-02-24 12:01:18,191 INFO    SystemMonitor:14680 [interfaces.py:start():168] Started network
+2023-02-24 12:01:18,192 DEBUG   HandlerThread:14680 [system_info.py:_probe_git():180] Probing git
+2023-02-24 12:01:18,287 DEBUG   HandlerThread:14680 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 12:01:18,287 DEBUG   HandlerThread:14680 [system_info.py:probe():241] Probing system done
+2023-02-24 12:01:18,287 DEBUG   HandlerThread:14680 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T12:01:18.174900', 'startedAt': '2023-02-24T12:01:17.495398', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 352.37308502197266}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 12:01:18,287 INFO    HandlerThread:14680 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 12:01:18,287 INFO    HandlerThread:14680 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 12:01:18,287 DEBUG   HandlerThread:14680 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 12:01:18,288 DEBUG   HandlerThread:14680 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 12:01:18,290 INFO    HandlerThread:14680 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 12:01:18,300 DEBUG   SenderThread:14680 [sender.py:send():336] send: files
+2023-02-24 12:01:18,300 INFO    SenderThread:14680 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 12:01:18,308 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 12:01:18,309 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 12:01:18,312 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 12:01:18,477 DEBUG   SenderThread:14680 [sender.py:send():336] send: telemetry
+2023-02-24 12:01:18,477 DEBUG   SenderThread:14680 [sender.py:send():336] send: history
+2023-02-24 12:01:18,478 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:01:18,479 INFO    SenderThread:14680 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:01:18,482 DEBUG   SenderThread:14680 [sender.py:send():336] send: exit
+2023-02-24 12:01:18,483 INFO    SenderThread:14680 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 12:01:18,483 INFO    SenderThread:14680 [sender.py:send_exit():561] handling runtime: 0
+2023-02-24 12:01:18,483 INFO    SenderThread:14680 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:01:18,484 INFO    SenderThread:14680 [sender.py:send_exit():567] send defer
+2023-02-24 12:01:18,484 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:18,484 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 12:01:18,484 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:18,485 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 12:01:18,485 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 1
+2023-02-24 12:01:18,485 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:18,485 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 12:01:18,485 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:18,485 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 12:01:18,485 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 2
+2023-02-24 12:01:18,485 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:18,486 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 12:01:18,486 INFO    HandlerThread:14680 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 12:01:18,486 DEBUG   SystemMonitor:14680 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 12:01:18,487 DEBUG   SystemMonitor:14680 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 12:01:18,487 DEBUG   SystemMonitor:14680 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 12:01:18,487 INFO    HandlerThread:14680 [interfaces.py:finish():175] Joined cpu
+2023-02-24 12:01:18,488 INFO    HandlerThread:14680 [interfaces.py:finish():175] Joined disk
+2023-02-24 12:01:18,488 INFO    HandlerThread:14680 [interfaces.py:finish():175] Joined memory
+2023-02-24 12:01:18,488 INFO    HandlerThread:14680 [interfaces.py:finish():175] Joined network
+2023-02-24 12:01:18,488 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:18,488 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 12:01:18,489 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 3
+2023-02-24 12:01:18,489 DEBUG   SenderThread:14680 [sender.py:send():336] send: stats
+2023-02-24 12:01:18,489 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:18,489 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 12:01:18,490 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:18,490 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 12:01:18,490 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 4
+2023-02-24 12:01:18,490 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:18,490 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 12:01:18,491 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:18,491 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 12:01:18,491 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 5
+2023-02-24 12:01:18,491 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:18,491 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 12:01:18,491 DEBUG   SenderThread:14680 [sender.py:send():336] send: summary
+2023-02-24 12:01:18,492 INFO    SenderThread:14680 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:01:18,492 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:18,492 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 12:01:18,492 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 6
+2023-02-24 12:01:18,493 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:18,493 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 12:01:18,493 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:18,493 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 12:01:18,497 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:01:18,684 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 7
+2023-02-24 12:01:18,684 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:18,684 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 12:01:18,685 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:18,685 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 12:01:18,865 INFO    wandb-upload_0:14680 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp3dh4_7fvwandb\6f6dz6r1-wandb-metadata.json
+2023-02-24 12:01:19,039 INFO    Thread-17 :14680 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\config.yaml
+2023-02-24 12:01:19,039 INFO    Thread-17 :14680 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\output.log
+2023-02-24 12:01:19,039 INFO    Thread-17 :14680 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\wandb-summary.json
+2023-02-24 12:01:19,039 INFO    Thread-17 :14680 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\wandb-metadata.json
+2023-02-24 12:01:19,039 INFO    Thread-17 :14680 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\requirements.txt
+2023-02-24 12:01:19,318 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:01:20,489 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 8
+2023-02-24 12:01:20,489 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:01:20,490 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:20,490 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 12:01:20,491 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:20,491 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 12:01:20,520 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 9
+2023-02-24 12:01:20,520 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:20,521 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 12:01:20,521 DEBUG   SenderThread:14680 [sender.py:send():336] send: artifact
+2023-02-24 12:01:21,051 INFO    Thread-17 :14680 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\output.log
+2023-02-24 12:01:21,563 INFO    wandb-upload_0:14680 [upload_job.py:push():93] Skipped uploading C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpmwp_igwd
+2023-02-24 12:01:21,851 INFO    wandb-upload_1:14680 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpb_z9q5rh
+2023-02-24 12:01:23,150 INFO    SenderThread:14680 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzgzODYx', 'digest': '52054f0b23df9b668b4724b52e59ad5e', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'versionIndex': 0}}, 'version': 'latest'}
+2023-02-24 12:01:23,150 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:23,150 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 12:01:23,150 INFO    SenderThread:14680 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 12:01:24,069 INFO    SenderThread:14680 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files
+2023-02-24 12:01:24,070 INFO    SenderThread:14680 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\config.yaml config.yaml
+2023-02-24 12:01:24,070 INFO    SenderThread:14680 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\output.log output.log
+2023-02-24 12:01:24,071 INFO    SenderThread:14680 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\requirements.txt requirements.txt
+2023-02-24 12:01:24,074 INFO    SenderThread:14680 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 12:01:24,074 INFO    SenderThread:14680 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\wandb-summary.json wandb-summary.json
+2023-02-24 12:01:24,079 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 10
+2023-02-24 12:01:24,080 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:24,080 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 12:01:24,081 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:24,084 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 12:01:24,084 INFO    SenderThread:14680 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:01:24,364 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:01:24,686 INFO    wandb-upload_3:14680 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\wandb-summary.json
+2023-02-24 12:01:24,783 INFO    wandb-upload_2:14680 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\requirements.txt
+2023-02-24 12:01:24,933 INFO    wandb-upload_1:14680 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\output.log
+2023-02-24 12:01:25,014 INFO    wandb-upload_0:14680 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\files\config.yaml
+2023-02-24 12:01:25,221 INFO    Thread-16 :14680 [sender.py:transition_state():587] send defer: 11
+2023-02-24 12:01:25,221 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:25,222 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 12:01:25,222 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:25,222 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 12:01:25,222 INFO    SenderThread:14680 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 12:01:25,222 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 12
+2023-02-24 12:01:25,223 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:25,223 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 12:01:25,223 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:25,223 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 12:01:25,371 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 13
+2023-02-24 12:01:25,371 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:25,372 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 12:01:25,372 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:25,372 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 12:01:25,372 INFO    SenderThread:14680 [sender.py:transition_state():587] send defer: 14
+2023-02-24 12:01:25,372 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:01:25,373 INFO    HandlerThread:14680 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 12:01:25,373 DEBUG   SenderThread:14680 [sender.py:send():336] send: final
+2023-02-24 12:01:25,373 DEBUG   SenderThread:14680 [sender.py:send():336] send: footer
+2023-02-24 12:01:25,373 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:01:25,373 INFO    SenderThread:14680 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 12:01:25,374 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:01:25,374 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 12:01:25,374 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 12:01:25,374 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 12:01:25,375 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:01:25,375 DEBUG   SenderThread:14680 [sender.py:send_request():363] send_request: server_info
+2023-02-24 12:01:25,565 INFO    MainThread:14680 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 12:01:25,565 INFO    MainThread:14680 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 12:01:25,565 INFO    MainThread:14680 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 12:01:25,566 DEBUG   HandlerThread:14680 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 12:01:25,566 INFO    HandlerThread:14680 [handler.py:finish():841] shutting down handler
+2023-02-24 12:01:26,388 INFO    WriterThread:14680 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\run-qfekmmpk.wandb
+2023-02-24 12:01:26,576 INFO    SenderThread:14680 [sender.py:finish():1493] shutting down sender
+2023-02-24 12:01:26,576 INFO    SenderThread:14680 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:01:26,577 INFO    SenderThread:14680 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_120117-qfekmmpk/logs/debug.log b/embeddings/wandb/run-20230224_120117-qfekmmpk/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..22be02012fddc599dd358e32b233f678dd256199
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120117-qfekmmpk/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 12:01:17,498 INFO    MainThread:11368 [wandb_setup.py:_flush():68] Configure stats pid to 11368
+2023-02-24 12:01:17,498 INFO    MainThread:11368 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 12:01:17,498 INFO    MainThread:11368 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 12:01:17,498 INFO    MainThread:11368 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 12:01:17,498 INFO    MainThread:11368 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 12:01:17,499 INFO    MainThread:11368 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\logs\debug.log
+2023-02-24 12:01:17,499 INFO    MainThread:11368 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120117-qfekmmpk\logs\debug-internal.log
+2023-02-24 12:01:17,499 INFO    MainThread:11368 [wandb_init.py:init():532] calling init triggers
+2023-02-24 12:01:17,499 INFO    MainThread:11368 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 12:01:17,499 INFO    MainThread:11368 [wandb_init.py:init():588] starting backend
+2023-02-24 12:01:17,500 INFO    MainThread:11368 [wandb_init.py:init():592] setting up manager
+2023-02-24 12:01:17,503 INFO    MainThread:11368 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 12:01:17,507 INFO    MainThread:11368 [wandb_init.py:init():599] backend started and connected
+2023-02-24 12:01:17,508 INFO    MainThread:11368 [wandb_init.py:init():687] updated telemetry
+2023-02-24 12:01:17,557 INFO    MainThread:11368 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 12:01:18,028 INFO    MainThread:11368 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 12:01:18,144 INFO    MainThread:11368 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 12:01:18,145 INFO    MainThread:11368 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 12:01:18,309 INFO    MainThread:11368 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 12:01:18,309 INFO    MainThread:11368 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 12:01:18,309 INFO    MainThread:11368 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 12:01:18,309 INFO    MainThread:11368 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 12:01:18,310 INFO    MainThread:11368 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 12:01:26,640 WARNING MsgRouterThr:11368 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_120117-qfekmmpk/run-qfekmmpk.wandb b/embeddings/wandb/run-20230224_120117-qfekmmpk/run-qfekmmpk.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..7ed744106bedc6830dfd2a560219b6017247e3a0
Binary files /dev/null and b/embeddings/wandb/run-20230224_120117-qfekmmpk/run-qfekmmpk.wandb differ
diff --git a/embeddings/wandb/run-20230224_120431-uwujr228/files/config.yaml b/embeddings/wandb/run-20230224_120431-uwujr228/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f23510e338b00b8c27011730fd5513303d57903f
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120431-uwujr228/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677240271.714341
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_120431-uwujr228/files/output.log b/embeddings/wandb/run-20230224_120431-uwujr228/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..343af1e5f183f14175b968861e9a7ba7664dda58
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120431-uwujr228/files/output.log
@@ -0,0 +1,96 @@
+BatchedHeteroDataBatch(
+  question_emb=[16, 1536],
+  answer_emb=[16, 1536],
+  label=[16, 1],
+  question={
+    x=[53, 1536],
+    batch=[53],
+    ptr=[17]
+  },
+  answer={
+    x=[87, 1536],
+    batch=[87],
+    ptr=[17]
+  },
+  comment={
+    x=[69, 768],
+    batch=[69],
+    ptr=[17]
+  },
+  tag={
+    x=[294, 50],
+    batch=[294],
+    ptr=[17]
+  },
+  module={
+    x=[13, 30],
+    batch=[13],
+    ptr=[17]
+  },
+  (tag, describes, question)={ edge_index=[2, 114] },
+  (tag, describes, answer)={ edge_index=[2, 175] },
+  (tag, describes, comment)={ edge_index=[2, 119] },
+  (module, imported_in, question)={ edge_index=[2, 1] },
+  (module, imported_in, answer)={ edge_index=[2, 13] },
+  (question, rev_describes, tag)={ edge_index=[2, 114] },
+  (answer, rev_describes, tag)={ edge_index=[2, 175] },
+  (comment, rev_describes, tag)={ edge_index=[2, 119] },
+  (question, rev_imported_in, module)={ edge_index=[2, 1] },
+  (answer, rev_imported_in, module)={ edge_index=[2, 13] }
+)
+DATA IN torch.Size([16, 1536]) torch.Size([16, 1536])
+IN torch.Size([16, 3072])
+B4 LINEAR torch.Size([16, 3392])
+BatchedHeteroDataBatch(
+  question_emb=[12, 1536],
+  answer_emb=[12, 1536],
+  label=[12, 1],
+  question={
+    x=[43, 1536],
+    batch=[43],
+    ptr=[13]
+  },
+  answer={
+    x=[82, 1536],
+    batch=[82],
+    ptr=[13]
+  },
+  comment={
+    x=[68, 768],
+    batch=[68],
+    ptr=[13]
+  },
+  tag={
+    x=[273, 50],
+    batch=[273],
+    ptr=[13]
+  },
+  module={
+    x=[5, 30],
+    batch=[5],
+    ptr=[13]
+  },
+  (tag, describes, question)={ edge_index=[2, 93] },
+  (tag, describes, answer)={ edge_index=[2, 177] },
+  (tag, describes, comment)={ edge_index=[2, 137] },
+  (module, imported_in, question)={ edge_index=[2, 1] },
+  (module, imported_in, answer)={ edge_index=[2, 6] },
+  (question, rev_describes, tag)={ edge_index=[2, 93] },
+  (answer, rev_describes, tag)={ edge_index=[2, 177] },
+  (comment, rev_describes, tag)={ edge_index=[2, 137] },
+  (question, rev_imported_in, module)={ edge_index=[2, 1] },
+  (answer, rev_imported_in, module)={ edge_index=[2, 6] }
+)
+DATA IN torch.Size([12, 1536]) torch.Size([12, 1536])
+IN torch.Size([12, 3072])
+B4 LINEAR torch.Size([12, 3392])
+IN torch.Size([16, 3072])
+B4 LINEAR torch.Size([16, 3392])
+torch.Size([16, 2]) torch.Size([16, 1])
+INFO:heterogeneous-GAT-model:[1] Loss: 0.00034431135654449464
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 167, in <module>
+    train_acc, train_f1 = test(train_loader)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 107, in test
+    predictions.append(pred.item())
+ValueError: only one element tensors can be converted to Python scalars
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_120431-uwujr228/files/requirements.txt b/embeddings/wandb/run-20230224_120431-uwujr228/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120431-uwujr228/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_120431-uwujr228/files/wandb-metadata.json b/embeddings/wandb/run-20230224_120431-uwujr228/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..441b9d0aa2485ebdf60231e26316c2fb8fdada1c
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120431-uwujr228/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T12:04:32.306971",
+    "startedAt": "2023-02-24T12:04:31.703335",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 352.413272857666
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_120431-uwujr228/files/wandb-summary.json b/embeddings/wandb/run-20230224_120431-uwujr228/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..470dd63ce1039714c1f42307473f9bb76ef104d0
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120431-uwujr228/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677240272.4471564, "_runtime": 0.7328155040740967, "_step": 0, "_wandb": {"runtime": 2}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_120431-uwujr228/logs/debug-internal.log b/embeddings/wandb/run-20230224_120431-uwujr228/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..7df3d1b15faa475f433e1b925c58bc5a2c981af0
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120431-uwujr228/logs/debug-internal.log
@@ -0,0 +1,179 @@
+2023-02-24 12:04:31,715 INFO    StreamThr :12872 [internal.py:wandb_internal():87] W&B internal server running at pid: 12872, started at: 2023-02-24 12:04:31.714342
+2023-02-24 12:04:31,717 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: status
+2023-02-24 12:04:31,718 INFO    WriterThread:12872 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\run-uwujr228.wandb
+2023-02-24 12:04:31,722 DEBUG   SenderThread:12872 [sender.py:send():336] send: header
+2023-02-24 12:04:31,767 DEBUG   SenderThread:12872 [sender.py:send():336] send: run
+2023-02-24 12:04:32,176 INFO    SenderThread:12872 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files
+2023-02-24 12:04:32,177 INFO    SenderThread:12872 [sender.py:_start_run_threads():1067] run started: uwujr228 with start time 1677240271.714341
+2023-02-24 12:04:32,177 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:04:32,177 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 12:04:32,178 INFO    SenderThread:12872 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:04:32,178 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: check_version
+2023-02-24 12:04:32,287 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 12:04:32,305 DEBUG   HandlerThread:12872 [system_info.py:__init__():31] System info init
+2023-02-24 12:04:32,305 DEBUG   HandlerThread:12872 [system_info.py:__init__():46] System info init done
+2023-02-24 12:04:32,305 INFO    HandlerThread:12872 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 12:04:32,306 INFO    SystemMonitor:12872 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 12:04:32,306 INFO    HandlerThread:12872 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 12:04:32,306 DEBUG   HandlerThread:12872 [system_info.py:probe():195] Probing system
+2023-02-24 12:04:32,309 INFO    SystemMonitor:12872 [interfaces.py:start():168] Started cpu
+2023-02-24 12:04:32,309 INFO    SystemMonitor:12872 [interfaces.py:start():168] Started disk
+2023-02-24 12:04:32,310 INFO    SystemMonitor:12872 [interfaces.py:start():168] Started memory
+2023-02-24 12:04:32,327 INFO    SystemMonitor:12872 [interfaces.py:start():168] Started network
+2023-02-24 12:04:32,328 DEBUG   HandlerThread:12872 [system_info.py:_probe_git():180] Probing git
+2023-02-24 12:04:32,425 DEBUG   HandlerThread:12872 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 12:04:32,425 DEBUG   HandlerThread:12872 [system_info.py:probe():241] Probing system done
+2023-02-24 12:04:32,425 DEBUG   HandlerThread:12872 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T12:04:32.306971', 'startedAt': '2023-02-24T12:04:31.703335', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 352.413272857666}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 12:04:32,425 INFO    HandlerThread:12872 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 12:04:32,425 INFO    HandlerThread:12872 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 12:04:32,425 DEBUG   HandlerThread:12872 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 12:04:32,426 DEBUG   HandlerThread:12872 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 12:04:32,428 INFO    HandlerThread:12872 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 12:04:32,438 DEBUG   SenderThread:12872 [sender.py:send():336] send: files
+2023-02-24 12:04:32,438 INFO    SenderThread:12872 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 12:04:32,446 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 12:04:32,446 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 12:04:32,449 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 12:04:32,617 DEBUG   SenderThread:12872 [sender.py:send():336] send: telemetry
+2023-02-24 12:04:32,617 DEBUG   SenderThread:12872 [sender.py:send():336] send: history
+2023-02-24 12:04:32,617 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:04:32,618 INFO    SenderThread:12872 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:04:33,005 INFO    wandb-upload_0:12872 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpbbi6qbi8wandb\zzsx2wsr-wandb-metadata.json
+2023-02-24 12:04:33,182 INFO    Thread-17 :12872 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\wandb-metadata.json
+2023-02-24 12:04:33,182 INFO    Thread-17 :12872 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\wandb-summary.json
+2023-02-24 12:04:33,182 INFO    Thread-17 :12872 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\requirements.txt
+2023-02-24 12:04:34,188 INFO    Thread-17 :12872 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\output.log
+2023-02-24 12:04:34,401 DEBUG   SenderThread:12872 [sender.py:send():336] send: exit
+2023-02-24 12:04:34,401 INFO    SenderThread:12872 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 12:04:34,401 INFO    SenderThread:12872 [sender.py:send_exit():561] handling runtime: 2
+2023-02-24 12:04:34,405 INFO    SenderThread:12872 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:04:34,406 INFO    SenderThread:12872 [sender.py:send_exit():567] send defer
+2023-02-24 12:04:34,406 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:34,406 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 12:04:34,407 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:34,407 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 12:04:34,407 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 1
+2023-02-24 12:04:34,407 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:34,407 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 12:04:34,408 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:34,408 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 12:04:34,408 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 2
+2023-02-24 12:04:34,408 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:34,408 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 12:04:34,408 INFO    HandlerThread:12872 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 12:04:34,409 DEBUG   SystemMonitor:12872 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 12:04:34,409 INFO    HandlerThread:12872 [interfaces.py:finish():175] Joined cpu
+2023-02-24 12:04:34,409 DEBUG   SystemMonitor:12872 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 12:04:34,409 DEBUG   SystemMonitor:12872 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 12:04:34,410 INFO    HandlerThread:12872 [interfaces.py:finish():175] Joined disk
+2023-02-24 12:04:34,410 INFO    HandlerThread:12872 [interfaces.py:finish():175] Joined memory
+2023-02-24 12:04:34,410 INFO    HandlerThread:12872 [interfaces.py:finish():175] Joined network
+2023-02-24 12:04:34,411 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:34,411 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 12:04:34,411 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 3
+2023-02-24 12:04:34,411 DEBUG   SenderThread:12872 [sender.py:send():336] send: stats
+2023-02-24 12:04:34,412 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:34,412 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 12:04:34,412 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:34,412 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 12:04:34,413 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 4
+2023-02-24 12:04:34,413 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:34,413 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 12:04:34,413 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:34,413 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 12:04:34,414 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 5
+2023-02-24 12:04:34,414 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:34,414 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 12:04:34,415 DEBUG   SenderThread:12872 [sender.py:send():336] send: summary
+2023-02-24 12:04:34,416 INFO    SenderThread:12872 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:04:34,417 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:34,417 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 12:04:34,417 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 6
+2023-02-24 12:04:34,417 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:34,417 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 12:04:34,417 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:34,418 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 12:04:34,425 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:04:34,620 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 7
+2023-02-24 12:04:34,621 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:34,621 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 12:04:34,624 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:34,624 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 12:04:35,194 INFO    Thread-17 :12872 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\wandb-summary.json
+2023-02-24 12:04:35,194 INFO    Thread-17 :12872 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\config.yaml
+2023-02-24 12:04:35,411 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:04:35,989 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 8
+2023-02-24 12:04:35,989 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:04:35,989 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:35,989 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 12:04:35,990 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:35,990 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 12:04:36,004 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 9
+2023-02-24 12:04:36,005 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:36,005 DEBUG   SenderThread:12872 [sender.py:send():336] send: artifact
+2023-02-24 12:04:36,005 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 12:04:36,206 INFO    Thread-17 :12872 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\output.log
+2023-02-24 12:04:36,423 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:04:36,887 INFO    SenderThread:12872 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzgzODYx', 'digest': '52054f0b23df9b668b4724b52e59ad5e', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v1'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzgzODYx', 'versionIndex': 1}}, 'version': 'v1'}
+2023-02-24 12:04:36,887 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:36,887 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 12:04:36,887 INFO    SenderThread:12872 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 12:04:37,218 INFO    SenderThread:12872 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files
+2023-02-24 12:04:37,219 INFO    SenderThread:12872 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\config.yaml config.yaml
+2023-02-24 12:04:37,220 INFO    SenderThread:12872 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\output.log output.log
+2023-02-24 12:04:37,224 INFO    SenderThread:12872 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\requirements.txt requirements.txt
+2023-02-24 12:04:37,225 INFO    SenderThread:12872 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 12:04:37,226 INFO    SenderThread:12872 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\wandb-summary.json wandb-summary.json
+2023-02-24 12:04:37,230 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 10
+2023-02-24 12:04:37,231 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:04:37,232 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:37,233 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 12:04:37,237 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:37,238 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 12:04:37,238 INFO    SenderThread:12872 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:04:37,436 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:04:37,436 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:04:37,754 INFO    wandb-upload_1:12872 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\output.log
+2023-02-24 12:04:37,824 INFO    wandb-upload_3:12872 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\wandb-summary.json
+2023-02-24 12:04:37,845 INFO    wandb-upload_0:12872 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\config.yaml
+2023-02-24 12:04:37,846 INFO    wandb-upload_2:12872 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\files\requirements.txt
+2023-02-24 12:04:38,064 INFO    Thread-16 :12872 [sender.py:transition_state():587] send defer: 11
+2023-02-24 12:04:38,064 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:38,064 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 12:04:38,065 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:38,065 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 12:04:38,065 INFO    SenderThread:12872 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 12:04:38,065 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 12
+2023-02-24 12:04:38,065 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:38,065 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 12:04:38,066 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:38,066 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 12:04:38,201 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 13
+2023-02-24 12:04:38,202 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:38,202 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 12:04:38,202 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:38,203 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 12:04:38,203 INFO    SenderThread:12872 [sender.py:transition_state():587] send defer: 14
+2023-02-24 12:04:38,203 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:04:38,204 INFO    HandlerThread:12872 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 12:04:38,204 DEBUG   SenderThread:12872 [sender.py:send():336] send: final
+2023-02-24 12:04:38,208 DEBUG   SenderThread:12872 [sender.py:send():336] send: footer
+2023-02-24 12:04:38,209 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:04:38,209 INFO    SenderThread:12872 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 12:04:38,209 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:04:38,210 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:04:38,210 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 12:04:38,210 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:04:38,211 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 12:04:38,211 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:04:38,211 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 12:04:38,212 DEBUG   SenderThread:12872 [sender.py:send_request():363] send_request: server_info
+2023-02-24 12:04:38,374 INFO    MainThread:12872 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 12:04:38,375 INFO    MainThread:12872 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 12:04:38,375 INFO    MainThread:12872 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 12:04:38,375 DEBUG   HandlerThread:12872 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 12:04:38,376 INFO    HandlerThread:12872 [handler.py:finish():841] shutting down handler
+2023-02-24 12:04:39,225 INFO    WriterThread:12872 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\run-uwujr228.wandb
+2023-02-24 12:04:39,381 INFO    SenderThread:12872 [sender.py:finish():1493] shutting down sender
+2023-02-24 12:04:39,381 INFO    SenderThread:12872 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:04:39,381 INFO    SenderThread:12872 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_120431-uwujr228/logs/debug.log b/embeddings/wandb/run-20230224_120431-uwujr228/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..a7c563e7ba9b4ecbbcde2058d5a2fecd1c50917a
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120431-uwujr228/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 12:04:31,706 INFO    MainThread:2344 [wandb_setup.py:_flush():68] Configure stats pid to 2344
+2023-02-24 12:04:31,706 INFO    MainThread:2344 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 12:04:31,706 INFO    MainThread:2344 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 12:04:31,706 INFO    MainThread:2344 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 12:04:31,706 INFO    MainThread:2344 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 12:04:31,707 INFO    MainThread:2344 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\logs\debug.log
+2023-02-24 12:04:31,707 INFO    MainThread:2344 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120431-uwujr228\logs\debug-internal.log
+2023-02-24 12:04:31,707 INFO    MainThread:2344 [wandb_init.py:init():532] calling init triggers
+2023-02-24 12:04:31,707 INFO    MainThread:2344 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 12:04:31,707 INFO    MainThread:2344 [wandb_init.py:init():588] starting backend
+2023-02-24 12:04:31,707 INFO    MainThread:2344 [wandb_init.py:init():592] setting up manager
+2023-02-24 12:04:31,710 INFO    MainThread:2344 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 12:04:31,714 INFO    MainThread:2344 [wandb_init.py:init():599] backend started and connected
+2023-02-24 12:04:31,716 INFO    MainThread:2344 [wandb_init.py:init():687] updated telemetry
+2023-02-24 12:04:31,766 INFO    MainThread:2344 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 12:04:32,176 INFO    MainThread:2344 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 12:04:32,280 INFO    MainThread:2344 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 12:04:32,280 INFO    MainThread:2344 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 12:04:32,446 INFO    MainThread:2344 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 12:04:32,446 INFO    MainThread:2344 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 12:04:32,447 INFO    MainThread:2344 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 12:04:32,447 INFO    MainThread:2344 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 12:04:32,447 INFO    MainThread:2344 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 12:04:39,448 WARNING MsgRouterThr:2344 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_120431-uwujr228/run-uwujr228.wandb b/embeddings/wandb/run-20230224_120431-uwujr228/run-uwujr228.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..b8c970c0160226a9439cfc0f36321c16dbdedcd1
Binary files /dev/null and b/embeddings/wandb/run-20230224_120431-uwujr228/run-uwujr228.wandb differ
diff --git a/embeddings/wandb/run-20230224_120727-umvgkhb9/files/config.yaml b/embeddings/wandb/run-20230224_120727-umvgkhb9/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..49bafbe7b59790e4deff7c6ddcf6418e67f7f664
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120727-umvgkhb9/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677240447.823426
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_120727-umvgkhb9/files/output.log b/embeddings/wandb/run-20230224_120727-umvgkhb9/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..b1663a8b7fa51f3158a7d45c67aeb9a5448c9b76
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120727-umvgkhb9/files/output.log
@@ -0,0 +1,6 @@
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 149, in <module>
+    label = graph.y.item()
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\torch_geometric\data\hetero_data.py", line 138, in __getattr__
+    raise AttributeError(f"'{self.__class__.__name__}' has no "
+AttributeError: 'BatchedHeteroData' has no attribute 'y'
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_120727-umvgkhb9/files/requirements.txt b/embeddings/wandb/run-20230224_120727-umvgkhb9/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120727-umvgkhb9/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_120727-umvgkhb9/files/wandb-metadata.json b/embeddings/wandb/run-20230224_120727-umvgkhb9/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..6495cfc56ac0f4f5c1df4bb05a82294db892d3fa
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120727-umvgkhb9/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T12:07:28.365622",
+    "startedAt": "2023-02-24T12:07:27.810426",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 352.4115753173828
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_120727-umvgkhb9/files/wandb-summary.json b/embeddings/wandb/run-20230224_120727-umvgkhb9/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..3a3b7cacd603bde6542db291857ac07310d39e0e
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120727-umvgkhb9/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677240448.5016134, "_runtime": 0.678187370300293, "_step": 0, "_wandb": {"runtime": 0}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_120727-umvgkhb9/logs/debug-internal.log b/embeddings/wandb/run-20230224_120727-umvgkhb9/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..c3718aff127b1d7bdb714b4e504d2f98c6f5bbc7
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120727-umvgkhb9/logs/debug-internal.log
@@ -0,0 +1,172 @@
+2023-02-24 12:07:27,824 INFO    StreamThr :14396 [internal.py:wandb_internal():87] W&B internal server running at pid: 14396, started at: 2023-02-24 12:07:27.823427
+2023-02-24 12:07:27,826 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: status
+2023-02-24 12:07:27,827 INFO    WriterThread:14396 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\run-umvgkhb9.wandb
+2023-02-24 12:07:27,831 DEBUG   SenderThread:14396 [sender.py:send():336] send: header
+2023-02-24 12:07:27,886 DEBUG   SenderThread:14396 [sender.py:send():336] send: run
+2023-02-24 12:07:28,267 INFO    SenderThread:14396 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files
+2023-02-24 12:07:28,267 INFO    SenderThread:14396 [sender.py:_start_run_threads():1067] run started: umvgkhb9 with start time 1677240447.823426
+2023-02-24 12:07:28,267 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:07:28,267 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 12:07:28,268 INFO    SenderThread:14396 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:07:28,269 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: check_version
+2023-02-24 12:07:28,344 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 12:07:28,361 DEBUG   HandlerThread:14396 [system_info.py:__init__():31] System info init
+2023-02-24 12:07:28,361 DEBUG   HandlerThread:14396 [system_info.py:__init__():46] System info init done
+2023-02-24 12:07:28,361 INFO    HandlerThread:14396 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 12:07:28,361 INFO    SystemMonitor:14396 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 12:07:28,362 INFO    HandlerThread:14396 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 12:07:28,365 INFO    SystemMonitor:14396 [interfaces.py:start():168] Started cpu
+2023-02-24 12:07:28,365 DEBUG   HandlerThread:14396 [system_info.py:probe():195] Probing system
+2023-02-24 12:07:28,365 INFO    SystemMonitor:14396 [interfaces.py:start():168] Started disk
+2023-02-24 12:07:28,366 INFO    SystemMonitor:14396 [interfaces.py:start():168] Started memory
+2023-02-24 12:07:28,366 INFO    SystemMonitor:14396 [interfaces.py:start():168] Started network
+2023-02-24 12:07:28,384 DEBUG   HandlerThread:14396 [system_info.py:_probe_git():180] Probing git
+2023-02-24 12:07:28,477 DEBUG   HandlerThread:14396 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 12:07:28,478 DEBUG   HandlerThread:14396 [system_info.py:probe():241] Probing system done
+2023-02-24 12:07:28,478 DEBUG   HandlerThread:14396 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T12:07:28.365622', 'startedAt': '2023-02-24T12:07:27.810426', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 352.4115753173828}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 12:07:28,478 INFO    HandlerThread:14396 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 12:07:28,478 INFO    HandlerThread:14396 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 12:07:28,478 DEBUG   HandlerThread:14396 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 12:07:28,479 DEBUG   HandlerThread:14396 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 12:07:28,481 INFO    HandlerThread:14396 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 12:07:28,490 DEBUG   SenderThread:14396 [sender.py:send():336] send: files
+2023-02-24 12:07:28,490 INFO    SenderThread:14396 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 12:07:28,499 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 12:07:28,499 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 12:07:28,503 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 12:07:28,660 DEBUG   SenderThread:14396 [sender.py:send():336] send: telemetry
+2023-02-24 12:07:28,660 DEBUG   SenderThread:14396 [sender.py:send():336] send: history
+2023-02-24 12:07:28,660 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:07:28,661 INFO    SenderThread:14396 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:07:28,663 DEBUG   SenderThread:14396 [sender.py:send():336] send: exit
+2023-02-24 12:07:28,663 INFO    SenderThread:14396 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 12:07:28,663 INFO    SenderThread:14396 [sender.py:send_exit():561] handling runtime: 0
+2023-02-24 12:07:28,664 INFO    SenderThread:14396 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:07:28,664 INFO    SenderThread:14396 [sender.py:send_exit():567] send defer
+2023-02-24 12:07:28,664 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:28,664 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 12:07:28,665 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:28,665 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 12:07:28,665 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 1
+2023-02-24 12:07:28,665 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:28,665 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 12:07:28,665 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:28,665 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 12:07:28,665 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 2
+2023-02-24 12:07:28,666 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:28,667 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 12:07:28,668 INFO    HandlerThread:14396 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 12:07:28,668 DEBUG   SystemMonitor:14396 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 12:07:28,668 DEBUG   SystemMonitor:14396 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 12:07:28,669 DEBUG   SystemMonitor:14396 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 12:07:28,669 INFO    HandlerThread:14396 [interfaces.py:finish():175] Joined cpu
+2023-02-24 12:07:28,669 INFO    HandlerThread:14396 [interfaces.py:finish():175] Joined disk
+2023-02-24 12:07:28,670 INFO    HandlerThread:14396 [interfaces.py:finish():175] Joined memory
+2023-02-24 12:07:28,670 INFO    HandlerThread:14396 [interfaces.py:finish():175] Joined network
+2023-02-24 12:07:28,670 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:28,670 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 12:07:28,671 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 3
+2023-02-24 12:07:28,671 DEBUG   SenderThread:14396 [sender.py:send():336] send: stats
+2023-02-24 12:07:28,671 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:28,671 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 12:07:28,672 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:28,672 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 12:07:28,672 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 4
+2023-02-24 12:07:28,672 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:28,672 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 12:07:28,672 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:28,672 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 12:07:28,673 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 5
+2023-02-24 12:07:28,673 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:28,673 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 12:07:28,673 DEBUG   SenderThread:14396 [sender.py:send():336] send: summary
+2023-02-24 12:07:28,674 INFO    SenderThread:14396 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:07:28,674 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:28,675 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 12:07:28,675 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 6
+2023-02-24 12:07:28,675 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:28,675 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 12:07:28,675 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:28,676 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 12:07:28,680 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:07:28,861 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 7
+2023-02-24 12:07:28,861 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:28,862 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 12:07:28,862 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:28,862 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 12:07:29,055 INFO    wandb-upload_0:14396 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp_2m5l0tgwandb\60ocj3zf-wandb-metadata.json
+2023-02-24 12:07:29,272 INFO    Thread-17 :14396 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\config.yaml
+2023-02-24 12:07:29,273 INFO    Thread-17 :14396 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\requirements.txt
+2023-02-24 12:07:29,273 INFO    Thread-17 :14396 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\wandb-summary.json
+2023-02-24 12:07:29,273 INFO    Thread-17 :14396 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\wandb-metadata.json
+2023-02-24 12:07:29,274 INFO    Thread-17 :14396 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\output.log
+2023-02-24 12:07:29,614 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:07:30,680 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 8
+2023-02-24 12:07:30,680 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:07:30,681 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:30,681 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 12:07:30,681 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:30,681 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 12:07:30,695 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 9
+2023-02-24 12:07:30,695 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:30,695 DEBUG   SenderThread:14396 [sender.py:send():336] send: artifact
+2023-02-24 12:07:30,696 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 12:07:31,282 INFO    Thread-17 :14396 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\output.log
+2023-02-24 12:07:31,547 INFO    SenderThread:14396 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzgzODYx', 'digest': '52054f0b23df9b668b4724b52e59ad5e', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v1'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzgzODYx', 'versionIndex': 1}}, 'version': 'v1'}
+2023-02-24 12:07:31,547 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:31,547 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 12:07:31,547 INFO    SenderThread:14396 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 12:07:32,292 INFO    SenderThread:14396 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files
+2023-02-24 12:07:32,292 INFO    SenderThread:14396 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\config.yaml config.yaml
+2023-02-24 12:07:32,292 INFO    SenderThread:14396 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\output.log output.log
+2023-02-24 12:07:32,293 INFO    SenderThread:14396 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\requirements.txt requirements.txt
+2023-02-24 12:07:32,296 INFO    SenderThread:14396 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 12:07:32,296 INFO    SenderThread:14396 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\wandb-summary.json wandb-summary.json
+2023-02-24 12:07:32,302 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 10
+2023-02-24 12:07:32,303 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:32,303 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 12:07:32,304 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:32,304 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 12:07:32,307 INFO    SenderThread:14396 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:07:32,786 INFO    wandb-upload_0:14396 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\config.yaml
+2023-02-24 12:07:32,836 INFO    wandb-upload_3:14396 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\wandb-summary.json
+2023-02-24 12:07:32,857 INFO    wandb-upload_1:14396 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\output.log
+2023-02-24 12:07:32,870 INFO    wandb-upload_2:14396 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\files\requirements.txt
+2023-02-24 12:07:33,081 INFO    Thread-16 :14396 [sender.py:transition_state():587] send defer: 11
+2023-02-24 12:07:33,082 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:33,082 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 12:07:33,082 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:33,082 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 12:07:33,082 INFO    SenderThread:14396 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 12:07:33,082 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 12
+2023-02-24 12:07:33,083 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:33,083 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 12:07:33,083 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:33,083 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 12:07:33,221 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 13
+2023-02-24 12:07:33,221 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:33,222 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 12:07:33,222 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:33,222 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 12:07:33,222 INFO    SenderThread:14396 [sender.py:transition_state():587] send defer: 14
+2023-02-24 12:07:33,222 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:33,222 INFO    HandlerThread:14396 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 12:07:33,223 DEBUG   SenderThread:14396 [sender.py:send():336] send: final
+2023-02-24 12:07:33,223 DEBUG   SenderThread:14396 [sender.py:send():336] send: footer
+2023-02-24 12:07:33,223 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:33,223 INFO    SenderThread:14396 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 12:07:33,224 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:07:33,224 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 12:07:33,224 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 12:07:33,224 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 12:07:33,225 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:07:33,225 DEBUG   SenderThread:14396 [sender.py:send_request():363] send_request: server_info
+2023-02-24 12:07:33,383 INFO    MainThread:14396 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 12:07:33,383 INFO    MainThread:14396 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 12:07:33,384 INFO    MainThread:14396 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 12:07:33,384 DEBUG   HandlerThread:14396 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 12:07:33,384 INFO    HandlerThread:14396 [handler.py:finish():841] shutting down handler
+2023-02-24 12:07:34,233 INFO    WriterThread:14396 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\run-umvgkhb9.wandb
+2023-02-24 12:07:34,389 INFO    SenderThread:14396 [sender.py:finish():1493] shutting down sender
+2023-02-24 12:07:34,389 INFO    SenderThread:14396 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:07:34,390 INFO    SenderThread:14396 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_120727-umvgkhb9/logs/debug.log b/embeddings/wandb/run-20230224_120727-umvgkhb9/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..5c20757fa08021d6adba91f40684c74ab6047b66
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120727-umvgkhb9/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 12:07:27,814 INFO    MainThread:17884 [wandb_setup.py:_flush():68] Configure stats pid to 17884
+2023-02-24 12:07:27,814 INFO    MainThread:17884 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 12:07:27,814 INFO    MainThread:17884 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 12:07:27,814 INFO    MainThread:17884 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 12:07:27,814 INFO    MainThread:17884 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 12:07:27,815 INFO    MainThread:17884 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\logs\debug.log
+2023-02-24 12:07:27,815 INFO    MainThread:17884 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120727-umvgkhb9\logs\debug-internal.log
+2023-02-24 12:07:27,815 INFO    MainThread:17884 [wandb_init.py:init():532] calling init triggers
+2023-02-24 12:07:27,815 INFO    MainThread:17884 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 12:07:27,815 INFO    MainThread:17884 [wandb_init.py:init():588] starting backend
+2023-02-24 12:07:27,815 INFO    MainThread:17884 [wandb_init.py:init():592] setting up manager
+2023-02-24 12:07:27,818 INFO    MainThread:17884 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 12:07:27,823 INFO    MainThread:17884 [wandb_init.py:init():599] backend started and connected
+2023-02-24 12:07:27,825 INFO    MainThread:17884 [wandb_init.py:init():687] updated telemetry
+2023-02-24 12:07:27,885 INFO    MainThread:17884 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 12:07:28,267 INFO    MainThread:17884 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 12:07:28,336 INFO    MainThread:17884 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 12:07:28,337 INFO    MainThread:17884 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 12:07:28,499 INFO    MainThread:17884 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 12:07:28,499 INFO    MainThread:17884 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 12:07:28,500 INFO    MainThread:17884 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 12:07:28,500 INFO    MainThread:17884 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 12:07:28,501 INFO    MainThread:17884 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 12:07:34,457 WARNING MsgRouterThr:17884 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_120727-umvgkhb9/run-umvgkhb9.wandb b/embeddings/wandb/run-20230224_120727-umvgkhb9/run-umvgkhb9.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..01ed70b0b127ebf30808860ee4d05b91c7af1c6c
Binary files /dev/null and b/embeddings/wandb/run-20230224_120727-umvgkhb9/run-umvgkhb9.wandb differ
diff --git a/embeddings/wandb/run-20230224_120750-gmupm2k4/files/config.yaml b/embeddings/wandb/run-20230224_120750-gmupm2k4/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f3c1837c11ee1d7638bdb8516809a96135f9fc24
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120750-gmupm2k4/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677240470.737073
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_120750-gmupm2k4/files/output.log b/embeddings/wandb/run-20230224_120750-gmupm2k4/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..95049b12de6a53f730b08877188dd016ee0b1419
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120750-gmupm2k4/files/output.log
@@ -0,0 +1,8 @@
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 151, in <module>
+    table.add_data(wandb.Html(plotly.io.to_html(fig)), n_nodes, n_edges, label)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\data_types\html.py", line 55, in __init__
+    out.write(self.html)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\encodings\cp1252.py", line 19, in encode
+    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+UnicodeEncodeError: 'charmap' codec can't encode character '\u25c4' in position 276500: character maps to <undefined>
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_120750-gmupm2k4/files/requirements.txt b/embeddings/wandb/run-20230224_120750-gmupm2k4/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120750-gmupm2k4/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_120750-gmupm2k4/files/wandb-metadata.json b/embeddings/wandb/run-20230224_120750-gmupm2k4/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..1f4ec92e9c4cdc521f19ae14ff2050f8c523b1c5
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120750-gmupm2k4/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T12:07:51.332838",
+    "startedAt": "2023-02-24T12:07:50.724111",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 352.41181564331055
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_120750-gmupm2k4/files/wandb-summary.json b/embeddings/wandb/run-20230224_120750-gmupm2k4/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..3f44265dafd50fde0fa8e7beb3a20db65fa7eb45
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120750-gmupm2k4/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677240471.469352, "_runtime": 0.7322790622711182, "_step": 0, "_wandb": {"runtime": 0}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_120750-gmupm2k4/logs/debug-internal.log b/embeddings/wandb/run-20230224_120750-gmupm2k4/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..80a77d99b092d5ee4071961fe91ebd0062a28470
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120750-gmupm2k4/logs/debug-internal.log
@@ -0,0 +1,172 @@
+2023-02-24 12:07:50,738 INFO    StreamThr :3372 [internal.py:wandb_internal():87] W&B internal server running at pid: 3372, started at: 2023-02-24 12:07:50.738071
+2023-02-24 12:07:50,740 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: status
+2023-02-24 12:07:50,741 INFO    WriterThread:3372 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\run-gmupm2k4.wandb
+2023-02-24 12:07:50,745 DEBUG   SenderThread:3372 [sender.py:send():336] send: header
+2023-02-24 12:07:50,789 DEBUG   SenderThread:3372 [sender.py:send():336] send: run
+2023-02-24 12:07:51,234 INFO    SenderThread:3372 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files
+2023-02-24 12:07:51,234 INFO    SenderThread:3372 [sender.py:_start_run_threads():1067] run started: gmupm2k4 with start time 1677240470.737073
+2023-02-24 12:07:51,234 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:07:51,235 INFO    SenderThread:3372 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:07:51,236 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 12:07:51,236 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: check_version
+2023-02-24 12:07:51,311 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 12:07:51,328 DEBUG   HandlerThread:3372 [system_info.py:__init__():31] System info init
+2023-02-24 12:07:51,328 DEBUG   HandlerThread:3372 [system_info.py:__init__():46] System info init done
+2023-02-24 12:07:51,328 INFO    HandlerThread:3372 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 12:07:51,329 INFO    SystemMonitor:3372 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 12:07:51,329 INFO    HandlerThread:3372 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 12:07:51,332 INFO    SystemMonitor:3372 [interfaces.py:start():168] Started cpu
+2023-02-24 12:07:51,332 DEBUG   HandlerThread:3372 [system_info.py:probe():195] Probing system
+2023-02-24 12:07:51,332 INFO    SystemMonitor:3372 [interfaces.py:start():168] Started disk
+2023-02-24 12:07:51,333 INFO    SystemMonitor:3372 [interfaces.py:start():168] Started memory
+2023-02-24 12:07:51,350 INFO    SystemMonitor:3372 [interfaces.py:start():168] Started network
+2023-02-24 12:07:51,351 DEBUG   HandlerThread:3372 [system_info.py:_probe_git():180] Probing git
+2023-02-24 12:07:51,446 DEBUG   HandlerThread:3372 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 12:07:51,446 DEBUG   HandlerThread:3372 [system_info.py:probe():241] Probing system done
+2023-02-24 12:07:51,446 DEBUG   HandlerThread:3372 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T12:07:51.332838', 'startedAt': '2023-02-24T12:07:50.724111', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 352.41181564331055}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 12:07:51,446 INFO    HandlerThread:3372 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 12:07:51,446 INFO    HandlerThread:3372 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 12:07:51,446 DEBUG   HandlerThread:3372 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 12:07:51,447 DEBUG   HandlerThread:3372 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 12:07:51,450 INFO    HandlerThread:3372 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 12:07:51,459 DEBUG   SenderThread:3372 [sender.py:send():336] send: files
+2023-02-24 12:07:51,459 INFO    SenderThread:3372 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 12:07:51,467 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 12:07:51,468 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 12:07:51,470 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 12:07:51,662 DEBUG   SenderThread:3372 [sender.py:send():336] send: telemetry
+2023-02-24 12:07:51,663 DEBUG   SenderThread:3372 [sender.py:send():336] send: history
+2023-02-24 12:07:51,663 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:07:51,664 INFO    SenderThread:3372 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:07:51,666 DEBUG   SenderThread:3372 [sender.py:send():336] send: exit
+2023-02-24 12:07:51,666 INFO    SenderThread:3372 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 12:07:51,666 INFO    SenderThread:3372 [sender.py:send_exit():561] handling runtime: 0
+2023-02-24 12:07:51,667 INFO    SenderThread:3372 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:07:51,667 INFO    SenderThread:3372 [sender.py:send_exit():567] send defer
+2023-02-24 12:07:51,667 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:51,668 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 12:07:51,668 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:51,668 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 12:07:51,668 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 1
+2023-02-24 12:07:51,669 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:51,669 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 12:07:51,669 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:51,669 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 12:07:51,669 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 2
+2023-02-24 12:07:51,669 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:51,669 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 12:07:51,669 INFO    HandlerThread:3372 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 12:07:51,670 DEBUG   SystemMonitor:3372 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 12:07:51,670 DEBUG   SystemMonitor:3372 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 12:07:51,670 DEBUG   SystemMonitor:3372 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 12:07:51,671 INFO    HandlerThread:3372 [interfaces.py:finish():175] Joined cpu
+2023-02-24 12:07:51,671 INFO    HandlerThread:3372 [interfaces.py:finish():175] Joined disk
+2023-02-24 12:07:51,671 INFO    HandlerThread:3372 [interfaces.py:finish():175] Joined memory
+2023-02-24 12:07:51,671 INFO    HandlerThread:3372 [interfaces.py:finish():175] Joined network
+2023-02-24 12:07:51,671 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:51,672 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 12:07:51,672 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 3
+2023-02-24 12:07:51,672 DEBUG   SenderThread:3372 [sender.py:send():336] send: stats
+2023-02-24 12:07:51,672 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:51,672 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 12:07:51,673 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:51,673 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 12:07:51,673 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 4
+2023-02-24 12:07:51,673 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:51,673 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 12:07:51,673 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:51,673 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 12:07:51,673 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 5
+2023-02-24 12:07:51,673 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:51,674 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 12:07:51,674 DEBUG   SenderThread:3372 [sender.py:send():336] send: summary
+2023-02-24 12:07:51,675 INFO    SenderThread:3372 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:07:51,675 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:51,675 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 12:07:51,675 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 6
+2023-02-24 12:07:51,675 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:51,675 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 12:07:51,676 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:51,676 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 12:07:51,680 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:07:51,852 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 7
+2023-02-24 12:07:51,852 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:51,852 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 12:07:51,852 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:51,852 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 12:07:52,009 INFO    wandb-upload_0:3372 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpvrbamb8xwandb\ib5p2rcm-wandb-metadata.json
+2023-02-24 12:07:52,244 INFO    Thread-17 :3372 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\config.yaml
+2023-02-24 12:07:52,244 INFO    Thread-17 :3372 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\wandb-metadata.json
+2023-02-24 12:07:52,245 INFO    Thread-17 :3372 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\wandb-summary.json
+2023-02-24 12:07:52,245 INFO    Thread-17 :3372 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\output.log
+2023-02-24 12:07:52,245 INFO    Thread-17 :3372 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\requirements.txt
+2023-02-24 12:07:52,632 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:07:53,675 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 8
+2023-02-24 12:07:53,675 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:07:53,676 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:53,676 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 12:07:53,676 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:53,677 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 12:07:53,691 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 9
+2023-02-24 12:07:53,691 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:53,692 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 12:07:53,692 DEBUG   SenderThread:3372 [sender.py:send():336] send: artifact
+2023-02-24 12:07:54,262 INFO    Thread-17 :3372 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\output.log
+2023-02-24 12:07:54,542 INFO    SenderThread:3372 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzgzODYx', 'digest': '52054f0b23df9b668b4724b52e59ad5e', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v1'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzgzODYx', 'versionIndex': 1}}, 'version': 'v1'}
+2023-02-24 12:07:54,542 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:54,542 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 12:07:54,542 INFO    SenderThread:3372 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 12:07:55,272 INFO    SenderThread:3372 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files
+2023-02-24 12:07:55,273 INFO    SenderThread:3372 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\config.yaml config.yaml
+2023-02-24 12:07:55,273 INFO    SenderThread:3372 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\output.log output.log
+2023-02-24 12:07:55,276 INFO    SenderThread:3372 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\requirements.txt requirements.txt
+2023-02-24 12:07:55,279 INFO    SenderThread:3372 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 12:07:55,279 INFO    SenderThread:3372 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\wandb-summary.json wandb-summary.json
+2023-02-24 12:07:55,283 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 10
+2023-02-24 12:07:55,284 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:55,284 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 12:07:55,285 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:55,285 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 12:07:55,285 INFO    SenderThread:3372 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:07:55,756 INFO    wandb-upload_0:3372 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\config.yaml
+2023-02-24 12:07:55,813 INFO    wandb-upload_1:3372 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\output.log
+2023-02-24 12:07:55,829 INFO    wandb-upload_3:3372 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\wandb-summary.json
+2023-02-24 12:07:55,833 INFO    wandb-upload_2:3372 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\files\requirements.txt
+2023-02-24 12:07:56,036 INFO    Thread-16 :3372 [sender.py:transition_state():587] send defer: 11
+2023-02-24 12:07:56,036 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:56,036 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 12:07:56,036 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:56,036 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 12:07:56,036 INFO    SenderThread:3372 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 12:07:56,036 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 12
+2023-02-24 12:07:56,036 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:56,036 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 12:07:56,037 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:56,037 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 12:07:56,173 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 13
+2023-02-24 12:07:56,174 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:56,174 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 12:07:56,174 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:56,174 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 12:07:56,175 INFO    SenderThread:3372 [sender.py:transition_state():587] send defer: 14
+2023-02-24 12:07:56,175 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:07:56,175 INFO    HandlerThread:3372 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 12:07:56,175 DEBUG   SenderThread:3372 [sender.py:send():336] send: final
+2023-02-24 12:07:56,176 DEBUG   SenderThread:3372 [sender.py:send():336] send: footer
+2023-02-24 12:07:56,176 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:07:56,176 INFO    SenderThread:3372 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 12:07:56,176 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:07:56,177 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 12:07:56,177 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 12:07:56,177 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 12:07:56,177 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:07:56,178 DEBUG   SenderThread:3372 [sender.py:send_request():363] send_request: server_info
+2023-02-24 12:07:56,331 INFO    MainThread:3372 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 12:07:56,331 INFO    MainThread:3372 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 12:07:56,332 INFO    MainThread:3372 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 12:07:56,332 DEBUG   HandlerThread:3372 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 12:07:56,332 INFO    HandlerThread:3372 [handler.py:finish():841] shutting down handler
+2023-02-24 12:07:57,187 INFO    WriterThread:3372 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\run-gmupm2k4.wandb
+2023-02-24 12:07:57,343 INFO    SenderThread:3372 [sender.py:finish():1493] shutting down sender
+2023-02-24 12:07:57,343 INFO    SenderThread:3372 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:07:57,343 INFO    SenderThread:3372 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_120750-gmupm2k4/logs/debug.log b/embeddings/wandb/run-20230224_120750-gmupm2k4/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..9a0b885db2724e6aed0526718f751e9d29b97106
--- /dev/null
+++ b/embeddings/wandb/run-20230224_120750-gmupm2k4/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 12:07:50,728 INFO    MainThread:7532 [wandb_setup.py:_flush():68] Configure stats pid to 7532
+2023-02-24 12:07:50,728 INFO    MainThread:7532 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 12:07:50,728 INFO    MainThread:7532 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 12:07:50,728 INFO    MainThread:7532 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 12:07:50,728 INFO    MainThread:7532 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 12:07:50,730 INFO    MainThread:7532 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\logs\debug.log
+2023-02-24 12:07:50,730 INFO    MainThread:7532 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_120750-gmupm2k4\logs\debug-internal.log
+2023-02-24 12:07:50,730 INFO    MainThread:7532 [wandb_init.py:init():532] calling init triggers
+2023-02-24 12:07:50,730 INFO    MainThread:7532 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 12:07:50,730 INFO    MainThread:7532 [wandb_init.py:init():588] starting backend
+2023-02-24 12:07:50,730 INFO    MainThread:7532 [wandb_init.py:init():592] setting up manager
+2023-02-24 12:07:50,733 INFO    MainThread:7532 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 12:07:50,737 INFO    MainThread:7532 [wandb_init.py:init():599] backend started and connected
+2023-02-24 12:07:50,739 INFO    MainThread:7532 [wandb_init.py:init():687] updated telemetry
+2023-02-24 12:07:50,788 INFO    MainThread:7532 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 12:07:51,235 INFO    MainThread:7532 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 12:07:51,304 INFO    MainThread:7532 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 12:07:51,304 INFO    MainThread:7532 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 12:07:51,467 INFO    MainThread:7532 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 12:07:51,468 INFO    MainThread:7532 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 12:07:51,468 INFO    MainThread:7532 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 12:07:51,468 INFO    MainThread:7532 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 12:07:51,469 INFO    MainThread:7532 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 12:07:57,410 WARNING MsgRouterThr:7532 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_120750-gmupm2k4/run-gmupm2k4.wandb b/embeddings/wandb/run-20230224_120750-gmupm2k4/run-gmupm2k4.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..66cc5be83bcfd7e13c094b946fc7a4e1468ec58e
Binary files /dev/null and b/embeddings/wandb/run-20230224_120750-gmupm2k4/run-gmupm2k4.wandb differ
diff --git a/embeddings/wandb/run-20230224_122235-prub22wv/files/config.yaml b/embeddings/wandb/run-20230224_122235-prub22wv/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e1de964ea63db33da2abf869534058d55743f7eb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122235-prub22wv/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677241355.070119
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_122235-prub22wv/files/output.log b/embeddings/wandb/run-20230224_122235-prub22wv/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..ff7fd93cd674ce17c050fe6c5301d5f4f3b2a953
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122235-prub22wv/files/output.log
@@ -0,0 +1,23 @@
+<html>
+<head><meta charset="utf-8" /></head>
+<body>
+    <div>                        <script type="text/javascript">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
+        <script type="text/javascript">/**
+* plotly.js v2.18.0
+* Copyright 2012-2023, Plotly, Inc.
+* All rights reserved.
+* Licensed under the MIT license
+*/
+/*! For license information please see plotly.min.js.LICENSE.txt */
+!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Plotly=e():t.Plotly=e()}(self,(function(){return function(){var t={98847:function(t,e,r){"use strict";var n=r(71828),i={"X,X div":'direction:ltr;font-family:"Open Sans",verdana,arial,sans-serif;margin:0;padding:0;',"X input,X button":'font-family:"Open Sans",verdana,arial,sans-serif;',"X input:focus,X button:focus":"outline:none;","X a":"text-decoration:none;","X a:hover":"text-decoration:none;","X .crisp":"shape-rendering:crispEdges;","X .user-select-none":"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;","X svg":"overflow:hidden;","X svg a":"fill:#447adb;","X svg a:hover":"fill:#3c6dc5;","X .main-svg":"position:absolute;top:0;left:0;pointer-events:none;","X .main-svg .draglayer":"pointer-events:all;","X .cursor-default":"cursor:default;","X .cursor-pointer":"cursor:pointer;","X .cursor-crosshair":"cursor:crosshair;","X .cursor-move":"cursor:move;","X .cursor-col-resize":"cursor:col-resize;","X .cursor-row-resize":"cursor:row-resize;","X .cursor-ns-resize":"cursor:ns-resize;","X .cursor-ew-resize":"cursor:ew-resize;","X .cursor-sw-resize":"cursor:sw-resize;","X .cursor-s-resize":"cursor:s-resize;","X .cursor-se-resize":"cursor:se-resize;","X .cursor-w-resize":"cursor:w-resize;","X .cursor-e-resize":"cursor:e-resize;","X .cursor-nw-resize":"cursor:nw-resize;","X .cursor-n-resize":"cursor:n-resize;","X .cursor-ne-resize":"cursor:ne-resize;","X .cursor-grab":"cursor:-webkit-grab;cursor:grab;","X .modebar":"position:absolute;top:2px;right:2px;","X .ease-bg":"-webkit-transition:background-color .3s ease 0s;-moz-transition:background-color .3s ease 0s;-ms-transition:background-color .3s ease 0s;-o-transition:background-color .3s ease 0s;transition:background-color .3s ease 0s;","X .modebar--hover>:not(.watermark)":"opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;","X:hover .modebar--hover .modebar-group":"opacity:1;","X .modebar-group":"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;","X .modebar-btn":"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;","X .modebar-btn svg":"position:relative;top:2px;","X .modebar.vertical":"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;","X .modebar.vertical svg":"top:-1px;","X .modebar.vertical .modebar-group":"display:block;float:none;padding-left:0px;padding-bottom:8px;","X .modebar.vertical .modebar-group .modebar-btn":"display:block;text-align:center;","X [data-title]:before,X [data-title]:after":"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;","X [data-title]:hover:before,X [data-title]:hover:after":"display:block;opacity:1;","X [data-title]:before":'content:"";position:absolute;background:rgba(0,0,0,0);border:6px solid rgba(0,0,0,0);z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;',"X [data-title]:after":"content:attr(data-title);background:#69738a;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;","X .vertical [data-title]:before,X .vertical [data-title]:after":"top:0%;right:200%;","X .vertical [data-title]:before":"border:6px solid rgba(0,0,0,0);border-left-color:#69738a;margin-top:8px;margin-right:-30px;",Y:'font-family:"Open Sans",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;',"Y p":"margin:0;","Y .notifier-note":"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;","Y .notifier-close":"color:#fff;opacity:.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;","Y .notifier-close:hover":"color:#444;text-decoration:none;cursor:pointer;"};for(var a in i){var o=a.replace(/^,/," ,").replace(/X/g,".js-plotly-plot .plotly").replace(/Y/g,".plotly-notifier");n.addStyleRule(o,i[a])}},98222:function(t,e,r){"use strict";t.exports=r(82887)},27206:function(t,e,r){"use strict";t.exports=r(60822)},59893:function(t,e,r){"use strict";t.exports=r(23381)},5224:function(t,e,r){"use strict";t.exports=r(83832)},59509:function(t,e,r){"use strict";t.exports=r(72201)},75557:function(t,e,r){"use strict";t.exports=r(91815)},40338:function(t,e,r){"use strict";t.exports=r(21462)},35080:function(t,e,r){"use strict";t.exports=r(51319)},61396:function(t,e,r){"use strict";t.exports=r(57516)},40549:function(t,e,r){"use strict";t.exports=r(98128)},49866:function(t,e,r){"use strict";t.exports=r(99442)},36089:function(t,e,r){"use strict";t.exports=r(93740)},19548:function(t,e,r){"use strict";t.exports=r(8729)},35831:function(t,e,r){"use strict";t.exports=r(93814)},61039:function(t,e,r){"use strict";t.exports=r(14382)},97040:function(t,e,r){"use strict";t.exports=r(51759)},77986:function(t,e,r){"use strict";t.exports=r(10421)},24296:function(t,e,r){"use strict";t.exports=r(43102)},58872:function(t,e,r){"use strict";t.exports=r(92165)},29626:function(t,e,r){"use strict";t.exports=r(3325)},65591:function(t,e,r){"use strict";t.exports=r(36071)},69738:function(t,e,r){"use strict";t.exports=r(43905)},92650:function(t,e,r){"use strict";t.exports=r(35902)},35630:function(t,e,r){"use strict";t.exports=r(69816)},73434:function(t,e,r){"use strict";t.exports=r(94507)},27909:function(t,e,r){"use strict";var n=r(19548);n.register([r(27206),r(5224),r(58872),r(65591),r(69738),r(92650),r(49866),r(25743),r(6197),r(97040),r(85461),r(73434),r(54201),r(81299),r(47645),r(35630),r(77986),r(83043),r(93005),r(96881),r(4534),r(50581),r(40549),r(77900),r(47582),r(35080),r(21641),r(17280),r(5861),r(29626),r(10021),r(65317),r(96268),r(61396),r(35831),r(16122),r(46163),r(40344),r(40338),r(48131),r(36089),r(55334),r(75557),r(19440),r(99488),r(59893),r(97393),r(98222),r(61039),r(24296),r(66398),r(59509)]),t.exports=n},46163:function(t,e,r){"use strict";t.exports=r(15154)},96881:function(t,e,r){"use strict";t.exports=r(64943)},50581:function(t,e,r){"use strict";t.exports=r(21164)},55334:function(t,e,r){"use strict";t.exports=r(54186)},65317:function(t,e,r){"use strict";t.exports=r(94873)},10021:function(t,e,r){"use strict";t.exports=r(67618)},54201:function(t,e,r){"use strict";t.exports=r(58810)},5861:function(t,e,r){"use strict";t.exports=r(20593)},16122:function(t,e,r){"use strict";t.exports=r(29396)},83043:function(t,e,r){"use strict";t.exports=r(13551)},48131:function(t,e,r){"use strict";t.exports=r(46858)},47582:function(t,e,r){"use strict";t.exports=r(17988)},21641:function(t,e,r){"use strict";t.exports=r(68868)},96268:function(t,e,r){"use strict";t.exports=r(20467)},19440:function(t,e,r){"use strict";t.exports=r(91271)},99488:function(t,e,r){"use strict";t.exports=r(21461)},97393:function(t,e,r){"use strict";t.exports=r(85956)},25743:function(t,e,r){"use strict";t.exports=r(52979)},66398:function(t,e,r){"use strict";t.exports=r(32275)},17280:function(t,e,r){"use strict";t.exports=r(6419)},77900:function(t,e,r){"use strict";t.exports=r(61510)},81299:function(t,e,r){"use strict";t.exports=r(87619)},93005:function(t,e,r){"use strict";t.exports=r(93601)},40344:function(t,e,r){"use strict";t.exports=r(96595)},47645:function(t,e,r){"use strict";t.exports=r(70954)},6197:function(t,e,r){"use strict";t.exports=r(47462)},4534:function(t,e,r){"use strict";t.exports=r(17659)},85461:function(t,e,r){"use strict";t.exports=r(19990)},82884:function(t){"use strict";t.exports=[{path:"",backoff:0},{path:"M-2.4,-3V3L0.6,0Z",backoff:.6},{path:"M-3.7,-2.5V2.5L1.3,0Z",backoff:1.3},{path:"M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z",backoff:1.55},{path:"M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z",backoff:1.6},{path:"M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z",backoff:2},{path:"M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z",backoff:0,noRotate:!0},{path:"M2,2V-2H-2V2Z",backoff:0,noRotate:!0}]},50215:function(t,e,r){"use strict";var n=r(82884),i=r(41940),a=r(85555),o=r(44467).templatedArray;r(24695),t.exports=o("annotation",{visible:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},text:{valType:"string",editType:"calc+arraydraw"},textangle:{valType:"angle",dflt:0,editType:"calc+arraydraw"},font:i({editType:"calc+arraydraw",colorEditType:"arraydraw"}),width:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},height:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},align:{valType:"enumerated",values:["left","center","right"],dflt:"center",editType:"arraydraw"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"arraydraw"},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},bordercolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},borderpad:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},borderwidth:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},showarrow:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},arrowcolor:{valType:"color",editType:"arraydraw"},arrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},startarrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},arrowside:{valType:"flaglist",flags:["end","start"],extras:["none"],dflt:"end",editType:"arraydraw"},arrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},startarrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},arrowwidth:{valType:"number",min:.1,editType:"calc+arraydraw"},standoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},startstandoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},ax:{valType:"any",editType:"calc+arraydraw"},ay:{valType:"any",editType:"calc+arraydraw"},axref:{valType:"enumerated",dflt:"pixel",values:["pixel",a.idRegex.x.toString()],editType:"calc"},ayref:{valType:"enumerated",dflt:"pixel",values:["pixel",a.idRegex.y.toString()],editType:"calc"},xref:{valType:"enumerated",values:["paper",a.idRegex.x.toString()],editType:"calc"},x:{valType:"any",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},xshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},yref:{valType:"enumerated",values:["paper",a.idRegex.y.toString()],editType:"calc"},y:{valType:"any",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"auto",editType:"calc+arraydraw"},yshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},clicktoshow:{valType:"enumerated",values:[!1,"onoff","onout"],dflt:!1,editType:"arraydraw"},xclick:{valType:"any",editType:"arraydraw"},yclick:{valType:"any",editType:"arraydraw"},hovertext:{valType:"string",editType:"arraydraw"},hoverlabel:{bgcolor:{valType:"color",editType:"arraydraw"},bordercolor:{valType:"color",editType:"arraydraw"},font:i({editType:"arraydraw"}),editType:"arraydraw"},captureevents:{valType:"boolean",editType:"arraydraw"},editType:"calc",_deprecated:{ref:{valType:"string",editType:"calc"}}})},3749:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(92605).draw;function o(t){var e=t._fullLayout;n.filterVisible(e.annotations).forEach((function(e){var r=i.getFromId(t,e.xref),n=i.getFromId(t,e.yref),a=i.getRefType(e.xref),o=i.getRefType(e.yref);e._extremes={},"range"===a&&s(e,r),"range"===o&&s(e,n)}))}function s(t,e){var r,n=e._id,a=n.charAt(0),o=t[a],s=t["a"+a],l=t[a+"ref"],u=t["a"+a+"ref"],c=t["_"+a+"padplus"],f=t["_"+a+"padminus"],h={x:1,y:-1}[a]*t[a+"shift"],p=3*t.arrowsize*t.arrowwidth||0,d=p+h,v=p-h,g=3*t.startarrowsize*t.arrowwidth||0,y=g+h,m=g-h;if(u===l){var x=i.findExtremes(e,[e.r2c(o)],{ppadplus:d,ppadminus:v}),b=i.findExtremes(e,[e.r2c(s)],{ppadplus:Math.max(c,y),ppadminus:Math.max(f,m)});r={min:[x.min[0],b.min[0]],max:[x.max[0],b.max[0]]}}else y=s?y+s:y,m=s?m-s:m,r=i.findExtremes(e,[e.r2c(o)],{ppadplus:Math.max(c,d,y),ppadminus:Math.max(f,v,m)});t._extremes[n]=r}t.exports=function(t){var e=t._fullLayout;if(n.filterVisible(e.annotations).length&&t._fullData.length)return n.syncOrAsync([a,o],t)}},44317:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(44467).arrayEditor;function o(t,e){var r,n,i,a,o,l,u,c=t._fullLayout.annotations,f=[],h=[],p=[],d=(e||[]).length;for(r=0;r<c.length;r++)if(a=(i=c[r]).clicktoshow){for(n=0;n<d;n++)if(l=(o=e[n]).xaxis,u=o.yaxis,l._id===i.xref&&u._id===i.yref&&l.d2r(o.x)===s(i._xclick,l)&&u.d2r(o.y)===s(i._yclick,u)){(i.visible?"onout"===a?h:p:f).push(r);break}n===d&&i.visible&&"onout"===a&&h.push(r)}return{on:f,off:h,explicitOff:p}}function s(t,e){return"log"===e.type?e.l2r(t):e.d2r(t)}t.exports={hasClickToShow:function(t,e){var r=o(t,e);return r.on.length>0||r.explicitOff.length>0},onClick:function(t,e){var r,s,l=o(t,e),u=l.on,c=l.off.concat(l.explicitOff),f={},h=t._fullLayout.annotations;if(u.length||c.length){for(r=0;r<u.length;r++)(s=a(t.layout,"annotations",h[u[r]])).modifyItem("visible",!0),n.extendFlat(f,s.getUpdateObj());for(r=0;r<c.length;r++)(s=a(t.layout,"annotations",h[c[r]])).modifyItem("visible",!1),n.extendFlat(f,s.getUpdateObj());return i.call("update",t,{},f)}}}},25625:function(t,e,r){"use strict";var n=r(71828),i=r(7901);t.exports=function(t,e,r,a){a("opacity");var o=a("bgcolor"),s=a("bordercolor"),l=i.opacity(s);a("borderpad");var u=a("borderwidth"),c=a("showarrow");if(a("text",c?" ":r._dfltTitle.annotation),a("textangle"),n.coerceFont(a,"font",r.font),a("width"),a("align"),a("height")&&a("valign"),c){var f,h,p=a("arrowside");-1!==p.indexOf("end")&&(f=a("arrowhead"),h=a("arrowsize")),-1!==p.indexOf("start")&&(a("startarrowhead",f),a("startarrowsize",h)),a("arrowcolor",l?e.bordercolor:i.defaultLine),a("arrowwidth",2*(l&&u||1)),a("standoff"),a("startstandoff")}var d=a("hovertext"),v=r.hoverlabel||{};if(d){var g=a("hoverlabel.bgcolor",v.bgcolor||(i.opacity(o)?i.rgb(o):i.defaultLine)),y=a("hoverlabel.bordercolor",v.bordercolor||i.contrast(g));n.coerceFont(a,"hoverlabel.font",{family:v.font.family,size:v.font.size,color:v.font.color||y})}a("captureevents",!!d)}},94128:function(t,e,r){"use strict";var n=r(92770),i=r(58163);t.exports=function(t,e,r,a){e=e||{};var o="log"===r&&"linear"===e.type,s="linear"===r&&"log"===e.type;if(o||s)for(var l,u,c=t._fullLayout.annotations,f=e._id.charAt(0),h=0;h<c.length;h++)l=c[h],u="annotations["+h+"].",l[f+"ref"]===e._id&&p(f),l["a"+f+"ref"]===e._id&&p("a"+f);function p(t){var r=l[t],s=null;s=o?i(r,e.range):Math.pow(10,r),n(s)||(s=null),a(u+t,s)}}},84046:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(85501),o=r(25625),s=r(50215);function l(t,e,r){function a(r,i){return n.coerce(t,e,s,r,i)}var l=a("visible"),u=a("clicktoshow");if(l||u){o(t,e,r,a);for(var c=e.showarrow,f=["x","y"],h=[-10,-30],p={_fullLayout:r},d=0;d<2;d++){var v=f[d],g=i.coerceRef(t,e,p,v,"","paper");if("paper"!==g&&i.getFromId(p,g)._annIndices.push(e._index),i.coercePosition(e,p,a,g,v,.5),c){var y="a"+v,m=i.coerceRef(t,e,p,y,"pixel",["pixel","paper"]);"pixel"!==m&&m!==g&&(m=e[y]="pixel");var x="pixel"===m?h[d]:.4;i.coercePosition(e,p,a,m,y,x)}a(v+"anchor"),a(v+"shift")}if(n.noneOrAll(t,e,["x","y"]),c&&n.noneOrAll(t,e,["ax","ay"]),u){var b=a("xclick"),_=a("yclick");e._xclick=void 0===b?e.x:i.cleanPosition(b,p,e.xref),e._yclick=void 0===_?e.y:i.cleanPosition(_,p,e.yref)}}}t.exports=function(t,e){a(t,e,{name:"annotations",handleItemDefaults:l})}},92605:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(74875),o=r(71828),s=o.strTranslate,l=r(89298),u=r(7901),c=r(91424),f=r(30211),h=r(63893),p=r(6964),d=r(28569),v=r(44467).arrayEditor,g=r(13011);function y(t,e){var r=t._fullLayout.annotations[e]||{},n=l.getFromId(t,r.xref),i=l.getFromId(t,r.yref);n&&n.setScale(),i&&i.setScale(),x(t,r,e,!1,n,i)}function m(t,e,r,n,i){var a=i[r],o=i[r+"ref"],s=-1!==r.indexOf("y"),u="domain"===l.getRefType(o),c=s?n.h:n.w;return t?u?a+(s?-e:e)/t._length:t.p2r(t.r2p(a)+e):a+(s?-e:e)/c}function x(t,e,r,a,y,x){var b,_,w=t._fullLayout,T=t._fullLayout._size,k=t._context.edits;a?(b="annotation-"+a,_=a+".annotations"):(b="annotation",_="annotations");var A=v(t.layout,_,e),M=A.modifyBase,S=A.modifyItem,E=A.getUpdateObj;w._infolayer.selectAll("."+b+'[data-index="'+r+'"]').remove();var L="clip"+w._uid+"_ann"+r;if(e._input&&!1!==e.visible){var C={x:{},y:{}},P=+e.textangle||0,O=w._infolayer.append("g").classed(b,!0).attr("data-index",String(r)).style("opacity",e.opacity),I=O.append("g").classed("annotation-text-g",!0),D=k[e.showarrow?"annotationTail":"annotationPosition"],z=e.captureevents||k.annotationText||D,R=I.append("g").style("pointer-events",z?"all":null).call(p,"pointer").on("click",(function(){t._dragging=!1,t.emit("plotly_clickannotation",Z(n.event))}));e.hovertext&&R.on("mouseover",(function(){var r=e.hoverlabel,n=r.font,i=this.getBoundingClientRect(),a=t.getBoundingClientRect();f.loneHover({x0:i.left-a.left,x1:i.right-a.left,y:(i.top+i.bottom)/2-a.top,text:e.hovertext,color:r.bgcolor,borderColor:r.bordercolor,fontFamily:n.family,fontSize:n.size,fontColor:n.color},{container:w._hoverlayer.node(),outerContainer:w._paper.node(),gd:t})})).on("mouseout",(function(){f.loneUnhover(w._hoverlayer.node())}));var F=e.borderwidth,B=e.borderpad,N=F+B,j=R.append("rect").attr("class","bg").style("stroke-width",F+"px").call(u.stroke,e.bordercolor).call(u.fill,e.bgcolor),U=e.width||e.height,V=w._topclips.selectAll("#"+L).data(U?[0]:[]);V.enter().append("clipPath").classed("annclip",!0).attr("id",L).append("rect"),V.exit().remove();var H=e.font,q=w._meta?o.templateString(e.text,w._meta):e.text,G=R.append("text").classed("annotation-text",!0).text(q);k.annotationText?G.call(h.makeEditable,{delegate:R,gd:t}).call(Y).on("edit",(function(r){e.text=r,this.call(Y),S("text",r),y&&y.autorange&&M(y._name+".autorange",!0),x&&x.autorange&&M(x._name+".autorange",!0),i.call("_guiRelayout",t,E())})):G.call(Y)}else n.selectAll("#"+L).remove();function Z(t){var n={index:r,annotation:e._input,fullAnnotation:e,event:t};return a&&(n.subplotId=a),n}function Y(r){return r.call(c.font,H).attr({"text-anchor":{left:"start",right:"end"}[e.align]||"middle"}),h.convertToTspans(r,t,W),r}function W(){var r=G.selectAll("a");1===r.size()&&r.text()===G.text()&&R.insert("a",":first-child").attr({"xlink:xlink:href":r.attr("xlink:href"),"xlink:xlink:show":r.attr("xlink:show")}).style({cursor:"pointer"}).node().appendChild(j.node());var n=R.select(".annotation-text-math-group"),f=!n.empty(),v=c.bBox((f?n:G).node()),b=v.width,_=v.height,A=e.width||b,z=e.height||_,B=Math.round(A+2*N),H=Math.round(z+2*N);function q(t,e){return"auto"===e&&(e=t<1/3?"left":t>2/3?"right":"center"),{center:0,middle:0,left:.5,bottom:-.5,right:-.5,top:.5}[e]}for(var Y=!1,W=["x","y"],X=0;X<W.length;X++){var J,K,$,Q,tt,et=W[X],rt=e[et+"ref"]||et,nt=e["a"+et+"ref"],it={x:y,y:x}[et],at=(P+("x"===et?0:-90))*Math.PI/180,ot=B*Math.cos(at),st=H*Math.sin(at),lt=Math.abs(ot)+Math.abs(st),ut=e[et+"anchor"],ct=e[et+"shift"]*("x"===et?1:-1),ft=C[et],ht=l.getRefType(rt);if(it&&"domain"!==ht){var pt=it.r2fraction(e[et]);(pt<0||pt>1)&&(nt===rt?((pt=it.r2fraction(e["a"+et]))<0||pt>1)&&(Y=!0):Y=!0),J=it._offset+it.r2p(e[et]),Q=.5}else{var dt="domain"===ht;"x"===et?($=e[et],J=dt?it._offset+it._length*$:J=T.l+T.w*$):($=1-e[et],J=dt?it._offset+it._length*$:J=T.t+T.h*$),Q=e.showarrow?.5:$}if(e.showarrow){ft.head=J;var vt=e["a"+et];if(tt=ot*q(.5,e.xanchor)-st*q(.5,e.yanchor),nt===rt){var gt=l.getRefType(nt);"domain"===gt?("y"===et&&(vt=1-vt),ft.tail=it._offset+it._length*vt):"paper"===gt?"y"===et?(vt=1-vt,ft.tail=T.t+T.h*vt):ft.tail=T.l+T.w*vt:ft.tail=it._offset+it.r2p(vt),K=tt}else ft.tail=J+vt,K=tt+vt;ft.text=ft.tail+tt;var yt=w["x"===et?"width":"height"];if("paper"===rt&&(ft.head=o.constrain(ft.head,1,yt-1)),"pixel"===nt){var mt=-Math.max(ft.tail-3,ft.text),xt=Math.min(ft.tail+3,ft.text)-yt;mt>0?(ft.tail+=mt,ft.text+=mt):xt>0&&(ft.tail-=xt,ft.text-=xt)}ft.tail+=ct,ft.head+=ct}else K=tt=lt*q(Q,ut),ft.text=J+tt;ft.text+=ct,tt+=ct,K+=ct,e["_"+et+"padplus"]=lt/2+K,e["_"+et+"padminus"]=lt/2-K,e["_"+et+"size"]=lt,e["_"+et+"shift"]=tt}if(Y)R.remove();else{var bt=0,_t=0;if("left"!==e.align&&(bt=(A-b)*("center"===e.align?.5:1)),"top"!==e.valign&&(_t=(z-_)*("middle"===e.valign?.5:1)),f)n.select("svg").attr({x:N+bt-1,y:N+_t}).call(c.setClipUrl,U?L:null,t);else{var wt=N+_t-v.top,Tt=N+bt-v.left;G.call(h.positionText,Tt,wt).call(c.setClipUrl,U?L:null,t)}V.select("rect").call(c.setRect,N,N,A,z),j.call(c.setRect,F/2,F/2,B-F,H-F),R.call(c.setTranslate,Math.round(C.x.text-B/2),Math.round(C.y.text-H/2)),I.attr({transform:"rotate("+P+","+C.x.text+","+C.y.text+")"});var kt,At=function(r,n){O.selectAll(".annotation-arrow-g").remove();var l=C.x.head,f=C.y.head,h=C.x.tail+r,p=C.y.tail+n,v=C.x.text+r,b=C.y.text+n,_=o.rotationXYMatrix(P,v,b),w=o.apply2DTransform(_),A=o.apply2DTransform2(_),L=+j.attr("width"),D=+j.attr("height"),z=v-.5*L,F=z+L,B=b-.5*D,N=B+D,U=[[z,B,z,N],[z,N,F,N],[F,N,F,B],[F,B,z,B]].map(A);if(!U.reduce((function(t,e){return t^!!o.segmentsIntersect(l,f,l+1e6,f+1e6,e[0],e[1],e[2],e[3])}),!1)){U.forEach((function(t){var e=o.segmentsIntersect(h,p,l,f,t[0],t[1],t[2],t[3]);e&&(h=e.x,p=e.y)}));var V=e.arrowwidth,H=e.arrowcolor,q=e.arrowside,G=O.append("g").style({opacity:u.opacity(H)}).classed("annotation-arrow-g",!0),Z=G.append("path").attr("d","M"+h+","+p+"L"+l+","+f).style("stroke-width",V+"px").call(u.stroke,u.rgb(H));if(g(Z,q,e),k.annotationPosition&&Z.node().parentNode&&!a){var Y=l,W=f;if(e.standoff){var X=Math.sqrt(Math.pow(l-h,2)+Math.pow(f-p,2));Y+=e.standoff*(h-l)/X,W+=e.standoff*(p-f)/X}var J,K,$=G.append("path").classed("annotation-arrow",!0).classed("anndrag",!0).classed("cursor-move",!0).attr({d:"M3,3H-3V-3H3ZM0,0L"+(h-Y)+","+(p-W),transform:s(Y,W)}).style("stroke-width",V+6+"px").call(u.stroke,"rgba(0,0,0,0)").call(u.fill,"rgba(0,0,0,0)");d.init({element:$.node(),gd:t,prepFn:function(){var t=c.getTranslate(R);J=t.x,K=t.y,y&&y.autorange&&M(y._name+".autorange",!0),x&&x.autorange&&M(x._name+".autorange",!0)},moveFn:function(t,r){var n=w(J,K),i=n[0]+t,a=n[1]+r;R.call(c.setTranslate,i,a),S("x",m(y,t,"x",T,e)),S("y",m(x,r,"y",T,e)),e.axref===e.xref&&S("ax",m(y,t,"ax",T,e)),e.ayref===e.yref&&S("ay",m(x,r,"ay",T,e)),G.attr("transform",s(t,r)),I.attr({transform:"rotate("+P+","+i+","+a+")"})},doneFn:function(){i.call("_guiRelayout",t,E());var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}};e.showarrow&&At(0,0),D&&d.init({element:R.node(),gd:t,prepFn:function(){kt=I.attr("transform")},moveFn:function(t,r){var n="pointer";if(e.showarrow)e.axref===e.xref?S("ax",m(y,t,"ax",T,e)):S("ax",e.ax+t),e.ayref===e.yref?S("ay",m(x,r,"ay",T.w,e)):S("ay",e.ay+r),At(t,r);else{if(a)return;var i,o;if(y)i=m(y,t,"x",T,e);else{var l=e._xsize/T.w,u=e.x+(e._xshift-e.xshift)/T.w-l/2;i=d.align(u+t/T.w,l,0,1,e.xanchor)}if(x)o=m(x,r,"y",T,e);else{var c=e._ysize/T.h,f=e.y-(e._yshift+e.yshift)/T.h-c/2;o=d.align(f-r/T.h,c,0,1,e.yanchor)}S("x",i),S("y",o),y&&x||(n=d.getCursor(y?.5:i,x?.5:o,e.xanchor,e.yanchor))}I.attr({transform:s(t,r)+kt}),p(R,n)},clickFn:function(r,n){e.captureevents&&t.emit("plotly_clickannotation",Z(n))},doneFn:function(){p(R),i.call("_guiRelayout",t,E());var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}}t.exports={draw:function(t){var e=t._fullLayout;e._infolayer.selectAll(".annotation").remove();for(var r=0;r<e.annotations.length;r++)e.annotations[r].visible&&y(t,r);return a.previousPromises(t)},drawOne:y,drawRaw:x}},13011:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(82884),o=r(71828),s=o.strScale,l=o.strRotate,u=o.strTranslate;t.exports=function(t,e,r){var o,c,f,h,p=t.node(),d=a[r.arrowhead||0],v=a[r.startarrowhead||0],g=(r.arrowwidth||1)*(r.arrowsize||1),y=(r.arrowwidth||1)*(r.startarrowsize||1),m=e.indexOf("start")>=0,x=e.indexOf("end")>=0,b=d.backoff*g+r.standoff,_=v.backoff*y+r.startstandoff;if("line"===p.nodeName){o={x:+t.attr("x1"),y:+t.attr("y1")},c={x:+t.attr("x2"),y:+t.attr("y2")};var w=o.x-c.x,T=o.y-c.y;if(h=(f=Math.atan2(T,w))+Math.PI,b&&_&&b+_>Math.sqrt(w*w+T*T))return void D();if(b){if(b*b>w*w+T*T)return void D();var k=b*Math.cos(f),A=b*Math.sin(f);c.x+=k,c.y+=A,t.attr({x2:c.x,y2:c.y})}if(_){if(_*_>w*w+T*T)return void D();var M=_*Math.cos(f),S=_*Math.sin(f);o.x-=M,o.y-=S,t.attr({x1:o.x,y1:o.y})}}else if("path"===p.nodeName){var E=p.getTotalLength(),L="";if(E<b+_)return void D();var C=p.getPointAtLength(0),P=p.getPointAtLength(.1);f=Math.atan2(C.y-P.y,C.x-P.x),o=p.getPointAtLength(Math.min(_,E)),L="0px,"+_+"px,";var O=p.getPointAtLength(E),I=p.getPointAtLength(E-.1);h=Math.atan2(O.y-I.y,O.x-I.x),c=p.getPointAtLength(Math.max(0,E-b)),L+=E-(L?_+b:b)+"px,"+E+"px",t.style("stroke-dasharray",L)}function D(){t.style("stroke-dasharray","0px,100px")}function z(e,a,o,c){e.path&&(e.noRotate&&(o=0),n.select(p.parentNode).append("path").attr({class:t.attr("class"),d:e.path,transform:u(a.x,a.y)+l(180*o/Math.PI)+s(c)}).style({fill:i.rgb(r.arrowcolor),"stroke-width":0}))}m&&z(v,o,f,y),x&&z(d,c,h,g)}},32745:function(t,e,r){"use strict";var n=r(92605),i=r(44317);t.exports={moduleType:"component",name:"annotations",layoutAttributes:r(50215),supplyLayoutDefaults:r(84046),includeBasePlot:r(76325)("annotations"),calcAutorange:r(3749),draw:n.draw,drawOne:n.drawOne,drawRaw:n.drawRaw,hasClickToShow:i.hasClickToShow,onClick:i.onClick,convertCoords:r(94128)}},26997:function(t,e,r){"use strict";var n=r(50215),i=r(30962).overrideAll,a=r(44467).templatedArray;t.exports=i(a("annotation",{visible:n.visible,x:{valType:"any"},y:{valType:"any"},z:{valType:"any"},ax:{valType:"number"},ay:{valType:"number"},xanchor:n.xanchor,xshift:n.xshift,yanchor:n.yanchor,yshift:n.yshift,text:n.text,textangle:n.textangle,font:n.font,width:n.width,height:n.height,opacity:n.opacity,align:n.align,valign:n.valign,bgcolor:n.bgcolor,bordercolor:n.bordercolor,borderpad:n.borderpad,borderwidth:n.borderwidth,showarrow:n.showarrow,arrowcolor:n.arrowcolor,arrowhead:n.arrowhead,startarrowhead:n.startarrowhead,arrowside:n.arrowside,arrowsize:n.arrowsize,startarrowsize:n.startarrowsize,arrowwidth:n.arrowwidth,standoff:n.standoff,startstandoff:n.startstandoff,hovertext:n.hovertext,hoverlabel:n.hoverlabel,captureevents:n.captureevents}),"calc","from-root")},5485:function(t,e,r){"use strict";var n=r(71828),i=r(89298);function a(t,e){var r=e.fullSceneLayout.domain,a=e.fullLayout._size,o={pdata:null,type:"linear",autorange:!1,range:[-1/0,1/0]};t._xa={},n.extendFlat(t._xa,o),i.setConvert(t._xa),t._xa._offset=a.l+r.x[0]*a.w,t._xa.l2p=function(){return.5*(1+t._pdata[0]/t._pdata[3])*a.w*(r.x[1]-r.x[0])},t._ya={},n.extendFlat(t._ya,o),i.setConvert(t._ya),t._ya._offset=a.t+(1-r.y[1])*a.h,t._ya.l2p=function(){return.5*(1-t._pdata[1]/t._pdata[3])*a.h*(r.y[1]-r.y[0])}}t.exports=function(t){for(var e=t.fullSceneLayout.annotations,r=0;r<e.length;r++)a(e[r],t);t.fullLayout._infolayer.selectAll(".annotation-"+t.id).remove()}},20226:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(85501),o=r(25625),s=r(26997);function l(t,e,r,a){function l(r,i){return n.coerce(t,e,s,r,i)}function u(t){var n=t+"axis",a={_fullLayout:{}};return a._fullLayout[n]=r[n],i.coercePosition(e,a,l,t,t,.5)}l("visible")&&(o(t,e,a.fullLayout,l),u("x"),u("y"),u("z"),n.noneOrAll(t,e,["x","y","z"]),e.xref="x",e.yref="y",e.zref="z",l("xanchor"),l("yanchor"),l("xshift"),l("yshift"),e.showarrow&&(e.axref="pixel",e.ayref="pixel",l("ax",-10),l("ay",-30),n.noneOrAll(t,e,["ax","ay"])))}t.exports=function(t,e,r){a(t,e,{name:"annotations",handleItemDefaults:l,fullLayout:r.fullLayout})}},82188:function(t,e,r){"use strict";var n=r(92605).drawRaw,i=r(63538),a=["x","y","z"];t.exports=function(t){for(var e=t.fullSceneLayout,r=t.dataScale,o=e.annotations,s=0;s<o.length;s++){for(var l=o[s],u=!1,c=0;c<3;c++){var f=a[c],h=l[f],p=e[f+"axis"].r2fraction(h);if(p<0||p>1){u=!0;break}}u?t.fullLayout._infolayer.select(".annotation-"+t.id+'[data-index="'+s+'"]').remove():(l._pdata=i(t.glplot.cameraParams,[e.xaxis.r2l(l.x)*r[0],e.yaxis.r2l(l.y)*r[1],e.zaxis.r2l(l.z)*r[2]]),n(t.graphDiv,l,s,t.id,l._xa,l._ya))}}},2468:function(t,e,r){"use strict";var n=r(73972),i=r(71828);t.exports={moduleType:"component",name:"annotations3d",schema:{subplots:{scene:{annotations:r(26997)}}},layoutAttributes:r(26997),handleDefaults:r(20226),includeBasePlot:function(t,e){var r=n.subplotsRegistry.gl3d;if(r)for(var a=r.attrRegex,o=Object.keys(t),s=0;s<o.length;s++){var l=o[s];a.test(l)&&(t[l].annotations||[]).length&&(i.pushUnique(e._basePlotModules,r),i.pushUnique(e._subplots.gl3d,l))}},convert:r(5485),draw:r(82188)}},7561:function(t,e,r){"use strict";t.exports=r(63489),r(94338),r(3961),r(38751),r(86825),r(37715),r(99384),r(43805),r(88874),r(83290),r(29108),r(55422),r(94320),r(31320),r(51367),r(21457)},72201:function(t,e,r){"use strict";var n=r(7561),i=r(71828),a=r(50606),o=a.EPOCHJD,s=a.ONEDAY,l={valType:"enumerated",values:i.sortObjectKeys(n.calendars),editType:"calc",dflt:"gregorian"},u=function(t,e,r,n){var a={};return a[r]=l,i.coerce(t,e,a,r,n)},c="##",f={d:{0:"dd","-":"d"},e:{0:"d","-":"d"},a:{0:"D","-":"D"},A:{0:"DD","-":"DD"},j:{0:"oo","-":"o"},W:{0:"ww","-":"w"},m:{0:"mm","-":"m"},b:{0:"M","-":"M"},B:{0:"MM","-":"MM"},y:{0:"yy","-":"yy"},Y:{0:"yyyy","-":"yyyy"},U:c,w:c,c:{0:"D M d %X yyyy","-":"D M d %X yyyy"},x:{0:"mm/dd/yyyy","-":"mm/dd/yyyy"}},h={};function p(t){var e=h[t];return e||(h[t]=n.instance(t))}function d(t){return i.extendFlat({},l,{description:t})}function v(t){return"Sets the calendar system to use with `"+t+"` date data."}var g={xcalendar:d(v("x"))},y=i.extendFlat({},g,{ycalendar:d(v("y"))}),m=i.extendFlat({},y,{zcalendar:d(v("z"))}),x=d(["Sets the calendar system to use for `range` and `tick0`","if this is a date axis. This does not set the calendar for","interpreting data on this axis, that's specified in the trace","or via the global `layout.calendar`"].join(" "));t.exports={moduleType:"component",name:"calendars",schema:{traces:{scatter:y,bar:y,box:y,heatmap:y,contour:y,histogram:y,histogram2d:y,histogram2dcontour:y,scatter3d:m,surface:m,mesh3d:m,scattergl:y,ohlc:g,candlestick:g},layout:{calendar:d(["Sets the default calendar system to use for interpreting and","displaying dates throughout the plot."].join(" "))},subplots:{xaxis:{calendar:x},yaxis:{calendar:x},scene:{xaxis:{calendar:x},yaxis:{calendar:x},zaxis:{calendar:x}},polar:{radialaxis:{calendar:x}}},transforms:{filter:{valuecalendar:d(["WARNING: All transforms are deprecated and may be removed from the API in next major version.","Sets the calendar system to use for `value`, if it is a date."].join(" ")),targetcalendar:d(["WARNING: All transforms are deprecated and may be removed from the API in next major version.","Sets the calendar system to use for `target`, if it is an","array of dates. If `target` is a string (eg *x*) we use the","corresponding trace attribute (eg `xcalendar`) if it exists,","even if `targetcalendar` is provided."].join(" "))}}},layoutAttributes:l,handleDefaults:u,handleTraceDefaults:function(t,e,r,n){for(var i=0;i<r.length;i++)u(t,e,r[i]+"calendar",n.calendar)},CANONICAL_SUNDAY:{chinese:"2000-01-02",coptic:"2000-01-03",discworld:"2000-01-03",ethiopian:"2000-01-05",hebrew:"5000-01-01",islamic:"1000-01-02",julian:"2000-01-03",mayan:"5000-01-01",nanakshahi:"1000-01-05",nepali:"2000-01-05",persian:"1000-01-01",jalali:"1000-01-01",taiwan:"1000-01-04",thai:"2000-01-04",ummalqura:"1400-01-06"},CANONICAL_TICK:{chinese:"2000-01-01",coptic:"2000-01-01",discworld:"2000-01-01",ethiopian:"2000-01-01",hebrew:"5000-01-01",islamic:"1000-01-01",julian:"2000-01-01",mayan:"5000-01-01",nanakshahi:"1000-01-01",nepali:"2000-01-01",persian:"1000-01-01",jalali:"1000-01-01",taiwan:"1000-01-01",thai:"2000-01-01",ummalqura:"1400-01-01"},DFLTRANGE:{chinese:["2000-01-01","2001-01-01"],coptic:["1700-01-01","1701-01-01"],discworld:["1800-01-01","1801-01-01"],ethiopian:["2000-01-01","2001-01-01"],hebrew:["5700-01-01","5701-01-01"],islamic:["1400-01-01","1401-01-01"],julian:["2000-01-01","2001-01-01"],mayan:["5200-01-01","5201-01-01"],nanakshahi:["0500-01-01","0501-01-01"],nepali:["2000-01-01","2001-01-01"],persian:["1400-01-01","1401-01-01"],jalali:["1400-01-01","1401-01-01"],taiwan:["0100-01-01","0101-01-01"],thai:["2500-01-01","2501-01-01"],ummalqura:["1400-01-01","1401-01-01"]},getCal:p,worldCalFmt:function(t,e,r){for(var n,i,a,l,u,h=Math.floor((e+.05)/s)+o,d=p(r).fromJD(h),v=0;-1!==(v=t.indexOf("%",v));)"0"===(n=t.charAt(v+1))||"-"===n||"_"===n?(a=3,i=t.charAt(v+2),"_"===n&&(n="-")):(i=n,n="0",a=2),(l=f[i])?(u=l===c?c:d.formatDate(l[n]),t=t.substr(0,v)+u+t.substr(v+a),v+=u.length):v+=a;return t}}},22399:function(t,e){"use strict";e.defaults=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],e.defaultLine="#444",e.lightLine="#eee",e.background="#fff",e.borderLine="#BEC8D9",e.lightFraction=1e3/11},7901:function(t,e,r){"use strict";var n=r(84267),i=r(92770),a=r(73627).isTypedArray,o=t.exports={},s=r(22399);o.defaults=s.defaults;var l=o.defaultLine=s.defaultLine;o.lightLine=s.lightLine;var u=o.background=s.background;function c(t){if(i(t)||"string"!=typeof t)return t;var e=t.trim();if("rgb"!==e.substr(0,3))return t;var r=e.match(/^rgba?\s*\(([^()]*)\)$/);if(!r)return t;var n=r[1].trim().split(/\s*[\s,]\s*/),a="a"===e.charAt(3)&&4===n.length;if(!a&&3!==n.length)return t;for(var o=0;o<n.length;o++){if(!n[o].length)return t;if(n[o]=Number(n[o]),!(n[o]>=0))return t;if(3===o)n[o]>1&&(n[o]=1);else if(n[o]>=1)return t}var s=Math.round(255*n[0])+", "+Math.round(255*n[1])+", "+Math.round(255*n[2]);return a?"rgba("+s+", "+n[3]+")":"rgb("+s+")"}o.tinyRGB=function(t){var e=t.toRgb();return"rgb("+Math.round(e.r)+", "+Math.round(e.g)+", "+Math.round(e.b)+")"},o.rgb=function(t){return o.tinyRGB(n(t))},o.opacity=function(t){return t?n(t).getAlpha():0},o.addOpacity=function(t,e){var r=n(t).toRgb();return"rgba("+Math.round(r.r)+", "+Math.round(r.g)+", "+Math.round(r.b)+", "+e+")"},o.combine=function(t,e){var r=n(t).toRgb();if(1===r.a)return n(t).toRgbString();var i=n(e||u).toRgb(),a=1===i.a?i:{r:255*(1-i.a)+i.r*i.a,g:255*(1-i.a)+i.g*i.a,b:255*(1-i.a)+i.b*i.a},o={r:a.r*(1-r.a)+r.r*r.a,g:a.g*(1-r.a)+r.g*r.a,b:a.b*(1-r.a)+r.b*r.a};return n(o).toRgbString()},o.contrast=function(t,e,r){var i=n(t);return 1!==i.getAlpha()&&(i=n(o.combine(t,u))),(i.isDark()?e?i.lighten(e):u:r?i.darken(r):l).toString()},o.stroke=function(t,e){var r=n(e);t.style({stroke:o.tinyRGB(r),"stroke-opacity":r.getAlpha()})},o.fill=function(t,e){var r=n(e);t.style({fill:o.tinyRGB(r),"fill-opacity":r.getAlpha()})},o.clean=function(t){if(t&&"object"==typeof t){var e,r,n,i,s=Object.keys(t);for(e=0;e<s.length;e++)if(i=t[n=s[e]],"color"===n.substr(n.length-5))if(Array.isArray(i))for(r=0;r<i.length;r++)i[r]=c(i[r]);else t[n]=c(i);else if("colorscale"===n.substr(n.length-10)&&Array.isArray(i))for(r=0;r<i.length;r++)Array.isArray(i[r])&&(i[r][1]=c(i[r][1]));else if(Array.isArray(i)){var l=i[0];if(!Array.isArray(l)&&l&&"object"==typeof l)for(r=0;r<i.length;r++)o.clean(i[r])}else i&&"object"==typeof i&&!a(i)&&o.clean(i)}}},63583:function(t,e,r){"use strict";var n=r(13838),i=r(41940),a=r(1426).extendFlat,o=r(30962).overrideAll;t.exports=o({orientation:{valType:"enumerated",values:["h","v"],dflt:"v"},thicknessmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"pixels"},thickness:{valType:"number",min:0,dflt:30},lenmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"fraction"},len:{valType:"number",min:0,dflt:1},x:{valType:"number",min:-2,max:3},xanchor:{valType:"enumerated",values:["left","center","right"]},xpad:{valType:"number",min:0,dflt:10},y:{valType:"number",min:-2,max:3},yanchor:{valType:"enumerated",values:["top","middle","bottom"]},ypad:{valType:"number",min:0,dflt:10},outlinecolor:n.linecolor,outlinewidth:n.linewidth,bordercolor:n.linecolor,borderwidth:{valType:"number",min:0,dflt:0},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)"},tickmode:n.minor.tickmode,nticks:n.nticks,tick0:n.tick0,dtick:n.dtick,tickvals:n.tickvals,ticktext:n.ticktext,ticks:a({},n.ticks,{dflt:""}),ticklabeloverflow:a({},n.ticklabeloverflow,{}),ticklabelposition:{valType:"enumerated",values:["outside","inside","outside top","inside top","outside left","inside left","outside right","inside right","outside bottom","inside bottom"],dflt:"outside"},ticklen:n.ticklen,tickwidth:n.tickwidth,tickcolor:n.tickcolor,ticklabelstep:n.ticklabelstep,showticklabels:n.showticklabels,tickfont:i({}),tickangle:n.tickangle,tickformat:n.tickformat,tickformatstops:n.tickformatstops,tickprefix:n.tickprefix,showtickprefix:n.showtickprefix,ticksuffix:n.ticksuffix,showticksuffix:n.showticksuffix,separatethousands:n.separatethousands,exponentformat:n.exponentformat,minexponent:n.minexponent,showexponent:n.showexponent,title:{text:{valType:"string"},font:i({}),side:{valType:"enumerated",values:["right","top","bottom"]}},_deprecated:{title:{valType:"string"},titlefont:i({}),titleside:{valType:"enumerated",values:["right","top","bottom"],dflt:"top"}}},"colorbars","from-root")},30939:function(t){"use strict";t.exports={cn:{colorbar:"colorbar",cbbg:"cbbg",cbfill:"cbfill",cbfills:"cbfills",cbline:"cbline",cblines:"cblines",cbaxis:"cbaxis",cbtitleunshift:"cbtitleunshift",cbtitle:"cbtitle",cboutline:"cboutline",crisp:"crisp",jsPlaceholder:"js-placeholder"}}},62499:function(t,e,r){"use strict";var n=r(71828),i=r(44467),a=r(26218),o=r(38701),s=r(96115),l=r(89426),u=r(63583);t.exports=function(t,e,r){var c=i.newContainer(e,"colorbar"),f=t.colorbar||{};function h(t,e){return n.coerce(f,c,u,t,e)}var p=r.margin||{t:0,b:0,l:0,r:0},d=r.width-p.l-p.r,v=r.height-p.t-p.b,g="v"===h("orientation"),y=h("thicknessmode");h("thickness","fraction"===y?30/(g?d:v):30);var m=h("lenmode");h("len","fraction"===m?1:g?v:d),h("x",g?1.02:.5),h("xanchor",g?"left":"center"),h("xpad"),h("y",g?.5:1.02),h("yanchor",g?"middle":"bottom"),h("ypad"),n.noneOrAll(f,c,["x","y"]),h("outlinecolor"),h("outlinewidth"),h("bordercolor"),h("borderwidth"),h("bgcolor");var x=n.coerce(f,c,{ticklabelposition:{valType:"enumerated",dflt:"outside",values:g?["outside","inside","outside top","inside top","outside bottom","inside bottom"]:["outside","inside","outside left","inside left","outside right","inside right"]}},"ticklabelposition");h("ticklabeloverflow",-1!==x.indexOf("inside")?"hide past domain":"hide past div"),a(f,c,h,"linear");var b=r.font,_={outerTicks:!1,font:b};-1!==x.indexOf("inside")&&(_.bgColor="black"),l(f,c,h,"linear",_),s(f,c,h,"linear",_),o(f,c,h,"linear",_),h("title.text",r._dfltTitle.colorbar);var w=c.tickfont,T=n.extendFlat({},w,{color:b.color,size:n.bigFont(w.size)});n.coerceFont(h,"title.font",T),h("title.side",g?"top":"right")}},98981:function(t,e,r){"use strict";var n=r(39898),i=r(84267),a=r(74875),o=r(73972),s=r(89298),l=r(28569),u=r(71828),c=u.strTranslate,f=r(1426).extendFlat,h=r(6964),p=r(91424),d=r(7901),v=r(92998),g=r(63893),y=r(52075).flipScale,m=r(71453),x=r(52830),b=r(13838),_=r(18783),w=_.LINE_SPACING,T=_.FROM_TL,k=_.FROM_BR,A=r(30939).cn;t.exports={draw:function(t){var e=t._fullLayout._infolayer.selectAll("g."+A.colorbar).data(function(t){var e,r,n,i,a=t._fullLayout,o=t.calcdata,s=[];function l(t){return f(t,{_fillcolor:null,_line:{color:null,width:null,dash:null},_levels:{start:null,end:null,size:null},_filllevels:null,_fillgradient:null,_zrange:null})}function u(){"function"==typeof i.calc?i.calc(t,n,e):(e._fillgradient=r.reversescale?y(r.colorscale):r.colorscale,e._zrange=[r[i.min],r[i.max]])}for(var c=0;c<o.length;c++){var h=o[c],p=(n=h[0].trace)._module.colorbar;if(!0===n.visible&&p)for(var d=Array.isArray(p),v=d?p:[p],g=0;g<v.length;g++){var m=(i=v[g]).container;(r=m?n[m]:n)&&r.showscale&&((e=l(r.colorbar))._id="cb"+n.uid+(d&&m?"-"+m:""),e._traceIndex=n.index,e._propPrefix=(m?m+".":"")+"colorbar.",e._meta=n._meta,u(),s.push(e))}}for(var x in a._colorAxes)if((r=a[x]).showscale){var b=a._colorAxes[x];(e=l(r.colorbar))._id="cb"+x,e._propPrefix=x+".colorbar.",e._meta=a._meta,i={min:"cmin",max:"cmax"},"heatmap"!==b[0]&&(n=b[1],i.calc=n._module.colorbar.calc),u(),s.push(e)}return s}(t),(function(t){return t._id}));e.enter().append("g").attr("class",(function(t){return t._id})).classed(A.colorbar,!0),e.each((function(e){var r=n.select(this);u.ensureSingle(r,"rect",A.cbbg),u.ensureSingle(r,"g",A.cbfills),u.ensureSingle(r,"g",A.cblines),u.ensureSingle(r,"g",A.cbaxis,(function(t){t.classed(A.crisp,!0)})),u.ensureSingle(r,"g",A.cbtitleunshift,(function(t){t.append("g").classed(A.cbtitle,!0)})),u.ensureSingle(r,"rect",A.cboutline);var y=function(t,e,r){var o="v"===e.orientation,l=e.len,h=e.lenmode,y=e.thickness,_=e.thicknessmode,M=e.outlinewidth,S=e.borderwidth,E=e.bgcolor,L=e.xanchor,C=e.yanchor,P=e.xpad,O=e.ypad,I=e.x,D=o?e.y:1-e.y,z=r._fullLayout,R=z._size,F=e._fillcolor,B=e._line,N=e.title,j=N.side,U=e._zrange||n.extent(("function"==typeof F?F:B.color).domain()),V="function"==typeof B.color?B.color:function(){return B.color},H="function"==typeof F?F:function(){return F},q=e._levels,G=function(t,e,r){var n,i,a=e._levels,o=[],s=[],l=a.end+a.size/100,u=a.size,c=1.001*r[0]-.001*r[1],f=1.001*r[1]-.001*r[0];for(i=0;i<1e5&&(n=a.start+i*u,!(u>0?n>=l:n<=l));i++)n>c&&n<f&&o.push(n);if(e._fillgradient)s=[0];else if("function"==typeof e._fillcolor){var h=e._filllevels;if(h)for(l=h.end+h.size/100,u=h.size,i=0;i<1e5&&(n=h.start+i*u,!(u>0?n>=l:n<=l));i++)n>r[0]&&n<r[1]&&s.push(n);else(s=o.map((function(t){return t-a.size/2}))).push(s[s.length-1]+a.size)}else e._fillcolor&&"string"==typeof e._fillcolor&&(s=[0]);return a.size<0&&(o.reverse(),s.reverse()),{line:o,fill:s}}(0,e,U),Z=G.fill,Y=G.line,W=Math.round(y*("fraction"===_?o?R.w:R.h:1)),X=W/(o?R.w:R.h),J=Math.round(l*("fraction"===h?o?R.h:R.w:1)),K=J/(o?R.h:R.w),$=Math.round(o?I*R.w+P:D*R.h+O),Q={center:.5,right:1}[L]||0,tt={top:1,middle:.5}[C]||0,et=o?I-Q*X:D-tt*X,rt=o?D-tt*K:I-Q*K,nt=Math.round(o?R.h*(1-rt):R.w*rt);e._lenFrac=K,e._thickFrac=X,e._uFrac=et,e._vFrac=rt;var it=e._axis=function(t,e,r){var n=t._fullLayout,i="v"===e.orientation,a={type:"linear",range:r,tickmode:e.tickmode,nticks:e.nticks,tick0:e.tick0,dtick:e.dtick,tickvals:e.tickvals,ticktext:e.ticktext,ticks:e.ticks,ticklen:e.ticklen,tickwidth:e.tickwidth,tickcolor:e.tickcolor,showticklabels:e.showticklabels,ticklabelposition:e.ticklabelposition,ticklabeloverflow:e.ticklabeloverflow,ticklabelstep:e.ticklabelstep,tickfont:e.tickfont,tickangle:e.tickangle,tickformat:e.tickformat,exponentformat:e.exponentformat,minexponent:e.minexponent,separatethousands:e.separatethousands,showexponent:e.showexponent,showtickprefix:e.showtickprefix,tickprefix:e.tickprefix,showticksuffix:e.showticksuffix,ticksuffix:e.ticksuffix,title:e.title,showline:!0,anchor:"free",side:i?"right":"bottom",position:1},o=i?"y":"x",s={type:"linear",_id:o+e._id},l={letter:o,font:n.font,noHover:!0,noTickson:!0,noTicklabelmode:!0,calendar:n.calendar};function c(t,e){return u.coerce(a,s,b,t,e)}return m(a,s,c,l,n),x(a,s,c,l),s}(r,e,U);it.position=X+(o?I+P/R.w:D+O/R.h);var at=-1!==["top","bottom"].indexOf(j);if(o&&at&&(it.title.side=j,it.titlex=I+P/R.w,it.titley=rt+("top"===N.side?K-O/R.h:O/R.h)),o||at||(it.title.side=j,it.titley=D+O/R.h,it.titlex=rt+P/R.w),B.color&&"auto"===e.tickmode){it.tickmode="linear",it.tick0=q.start;var ot=q.size,st=u.constrain(J/50,4,15)+1,lt=(U[1]-U[0])/((e.nticks||st)*ot);if(lt>1){var ut=Math.pow(10,Math.floor(Math.log(lt)/Math.LN10));ot*=ut*u.roundUp(lt/ut,[2,5,10]),(Math.abs(q.start)/q.size+1e-6)%1<2e-6&&(it.tick0=0)}it.dtick=ot}it.domain=o?[rt+O/R.h,rt+K-O/R.h]:[rt+P/R.w,rt+K-P/R.w],it.setScale(),t.attr("transform",c(Math.round(R.l),Math.round(R.t)));var ct,ft=t.select("."+A.cbtitleunshift).attr("transform",c(-Math.round(R.l),-Math.round(R.t))),ht=it.ticklabelposition,pt=it.title.font.size,dt=t.select("."+A.cbaxis),vt=0,gt=0;function yt(n,i){var a={propContainer:it,propName:e._propPrefix+"title",traceIndex:e._traceIndex,_meta:e._meta,placeholder:z._dfltTitle.colorbar,containerGroup:t.select("."+A.cbtitle)},o="h"===n.charAt(0)?n.substr(1):"h"+n;t.selectAll("."+o+",."+o+"-math-group").remove(),v.draw(r,n,f(a,i||{}))}return u.syncOrAsync([a.previousPromises,function(){var t,e;(o&&at||!o&&!at)&&("top"===j&&(t=P+R.l+R.w*I,e=O+R.t+R.h*(1-rt-K)+3+.75*pt),"bottom"===j&&(t=P+R.l+R.w*I,e=O+R.t+R.h*(1-rt)-3-.25*pt),"right"===j&&(e=O+R.t+R.h*D+3+.75*pt,t=P+R.l+R.w*rt),yt(it._id+"title",{attributes:{x:t,y:e,"text-anchor":o?"start":"middle"}}))},function(){if(!o&&!at||o&&at){var a,l=t.select("."+A.cbtitle),f=l.select("text"),h=[-M/2,M/2],d=l.select(".h"+it._id+"title-math-group").node(),v=15.6;if(f.node()&&(v=parseInt(f.node().style.fontSize,10)*w),d?(a=p.bBox(d),gt=a.width,(vt=a.height)>v&&(h[1]-=(vt-v)/2)):f.node()&&!f.classed(A.jsPlaceholder)&&(a=p.bBox(f.node()),gt=a.width,vt=a.height),o){if(vt){if(vt+=5,"top"===j)it.domain[1]-=vt/R.h,h[1]*=-1;else{it.domain[0]+=vt/R.h;var y=g.lineCount(f);h[1]+=(1-y)*v}l.attr("transform",c(h[0],h[1])),it.setScale()}}else gt&&("right"===j&&(it.domain[0]+=(gt+pt/2)/R.w),l.attr("transform",c(h[0],h[1])),it.setScale())}t.selectAll("."+A.cbfills+",."+A.cblines).attr("transform",o?c(0,Math.round(R.h*(1-it.domain[1]))):c(Math.round(R.w*it.domain[0]),0)),dt.attr("transform",o?c(0,Math.round(-R.t)):c(Math.round(-R.l),0));var m=t.select("."+A.cbfills).selectAll("rect."+A.cbfill).attr("style","").data(Z);m.enter().append("rect").classed(A.cbfill,!0).style("stroke","none"),m.exit().remove();var x=U.map(it.c2p).map(Math.round).sort((function(t,e){return t-e}));m.each((function(t,a){var s=[0===a?U[0]:(Z[a]+Z[a-1])/2,a===Z.length-1?U[1]:(Z[a]+Z[a+1])/2].map(it.c2p).map(Math.round);o&&(s[1]=u.constrain(s[1]+(s[1]>s[0])?1:-1,x[0],x[1]));var l=n.select(this).attr(o?"x":"y",$).attr(o?"y":"x",n.min(s)).attr(o?"width":"height",Math.max(W,2)).attr(o?"height":"width",Math.max(n.max(s)-n.min(s),2));if(e._fillgradient)p.gradient(l,r,e._id,o?"vertical":"horizontalreversed",e._fillgradient,"fill");else{var c=H(t).replace("e-","");l.attr("fill",i(c).toHexString())}}));var b=t.select("."+A.cblines).selectAll("path."+A.cbline).data(B.color&&B.width?Y:[]);b.enter().append("path").classed(A.cbline,!0),b.exit().remove(),b.each((function(t){var e=$,r=Math.round(it.c2p(t))+B.width/2%1;n.select(this).attr("d","M"+(o?e+","+r:r+","+e)+(o?"h":"v")+W).call(p.lineGroupStyle,B.width,V(t),B.dash)})),dt.selectAll("g."+it._id+"tick,path").remove();var _=$+W+(M||0)/2-("outside"===e.ticks?1:0),T=s.calcTicks(it),k=s.getTickSigns(it)[2];return s.drawTicks(r,it,{vals:"inside"===it.ticks?s.clipEnds(it,T):T,layer:dt,path:s.makeTickPath(it,_,k),transFn:s.makeTransTickFn(it)}),s.drawLabels(r,it,{vals:T,layer:dt,transFn:s.makeTransTickLabelFn(it),labelFns:s.makeLabelFns(it,_)})},function(){if(o&&!at||!o&&at){var t,i,a=it.position||0,s=it._offset+it._length/2;if("right"===j)i=s,t=R.l+R.w*a+10+pt*(it.showticklabels?1:.5);else if(t=s,"bottom"===j&&(i=R.t+R.h*a+10+(-1===ht.indexOf("inside")?it.tickfont.size:0)+("intside"!==it.ticks&&e.ticklen||0)),"top"===j){var l=N.text.split("<br>").length;i=R.t+R.h*a+10-W-w*pt*l}yt((o?"h":"v")+it._id+"title",{avoid:{selection:n.select(r).selectAll("g."+it._id+"tick"),side:j,offsetTop:o?0:R.t,offsetLeft:o?R.l:0,maxShift:o?z.width:z.height},attributes:{x:t,y:i,"text-anchor":"middle"},transform:{rotate:o?-90:0,offset:0}})}},a.previousPromises,function(){var n,s=W+M/2;-1===ht.indexOf("inside")&&(n=p.bBox(dt.node()),s+=o?n.width:n.height),ct=ft.select("text");var u=0,f=o&&"top"===j,v=!o&&"right"===j,g=0;if(ct.node()&&!ct.classed(A.jsPlaceholder)){var m,x=ft.select(".h"+it._id+"title-math-group").node();x&&(o&&at||!o&&!at)?(u=(n=p.bBox(x)).width,m=n.height):(u=(n=p.bBox(ft.node())).right-R.l-(o?$:nt),m=n.bottom-R.t-(o?nt:$),o||"top"!==j||(s+=n.height,g=n.height)),v&&(ct.attr("transform",c(u/2+pt/2,0)),u*=2),s=Math.max(s,o?u:m)}var b=2*(o?P:O)+s+S+M/2,w=0;!o&&N.text&&"bottom"===C&&D<=0&&(b+=w=b/2,g+=w),z._hColorbarMoveTitle=w,z._hColorbarMoveCBTitle=g;var F=S+M;t.select("."+A.cbbg).attr("x",(o?$:nt)-F/2-(o?P:0)).attr("y",(o?nt:$)-(o?J:O+g-w)).attr(o?"width":"height",Math.max(b-w,2)).attr(o?"height":"width",Math.max(J+F,2)).call(d.fill,E).call(d.stroke,e.bordercolor).style("stroke-width",S);var B=v?Math.max(u-10,0):0;if(t.selectAll("."+A.cboutline).attr("x",(o?$:nt+P)+B).attr("y",(o?nt+O-J:$)+(f?vt:0)).attr(o?"width":"height",Math.max(W,2)).attr(o?"height":"width",Math.max(J-(o?2*O+vt:2*P+B),2)).call(d.stroke,e.outlinecolor).style({fill:"none","stroke-width":M}),t.attr("transform",c(R.l-(o?Q*b:0),R.t-(o?0:(1-tt)*b-g))),!o&&(S||i(E).getAlpha()&&!i.equals(z.paper_bgcolor,E))){var U=dt.selectAll("text"),V=U[0].length,H=t.select("."+A.cbbg).node(),q=p.bBox(H),G=p.getTranslate(t);U.each((function(t,e){var r=V-1;if(0===e||e===r){var n,i=p.bBox(this),a=p.getTranslate(this);if(e===r){var o=i.right+a.x;(n=q.right+G.x+nt-S-2+I-o)>0&&(n=0)}else if(0===e){var s=i.left+a.x;(n=q.left+G.x+nt+S+2-s)<0&&(n=0)}n&&(V<3?this.setAttribute("transform","translate("+n+",0) "+this.getAttribute("transform")):this.setAttribute("visibility","hidden"))}}))}var Z={},Y=T[L],X=k[L],K=T[C],et=k[C],rt=b-W;o?("pixels"===h?(Z.y=D,Z.t=J*K,Z.b=J*et):(Z.t=Z.b=0,Z.yt=D+l*K,Z.yb=D-l*et),"pixels"===_?(Z.x=I,Z.l=b*Y,Z.r=b*X):(Z.l=rt*Y,Z.r=rt*X,Z.xl=I-y*Y,Z.xr=I+y*X)):("pixels"===h?(Z.x=I,Z.l=J*Y,Z.r=J*X):(Z.l=Z.r=0,Z.xl=I+l*Y,Z.xr=I-l*X),"pixels"===_?(Z.y=1-D,Z.t=b*K,Z.b=b*et):(Z.t=rt*K,Z.b=rt*et,Z.yt=D-y*K,Z.yb=D+y*et)),a.autoMargin(r,e._id,Z)}],r)}(r,e,t);y&&y.then&&(t._promises||[]).push(y),t._context.edits.colorbarPosition&&function(t,e,r){var n,i,a,s="v"===e.orientation,u=r._fullLayout._size;l.init({element:t.node(),gd:r,prepFn:function(){n=t.attr("transform"),h(t)},moveFn:function(r,o){t.attr("transform",n+c(r,o)),i=l.align((s?e._uFrac:e._vFrac)+r/u.w,s?e._thickFrac:e._lenFrac,0,1,e.xanchor),a=l.align((s?e._vFrac:1-e._uFrac)-o/u.h,s?e._lenFrac:e._thickFrac,0,1,e.yanchor);var f=l.getCursor(i,a,e.xanchor,e.yanchor);h(t,f)},doneFn:function(){if(h(t),void 0!==i&&void 0!==a){var n={};n[e._propPrefix+"x"]=i,n[e._propPrefix+"y"]=a,void 0!==e._traceIndex?o.call("_guiRestyle",r,n,e._traceIndex):o.call("_guiRelayout",r,n)}}})}(r,e,t)})),e.exit().each((function(e){a.autoMargin(t,e._id)})).remove(),e.order()}}},76228:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t){return n.isPlainObject(t.colorbar)}},12311:function(t,e,r){"use strict";t.exports={moduleType:"component",name:"colorbar",attributes:r(63583),supplyDefaults:r(62499),draw:r(98981).draw,hasColorbar:r(76228)}},50693:function(t,e,r){"use strict";var n=r(63583),i=r(30587).counter,a=r(78607),o=r(63282).scales;function s(t){return"`"+t+"`"}a(o),t.exports=function(t,e){t=t||"";var r,a=(e=e||{}).cLetter||"c",l=("onlyIfNumerical"in e?e.onlyIfNumerical:Boolean(t),"noScale"in e?e.noScale:"marker.line"===t),u="showScaleDflt"in e?e.showScaleDflt:"z"===a,c="string"==typeof e.colorscaleDflt?o[e.colorscaleDflt]:null,f=e.editTypeOverride||"",h=t?t+".":"";"colorAttr"in e?(r=e.colorAttr,e.colorAttr):s(h+(r={z:"z",c:"color"}[a]));var p=a+"auto",d=a+"min",v=a+"max",g=a+"mid",y=(s(h+p),s(h+d),s(h+v),{});y[d]=y[v]=void 0;var m={};m[p]=!1;var x={};return"color"===r&&(x.color={valType:"color",arrayOk:!0,editType:f||"style"},e.anim&&(x.color.anim=!0)),x[p]={valType:"boolean",dflt:!0,editType:"calc",impliedEdits:y},x[d]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:m},x[v]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:m},x[g]={valType:"number",dflt:null,editType:"calc",impliedEdits:y},x.colorscale={valType:"colorscale",editType:"calc",dflt:c,impliedEdits:{autocolorscale:!1}},x.autocolorscale={valType:"boolean",dflt:!1!==e.autoColorDflt,editType:"calc",impliedEdits:{colorscale:void 0}},x.reversescale={valType:"boolean",dflt:!1,editType:"plot"},l||(x.showscale={valType:"boolean",dflt:u,editType:"calc"},x.colorbar=n),e.noColorAxis||(x.coloraxis={valType:"subplotid",regex:i("coloraxis"),dflt:null,editType:"calc"}),x}},78803:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(52075).extractOpts;t.exports=function(t,e,r){var o,s=t._fullLayout,l=r.vals,u=r.containerStr,c=u?i.nestedProperty(e,u).get():e,f=a(c),h=!1!==f.auto,p=f.min,d=f.max,v=f.mid,g=function(){return i.aggNums(Math.min,null,l)},y=function(){return i.aggNums(Math.max,null,l)};void 0===p?p=g():h&&(p=c._colorAx&&n(p)?Math.min(p,g()):g()),void 0===d?d=y():h&&(d=c._colorAx&&n(d)?Math.max(d,y()):y()),h&&void 0!==v&&(d-v>v-p?p=v-(d-v):d-v<v-p&&(d=v+(v-p))),p===d&&(p-=.5,d+=.5),f._sync("min",p),f._sync("max",d),f.autocolorscale&&(o=p*d<0?s.colorscale.diverging:p>=0?s.colorscale.sequential:s.colorscale.sequentialminus,f._sync("colorscale",o))}},33046:function(t,e,r){"use strict";var n=r(71828),i=r(52075).hasColorscale,a=r(52075).extractOpts;t.exports=function(t,e){function r(t,e){var r=t["_"+e];void 0!==r&&(t[e]=r)}function o(t,i){var o=i.container?n.nestedProperty(t,i.container).get():t;if(o)if(o.coloraxis)o._colorAx=e[o.coloraxis];else{var s=a(o),l=s.auto;(l||void 0===s.min)&&r(o,i.min),(l||void 0===s.max)&&r(o,i.max),s.autocolorscale&&r(o,"colorscale")}}for(var s=0;s<t.length;s++){var l=t[s],u=l._module.colorbar;if(u)if(Array.isArray(u))for(var c=0;c<u.length;c++)o(l,u[c]);else o(l,u);i(l,"marker.line")&&o(l,{container:"marker.line",min:"cmin",max:"cmax"})}for(var f in e._colorAxes)o(e[f],{min:"cmin",max:"cmax"})}},1586:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(76228),o=r(62499),s=r(63282).isValid,l=r(73972).traceIs;function u(t,e){var r=e.slice(0,e.length-1);return e?i.nestedProperty(t,r).get()||{}:t}t.exports=function t(e,r,c,f,h){var p=h.prefix,d=h.cLetter,v="_module"in r,g=u(e,p),y=u(r,p),m=u(r._template||{},p)||{},x=function(){return delete e.coloraxis,delete r.coloraxis,t(e,r,c,f,h)};if(v){var b=c._colorAxes||{},_=f(p+"coloraxis");if(_){var w=l(r,"contour")&&i.nestedProperty(r,"contours.coloring").get()||"heatmap",T=b[_];return void(T?(T[2].push(x),T[0]!==w&&(T[0]=!1,i.warn(["Ignoring coloraxis:",_,"setting","as it is linked to incompatible colorscales."].join(" ")))):b[_]=[w,r,[x]])}}var k=g[d+"min"],A=g[d+"max"],M=n(k)&&n(A)&&k<A;f(p+d+"auto",!M)?f(p+d+"mid"):(f(p+d+"min"),f(p+d+"max"));var S,E,L=g.colorscale,C=m.colorscale;void 0!==L&&(S=!s(L)),void 0!==C&&(S=!s(C)),f(p+"autocolorscale",S),f(p+"colorscale"),f(p+"reversescale"),"marker.line."!==p&&(p&&v&&(E=a(g)),f(p+"showscale",E)&&(p&&m&&(y._template=m),o(g,y,c)))}},52075:function(t,e,r){"use strict";var n=r(39898),i=r(84267),a=r(92770),o=r(71828),s=r(7901),l=r(63282).isValid,u=["showscale","autocolorscale","colorscale","reversescale","colorbar"],c=["min","max","mid","auto"];function f(t){var e,r,n,i=t._colorAx,a=i||t,o={};for(r=0;r<u.length;r++)o[n=u[r]]=a[n];if(i)for(e="c",r=0;r<c.length;r++)o[n=c[r]]=a["c"+n];else{var s;for(r=0;r<c.length;r++)((s="c"+(n=c[r]))in a||(s="z"+n)in a)&&(o[n]=a[s]);e=s.charAt(0)}return o._sync=function(t,r){var n=-1!==c.indexOf(t)?e+t:t;a[n]=a["_"+n]=r},o}function h(t){for(var e=f(t),r=e.min,n=e.max,i=e.reversescale?p(e.colorscale):e.colorscale,a=i.length,o=new Array(a),s=new Array(a),l=0;l<a;l++){var u=i[l];o[l]=r+u[0]*(n-r),s[l]=u[1]}return{domain:o,range:s}}function p(t){for(var e=t.length,r=new Array(e),n=e-1,i=0;n>=0;n--,i++){var a=t[n];r[i]=[1-a[0],a[1]]}return r}function d(t,e){e=e||{};for(var r=t.domain,o=t.range,l=o.length,u=new Array(l),c=0;c<l;c++){var f=i(o[c]).toRgb();u[c]=[f.r,f.g,f.b,f.a]}var h,p=n.scale.linear().domain(r).range(u).clamp(!0),d=e.noNumericCheck,g=e.returnArray;return(h=d&&g?p:d?function(t){return v(p(t))}:g?function(t){return a(t)?p(t):i(t).isValid()?t:s.defaultLine}:function(t){return a(t)?v(p(t)):i(t).isValid()?t:s.defaultLine}).domain=p.domain,h.range=function(){return o},h}function v(t){var e={r:t[0],g:t[1],b:t[2],a:t[3]};return i(e).toRgbString()}t.exports={hasColorscale:function(t,e,r){var n=e?o.nestedProperty(t,e).get()||{}:t,i=n[r||"color"],s=!1;if(o.isArrayOrTypedArray(i))for(var u=0;u<i.length;u++)if(a(i[u])){s=!0;break}return o.isPlainObject(n)&&(s||!0===n.showscale||a(n.cmin)&&a(n.cmax)||l(n.colorscale)||o.isPlainObject(n.colorbar))},extractOpts:f,extractScale:h,flipScale:p,makeColorScaleFunc:d,makeColorScaleFuncFromTrace:function(t,e){return d(h(t),e)}}},21081:function(t,e,r){"use strict";var n=r(63282),i=r(52075);t.exports={moduleType:"component",name:"colorscale",attributes:r(50693),layoutAttributes:r(72673),supplyLayoutDefaults:r(30959),handleDefaults:r(1586),crossTraceDefaults:r(33046),calc:r(78803),scales:n.scales,defaultScale:n.defaultScale,getScale:n.get,isValidScale:n.isValid,hasColorscale:i.hasColorscale,extractOpts:i.extractOpts,extractScale:i.extractScale,flipScale:i.flipScale,makeColorScaleFunc:i.makeColorScaleFunc,makeColorScaleFuncFromTrace:i.makeColorScaleFuncFromTrace}},72673:function(t,e,r){"use strict";var n=r(1426).extendFlat,i=r(50693),a=r(63282).scales;t.exports={editType:"calc",colorscale:{editType:"calc",sequential:{valType:"colorscale",dflt:a.Reds,editType:"calc"},sequentialminus:{valType:"colorscale",dflt:a.Blues,editType:"calc"},diverging:{valType:"colorscale",dflt:a.RdBu,editType:"calc"}},coloraxis:n({_isSubplotObj:!0,editType:"calc"},i("",{colorAttr:"corresponding trace color array(s)",noColorAxis:!0,showScaleDflt:!0}))}},30959:function(t,e,r){"use strict";var n=r(71828),i=r(44467),a=r(72673),o=r(1586);t.exports=function(t,e){function r(r,i){return n.coerce(t,e,a,r,i)}r("colorscale.sequential"),r("colorscale.sequentialminus"),r("colorscale.diverging");var s,l,u=e._colorAxes;function c(t,e){return n.coerce(s,l,a.coloraxis,t,e)}for(var f in u){var h=u[f];if(h[0])s=t[f]||{},(l=i.newContainer(e,f,"coloraxis"))._name=f,o(s,l,e,c,{prefix:"",cLetter:"c"});else{for(var p=0;p<h[2].length;p++)h[2][p]();delete e._colorAxes[f]}}}},63282:function(t,e,r){"use strict";var n=r(84267),i={Greys:[[0,"rgb(0,0,0)"],[1,"rgb(255,255,255)"]],YlGnBu:[[0,"rgb(8,29,88)"],[.125,"rgb(37,52,148)"],[.25,"rgb(34,94,168)"],[.375,"rgb(29,145,192)"],[.5,"rgb(65,182,196)"],[.625,"rgb(127,205,187)"],[.75,"rgb(199,233,180)"],[.875,"rgb(237,248,217)"],[1,"rgb(255,255,217)"]],Greens:[[0,"rgb(0,68,27)"],[.125,"rgb(0,109,44)"],[.25,"rgb(35,139,69)"],[.375,"rgb(65,171,93)"],[.5,"rgb(116,196,118)"],[.625,"rgb(161,217,155)"],[.75,"rgb(199,233,192)"],[.875,"rgb(229,245,224)"],[1,"rgb(247,252,245)"]],YlOrRd:[[0,"rgb(128,0,38)"],[.125,"rgb(189,0,38)"],[.25,"rgb(227,26,28)"],[.375,"rgb(252,78,42)"],[.5,"rgb(253,141,60)"],[.625,"rgb(254,178,76)"],[.75,"rgb(254,217,118)"],[.875,"rgb(255,237,160)"],[1,"rgb(255,255,204)"]],Bluered:[[0,"rgb(0,0,255)"],[1,"rgb(255,0,0)"]],RdBu:[[0,"rgb(5,10,172)"],[.35,"rgb(106,137,247)"],[.5,"rgb(190,190,190)"],[.6,"rgb(220,170,132)"],[.7,"rgb(230,145,90)"],[1,"rgb(178,10,28)"]],Reds:[[0,"rgb(220,220,220)"],[.2,"rgb(245,195,157)"],[.4,"rgb(245,160,105)"],[1,"rgb(178,10,28)"]],Blues:[[0,"rgb(5,10,172)"],[.35,"rgb(40,60,190)"],[.5,"rgb(70,100,245)"],[.6,"rgb(90,120,245)"],[.7,"rgb(106,137,247)"],[1,"rgb(220,220,220)"]],Picnic:[[0,"rgb(0,0,255)"],[.1,"rgb(51,153,255)"],[.2,"rgb(102,204,255)"],[.3,"rgb(153,204,255)"],[.4,"rgb(204,204,255)"],[.5,"rgb(255,255,255)"],[.6,"rgb(255,204,255)"],[.7,"rgb(255,153,255)"],[.8,"rgb(255,102,204)"],[.9,"rgb(255,102,102)"],[1,"rgb(255,0,0)"]],Rainbow:[[0,"rgb(150,0,90)"],[.125,"rgb(0,0,200)"],[.25,"rgb(0,25,255)"],[.375,"rgb(0,152,255)"],[.5,"rgb(44,255,150)"],[.625,"rgb(151,255,0)"],[.75,"rgb(255,234,0)"],[.875,"rgb(255,111,0)"],[1,"rgb(255,0,0)"]],Portland:[[0,"rgb(12,51,131)"],[.25,"rgb(10,136,186)"],[.5,"rgb(242,211,56)"],[.75,"rgb(242,143,56)"],[1,"rgb(217,30,30)"]],Jet:[[0,"rgb(0,0,131)"],[.125,"rgb(0,60,170)"],[.375,"rgb(5,255,255)"],[.625,"rgb(255,255,0)"],[.875,"rgb(250,0,0)"],[1,"rgb(128,0,0)"]],Hot:[[0,"rgb(0,0,0)"],[.3,"rgb(230,0,0)"],[.6,"rgb(255,210,0)"],[1,"rgb(255,255,255)"]],Blackbody:[[0,"rgb(0,0,0)"],[.2,"rgb(230,0,0)"],[.4,"rgb(230,210,0)"],[.7,"rgb(255,255,255)"],[1,"rgb(160,200,255)"]],Earth:[[0,"rgb(0,0,130)"],[.1,"rgb(0,180,180)"],[.2,"rgb(40,210,40)"],[.4,"rgb(230,230,50)"],[.6,"rgb(120,70,20)"],[1,"rgb(255,255,255)"]],Electric:[[0,"rgb(0,0,0)"],[.15,"rgb(30,0,100)"],[.4,"rgb(120,0,100)"],[.6,"rgb(160,90,0)"],[.8,"rgb(230,200,0)"],[1,"rgb(255,250,220)"]],Viridis:[[0,"#440154"],[.06274509803921569,"#48186a"],[.12549019607843137,"#472d7b"],[.18823529411764706,"#424086"],[.25098039215686274,"#3b528b"],[.3137254901960784,"#33638d"],[.3764705882352941,"#2c728e"],[.4392156862745098,"#26828e"],[.5019607843137255,"#21918c"],[.5647058823529412,"#1fa088"],[.6274509803921569,"#28ae80"],[.6901960784313725,"#3fbc73"],[.7529411764705882,"#5ec962"],[.8156862745098039,"#84d44b"],[.8784313725490196,"#addc30"],[.9411764705882353,"#d8e219"],[1,"#fde725"]],Cividis:[[0,"rgb(0,32,76)"],[.058824,"rgb(0,42,102)"],[.117647,"rgb(0,52,110)"],[.176471,"rgb(39,63,108)"],[.235294,"rgb(60,74,107)"],[.294118,"rgb(76,85,107)"],[.352941,"rgb(91,95,109)"],[.411765,"rgb(104,106,112)"],[.470588,"rgb(117,117,117)"],[.529412,"rgb(131,129,120)"],[.588235,"rgb(146,140,120)"],[.647059,"rgb(161,152,118)"],[.705882,"rgb(176,165,114)"],[.764706,"rgb(192,177,109)"],[.823529,"rgb(209,191,102)"],[.882353,"rgb(225,204,92)"],[.941176,"rgb(243,219,79)"],[1,"rgb(255,233,69)"]]},a=i.RdBu;function o(t){var e=0;if(!Array.isArray(t)||t.length<2)return!1;if(!t[0]||!t[t.length-1])return!1;if(0!=+t[0][0]||1!=+t[t.length-1][0])return!1;for(var r=0;r<t.length;r++){var i=t[r];if(2!==i.length||+i[0]<e||!n(i[1]).isValid())return!1;e=+i[0]}return!0}t.exports={scales:i,defaultScale:a,get:function(t,e){if(e||(e=a),!t)return e;function r(){try{t=i[t]||JSON.parse(t)}catch(r){t=e}}return"string"==typeof t&&(r(),"string"==typeof t&&r()),o(t)?t:e},isValid:function(t){return void 0!==i[t]||o(t)}}},92807:function(t){"use strict";t.exports=function(t,e,r,n,i){var a=(t-r)/(n-r),o=a+e/(n-r),s=(a+o)/2;return"left"===i||"bottom"===i?a:"center"===i||"middle"===i?s:"right"===i||"top"===i?o:a<2/3-s?a:o>4/3-s?o:s}},70461:function(t,e,r){"use strict";var n=r(71828),i=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];t.exports=function(t,e,r,a){return t="left"===r?0:"center"===r?1:"right"===r?2:n.constrain(Math.floor(3*t),0,2),e="bottom"===a?0:"middle"===a?1:"top"===a?2:n.constrain(Math.floor(3*e),0,2),i[e][t]}},64505:function(t,e){"use strict";e.selectMode=function(t){return"lasso"===t||"select"===t},e.drawMode=function(t){return"drawclosedpath"===t||"drawopenpath"===t||"drawline"===t||"drawrect"===t||"drawcircle"===t},e.openMode=function(t){return"drawline"===t||"drawopenpath"===t},e.rectMode=function(t){return"select"===t||"drawline"===t||"drawrect"===t||"drawcircle"===t},e.freeMode=function(t){return"lasso"===t||"drawclosedpath"===t||"drawopenpath"===t},e.selectingOrDrawing=function(t){return e.freeMode(t)||e.rectMode(t)}},28569:function(t,e,r){"use strict";var n=r(48956),i=r(57035),a=r(38520),o=r(71828).removeElement,s=r(85555),l=t.exports={};l.align=r(92807),l.getCursor=r(70461);var u=r(26041);function c(){var t=document.createElement("div");t.className="dragcover";var e=t.style;return e.position="fixed",e.left=0,e.right=0,e.top=0,e.bottom=0,e.zIndex=999999999,e.background="none",document.body.appendChild(t),t}function f(t){return n(t.changedTouches?t.changedTouches[0]:t,document.body)}l.unhover=u.wrapped,l.unhoverRaw=u.raw,l.init=function(t){var e,r,n,u,h,p,d,v,g=t.gd,y=1,m=g._context.doubleClickDelay,x=t.element;g._mouseDownTime||(g._mouseDownTime=0),x.style.pointerEvents="all",x.onmousedown=_,a?(x._ontouchstart&&x.removeEventListener("touchstart",x._ontouchstart),x._ontouchstart=_,x.addEventListener("touchstart",_,{passive:!1})):x.ontouchstart=_;var b=t.clampFn||function(t,e,r){return Math.abs(t)<r&&(t=0),Math.abs(e)<r&&(e=0),[t,e]};function _(a){g._dragged=!1,g._dragging=!0;var o=f(a);e=o[0],r=o[1],d=a.target,p=a,v=2===a.buttons||a.ctrlKey,void 0===a.clientX&&void 0===a.clientY&&(a.clientX=e,a.clientY=r),(n=(new Date).getTime())-g._mouseDownTime<m?y+=1:(y=1,g._mouseDownTime=n),t.prepFn&&t.prepFn(a,e,r),i&&!v?(h=c()).style.cursor=window.getComputedStyle(x).cursor:i||(h=document,u=window.getComputedStyle(document.documentElement).cursor,document.documentElement.style.cursor=window.getComputedStyle(x).cursor),document.addEventListener("mouseup",T),document.addEventListener("touchend",T),!1!==t.dragmode&&(a.preventDefault(),document.addEventListener("mousemove",w),document.addEventListener("touchmove",w,{passive:!1}))}function w(n){n.preventDefault();var i=f(n),a=t.minDrag||s.MINDRAG,o=b(i[0]-e,i[1]-r,a),u=o[0],c=o[1];(u||c)&&(g._dragged=!0,l.unhover(g,n)),g._dragged&&t.moveFn&&!v&&(g._dragdata={element:x,dx:u,dy:c},t.moveFn(u,c))}function T(e){if(delete g._dragdata,!1!==t.dragmode&&(e.preventDefault(),document.removeEventListener("mousemove",w),document.removeEventListener("touchmove",w)),document.removeEventListener("mouseup",T),document.removeEventListener("touchend",T),i?o(h):u&&(h.documentElement.style.cursor=u,u=null),g._dragging){if(g._dragging=!1,(new Date).getTime()-g._mouseDownTime>m&&(y=Math.max(y-1,1)),g._dragged)t.doneFn&&t.doneFn();else if(t.clickFn&&t.clickFn(y,p),!v){var r;try{r=new MouseEvent("click",e)}catch(t){var n=f(e);(r=document.createEvent("MouseEvents")).initMouseEvent("click",e.bubbles,e.cancelable,e.view,e.detail,e.screenX,e.screenY,n[0],n[1],e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget)}d.dispatchEvent(r)}g._dragging=!1,g._dragged=!1}else g._dragged=!1}},l.coverSlip=c},26041:function(t,e,r){"use strict";var n=r(11086),i=r(79990),a=r(24401).getGraphDiv,o=r(26675),s=t.exports={};s.wrapped=function(t,e,r){(t=a(t))._fullLayout&&i.clear(t._fullLayout._uid+o.HOVERID),s.raw(t,e,r)},s.raw=function(t,e){var r=t._fullLayout,i=t._hoverdata;e||(e={}),e.target&&!t._dragged&&!1===n.triggerHandler(t,"plotly_beforehover",e)||(r._hoverlayer.selectAll("g").remove(),r._hoverlayer.selectAll("line").remove(),r._hoverlayer.selectAll("circle").remove(),t._hoverdata=void 0,e.target&&i&&t.emit("plotly_unhover",{event:e,points:i}))}},79952:function(t,e){"use strict";e.P={valType:"string",values:["solid","dot","dash","longdash","dashdot","longdashdot"],dflt:"solid",editType:"style"},e.u={shape:{valType:"enumerated",values:["","/","\\","x","-","|","+","."],dflt:"",arrayOk:!0,editType:"style"},fillmode:{valType:"enumerated",values:["replace","overlay"],dflt:"replace",editType:"style"},bgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgopacity:{valType:"number",editType:"style",min:0,max:1},size:{valType:"number",min:0,dflt:8,arrayOk:!0,editType:"style"},solidity:{valType:"number",min:0,max:1,dflt:.3,arrayOk:!0,editType:"style"},editType:"style"}},91424:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.numberFormat,o=r(92770),s=r(84267),l=r(73972),u=r(7901),c=r(21081),f=i.strTranslate,h=r(63893),p=r(77922),d=r(18783).LINE_SPACING,v=r(37822).DESELECTDIM,g=r(34098),y=r(39984),m=r(23469).appendArrayPointValue,x=t.exports={};function b(t,e,r){var n=e.fillpattern,i=n&&x.getPatternAttr(n.shape,0,"");if(i){var a=x.getPatternAttr(n.bgcolor,0,null),o=x.getPatternAttr(n.fgcolor,0,null),s=n.fgopacity,l=x.getPatternAttr(n.size,0,8),c=x.getPatternAttr(n.solidity,0,.3),f=e.uid;x.pattern(t,"point",r,f,i,l,c,void 0,n.fillmode,a,o,s)}else e.fillcolor&&t.call(u.fill,e.fillcolor)}x.font=function(t,e,r,n){i.isPlainObject(e)&&(n=e.color,r=e.size,e=e.family),e&&t.style("font-family",e),r+1&&t.style("font-size",r+"px"),n&&t.call(u.fill,n)},x.setPosition=function(t,e,r){t.attr("x",e).attr("y",r)},x.setSize=function(t,e,r){t.attr("width",e).attr("height",r)},x.setRect=function(t,e,r,n,i){t.call(x.setPosition,e,r).call(x.setSize,n,i)},x.translatePoint=function(t,e,r,n){var i=r.c2p(t.x),a=n.c2p(t.y);return!!(o(i)&&o(a)&&e.node())&&("text"===e.node().nodeName?e.attr("x",i).attr("y",a):e.attr("transform",f(i,a)),!0)},x.translatePoints=function(t,e,r){t.each((function(t){var i=n.select(this);x.translatePoint(t,i,e,r)}))},x.hideOutsideRangePoint=function(t,e,r,n,i,a){e.attr("display",r.isPtWithinRange(t,i)&&n.isPtWithinRange(t,a)?null:"none")},x.hideOutsideRangePoints=function(t,e){if(e._hasClipOnAxisFalse){var r=e.xaxis,i=e.yaxis;t.each((function(e){var a=e[0].trace,o=a.xcalendar,s=a.ycalendar,u=l.traceIs(a,"bar-like")?".bartext":".point,.textpoint";t.selectAll(u).each((function(t){x.hideOutsideRangePoint(t,n.select(this),r,i,o,s)}))}))}},x.crispRound=function(t,e,r){return e&&o(e)?t._context.staticPlot?e:e<1?1:Math.round(e):r||0},x.singleLineStyle=function(t,e,r,n,i){e.style("fill","none");var a=(((t||[])[0]||{}).trace||{}).line||{},o=r||a.width||0,s=i||a.dash||"";u.stroke(e,n||a.color),x.dashLine(e,s,o)},x.lineGroupStyle=function(t,e,r,i){t.style("fill","none").each((function(t){var a=(((t||[])[0]||{}).trace||{}).line||{},o=e||a.width||0,s=i||a.dash||"";n.select(this).call(u.stroke,r||a.color).call(x.dashLine,s,o)}))},x.dashLine=function(t,e,r){r=+r||0,e=x.dashStyle(e,r),t.style({"stroke-dasharray":e,"stroke-width":r+"px"})},x.dashStyle=function(t,e){e=+e||1;var r=Math.max(e,3);return"solid"===t?t="":"dot"===t?t=r+"px,"+r+"px":"dash"===t?t=3*r+"px,"+3*r+"px":"longdash"===t?t=5*r+"px,"+5*r+"px":"dashdot"===t?t=3*r+"px,"+r+"px,"+r+"px,"+r+"px":"longdashdot"===t&&(t=5*r+"px,"+2*r+"px,"+r+"px,"+2*r+"px"),t},x.singleFillStyle=function(t,e){var r=n.select(t.node());b(t,((r.data()[0]||[])[0]||{}).trace||{},e)},x.fillGroupStyle=function(t,e){t.style("stroke-width",0).each((function(t){var r=n.select(this);t[0].trace&&b(r,t[0].trace,e)}))};var _=r(90998);x.symbolNames=[],x.symbolFuncs=[],x.symbolBackOffs=[],x.symbolNeedLines={},x.symbolNoDot={},x.symbolNoFill={},x.symbolList=[],Object.keys(_).forEach((function(t){var e=_[t],r=e.n;x.symbolList.push(r,String(r),t,r+100,String(r+100),t+"-open"),x.symbolNames[r]=t,x.symbolFuncs[r]=e.f,x.symbolBackOffs[r]=e.backoff||0,e.needLine&&(x.symbolNeedLines[r]=!0),e.noDot?x.symbolNoDot[r]=!0:x.symbolList.push(r+200,String(r+200),t+"-dot",r+300,String(r+300),t+"-open-dot"),e.noFill&&(x.symbolNoFill[r]=!0)}));var w=x.symbolNames.length;function T(t,e,r,n){var i=t%100;return x.symbolFuncs[i](e,r,n)+(t>=200?"M0,0.5L0.5,0L0,-0.5L-0.5,0Z":"")}x.symbolNumber=function(t){if(o(t))t=+t;else if("string"==typeof t){var e=0;t.indexOf("-open")>0&&(e=100,t=t.replace("-open","")),t.indexOf("-dot")>0&&(e+=200,t=t.replace("-dot","")),(t=x.symbolNames.indexOf(t))>=0&&(t+=e)}return t%100>=w||t>=400?0:Math.floor(Math.max(t,0))};var k={x1:1,x2:0,y1:0,y2:0},A={x1:0,x2:0,y1:1,y2:0},M=a("~f"),S={radial:{node:"radialGradient"},radialreversed:{node:"radialGradient",reversed:!0},horizontal:{node:"linearGradient",attrs:k},horizontalreversed:{node:"linearGradient",attrs:k,reversed:!0},vertical:{node:"linearGradient",attrs:A},verticalreversed:{node:"linearGradient",attrs:A,reversed:!0}};x.gradient=function(t,e,r,a,o,l){for(var c=o.length,f=S[a],h=new Array(c),p=0;p<c;p++)f.reversed?h[c-1-p]=[M(100*(1-o[p][0])),o[p][1]]:h[p]=[M(100*o[p][0]),o[p][1]];var d=e._fullLayout,v="g"+d._uid+"-"+r,g=d._defs.select(".gradients").selectAll("#"+v).data([a+h.join(";")],i.identity);g.exit().remove(),g.enter().append(f.node).each((function(){var t=n.select(this);f.attrs&&t.attr(f.attrs),t.attr("id",v);var e=t.selectAll("stop").data(h);e.exit().remove(),e.enter().append("stop"),e.each((function(t){var e=s(t[1]);n.select(this).attr({offset:t[0]+"%","stop-color":u.tinyRGB(e),"stop-opacity":e.getAlpha()})}))})),t.style(l,V(v,e)).style(l+"-opacity",null),t.classed("gradient_filled",!0)},x.pattern=function(t,e,r,a,o,l,c,f,h,p,d,v){var g="legend"===e;f&&("overlay"===h?(p=f,d=u.contrast(p)):(p=void 0,d=f));var y,m,x,b,_,w,T,k,A,M=r._fullLayout,S="p"+M._uid+"-"+a,E={},L=s(d),C=u.tinyRGB(L),P=v*L.getAlpha();switch(o){case"/":y=l*Math.sqrt(2),m=l*Math.sqrt(2),w="path",E={d:x="M-"+y/4+","+m/4+"l"+y/2+",-"+m/2+"M0,"+m+"L"+y+",0M"+y/4*3+","+m/4*5+"l"+y/2+",-"+m/2,opacity:P,stroke:C,"stroke-width":(b=c*l)+"px"};break;case"\\":y=l*Math.sqrt(2),m=l*Math.sqrt(2),w="path",E={d:x="M"+y/4*3+",-"+m/4+"l"+y/2+","+m/2+"M0,0L"+y+","+m+"M-"+y/4+","+m/4*3+"l"+y/2+","+m/2,opacity:P,stroke:C,"stroke-width":(b=c*l)+"px"};break;case"x":y=l*Math.sqrt(2),m=l*Math.sqrt(2),x="M-"+y/4+","+m/4+"l"+y/2+",-"+m/2+"M0,"+m+"L"+y+",0M"+y/4*3+","+m/4*5+"l"+y/2+",-"+m/2+"M"+y/4*3+",-"+m/4+"l"+y/2+","+m/2+"M0,0L"+y+","+m+"M-"+y/4+","+m/4*3+"l"+y/2+","+m/2,b=l-l*Math.sqrt(1-c),w="path",E={d:x,opacity:P,stroke:C,"stroke-width":b+"px"};break;case"|":w="path",w="path",E={d:x="M"+(y=l)/2+",0L"+y/2+","+(m=l),opacity:P,stroke:C,"stroke-width":(b=c*l)+"px"};break;case"-":w="path",w="path",E={d:x="M0,"+(m=l)/2+"L"+(y=l)+","+m/2,opacity:P,stroke:C,"stroke-width":(b=c*l)+"px"};break;case"+":w="path",x="M"+(y=l)/2+",0L"+y/2+","+(m=l)+"M0,"+m/2+"L"+y+","+m/2,b=l-l*Math.sqrt(1-c),w="path",E={d:x,opacity:P,stroke:C,"stroke-width":b+"px"};break;case".":y=l,m=l,c<Math.PI/4?_=Math.sqrt(c*l*l/Math.PI):(T=c,k=Math.PI/4,1,_=(A=l/2)+(l/Math.sqrt(2)-A)*(T-k)/(1-k)),w="circle",E={cx:y/2,cy:m/2,r:_,opacity:P,fill:C}}var O=[o||"noSh",p||"noBg",d||"noFg",l,c].join(";"),I=M._defs.select(".patterns").selectAll("#"+S).data([O],i.identity);I.exit().remove(),I.enter().append("pattern").each((function(){var t=n.select(this);if(t.attr({id:S,width:y+"px",height:m+"px",patternUnits:"userSpaceOnUse",patternTransform:g?"scale(0.8)":""}),p){var e=s(p),r=u.tinyRGB(e),i=e.getAlpha(),a=t.selectAll("rect").data([0]);a.exit().remove(),a.enter().append("rect").attr({width:y+"px",height:m+"px",fill:r,"fill-opacity":i})}var o=t.selectAll(w).data([0]);o.exit().remove(),o.enter().append(w).attr(E)})),t.style("fill",V(S,r)).style("fill-opacity",null),t.classed("pattern_filled",!0)},x.initGradients=function(t){var e=t._fullLayout;i.ensureSingle(e._defs,"g","gradients").selectAll("linearGradient,radialGradient").remove(),n.select(t).selectAll(".gradient_filled").classed("gradient_filled",!1)},x.initPatterns=function(t){var e=t._fullLayout;i.ensureSingle(e._defs,"g","patterns").selectAll("pattern").remove(),n.select(t).selectAll(".pattern_filled").classed("pattern_filled",!1)},x.getPatternAttr=function(t,e,r){return t&&i.isArrayOrTypedArray(t)?e<t.length?t[e]:r:t},x.pointStyle=function(t,e,r){if(t.size()){var i=x.makePointStyleFns(e);t.each((function(t){x.singlePointStyle(t,n.select(this),e,i,r)}))}},x.singlePointStyle=function(t,e,r,n,a){var o=r.marker,s=o.line;if(e.style("opacity",n.selectedOpacityFn?n.selectedOpacityFn(t):void 0===t.mo?o.opacity:t.mo),n.ms2mrc){var l;l="various"===t.ms||"various"===o.size?3:n.ms2mrc(t.ms),t.mrc=l,n.selectedSizeFn&&(l=t.mrc=n.selectedSizeFn(t));var c=x.symbolNumber(t.mx||o.symbol)||0;t.om=c%200>=100;var f=rt(t,r),h=G(t,r);e.attr("d",T(c,l,f,h))}var p,d,v,g=!1;if(t.so)v=s.outlierwidth,d=s.outliercolor,p=o.outliercolor;else{var y=(s||{}).width;v=(t.mlw+1||y+1||(t.trace?(t.trace.marker.line||{}).width:0)+1)-1||0,d="mlc"in t?t.mlcc=n.lineScale(t.mlc):i.isArrayOrTypedArray(s.color)?u.defaultLine:s.color,i.isArrayOrTypedArray(o.color)&&(p=u.defaultLine,g=!0),p="mc"in t?t.mcc=n.markerScale(t.mc):o.color||"rgba(0,0,0,0)",n.selectedColorFn&&(p=n.selectedColorFn(t))}if(t.om)e.call(u.stroke,p).style({"stroke-width":(v||1)+"px",fill:"none"});else{e.style("stroke-width",(t.isBlank?0:v)+"px");var m=o.gradient,b=t.mgt;b?g=!0:b=m&&m.type,i.isArrayOrTypedArray(b)&&(b=b[0],S[b]||(b=0));var _=o.pattern,w=_&&x.getPatternAttr(_.shape,t.i,"");if(b&&"none"!==b){var k=t.mgc;k?g=!0:k=m.color;var A=r.uid;g&&(A+="-"+t.i),x.gradient(e,a,A,b,[[0,k],[1,p]],"fill")}else if(w){var M=x.getPatternAttr(_.bgcolor,t.i,null),E=x.getPatternAttr(_.fgcolor,t.i,null),L=_.fgopacity,C=x.getPatternAttr(_.size,t.i,8),P=x.getPatternAttr(_.solidity,t.i,.3),O=t.mcc||i.isArrayOrTypedArray(_.shape)||i.isArrayOrTypedArray(_.bgcolor)||i.isArrayOrTypedArray(_.size)||i.isArrayOrTypedArray(_.solidity),I=r.uid;O&&(I+="-"+t.i),x.pattern(e,"point",a,I,w,C,P,t.mcc,_.fillmode,M,E,L)}else u.fill(e,p);v&&u.stroke(e,d)}},x.makePointStyleFns=function(t){var e={},r=t.marker;return e.markerScale=x.tryColorscale(r,""),e.lineScale=x.tryColorscale(r,"line"),l.traceIs(t,"symbols")&&(e.ms2mrc=g.isBubble(t)?y(t):function(){return(r.size||6)/2}),t.selectedpoints&&i.extendFlat(e,x.makeSelectedPointStyleFns(t)),e},x.makeSelectedPointStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},a=t.marker||{},o=r.marker||{},s=n.marker||{},u=a.opacity,c=o.opacity,f=s.opacity,h=void 0!==c,p=void 0!==f;(i.isArrayOrTypedArray(u)||h||p)&&(e.selectedOpacityFn=function(t){var e=void 0===t.mo?a.opacity:t.mo;return t.selected?h?c:e:p?f:v*e});var d=a.color,g=o.color,y=s.color;(g||y)&&(e.selectedColorFn=function(t){var e=t.mcc||d;return t.selected?g||e:y||e});var m=a.size,x=o.size,b=s.size,_=void 0!==x,w=void 0!==b;return l.traceIs(t,"symbols")&&(_||w)&&(e.selectedSizeFn=function(t){var e=t.mrc||m/2;return t.selected?_?x/2:e:w?b/2:e}),e},x.makeSelectedTextStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.textfont||{},a=r.textfont||{},o=n.textfont||{},s=i.color,l=a.color,c=o.color;return e.selectedTextColorFn=function(t){var e=t.tc||s;return t.selected?l||e:c||(l?e:u.addOpacity(e,v))},e},x.selectedPointStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=x.makeSelectedPointStyleFns(e),i=e.marker||{},a=[];r.selectedOpacityFn&&a.push((function(t,e){t.style("opacity",r.selectedOpacityFn(e))})),r.selectedColorFn&&a.push((function(t,e){u.fill(t,r.selectedColorFn(e))})),r.selectedSizeFn&&a.push((function(t,n){var a=n.mx||i.symbol||0,o=r.selectedSizeFn(n);t.attr("d",T(x.symbolNumber(a),o,rt(n,e),G(n,e))),n.mrc2=o})),a.length&&t.each((function(t){for(var e=n.select(this),r=0;r<a.length;r++)a[r](e,t)}))}},x.tryColorscale=function(t,e){var r=e?i.nestedProperty(t,e).get():t;if(r){var n=r.color;if((r.colorscale||r._colorAx)&&i.isArrayOrTypedArray(n))return c.makeColorScaleFuncFromTrace(r)}return i.identity};var E,L,C={start:1,end:-1,middle:0,bottom:1,top:-1};function P(t,e,r,i,a){var o=n.select(t.node().parentNode),s=-1!==e.indexOf("top")?"top":-1!==e.indexOf("bottom")?"bottom":"middle",l=-1!==e.indexOf("left")?"end":-1!==e.indexOf("right")?"start":"middle",u=i?i/.8+1:0,c=(h.lineCount(t)-1)*d+1,p=C[l]*u,v=.75*r+C[s]*u+(C[s]-1)*c*r/2;t.attr("text-anchor",l),a||o.attr("transform",f(p,v))}function O(t,e){var r=t.ts||e.textfont.size;return o(r)&&r>0?r:0}function I(t,e,r){return r&&(t=N(t)),e?z(t[1]):D(t[0])}function D(t){var e=n.round(t,2);return E=e,e}function z(t){var e=n.round(t,2);return L=e,e}function R(t,e,r,n){var i=t[0]-e[0],a=t[1]-e[1],o=r[0]-e[0],s=r[1]-e[1],l=Math.pow(i*i+a*a,.25),u=Math.pow(o*o+s*s,.25),c=(u*u*i-l*l*o)*n,f=(u*u*a-l*l*s)*n,h=3*u*(l+u),p=3*l*(l+u);return[[D(e[0]+(h&&c/h)),z(e[1]+(h&&f/h))],[D(e[0]-(p&&c/p)),z(e[1]-(p&&f/p))]]}x.textPointStyle=function(t,e,r){if(t.size()){var a;if(e.selectedpoints){var o=x.makeSelectedTextStyleFns(e);a=o.selectedTextColorFn}var s=e.texttemplate,l=r._fullLayout;t.each((function(t){var o=n.select(this),u=s?i.extractOption(t,e,"txt","texttemplate"):i.extractOption(t,e,"tx","text");if(u||0===u){if(s){var c=e._module.formatLabels,f=c?c(t,e,l):{},p={};m(p,e,t.i);var d=e._meta||{};u=i.texttemplateString(u,f,l._d3locale,p,t,d)}var v=t.tp||e.textposition,g=O(t,e),y=a?a(t):t.tc||e.textfont.color;o.call(x.font,t.tf||e.textfont.family,g,y).text(u).call(h.convertToTspans,r).call(P,v,g,t.mrc)}else o.remove()}))}},x.selectedTextStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=x.makeSelectedTextStyleFns(e);t.each((function(t){var i=n.select(this),a=r.selectedTextColorFn(t),o=t.tp||e.textposition,s=O(t,e);u.fill(i,a);var c=l.traceIs(e,"bar-like");P(i,o,s,t.mrc2||t.mrc,c)}))}},x.smoothopen=function(t,e){if(t.length<3)return"M"+t.join("L");var r,n="M"+t[0],i=[];for(r=1;r<t.length-1;r++)i.push(R(t[r-1],t[r],t[r+1],e));for(n+="Q"+i[0][0]+" "+t[1],r=2;r<t.length-1;r++)n+="C"+i[r-2][1]+" "+i[r-1][0]+" "+t[r];return n+"Q"+i[t.length-3][1]+" "+t[t.length-1]},x.smoothclosed=function(t,e){if(t.length<3)return"M"+t.join("L")+"Z";var r,n="M"+t[0],i=t.length-1,a=[R(t[i],t[0],t[1],e)];for(r=1;r<i;r++)a.push(R(t[r-1],t[r],t[r+1],e));for(a.push(R(t[i-1],t[i],t[0],e)),r=1;r<=i;r++)n+="C"+a[r-1][1]+" "+a[r][0]+" "+t[r];return n+"C"+a[i][1]+" "+a[0][0]+" "+t[0]+"Z"};var F={hv:function(t,e,r){return"H"+D(e[0])+"V"+I(e,1,r)},vh:function(t,e,r){return"V"+z(e[1])+"H"+I(e,0,r)},hvh:function(t,e,r){return"H"+D((t[0]+e[0])/2)+"V"+z(e[1])+"H"+I(e,0,r)},vhv:function(t,e,r){return"V"+z((t[1]+e[1])/2)+"H"+D(e[0])+"V"+I(e,1,r)}},B=function(t,e,r){return"L"+I(e,0,r)+","+I(e,1,r)};function N(t,e){var r=t.backoff,n=t.trace,a=t.d,o=t.i;if(r&&n&&n.marker&&n.marker.angle%360==0&&n.line&&"spline"!==n.line.shape){var s=i.isArrayOrTypedArray(r),l=t,u=e?e[0]:E||0,c=e?e[1]:L||0,f=l[0],h=l[1],p=f-u,d=h-c,v=Math.atan2(d,p),g=s?r[o]:r;if("auto"===g){var y=l.i;"scatter"===n.type&&y--;var m=l.marker,b=m.symbol;i.isArrayOrTypedArray(b)&&(b=b[y]);var _=m.size;i.isArrayOrTypedArray(_)&&(_=_[y]),g=m?x.symbolBackOffs[x.symbolNumber(b)]*_:0,g+=x.getMarkerStandoff(a[y],n)||0}var w=f-g*Math.cos(v),T=h-g*Math.sin(v);(w<=f&&w>=u||w>=f&&w<=u)&&(T<=h&&T>=c||T>=h&&T<=c)&&(t=[w,T])}return t}x.steps=function(t){var e=F[t]||B;return function(t){for(var r="M"+D(t[0][0])+","+z(t[0][1]),n=t.length,i=1;i<n;i++)r+=e(t[i-1],t[i],i===n-1);return r}},x.applyBackoff=N,x.makeTester=function(){var t=i.ensureSingleById(n.select("body"),"svg","js-plotly-tester",(function(t){t.attr(p.svgAttrs).style({position:"absolute",left:"-10000px",top:"-10000px",width:"9000px",height:"9000px","z-index":"1"})})),e=i.ensureSingle(t,"path","js-reference-point",(function(t){t.attr("d","M0,0H1V1H0Z").style({"stroke-width":0,fill:"black"})}));x.tester=t,x.testref=e},x.savedBBoxes={};var j=0;function U(t){var e=t.getAttribute("data-unformatted");if(null!==e)return e+t.getAttribute("data-math")+t.getAttribute("text-anchor")+t.getAttribute("style")}function V(t,e){if(!t)return null;var r=e._context,n=r._exportedPlot?"":r._baseUrl||"";return n?"url('"+n+"#"+t+"')":"url(#"+t+")"}x.bBox=function(t,e,r){var a,o,s;if(r||(r=U(t)),r){if(a=x.savedBBoxes[r])return i.extendFlat({},a)}else if(1===t.childNodes.length){var l=t.childNodes[0];if(r=U(l)){var u=+l.getAttribute("x")||0,c=+l.getAttribute("y")||0,f=l.getAttribute("transform");if(!f){var p=x.bBox(l,!1,r);return u&&(p.left+=u,p.right+=u),c&&(p.top+=c,p.bottom+=c),p}if(r+="~"+u+"~"+c+"~"+f,a=x.savedBBoxes[r])return i.extendFlat({},a)}}e?o=t:(s=x.tester.node(),o=t.cloneNode(!0),s.appendChild(o)),n.select(o).attr("transform",null).call(h.positionText,0,0);var d=o.getBoundingClientRect(),v=x.testref.node().getBoundingClientRect();e||s.removeChild(o);var g={height:d.height,width:d.width,left:d.left-v.left,top:d.top-v.top,right:d.right-v.left,bottom:d.bottom-v.top};return j>=1e4&&(x.savedBBoxes={},j=0),r&&(x.savedBBoxes[r]=g),j++,i.extendFlat({},g)},x.setClipUrl=function(t,e,r){t.attr("clip-path",V(e,r))},x.getTranslate=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/,(function(t,e,r){return[e,r].join(" ")})).split(" ");return{x:+e[0]||0,y:+e[1]||0}},x.setTranslate=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||0,r=r||0,a=a.replace(/(\btranslate\(.*?\);?)/,"").trim(),a=(a+=f(e,r)).trim(),t[i]("transform",a),a},x.getScale=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/,(function(t,e,r){return[e,r].join(" ")})).split(" ");return{x:+e[0]||1,y:+e[1]||1}},x.setScale=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||1,r=r||1,a=a.replace(/(\bscale\(.*?\);?)/,"").trim(),a=(a+="scale("+e+","+r+")").trim(),t[i]("transform",a),a};var H=/\s*sc.*/;x.setPointGroupScale=function(t,e,r){if(e=e||1,r=r||1,t){var n=1===e&&1===r?"":"scale("+e+","+r+")";t.each((function(){var t=(this.getAttribute("transform")||"").replace(H,"");t=(t+=n).trim(),this.setAttribute("transform",t)}))}};var q=/translate\([^)]*\)\s*$/;function G(t,e){var r;return t&&(r=t.mf),void 0===r&&(r=e.marker&&e.marker.standoff||0),e._geo||e._xA?r:-r}x.setTextPointsScale=function(t,e,r){t&&t.each((function(){var t,i=n.select(this),a=i.select("text");if(a.node()){var o=parseFloat(a.attr("x")||0),s=parseFloat(a.attr("y")||0),l=(i.attr("transform")||"").match(q);t=1===e&&1===r?[]:[f(o,s),"scale("+e+","+r+")",f(-o,-s)],l&&t.push(l),i.attr("transform",t.join(""))}}))},x.getMarkerStandoff=G;var Z,Y,W,X,J,K,$=Math.atan2,Q=Math.cos,tt=Math.sin;function et(t,e){var r=e[0],n=e[1];return[r*Q(t)-n*tt(t),r*tt(t)+n*Q(t)]}function rt(t,e){var r,n,i=t.ma;void 0===i&&(i=e.marker.angle||0);var a=e.marker.angleref;if("previous"===a||"north"===a){if(e._geo){var s=e._geo.project(t.lonlat);r=s[0],n=s[1]}else{var l=e._xA,u=e._yA;if(!l||!u)return 90;r=l.c2p(t.x),n=u.c2p(t.y)}if(e._geo){var c,f=t.lonlat[0],h=t.lonlat[1],p=e._geo.project([f,h+1e-5]),d=e._geo.project([f+1e-5,h]),v=$(d[1]-n,d[0]-r),g=$(p[1]-n,p[0]-r);if("north"===a)c=i/180*Math.PI;else if("previous"===a){var y=f/180*Math.PI,m=h/180*Math.PI,x=Z/180*Math.PI,b=Y/180*Math.PI,_=x-y,w=Q(b)*tt(_),T=tt(b)*Q(m)-Q(b)*tt(m)*Q(_);c=-$(w,T)-Math.PI,Z=f,Y=h}var k=et(v,[Q(c),0]),A=et(g,[tt(c),0]);i=$(k[1]+A[1],k[0]+A[0])/Math.PI*180,"previous"!==a||K===e.uid&&t.i===J+1||(i=null)}if("previous"===a&&!e._geo)if(K===e.uid&&t.i===J+1&&o(r)&&o(n)){var M=r-W,S=n-X,E=e.line&&e.line.shape||"",L=E.slice(E.length-1);"h"===L&&(S=0),"v"===L&&(M=0),i+=$(S,M)/Math.PI*180+90}else i=null}return W=r,X=n,J=t.i,K=e.uid,i}x.getMarkerAngle=rt},90998:function(t,e,r){"use strict";var n,i,a,o,s=r(95616),l=r(39898).round,u="M0,0Z",c=Math.sqrt(2),f=Math.sqrt(3),h=Math.PI,p=Math.cos,d=Math.sin;function v(t){return null===t}function g(t,e,r){if(!(t&&t%360!=0||e))return r;if(a===t&&o===e&&n===r)return i;function l(t,r){var n=p(t),i=d(t),a=r[0],o=r[1]+(e||0);return[a*n-o*i,a*i+o*n]}a=t,o=e,n=r;for(var u=t/180*h,c=0,f=0,v=s(r),g="",y=0;y<v.length;y++){var m=v[y],x=m[0],b=c,_=f;if("M"===x||"L"===x)c=+m[1],f=+m[2];else if("m"===x||"l"===x)c+=+m[1],f+=+m[2];else if("H"===x)c=+m[1];else if("h"===x)c+=+m[1];else if("V"===x)f=+m[1];else if("v"===x)f+=+m[1];else if("A"===x){c=+m[1],f=+m[2];var w=l(u,[+m[6],+m[7]]);m[6]=w[0],m[7]=w[1],m[3]=+m[3]+t}"H"!==x&&"V"!==x||(x="L"),"h"!==x&&"v"!==x||(x="l"),"m"!==x&&"l"!==x||(c-=b,f-=_);var T=l(u,[c,f]);"H"!==x&&"V"!==x||(x="L"),"M"!==x&&"L"!==x&&"m"!==x&&"l"!==x||(m[1]=T[0],m[2]=T[1]),m[0]=x,g+=m[0]+m.slice(1).join(",")}return i=g,g}t.exports={circle:{n:0,f:function(t,e,r){if(v(e))return u;var n=l(t,2),i="M"+n+",0A"+n+","+n+" 0 1,1 0,-"+n+"A"+n+","+n+" 0 0,1 "+n+",0Z";return r?g(e,r,i):i}},square:{n:1,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+","+n+"H-"+n+"V-"+n+"H"+n+"Z")}},diamond:{n:2,f:function(t,e,r){if(v(e))return u;var n=l(1.3*t,2);return g(e,r,"M"+n+",0L0,"+n+"L-"+n+",0L0,-"+n+"Z")}},cross:{n:3,f:function(t,e,r){if(v(e))return u;var n=l(.4*t,2),i=l(1.2*t,2);return g(e,r,"M"+i+","+n+"H"+n+"V"+i+"H-"+n+"V"+n+"H-"+i+"V-"+n+"H-"+n+"V-"+i+"H"+n+"V-"+n+"H"+i+"Z")}},x:{n:4,f:function(t,e,r){if(v(e))return u;var n=l(.8*t/c,2),i="l"+n+","+n,a="l"+n+",-"+n,o="l-"+n+",-"+n,s="l-"+n+","+n;return g(e,r,"M0,"+n+i+a+o+a+o+s+o+s+i+s+i+"Z")}},"triangle-up":{n:5,f:function(t,e,r){if(v(e))return u;var n=l(2*t/f,2);return g(e,r,"M-"+n+","+l(t/2,2)+"H"+n+"L0,-"+l(t,2)+"Z")}},"triangle-down":{n:6,f:function(t,e,r){if(v(e))return u;var n=l(2*t/f,2);return g(e,r,"M-"+n+",-"+l(t/2,2)+"H"+n+"L0,"+l(t,2)+"Z")}},"triangle-left":{n:7,f:function(t,e,r){if(v(e))return u;var n=l(2*t/f,2);return g(e,r,"M"+l(t/2,2)+",-"+n+"V"+n+"L-"+l(t,2)+",0Z")}},"triangle-right":{n:8,f:function(t,e,r){if(v(e))return u;var n=l(2*t/f,2);return g(e,r,"M-"+l(t/2,2)+",-"+n+"V"+n+"L"+l(t,2)+",0Z")}},"triangle-ne":{n:9,f:function(t,e,r){if(v(e))return u;var n=l(.6*t,2),i=l(1.2*t,2);return g(e,r,"M-"+i+",-"+n+"H"+n+"V"+i+"Z")}},"triangle-se":{n:10,f:function(t,e,r){if(v(e))return u;var n=l(.6*t,2),i=l(1.2*t,2);return g(e,r,"M"+n+",-"+i+"V"+n+"H-"+i+"Z")}},"triangle-sw":{n:11,f:function(t,e,r){if(v(e))return u;var n=l(.6*t,2),i=l(1.2*t,2);return g(e,r,"M"+i+","+n+"H-"+n+"V-"+i+"Z")}},"triangle-nw":{n:12,f:function(t,e,r){if(v(e))return u;var n=l(.6*t,2),i=l(1.2*t,2);return g(e,r,"M-"+n+","+i+"V-"+n+"H"+i+"Z")}},pentagon:{n:13,f:function(t,e,r){if(v(e))return u;var n=l(.951*t,2),i=l(.588*t,2),a=l(-t,2),o=l(-.309*t,2);return g(e,r,"M"+n+","+o+"L"+i+","+l(.809*t,2)+"H-"+i+"L-"+n+","+o+"L0,"+a+"Z")}},hexagon:{n:14,f:function(t,e,r){if(v(e))return u;var n=l(t,2),i=l(t/2,2),a=l(t*f/2,2);return g(e,r,"M"+a+",-"+i+"V"+i+"L0,"+n+"L-"+a+","+i+"V-"+i+"L0,-"+n+"Z")}},hexagon2:{n:15,f:function(t,e,r){if(v(e))return u;var n=l(t,2),i=l(t/2,2),a=l(t*f/2,2);return g(e,r,"M-"+i+","+a+"H"+i+"L"+n+",0L"+i+",-"+a+"H-"+i+"L-"+n+",0Z")}},octagon:{n:16,f:function(t,e,r){if(v(e))return u;var n=l(.924*t,2),i=l(.383*t,2);return g(e,r,"M-"+i+",-"+n+"H"+i+"L"+n+",-"+i+"V"+i+"L"+i+","+n+"H-"+i+"L-"+n+","+i+"V-"+i+"Z")}},star:{n:17,f:function(t,e,r){if(v(e))return u;var n=1.4*t,i=l(.225*n,2),a=l(.951*n,2),o=l(.363*n,2),s=l(.588*n,2),c=l(-n,2),f=l(-.309*n,2),h=l(.118*n,2),p=l(.809*n,2);return g(e,r,"M"+i+","+f+"H"+a+"L"+o+","+h+"L"+s+","+p+"L0,"+l(.382*n,2)+"L-"+s+","+p+"L-"+o+","+h+"L-"+a+","+f+"H-"+i+"L0,"+c+"Z")}},hexagram:{n:18,f:function(t,e,r){if(v(e))return u;var n=l(.66*t,2),i=l(.38*t,2),a=l(.76*t,2);return g(e,r,"M-"+a+",0l-"+i+",-"+n+"h"+a+"l"+i+",-"+n+"l"+i+","+n+"h"+a+"l-"+i+","+n+"l"+i+","+n+"h-"+a+"l-"+i+","+n+"l-"+i+",-"+n+"h-"+a+"Z")}},"star-triangle-up":{n:19,f:function(t,e,r){if(v(e))return u;var n=l(t*f*.8,2),i=l(.8*t,2),a=l(1.6*t,2),o=l(4*t,2),s="A "+o+","+o+" 0 0 1 ";return g(e,r,"M-"+n+","+i+s+n+","+i+s+"0,-"+a+s+"-"+n+","+i+"Z")}},"star-triangle-down":{n:20,f:function(t,e,r){if(v(e))return u;var n=l(t*f*.8,2),i=l(.8*t,2),a=l(1.6*t,2),o=l(4*t,2),s="A "+o+","+o+" 0 0 1 ";return g(e,r,"M"+n+",-"+i+s+"-"+n+",-"+i+s+"0,"+a+s+n+",-"+i+"Z")}},"star-square":{n:21,f:function(t,e,r){if(v(e))return u;var n=l(1.1*t,2),i=l(2*t,2),a="A "+i+","+i+" 0 0 1 ";return g(e,r,"M-"+n+",-"+n+a+"-"+n+","+n+a+n+","+n+a+n+",-"+n+a+"-"+n+",-"+n+"Z")}},"star-diamond":{n:22,f:function(t,e,r){if(v(e))return u;var n=l(1.4*t,2),i=l(1.9*t,2),a="A "+i+","+i+" 0 0 1 ";return g(e,r,"M-"+n+",0"+a+"0,"+n+a+n+",0"+a+"0,-"+n+a+"-"+n+",0Z")}},"diamond-tall":{n:23,f:function(t,e,r){if(v(e))return u;var n=l(.7*t,2),i=l(1.4*t,2);return g(e,r,"M0,"+i+"L"+n+",0L0,-"+i+"L-"+n+",0Z")}},"diamond-wide":{n:24,f:function(t,e,r){if(v(e))return u;var n=l(1.4*t,2),i=l(.7*t,2);return g(e,r,"M0,"+i+"L"+n+",0L0,-"+i+"L-"+n+",0Z")}},hourglass:{n:25,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+","+n+"H-"+n+"L"+n+",-"+n+"H-"+n+"Z")},noDot:!0},bowtie:{n:26,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+","+n+"V-"+n+"L-"+n+","+n+"V-"+n+"Z")},noDot:!0},"circle-cross":{n:27,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n+"M"+n+",0A"+n+","+n+" 0 1,1 0,-"+n+"A"+n+","+n+" 0 0,1 "+n+",0Z")},needLine:!0,noDot:!0},"circle-x":{n:28,f:function(t,e,r){if(v(e))return u;var n=l(t,2),i=l(t/c,2);return g(e,r,"M"+i+","+i+"L-"+i+",-"+i+"M"+i+",-"+i+"L-"+i+","+i+"M"+n+",0A"+n+","+n+" 0 1,1 0,-"+n+"A"+n+","+n+" 0 0,1 "+n+",0Z")},needLine:!0,noDot:!0},"square-cross":{n:29,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n+"M"+n+","+n+"H-"+n+"V-"+n+"H"+n+"Z")},needLine:!0,noDot:!0},"square-x":{n:30,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+","+n+"L-"+n+",-"+n+"M"+n+",-"+n+"L-"+n+","+n+"M"+n+","+n+"H-"+n+"V-"+n+"H"+n+"Z")},needLine:!0,noDot:!0},"diamond-cross":{n:31,f:function(t,e,r){if(v(e))return u;var n=l(1.3*t,2);return g(e,r,"M"+n+",0L0,"+n+"L-"+n+",0L0,-"+n+"ZM0,-"+n+"V"+n+"M-"+n+",0H"+n)},needLine:!0,noDot:!0},"diamond-x":{n:32,f:function(t,e,r){if(v(e))return u;var n=l(1.3*t,2),i=l(.65*t,2);return g(e,r,"M"+n+",0L0,"+n+"L-"+n+",0L0,-"+n+"ZM-"+i+",-"+i+"L"+i+","+i+"M-"+i+","+i+"L"+i+",-"+i)},needLine:!0,noDot:!0},"cross-thin":{n:33,f:function(t,e,r){if(v(e))return u;var n=l(1.4*t,2);return g(e,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n)},needLine:!0,noDot:!0,noFill:!0},"x-thin":{n:34,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+","+n+"L-"+n+",-"+n+"M"+n+",-"+n+"L-"+n+","+n)},needLine:!0,noDot:!0,noFill:!0},asterisk:{n:35,f:function(t,e,r){if(v(e))return u;var n=l(1.2*t,2),i=l(.85*t,2);return g(e,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n+"M"+i+","+i+"L-"+i+",-"+i+"M"+i+",-"+i+"L-"+i+","+i)},needLine:!0,noDot:!0,noFill:!0},hash:{n:36,f:function(t,e,r){if(v(e))return u;var n=l(t/2,2),i=l(t,2);return g(e,r,"M"+n+","+i+"V-"+i+"M"+(n-i)+",-"+i+"V"+i+"M"+i+","+n+"H-"+i+"M-"+i+","+(n-i)+"H"+i)},needLine:!0,noFill:!0},"y-up":{n:37,f:function(t,e,r){if(v(e))return u;var n=l(1.2*t,2),i=l(1.6*t,2),a=l(.8*t,2);return g(e,r,"M-"+n+","+a+"L0,0M"+n+","+a+"L0,0M0,-"+i+"L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-down":{n:38,f:function(t,e,r){if(v(e))return u;var n=l(1.2*t,2),i=l(1.6*t,2),a=l(.8*t,2);return g(e,r,"M-"+n+",-"+a+"L0,0M"+n+",-"+a+"L0,0M0,"+i+"L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-left":{n:39,f:function(t,e,r){if(v(e))return u;var n=l(1.2*t,2),i=l(1.6*t,2),a=l(.8*t,2);return g(e,r,"M"+a+","+n+"L0,0M"+a+",-"+n+"L0,0M-"+i+",0L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-right":{n:40,f:function(t,e,r){if(v(e))return u;var n=l(1.2*t,2),i=l(1.6*t,2),a=l(.8*t,2);return g(e,r,"M-"+a+","+n+"L0,0M-"+a+",-"+n+"L0,0M"+i+",0L0,0")},needLine:!0,noDot:!0,noFill:!0},"line-ew":{n:41,f:function(t,e,r){if(v(e))return u;var n=l(1.4*t,2);return g(e,r,"M"+n+",0H-"+n)},needLine:!0,noDot:!0,noFill:!0},"line-ns":{n:42,f:function(t,e,r){if(v(e))return u;var n=l(1.4*t,2);return g(e,r,"M0,"+n+"V-"+n)},needLine:!0,noDot:!0,noFill:!0},"line-ne":{n:43,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+",-"+n+"L-"+n+","+n)},needLine:!0,noDot:!0,noFill:!0},"line-nw":{n:44,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+","+n+"L-"+n+",-"+n)},needLine:!0,noDot:!0,noFill:!0},"arrow-up":{n:45,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M0,0L-"+n+","+l(2*t,2)+"H"+n+"Z")},backoff:1,noDot:!0},"arrow-down":{n:46,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M0,0L-"+n+",-"+l(2*t,2)+"H"+n+"Z")},noDot:!0},"arrow-left":{n:47,f:function(t,e,r){if(v(e))return u;var n=l(2*t,2),i=l(t,2);return g(e,r,"M0,0L"+n+",-"+i+"V"+i+"Z")},noDot:!0},"arrow-right":{n:48,f:function(t,e,r){if(v(e))return u;var n=l(2*t,2),i=l(t,2);return g(e,r,"M0,0L-"+n+",-"+i+"V"+i+"Z")},noDot:!0},"arrow-bar-up":{n:49,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M-"+n+",0H"+n+"M0,0L-"+n+","+l(2*t,2)+"H"+n+"Z")},backoff:1,needLine:!0,noDot:!0},"arrow-bar-down":{n:50,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M-"+n+",0H"+n+"M0,0L-"+n+",-"+l(2*t,2)+"H"+n+"Z")},needLine:!0,noDot:!0},"arrow-bar-left":{n:51,f:function(t,e,r){if(v(e))return u;var n=l(2*t,2),i=l(t,2);return g(e,r,"M0,-"+i+"V"+i+"M0,0L"+n+",-"+i+"V"+i+"Z")},needLine:!0,noDot:!0},"arrow-bar-right":{n:52,f:function(t,e,r){if(v(e))return u;var n=l(2*t,2),i=l(t,2);return g(e,r,"M0,-"+i+"V"+i+"M0,0L-"+n+",-"+i+"V"+i+"Z")},needLine:!0,noDot:!0},arrow:{n:53,f:function(t,e,r){if(v(e))return u;var n=h/2.5,i=2*t*p(n),a=2*t*d(n);return g(e,r,"M0,0L"+-i+","+a+"L"+i+","+a+"Z")},backoff:.9,noDot:!0},"arrow-wide":{n:54,f:function(t,e,r){if(v(e))return u;var n=h/4,i=2*t*p(n),a=2*t*d(n);return g(e,r,"M0,0L"+-i+","+a+"A "+2*t+","+2*t+" 0 0 1 "+i+","+a+"Z")},backoff:.4,noDot:!0}}},25673:function(t){"use strict";t.exports={visible:{valType:"boolean",editType:"calc"},type:{valType:"enumerated",values:["percent","constant","sqrt","data"],editType:"calc"},symmetric:{valType:"boolean",editType:"calc"},array:{valType:"data_array",editType:"calc"},arrayminus:{valType:"data_array",editType:"calc"},value:{valType:"number",min:0,dflt:10,editType:"calc"},valueminus:{valType:"number",min:0,dflt:10,editType:"calc"},traceref:{valType:"integer",min:0,dflt:0,editType:"style"},tracerefminus:{valType:"integer",min:0,dflt:0,editType:"style"},copy_ystyle:{valType:"boolean",editType:"plot"},copy_zstyle:{valType:"boolean",editType:"style"},color:{valType:"color",editType:"style"},thickness:{valType:"number",min:0,dflt:2,editType:"style"},width:{valType:"number",min:0,editType:"plot"},editType:"calc",_deprecated:{opacity:{valType:"number",editType:"style"}}}},84532:function(t,e,r){"use strict";var n=r(92770),i=r(73972),a=r(89298),o=r(71828),s=r(45827);function l(t,e,r,i){var l=e["error_"+i]||{},u=[];if(l.visible&&-1!==["linear","log"].indexOf(r.type)){for(var c=s(l),f=0;f<t.length;f++){var h=t[f],p=h.i;if(void 0===p)p=f;else if(null===p)continue;var d=h[i];if(n(r.c2l(d))){var v=c(d,p);if(n(v[0])&&n(v[1])){var g=h[i+"s"]=d-v[0],y=h[i+"h"]=d+v[1];u.push(g,y)}}}var m=r._id,x=e._extremes[m],b=a.findExtremes(r,u,o.extendFlat({tozero:x.opts.tozero},{padded:!0}));x.min=x.min.concat(b.min),x.max=x.max.concat(b.max)}}t.exports=function(t){for(var e=t.calcdata,r=0;r<e.length;r++){var n=e[r],o=n[0].trace;if(!0===o.visible&&i.traceIs(o,"errorBarsOK")){var s=a.getFromId(t,o.xaxis),u=a.getFromId(t,o.yaxis);l(n,o,s,"x"),l(n,o,u,"y")}}}},45827:function(t){"use strict";function e(t,e){return"percent"===t?function(t){return Math.abs(t*e/100)}:"constant"===t?function(){return Math.abs(e)}:"sqrt"===t?function(t){return Math.sqrt(Math.abs(t))}:void 0}t.exports=function(t){var r=t.type,n=t.symmetric;if("data"===r){var i=t.array||[];if(n)return function(t,e){var r=+i[e];return[r,r]};var a=t.arrayminus||[];return function(t,e){var r=+i[e],n=+a[e];return isNaN(r)&&isNaN(n)?[NaN,NaN]:[n||0,r||0]}}var o=e(r,t.value),s=e(r,t.valueminus);return n||void 0===t.valueminus?function(t){var e=o(t);return[e,e]}:function(t){return[s(t),o(t)]}}},97587:function(t,e,r){"use strict";var n=r(92770),i=r(73972),a=r(71828),o=r(44467),s=r(25673);t.exports=function(t,e,r,l){var u="error_"+l.axis,c=o.newContainer(e,u),f=t[u]||{};function h(t,e){return a.coerce(f,c,s,t,e)}if(!1!==h("visible",void 0!==f.array||void 0!==f.value||"sqrt"===f.type)){var p=h("type","array"in f?"data":"percent"),d=!0;"sqrt"!==p&&(d=h("symmetric",!(("data"===p?"arrayminus":"valueminus")in f))),"data"===p?(h("array"),h("traceref"),d||(h("arrayminus"),h("tracerefminus"))):"percent"!==p&&"constant"!==p||(h("value"),d||h("valueminus"));var v="copy_"+l.inherit+"style";l.inherit&&(e["error_"+l.inherit]||{}).visible&&h(v,!(f.color||n(f.thickness)||n(f.width))),l.inherit&&c[v]||(h("color",r),h("thickness"),h("width",i.traceIs(e,"gl3d")?0:4))}}},37369:function(t,e,r){"use strict";var n=r(71828),i=r(30962).overrideAll,a=r(25673),o={error_x:n.extendFlat({},a),error_y:n.extendFlat({},a)};delete o.error_x.copy_zstyle,delete o.error_y.copy_zstyle,delete o.error_y.copy_ystyle;var s={error_x:n.extendFlat({},a),error_y:n.extendFlat({},a),error_z:n.extendFlat({},a)};delete s.error_x.copy_ystyle,delete s.error_y.copy_ystyle,delete s.error_z.copy_ystyle,delete s.error_z.copy_zstyle,t.exports={moduleType:"component",name:"errorbars",schema:{traces:{scatter:o,bar:o,histogram:o,scatter3d:i(s,"calc","nested"),scattergl:i(o,"calc","nested")}},supplyDefaults:r(97587),calc:r(84532),makeComputeError:r(45827),plot:r(19398),style:r(62662),hoverInfo:function(t,e,r){(e.error_y||{}).visible&&(r.yerr=t.yh-t.y,e.error_y.symmetric||(r.yerrneg=t.y-t.ys)),(e.error_x||{}).visible&&(r.xerr=t.xh-t.x,e.error_x.symmetric||(r.xerrneg=t.x-t.xs))}}},19398:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(91424),o=r(34098);t.exports=function(t,e,r,s){var l=r.xaxis,u=r.yaxis,c=s&&s.duration>0;e.each((function(e){var f,h=e[0].trace,p=h.error_x||{},d=h.error_y||{};h.ids&&(f=function(t){return t.id});var v=o.hasMarkers(h)&&h.marker.maxdisplayed>0;d.visible||p.visible||(e=[]);var g=n.select(this).selectAll("g.errorbar").data(e,f);if(g.exit().remove(),e.length){p.visible||g.selectAll("path.xerror").remove(),d.visible||g.selectAll("path.yerror").remove(),g.style("opacity",1);var y=g.enter().append("g").classed("errorbar",!0);c&&y.style("opacity",0).transition().duration(s.duration).style("opacity",1),a.setClipUrl(g,r.layerClipId,t),g.each((function(t){var e=n.select(this),r=function(t,e,r){var n={x:e.c2p(t.x),y:r.c2p(t.y)};return void 0!==t.yh&&(n.yh=r.c2p(t.yh),n.ys=r.c2p(t.ys),i(n.ys)||(n.noYS=!0,n.ys=r.c2p(t.ys,!0))),void 0!==t.xh&&(n.xh=e.c2p(t.xh),n.xs=e.c2p(t.xs),i(n.xs)||(n.noXS=!0,n.xs=e.c2p(t.xs,!0))),n}(t,l,u);if(!v||t.vis){var a,o=e.select("path.yerror");if(d.visible&&i(r.x)&&i(r.yh)&&i(r.ys)){var f=d.width;a="M"+(r.x-f)+","+r.yh+"h"+2*f+"m-"+f+",0V"+r.ys,r.noYS||(a+="m-"+f+",0h"+2*f),o.size()?c&&(o=o.transition().duration(s.duration).ease(s.easing)):o=e.append("path").style("vector-effect","non-scaling-stroke").classed("yerror",!0),o.attr("d",a)}else o.remove();var h=e.select("path.xerror");if(p.visible&&i(r.y)&&i(r.xh)&&i(r.xs)){var g=(p.copy_ystyle?d:p).width;a="M"+r.xh+","+(r.y-g)+"v"+2*g+"m0,-"+g+"H"+r.xs,r.noXS||(a+="m0,-"+g+"v"+2*g),h.size()?c&&(h=h.transition().duration(s.duration).ease(s.easing)):h=e.append("path").style("vector-effect","non-scaling-stroke").classed("xerror",!0),h.attr("d",a)}else h.remove()}}))}}))}},62662:function(t,e,r){"use strict";var n=r(39898),i=r(7901);t.exports=function(t){t.each((function(t){var e=t[0].trace,r=e.error_y||{},a=e.error_x||{},o=n.select(this);o.selectAll("path.yerror").style("stroke-width",r.thickness+"px").call(i.stroke,r.color),a.copy_ystyle&&(a=r),o.selectAll("path.xerror").style("stroke-width",a.thickness+"px").call(i.stroke,a.color)}))}},77914:function(t,e,r){"use strict";var n=r(41940),i=r(528).hoverlabel,a=r(1426).extendFlat;t.exports={hoverlabel:{bgcolor:a({},i.bgcolor,{arrayOk:!0}),bordercolor:a({},i.bordercolor,{arrayOk:!0}),font:n({arrayOk:!0,editType:"none"}),align:a({},i.align,{arrayOk:!0}),namelength:a({},i.namelength,{arrayOk:!0}),editType:"none"}}},30732:function(t,e,r){"use strict";var n=r(71828),i=r(73972);function a(t,e,r,i){i=i||n.identity,Array.isArray(t)&&(e[0][r]=i(t))}t.exports=function(t){var e=t.calcdata,r=t._fullLayout;function o(t){return function(e){return n.coerceHoverinfo({hoverinfo:e},{_module:t._module},r)}}for(var s=0;s<e.length;s++){var l=e[s],u=l[0].trace;if(!i.traceIs(u,"pie-like")){var c=i.traceIs(u,"2dMap")?a:n.fillArray;c(u.hoverinfo,l,"hi",o(u)),u.hovertemplate&&c(u.hovertemplate,l,"ht"),u.hoverlabel&&(c(u.hoverlabel.bgcolor,l,"hbg"),c(u.hoverlabel.bordercolor,l,"hbc"),c(u.hoverlabel.font.size,l,"hts"),c(u.hoverlabel.font.color,l,"htc"),c(u.hoverlabel.font.family,l,"htf"),c(u.hoverlabel.namelength,l,"hnl"),c(u.hoverlabel.align,l,"hta"))}}}},75914:function(t,e,r){"use strict";var n=r(73972),i=r(88335).hover;t.exports=function(t,e,r){var a=n.getComponentMethod("annotations","onClick")(t,t._hoverdata);function o(){t.emit("plotly_click",{points:t._hoverdata,event:e})}void 0!==r&&i(t,e,r,!0),t._hoverdata&&e&&e.target&&(a&&a.then?a.then(o):o(),e.stopImmediatePropagation&&e.stopImmediatePropagation())}},26675:function(t){"use strict";t.exports={YANGLE:60,HOVERARROWSIZE:6,HOVERTEXTPAD:3,HOVERFONTSIZE:13,HOVERFONT:"Arial, sans-serif",HOVERMINTIME:50,HOVERID:"-hover"}},54268:function(t,e,r){"use strict";var n=r(71828),i=r(77914),a=r(38048);t.exports=function(t,e,r,o){var s=n.extendFlat({},o.hoverlabel);e.hovertemplate&&(s.namelength=-1),a(t,e,(function(r,a){return n.coerce(t,e,i,r,a)}),s)}},23469:function(t,e,r){"use strict";var n=r(71828);e.getSubplot=function(t){return t.subplot||t.xaxis+t.yaxis||t.geo},e.isTraceInSubplots=function(t,r){if("splom"===t.type){for(var n=t.xaxes||[],i=t.yaxes||[],a=0;a<n.length;a++)for(var o=0;o<i.length;o++)if(-1!==r.indexOf(n[a]+i[o]))return!0;return!1}return-1!==r.indexOf(e.getSubplot(t))},e.flat=function(t,e){for(var r=new Array(t.length),n=0;n<t.length;n++)r[n]=e;return r},e.p2c=function(t,e){for(var r=new Array(t.length),n=0;n<t.length;n++)r[n]=t[n].p2c(e);return r},e.getDistanceFunction=function(t,r,n,i){return"closest"===t?i||e.quadrature(r,n):"x"===t.charAt(0)?r:n},e.getClosest=function(t,e,r){if(!1!==r.index)r.index>=0&&r.index<t.length?r.distance=0:r.index=!1;else for(var n=0;n<t.length;n++){var i=e(t[n]);i<=r.distance&&(r.index=n,r.distance=i)}return r},e.inbox=function(t,e,r){return t*e<0||0===t?r:1/0},e.quadrature=function(t,e){return function(r){var n=t(r),i=e(r);return Math.sqrt(n*n+i*i)}},e.makeEventData=function(t,r,n){var i="index"in t?t.index:t.pointNumber,a={data:r._input,fullData:r,curveNumber:r.index,pointNumber:i};if(r._indexToPoints){var o=r._indexToPoints[i];1===o.length?a.pointIndex=o[0]:a.pointIndices=o}else a.pointIndex=i;return r._module.eventData?a=r._module.eventData(a,t,r,n,i):("xVal"in t?a.x=t.xVal:"x"in t&&(a.x=t.x),"yVal"in t?a.y=t.yVal:"y"in t&&(a.y=t.y),t.xa&&(a.xaxis=t.xa),t.ya&&(a.yaxis=t.ya),void 0!==t.zLabelVal&&(a.z=t.zLabelVal)),e.appendArrayPointValue(a,r,i),a},e.appendArrayPointValue=function(t,e,r){var i=e._arrayAttrs;if(i)for(var s=0;s<i.length;s++){var l=i[s],u=a(l);if(void 0===t[u]){var c=o(n.nestedProperty(e,l).get(),r);void 0!==c&&(t[u]=c)}}},e.appendArrayMultiPointValues=function(t,e,r){var i=e._arrayAttrs;if(i)for(var s=0;s<i.length;s++){var l=i[s],u=a(l);if(void 0===t[u]){for(var c=n.nestedProperty(e,l).get(),f=new Array(r.length),h=0;h<r.length;h++)f[h]=o(c,r[h]);t[u]=f}}};var i={ids:"id",locations:"location",labels:"label",values:"value","marker.colors":"color",parents:"parent"};function a(t){return i[t]||t}function o(t,e){return Array.isArray(e)?Array.isArray(t)&&Array.isArray(t[e[0]])?t[e[0]][e[1]]:void 0:t[e]}var s={x:!0,y:!0},l={"x unified":!0,"y unified":!0};e.isUnifiedHover=function(t){return"string"==typeof t&&!!l[t]},e.isXYhover=function(t){return"string"==typeof t&&!!s[t]}},88335:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(84267),o=r(71828),s=o.strTranslate,l=o.strRotate,u=r(11086),c=r(63893),f=r(39918),h=r(91424),p=r(7901),d=r(28569),v=r(89298),g=r(73972),y=r(23469),m=r(26675),x=r(99017),b=r(43969),_=m.YANGLE,w=Math.PI*_/180,T=1/Math.sin(w),k=Math.cos(w),A=Math.sin(w),M=m.HOVERARROWSIZE,S=m.HOVERTEXTPAD,E={box:!0,ohlc:!0,violin:!0,candlestick:!0},L={scatter:!0,scattergl:!0,splom:!0};function C(t){return[t.trace.index,t.index,t.x0,t.y0,t.name,t.attr,t.xa?t.xa._id:"",t.ya?t.ya._id:""].join(",")}e.hover=function(t,e,r,a){t=o.getGraphDiv(t);var s=e.target;o.throttle(t._fullLayout._uid+m.HOVERID,m.HOVERMINTIME,(function(){!function(t,e,r,a,s){r||(r="xy");var l=Array.isArray(r)?r:[r],c=t._fullLayout,h=c._plots||[],v=h[r],m=c._has("cartesian");if(v){var x=v.overlays.map((function(t){return t.id}));l=l.concat(x)}for(var b=l.length,_=new Array(b),w=new Array(b),k=!1,A=0;A<b;A++){var M=l[A];if(h[M])k=!0,_[A]=h[M].xaxis,w[A]=h[M].yaxis;else{if(!c[M]||!c[M]._subplot)return void o.warn("Unrecognized subplot: "+M);var S=c[M]._subplot;_[A]=S.xaxis,w[A]=S.yaxis}}var P=e.hovermode||c.hovermode;if(P&&!k&&(P="closest"),-1===["x","y","closest","x unified","y unified"].indexOf(P)||!t.calcdata||t.querySelector(".zoombox")||t._dragging)return d.unhoverRaw(t,e);var I=c.hoverdistance;-1===I&&(I=1/0);var B=c.spikedistance;-1===B&&(B=1/0);var V,H,q,G,Z,Y,W,X,J,K,$,Q,tt,et=[],rt=[],nt={hLinePoint:null,vLinePoint:null},it=!1;if(Array.isArray(e))for(P="array",q=0;q<e.length;q++)(Z=t.calcdata[e[q].curveNumber||0])&&(Y=Z[0].trace,"skip"!==Z[0].trace.hoverinfo&&(rt.push(Z),"h"===Y.orientation&&(it=!0)));else{for(G=0;G<t.calcdata.length;G++)Z=t.calcdata[G],"skip"!==(Y=Z[0].trace).hoverinfo&&y.isTraceInSubplots(Y,l)&&(rt.push(Z),"h"===Y.orientation&&(it=!0));var at,ot;if(s){if(!1===u.triggerHandler(t,"plotly_beforehover",e))return;var st=s.getBoundingClientRect();at=e.clientX-st.left,ot=e.clientY-st.top,c._calcInverseTransform(t);var lt=o.apply3DTransform(c._invTransform)(at,ot);if(at=lt[0],ot=lt[1],at<0||at>_[0]._length||ot<0||ot>w[0]._length)return d.unhoverRaw(t,e)}else at="xpx"in e?e.xpx:_[0]._length/2,ot="ypx"in e?e.ypx:w[0]._length/2;if(e.pointerX=at+_[0]._offset,e.pointerY=ot+w[0]._offset,V="xval"in e?y.flat(l,e.xval):y.p2c(_,at),H="yval"in e?y.flat(l,e.yval):y.p2c(w,ot),!i(V[0])||!i(H[0]))return o.warn("Fx.hover failed",e,t),d.unhoverRaw(t,e)}var ut=1/0;function ct(t,r){for(G=0;G<rt.length;G++)if((Z=rt[G])&&Z[0]&&Z[0].trace&&!0===(Y=Z[0].trace).visible&&0!==Y._length&&-1===["carpet","contourcarpet"].indexOf(Y._module.name)){if("splom"===Y.type?W=l[X=0]:(W=y.getSubplot(Y),X=l.indexOf(W)),J=P,y.isUnifiedHover(J)&&(J=J.charAt(0)),Q={cd:Z,trace:Y,xa:_[X],ya:w[X],maxHoverDistance:I,maxSpikeDistance:B,index:!1,distance:Math.min(ut,I),spikeDistance:1/0,xSpike:void 0,ySpike:void 0,color:p.defaultLine,name:Y.name,x0:void 0,x1:void 0,y0:void 0,y1:void 0,xLabelVal:void 0,yLabelVal:void 0,zLabelVal:void 0,text:void 0},c[W]&&(Q.subplot=c[W]._subplot),c._splomScenes&&c._splomScenes[Y.uid]&&(Q.scene=c._splomScenes[Y.uid]),tt=et.length,"array"===J){var n=e[G];"pointNumber"in n?(Q.index=n.pointNumber,J="closest"):(J="","xval"in n&&(K=n.xval,J="x"),"yval"in n&&($=n.yval,J=J?"closest":"y"))}else void 0!==t&&void 0!==r?(K=t,$=r):(K=V[X],$=H[X]);if(0!==I)if(Y._module&&Y._module.hoverPoints){var a=Y._module.hoverPoints(Q,K,$,J,{finiteRange:!0,hoverLayer:c._hoverlayer});if(a)for(var s,u=0;u<a.length;u++)s=a[u],i(s.x0)&&i(s.y0)&&et.push(z(s,P))}else o.log("Unrecognized trace type in hover:",Y);if("closest"===P&&et.length>tt&&(et.splice(0,tt),ut=et[0].distance),m&&0!==B&&0===et.length){Q.distance=B,Q.index=!1;var f=Y._module.hoverPoints(Q,K,$,"closest",{hoverLayer:c._hoverlayer});if(f&&(f=f.filter((function(t){return t.spikeDistance<=B}))),f&&f.length){var h,d=f.filter((function(t){return t.xa.showspikes&&"hovered data"!==t.xa.spikesnap}));if(d.length){var v=d[0];i(v.x0)&&i(v.y0)&&(h=ht(v),(!nt.vLinePoint||nt.vLinePoint.spikeDistance>h.spikeDistance)&&(nt.vLinePoint=h))}var g=f.filter((function(t){return t.ya.showspikes&&"hovered data"!==t.ya.spikesnap}));if(g.length){var x=g[0];i(x.x0)&&i(x.y0)&&(h=ht(x),(!nt.hLinePoint||nt.hLinePoint.spikeDistance>h.spikeDistance)&&(nt.hLinePoint=h))}}}}}function ft(t,e,r){for(var n,i=null,a=1/0,o=0;o<t.length;o++)n=t[o].spikeDistance,r&&0===o&&(n=-1/0),n<=a&&n<=e&&(i=t[o],a=n);return i}function ht(t){return t?{xa:t.xa,ya:t.ya,x:void 0!==t.xSpike?t.xSpike:(t.x0+t.x1)/2,y:void 0!==t.ySpike?t.ySpike:(t.y0+t.y1)/2,distance:t.distance,spikeDistance:t.spikeDistance,curveNumber:t.trace.index,color:t.color,pointNumber:t.index}:null}ct();var pt={fullLayout:c,container:c._hoverlayer,event:e},dt=t._spikepoints,vt={vLinePoint:nt.vLinePoint,hLinePoint:nt.hLinePoint};t._spikepoints=vt;var gt=function(){et.sort((function(t,e){return t.distance-e.distance})),et=function(t,e){for(var r=e.charAt(0),n=[],i=[],a=[],o=0;o<t.length;o++){var s=t[o];g.traceIs(s.trace,"bar-like")||g.traceIs(s.trace,"box-violin")?a.push(s):s.trace[r+"period"]?i.push(s):n.push(s)}return n.concat(i).concat(a)}(et,P)};gt();var yt=P.charAt(0),mt=("x"===yt||"y"===yt)&&et[0]&&L[et[0].trace.type];if(m&&0!==B&&0!==et.length){var xt=ft(et.filter((function(t){return t.ya.showspikes})),B,mt);nt.hLinePoint=ht(xt);var bt=ft(et.filter((function(t){return t.xa.showspikes})),B,mt);nt.vLinePoint=ht(bt)}if(0===et.length){var _t=d.unhoverRaw(t,e);return!m||null===nt.hLinePoint&&null===nt.vLinePoint||F(dt)&&R(t,nt,pt),_t}if(m&&F(dt)&&R(t,nt,pt),y.isXYhover(J)&&0!==et[0].length&&"splom"!==et[0].trace.type){var wt=et[0],Tt=(et=E[wt.trace.type]?et.filter((function(t){return t.trace.index===wt.trace.index})):[wt]).length;ct(N("x",wt,c),N("y",wt,c));var kt,At=[],Mt={},St=0,Et=function(t){var e=E[t.trace.type]?C(t):t.trace.index;if(Mt[e]){var r=Mt[e]-1,n=At[r];r>0&&Math.abs(t.distance)<Math.abs(n.distance)&&(At[r]=t)}else St++,Mt[e]=St,At.push(t)};for(kt=0;kt<Tt;kt++)Et(et[kt]);for(kt=et.length-1;kt>Tt-1;kt--)Et(et[kt]);et=At,gt()}var Lt=t._hoverdata,Ct=[],Pt=j(t),Ot=U(t);for(q=0;q<et.length;q++){var It=et[q],Dt=y.makeEventData(It,It.trace,It.cd);if(!1!==It.hovertemplate){var zt=!1;It.cd[It.index]&&It.cd[It.index].ht&&(zt=It.cd[It.index].ht),It.hovertemplate=zt||It.trace.hovertemplate||!1}if(It.xa&&It.ya){var Rt=It.x0+It.xa._offset,Ft=It.x1+It.xa._offset,Bt=It.y0+It.ya._offset,Nt=It.y1+It.ya._offset,jt=Math.min(Rt,Ft),Ut=Math.max(Rt,Ft),Vt=Math.min(Bt,Nt),Ht=Math.max(Bt,Nt);Dt.bbox={x0:jt+Ot,x1:Ut+Ot,y0:Vt+Pt,y1:Ht+Pt}}It.eventData=[Dt],Ct.push(Dt)}t._hoverdata=Ct;var qt="y"===P&&(rt.length>1||et.length>1)||"closest"===P&&it&&et.length>1,Gt=p.combine(c.plot_bgcolor||p.background,c.paper_bgcolor),Zt=O(et,{gd:t,hovermode:P,rotateLabels:qt,bgColor:Gt,container:c._hoverlayer,outerContainer:c._paper.node(),commonLabelOpts:c.hoverlabel,hoverdistance:c.hoverdistance});if(y.isUnifiedHover(P)||(function(t,e,r){var n,i,a,o,s,l,u,c=0,f=1,h=t.size(),p=new Array(h),d=0;function v(t){var e=t[0],r=t[t.length-1];if(i=e.pmin-e.pos-e.dp+e.size,a=r.pos+r.dp+r.size-e.pmax,i>.01){for(s=t.length-1;s>=0;s--)t[s].dp+=i;n=!1}if(!(a<.01)){if(i<-.01){for(s=t.length-1;s>=0;s--)t[s].dp-=a;n=!1}if(n){var u=0;for(o=0;o<t.length;o++)(l=t[o]).pos+l.dp+l.size>e.pmax&&u++;for(o=t.length-1;o>=0&&!(u<=0);o--)(l=t[o]).pos>e.pmax-1&&(l.del=!0,u--);for(o=0;o<t.length&&!(u<=0);o++)if((l=t[o]).pos<e.pmin+1)for(l.del=!0,u--,a=2*l.size,s=t.length-1;s>=0;s--)t[s].dp-=a;for(o=t.length-1;o>=0&&!(u<=0);o--)(l=t[o]).pos+l.dp+l.size>e.pmax&&(l.del=!0,u--)}}}for(t.each((function(t){var n=t[e],i="x"===n._id.charAt(0),a=n.range;0===d&&a&&a[0]>a[1]!==i&&(f=-1),p[d++]=[{datum:t,traceIndex:t.trace.index,dp:0,pos:t.pos,posref:t.posref,size:t.by*(i?T:1)/2,pmin:0,pmax:i?r.width:r.height}]})),p.sort((function(t,e){return t[0].posref-e[0].posref||f*(e[0].traceIndex-t[0].traceIndex)}));!n&&c<=h;){for(c++,n=!0,o=0;o<p.length-1;){var g=p[o],y=p[o+1],m=g[g.length-1],x=y[0];if((i=m.pos+m.dp+m.size-x.pos-x.dp+x.size)>.01&&m.pmin===x.pmin&&m.pmax===x.pmax){for(s=y.length-1;s>=0;s--)y[s].dp+=i;for(g.push.apply(g,y),p.splice(o+1,1),u=0,s=g.length-1;s>=0;s--)u+=g[s].dp;for(a=u/g.length,s=g.length-1;s>=0;s--)g[s].dp-=a;n=!1}else o++}p.forEach(v)}for(o=p.length-1;o>=0;o--){var b=p[o];for(s=b.length-1;s>=0;s--){var _=b[s],w=_.datum;w.offset=_.dp,w.del=_.del}}}(Zt,qt?"xa":"ya",c),D(Zt,qt,c._invScaleX,c._invScaleY)),s&&s.tagName){var Yt=g.getComponentMethod("annotations","hasClickToShow")(t,Ct);f(n.select(s),Yt?"pointer":"")}s&&!a&&function(t,e,r){if(!r||r.length!==t._hoverdata.length)return!0;for(var n=r.length-1;n>=0;n--){var i=r[n],a=t._hoverdata[n];if(i.curveNumber!==a.curveNumber||String(i.pointNumber)!==String(a.pointNumber)||String(i.pointNumbers)!==String(a.pointNumbers))return!0}return!1}(t,0,Lt)&&(Lt&&t.emit("plotly_unhover",{event:e,points:Lt}),t.emit("plotly_hover",{event:e,points:t._hoverdata,xaxes:_,yaxes:w,xvals:V,yvals:H}))}(t,e,r,a,s)}))},e.loneHover=function(t,e){var r=!0;Array.isArray(t)||(r=!1,t=[t]);var i=e.gd,a=j(i),o=U(i),s=O(t.map((function(t){var r=t._x0||t.x0||t.x||0,n=t._x1||t.x1||t.x||0,s=t._y0||t.y0||t.y||0,l=t._y1||t.y1||t.y||0,u=t.eventData;if(u){var c=Math.min(r,n),f=Math.max(r,n),h=Math.min(s,l),d=Math.max(s,l),v=t.trace;if(g.traceIs(v,"gl3d")){var y=i._fullLayout[v.scene]._scene.container,m=y.offsetLeft,x=y.offsetTop;c+=m,f+=m,h+=x,d+=x}u.bbox={x0:c+o,x1:f+o,y0:h+a,y1:d+a},e.inOut_bbox&&e.inOut_bbox.push(u.bbox)}else u=!1;return{color:t.color||p.defaultLine,x0:t.x0||t.x||0,x1:t.x1||t.x||0,y0:t.y0||t.y||0,y1:t.y1||t.y||0,xLabel:t.xLabel,yLabel:t.yLabel,zLabel:t.zLabel,text:t.text,name:t.name,idealAlign:t.idealAlign,borderColor:t.borderColor,fontFamily:t.fontFamily,fontSize:t.fontSize,fontColor:t.fontColor,nameLength:t.nameLength,textAlign:t.textAlign,trace:t.trace||{index:0,hoverinfo:""},xa:{_offset:0},ya:{_offset:0},index:0,hovertemplate:t.hovertemplate||!1,hovertemplateLabels:t.hovertemplateLabels||!1,eventData:u}})),{gd:i,hovermode:"closest",rotateLabels:!1,bgColor:e.bgColor||p.background,container:n.select(e.container),outerContainer:e.outerContainer||e.container}),l=0,u=0;return s.sort((function(t,e){return t.y0-e.y0})).each((function(t,r){var n=t.y0-t.by/2;t.offset=n-5<l?l-n+5:0,l=n+t.by+t.offset,r===e.anchorIndex&&(u=t.offset)})).each((function(t){t.offset-=u})),D(s,!1,i._fullLayout._invScaleX,i._fullLayout._invScaleY),r?s:s.node()};var P=/<extra>([\s\S]*)<\/extra>/;function O(t,e){var r=e.gd,i=r._fullLayout,a=e.hovermode,u=e.rotateLabels,f=e.bgColor,d=e.container,v=e.outerContainer,w=e.commonLabelOpts||{};if(0===t.length)return[[]];var T=e.fontFamily||m.HOVERFONT,k=e.fontSize||m.HOVERFONTSIZE,A=t[0],E=A.xa,L=A.ya,P=a.charAt(0),O=P+"Label",D=A[O];if(void 0===D&&"multicategory"===E.type)for(var z=0;z<t.length&&void 0===(D=t[z][O]);z++);var R=V(r,v),F=R.top,B=R.width,N=R.height,j=void 0!==D&&A.distance<=e.hoverdistance&&("x"===a||"y"===a);if(j){var U,H,q=!0;for(U=0;U<t.length;U++)if(q&&void 0===t[U].zLabel&&(q=!1),H=t[U].hoverinfo||t[U].trace.hoverinfo){var G=Array.isArray(H)?H:H.split("+");if(-1===G.indexOf("all")&&-1===G.indexOf(a)){j=!1;break}}q&&(j=!1)}var Z=d.selectAll("g.axistext").data(j?[0]:[]);if(Z.enter().append("g").classed("axistext",!0),Z.exit().remove(),Z.each((function(){var t=n.select(this),e=o.ensureSingle(t,"path","",(function(t){t.style({"stroke-width":"1px"})})),l=o.ensureSingle(t,"text","",(function(t){t.attr("data-notex",1)})),u=w.bgcolor||p.defaultLine,f=w.bordercolor||p.contrast(u),d=p.contrast(u),v={family:w.font.family||T,size:w.font.size||k,color:w.font.color||d};e.style({fill:u,stroke:f}),l.text(D).call(h.font,v).call(c.positionText,0,0).call(c.convertToTspans,r),t.attr("transform","");var g,y,m=V(r,l.node());if("x"===a){var x="top"===E.side?"-":"";l.attr("text-anchor","middle").call(c.positionText,0,"top"===E.side?F-m.bottom-M-S:F-m.top+M+S),g=E._offset+(A.x0+A.x1)/2,y=L._offset+("top"===E.side?0:L._length);var b=m.width/2+S;g<b?(g=b,e.attr("d","M-"+(b-M)+",0L-"+(b-2*M)+","+x+M+"H"+(S+m.width/2)+"v"+x+(2*S+m.height)+"H-"+b+"V"+x+M+"Z")):g>i.width-b?(g=i.width-b,e.attr("d","M"+(b-M)+",0L"+b+","+x+M+"v"+x+(2*S+m.height)+"H-"+b+"V"+x+M+"H"+(b-2*M)+"Z")):e.attr("d","M0,0L"+M+","+x+M+"H"+(S+m.width/2)+"v"+x+(2*S+m.height)+"H-"+(S+m.width/2)+"V"+x+M+"H-"+M+"Z")}else{var _,C,P;"right"===L.side?(_="start",C=1,P="",g=E._offset+E._length):(_="end",C=-1,P="-",g=E._offset),y=L._offset+(A.y0+A.y1)/2,l.attr("text-anchor",_),e.attr("d","M0,0L"+P+M+","+M+"V"+(S+m.height/2)+"h"+P+(2*S+m.width)+"V-"+(S+m.height/2)+"H"+P+M+"V-"+M+"Z");var O,I=m.height/2,z=F-m.top-I,R="clip"+i._uid+"commonlabel"+L._id;if(g<m.width+2*S+M){O="M-"+(M+S)+"-"+I+"h-"+(m.width-S)+"V"+I+"h"+(m.width-S)+"Z";var B=m.width-g+S;c.positionText(l,B,z),"end"===_&&l.selectAll("tspan").each((function(){var t=n.select(this),e=h.tester.append("text").text(t.text()).call(h.font,v),i=V(r,e.node());Math.round(i.width)<Math.round(m.width)&&t.attr("x",B-i.width),e.remove()}))}else c.positionText(l,C*(S+M),z),O=null;var N=i._topclips.selectAll("#"+R).data(O?[0]:[]);N.enter().append("clipPath").attr("id",R).append("path"),N.exit().remove(),N.select("path").attr("d",O),h.setClipUrl(l,O?R:null,r)}t.attr("transform",s(g,y))})),y.isUnifiedHover(a)){d.selectAll("g.hovertext").remove();var Y=t.filter((function(t){return"none"!==t.hoverinfo}));if(0===Y.length)return;var W=i.hoverlabel,X=W.font,J={showlegend:!0,legend:{title:{text:D,font:X},font:X,bgcolor:W.bgcolor,bordercolor:W.bordercolor,borderwidth:1,tracegroupgap:7,traceorder:i.legend?i.legend.traceorder:void 0,orientation:"v"}},K={font:X};x(J,K,r._fullData);var $=K.legend;$.entries=[];for(var Q=0;Q<Y.length;Q++){var tt=Y[Q];if("none"!==tt.hoverinfo){var et=I(tt,!0,a,i,D),rt=et[0],nt=et[1];tt.name=nt,tt.text=""!==nt?nt+" : "+rt:rt;var it=tt.cd[tt.index];it&&(it.mc&&(tt.mc=it.mc),it.mcc&&(tt.mc=it.mcc),it.mlc&&(tt.mlc=it.mlc),it.mlcc&&(tt.mlc=it.mlcc),it.mlw&&(tt.mlw=it.mlw),it.mrc&&(tt.mrc=it.mrc),it.dir&&(tt.dir=it.dir)),tt._distinct=!0,$.entries.push([tt])}}$.entries.sort((function(t,e){return t[0].trace.index-e[0].trace.index})),$.layer=d,$._inHover=!0,$._groupTitleFont=W.grouptitlefont,b(r,$);var at,ot,st,lt,ut=d.select("g.legend"),ct=V(r,ut.node()),ft=ct.width+2*S,ht=ct.height+2*S,pt=Y[0],dt=(pt.x0+pt.x1)/2,vt=(pt.y0+pt.y1)/2,gt=!(g.traceIs(pt.trace,"bar-like")||g.traceIs(pt.trace,"box-violin"));"y"===P?gt?(ot=vt-S,at=vt+S):(ot=Math.min.apply(null,Y.map((function(t){return Math.min(t.y0,t.y1)}))),at=Math.max.apply(null,Y.map((function(t){return Math.max(t.y0,t.y1)})))):ot=at=o.mean(Y.map((function(t){return(t.y0+t.y1)/2})))-ht/2,"x"===P?gt?(st=dt+S,lt=dt-S):(st=Math.max.apply(null,Y.map((function(t){return Math.max(t.x0,t.x1)}))),lt=Math.min.apply(null,Y.map((function(t){return Math.min(t.x0,t.x1)})))):st=lt=o.mean(Y.map((function(t){return(t.x0+t.x1)/2})))-ft/2;var yt,mt,xt=E._offset,bt=L._offset;return lt+=xt-ft,ot+=bt-ht,yt=(st+=xt)+ft<B&&st>=0?st:lt+ft<B&&lt>=0?lt:xt+ft<B?xt:st-dt<dt-lt+ft?B-ft:0,yt+=S,mt=(at+=bt)+ht<N&&at>=0?at:ot+ht<N&&ot>=0?ot:bt+ht<N?bt:at-vt<vt-ot+ht?N-ht:0,mt+=S,ut.attr("transform",s(yt-1,mt-1)),ut}var _t=d.selectAll("g.hovertext").data(t,(function(t){return C(t)}));return _t.enter().append("g").classed("hovertext",!0).each((function(){var t=n.select(this);t.append("rect").call(p.fill,p.addOpacity(f,.8)),t.append("text").classed("name",!0),t.append("path").style("stroke-width","1px"),t.append("text").classed("nums",!0).call(h.font,T,k)})),_t.exit().remove(),_t.each((function(t){var e=n.select(this).attr("transform",""),o=t.color;Array.isArray(o)&&(o=o[t.eventData[0].pointNumber]);var d=t.bgcolor||o,v=p.combine(p.opacity(d)?d:p.defaultLine,f),g=p.combine(p.opacity(o)?o:p.defaultLine,f),y=t.borderColor||p.contrast(v),m=I(t,j,a,i,D,e),x=m[0],b=m[1],w=e.select("text.nums").call(h.font,t.fontFamily||T,t.fontSize||k,t.fontColor||y).text(x).attr("data-notex",1).call(c.positionText,0,0).call(c.convertToTspans,r),A=e.select("text.name"),E=0,L=0;if(b&&b!==x){A.call(h.font,t.fontFamily||T,t.fontSize||k,g).text(b).attr("data-notex",1).call(c.positionText,0,0).call(c.convertToTspans,r);var C=V(r,A.node());E=C.width+2*S,L=C.height+2*S}else A.remove(),e.select("rect").remove();e.select("path").style({fill:v,stroke:y});var P=t.xa._offset+(t.x0+t.x1)/2,O=t.ya._offset+(t.y0+t.y1)/2,z=Math.abs(t.x1-t.x0),R=Math.abs(t.y1-t.y0),U=V(r,w.node()),H=U.width/i._invScaleX,q=U.height/i._invScaleY;t.ty0=(F-U.top)/i._invScaleY,t.bx=H+2*S,t.by=Math.max(q+2*S,L),t.anchor="start",t.txwidth=H,t.tx2width=E,t.offset=0;var G,Z,Y=(H+M+S+E)*i._invScaleX;if(u)t.pos=P,G=O+R/2+Y<=N,Z=O-R/2-Y>=0,"top"!==t.idealAlign&&G||!Z?G?(O+=R/2,t.anchor="start"):t.anchor="middle":(O-=R/2,t.anchor="end");else if(t.pos=O,G=P+z/2+Y<=B,Z=P-z/2-Y>=0,"left"!==t.idealAlign&&G||!Z)if(G)P+=z/2,t.anchor="start";else{t.anchor="middle";var W=Y/2,X=P+W-B,J=P-W;X>0&&(P-=X),J<0&&(P+=-J)}else P-=z/2,t.anchor="end";w.attr("text-anchor",t.anchor),E&&A.attr("text-anchor",t.anchor),e.attr("transform",s(P,O)+(u?l(_):""))})),_t}function I(t,e,r,n,i,a){var s="",l="";void 0!==t.nameOverride&&(t.name=t.nameOverride),t.name&&(t.trace._meta&&(t.name=o.templateString(t.name,t.trace._meta)),s=B(t.name,t.nameLength));var u=r.charAt(0),c="x"===u?"y":"x";void 0!==t.zLabel?(void 0!==t.xLabel&&(l+="x: "+t.xLabel+"<br>"),void 0!==t.yLabel&&(l+="y: "+t.yLabel+"<br>"),"choropleth"!==t.trace.type&&"choroplethmapbox"!==t.trace.type&&(l+=(l?"z: ":"")+t.zLabel)):e&&t[u+"Label"]===i?l=t[c+"Label"]||"":void 0===t.xLabel?void 0!==t.yLabel&&"scattercarpet"!==t.trace.type&&(l=t.yLabel):l=void 0===t.yLabel?t.xLabel:"("+t.xLabel+", "+t.yLabel+")",!t.text&&0!==t.text||Array.isArray(t.text)||(l+=(l?"<br>":"")+t.text),void 0!==t.extraText&&(l+=(l?"<br>":"")+t.extraText),a&&""===l&&!t.hovertemplate&&(""===s&&a.remove(),l=s);var f=t.hovertemplate||!1;if(f){var h=t.hovertemplateLabels||t;t[u+"Label"]!==i&&(h[u+"other"]=h[u+"Val"],h[u+"otherLabel"]=h[u+"Label"]),l=(l=o.hovertemplateString(f,h,n._d3locale,t.eventData[0]||{},t.trace._meta)).replace(P,(function(e,r){return s=B(r,t.nameLength),""}))}return[l,s]}function D(t,e,r,i){var a=function(t){return t*r},o=function(t){return t*i};t.each((function(t){var r=n.select(this);if(t.del)return r.remove();var i=r.select("text.nums"),s=t.anchor,l="end"===s?-1:1,u={start:1,end:-1,middle:0}[s],f=u*(M+S),p=f+u*(t.txwidth+S),d=0,v=t.offset,g="middle"===s;g&&(f-=t.tx2width/2,p+=t.txwidth/2+S),e&&(v*=-A,d=t.offset*k),r.select("path").attr("d",g?"M-"+a(t.bx/2+t.tx2width/2)+","+o(v-t.by/2)+"h"+a(t.bx)+"v"+o(t.by)+"h-"+a(t.bx)+"Z":"M0,0L"+a(l*M+d)+","+o(M+v)+"v"+o(t.by/2-M)+"h"+a(l*t.bx)+"v-"+o(t.by)+"H"+a(l*M+d)+"V"+o(v-M)+"Z");var y=d+f,m=v+t.ty0-t.by/2+S,x=t.textAlign||"auto";"auto"!==x&&("left"===x&&"start"!==s?(i.attr("text-anchor","start"),y=g?-t.bx/2-t.tx2width/2+S:-t.bx-S):"right"===x&&"end"!==s&&(i.attr("text-anchor","end"),y=g?t.bx/2-t.tx2width/2-S:t.bx+S)),i.call(c.positionText,a(y),o(m)),t.tx2width&&(r.select("text.name").call(c.positionText,a(p+u*S+d),o(v+t.ty0-t.by/2+S)),r.select("rect").call(h.setRect,a(p+(u-1)*t.tx2width/2+d),o(v-t.by/2-1),a(t.tx2width),o(t.by+2)))}))}function z(t,e){var r=t.index,n=t.trace||{},a=t.cd[0],s=t.cd[r]||{};function l(t){return t||i(t)&&0===t}var u=Array.isArray(r)?function(t,e){var i=o.castOption(a,r,t);return l(i)?i:o.extractOption({},n,"",e)}:function(t,e){return o.extractOption(s,n,t,e)};function c(e,r,n){var i=u(r,n);l(i)&&(t[e]=i)}if(c("hoverinfo","hi","hoverinfo"),c("bgcolor","hbg","hoverlabel.bgcolor"),c("borderColor","hbc","hoverlabel.bordercolor"),c("fontFamily","htf","hoverlabel.font.family"),c("fontSize","hts","hoverlabel.font.size"),c("fontColor","htc","hoverlabel.font.color"),c("nameLength","hnl","hoverlabel.namelength"),c("textAlign","hta","hoverlabel.align"),t.posref="y"===e||"closest"===e&&"h"===n.orientation?t.xa._offset+(t.x0+t.x1)/2:t.ya._offset+(t.y0+t.y1)/2,t.x0=o.constrain(t.x0,0,t.xa._length),t.x1=o.constrain(t.x1,0,t.xa._length),t.y0=o.constrain(t.y0,0,t.ya._length),t.y1=o.constrain(t.y1,0,t.ya._length),void 0!==t.xLabelVal&&(t.xLabel="xLabel"in t?t.xLabel:v.hoverLabelText(t.xa,t.xLabelVal,n.xhoverformat),t.xVal=t.xa.c2d(t.xLabelVal)),void 0!==t.yLabelVal&&(t.yLabel="yLabel"in t?t.yLabel:v.hoverLabelText(t.ya,t.yLabelVal,n.yhoverformat),t.yVal=t.ya.c2d(t.yLabelVal)),void 0!==t.zLabelVal&&void 0===t.zLabel&&(t.zLabel=String(t.zLabelVal)),!(isNaN(t.xerr)||"log"===t.xa.type&&t.xerr<=0)){var f=v.tickText(t.xa,t.xa.c2l(t.xerr),"hover").text;void 0!==t.xerrneg?t.xLabel+=" +"+f+" / -"+v.tickText(t.xa,t.xa.c2l(t.xerrneg),"hover").text:t.xLabel+=" ± "+f,"x"===e&&(t.distance+=1)}if(!(isNaN(t.yerr)||"log"===t.ya.type&&t.yerr<=0)){var h=v.tickText(t.ya,t.ya.c2l(t.yerr),"hover").text;void 0!==t.yerrneg?t.yLabel+=" +"+h+" / -"+v.tickText(t.ya,t.ya.c2l(t.yerrneg),"hover").text:t.yLabel+=" ± "+h,"y"===e&&(t.distance+=1)}var p=t.hoverinfo||t.trace.hoverinfo;return p&&"all"!==p&&(-1===(p=Array.isArray(p)?p:p.split("+")).indexOf("x")&&(t.xLabel=void 0),-1===p.indexOf("y")&&(t.yLabel=void 0),-1===p.indexOf("z")&&(t.zLabel=void 0),-1===p.indexOf("text")&&(t.text=void 0),-1===p.indexOf("name")&&(t.name=void 0)),t}function R(t,e,r){var n,i,o=r.container,s=r.fullLayout,l=s._size,u=r.event,c=!!e.hLinePoint,f=!!e.vLinePoint;if(o.selectAll(".spikeline").remove(),f||c){var d=p.combine(s.plot_bgcolor,s.paper_bgcolor);if(c){var g,y,m=e.hLinePoint;n=m&&m.xa,"cursor"===(i=m&&m.ya).spikesnap?(g=u.pointerX,y=u.pointerY):(g=n._offset+m.x,y=i._offset+m.y);var x,b,_=a.readability(m.color,d)<1.5?p.contrast(d):m.color,w=i.spikemode,T=i.spikethickness,k=i.spikecolor||_,A=v.getPxPosition(t,i);if(-1!==w.indexOf("toaxis")||-1!==w.indexOf("across")){if(-1!==w.indexOf("toaxis")&&(x=A,b=g),-1!==w.indexOf("across")){var M=i._counterDomainMin,S=i._counterDomainMax;"free"===i.anchor&&(M=Math.min(M,i.position),S=Math.max(S,i.position)),x=l.l+M*l.w,b=l.l+S*l.w}o.insert("line",":first-child").attr({x1:x,x2:b,y1:y,y2:y,"stroke-width":T,stroke:k,"stroke-dasharray":h.dashStyle(i.spikedash,T)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:x,x2:b,y1:y,y2:y,"stroke-width":T+2,stroke:d}).classed("spikeline",!0).classed("crisp",!0)}-1!==w.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:A+("right"!==i.side?T:-T),cy:y,r:T,fill:k}).classed("spikeline",!0)}if(f){var E,L,C=e.vLinePoint;n=C&&C.xa,i=C&&C.ya,"cursor"===n.spikesnap?(E=u.pointerX,L=u.pointerY):(E=n._offset+C.x,L=i._offset+C.y);var P,O,I=a.readability(C.color,d)<1.5?p.contrast(d):C.color,D=n.spikemode,z=n.spikethickness,R=n.spikecolor||I,F=v.getPxPosition(t,n);if(-1!==D.indexOf("toaxis")||-1!==D.indexOf("across")){if(-1!==D.indexOf("toaxis")&&(P=F,O=L),-1!==D.indexOf("across")){var B=n._counterDomainMin,N=n._counterDomainMax;"free"===n.anchor&&(B=Math.min(B,n.position),N=Math.max(N,n.position)),P=l.t+(1-N)*l.h,O=l.t+(1-B)*l.h}o.insert("line",":first-child").attr({x1:E,x2:E,y1:P,y2:O,"stroke-width":z,stroke:R,"stroke-dasharray":h.dashStyle(n.spikedash,z)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:E,x2:E,y1:P,y2:O,"stroke-width":z+2,stroke:d}).classed("spikeline",!0).classed("crisp",!0)}-1!==D.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:E,cy:F-("top"!==n.side?z:-z),r:z,fill:R}).classed("spikeline",!0)}}}function F(t,e){return!e||e.vLinePoint!==t._spikepoints.vLinePoint||e.hLinePoint!==t._spikepoints.hLinePoint}function B(t,e){return c.plainText(t||"",{len:e,allowedTags:["br","sub","sup","b","i","em"]})}function N(t,e,r){var n=e[t+"a"],i=e[t+"Val"],a=e.cd[0];if("category"===n.type||"multicategory"===n.type)i=n._categoriesMap[i];else if("date"===n.type){var o=e.trace[t+"periodalignment"];if(o){var s=e.cd[e.index],l=s[t+"Start"];void 0===l&&(l=s[t]);var u=s[t+"End"];void 0===u&&(u=s[t]);var c=u-l;"end"===o?i+=c:"middle"===o&&(i+=c/2)}i=n.d2c(i)}return a&&a.t&&a.t.posLetter===n._id&&("group"!==r.boxmode&&"group"!==r.violinmode||(i+=a.t.dPos)),i}function j(t){return t.offsetTop+t.clientTop}function U(t){return t.offsetLeft+t.clientLeft}function V(t,e){var r=t._fullLayout,n=e.getBoundingClientRect(),i=n.x,a=n.y,s=i+n.width,l=a+n.height,u=o.apply3DTransform(r._invTransform)(i,a),c=o.apply3DTransform(r._invTransform)(s,l),f=u[0],h=u[1],p=c[0],d=c[1];return{x:f,y:h,width:p-f,height:d-h,top:Math.min(h,d),left:Math.min(f,p),right:Math.max(f,p),bottom:Math.max(h,d)}}},38048:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(23469).isUnifiedHover;t.exports=function(t,e,r,o){o=o||{};var s=e.legend;function l(t){o.font[t]||(o.font[t]=s?e.legend.font[t]:e.font[t])}e&&a(e.hovermode)&&(o.font||(o.font={}),l("size"),l("family"),l("color"),s?(o.bgcolor||(o.bgcolor=i.combine(e.legend.bgcolor,e.paper_bgcolor)),o.bordercolor||(o.bordercolor=e.legend.bordercolor)):o.bgcolor||(o.bgcolor=e.paper_bgcolor)),r("hoverlabel.bgcolor",o.bgcolor),r("hoverlabel.bordercolor",o.bordercolor),r("hoverlabel.namelength",o.namelength),n.coerceFont(r,"hoverlabel.font",o.font),r("hoverlabel.align",o.align)}},98212:function(t,e,r){"use strict";var n=r(71828),i=r(528);t.exports=function(t,e){function r(r,a){return void 0!==e[r]?e[r]:n.coerce(t,e,i,r,a)}return r("clickmode"),r("hovermode")}},30211:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(28569),o=r(23469),s=r(528),l=r(88335);t.exports={moduleType:"component",name:"fx",constants:r(26675),schema:{layout:s},attributes:r(77914),layoutAttributes:s,supplyLayoutGlobalDefaults:r(22774),supplyDefaults:r(54268),supplyLayoutDefaults:r(34938),calc:r(30732),getDistanceFunction:o.getDistanceFunction,getClosest:o.getClosest,inbox:o.inbox,quadrature:o.quadrature,appendArrayPointValue:o.appendArrayPointValue,castHoverOption:function(t,e,r){return i.castOption(t,e,"hoverlabel."+r)},castHoverinfo:function(t,e,r){return i.castOption(t,r,"hoverinfo",(function(r){return i.coerceHoverinfo({hoverinfo:r},{_module:t._module},e)}))},hover:l.hover,unhover:a.unhover,loneHover:l.loneHover,loneUnhover:function(t){var e=i.isD3Selection(t)?t:n.select(t);e.selectAll("g.hovertext").remove(),e.selectAll(".spikeline").remove()},click:r(75914)}},528:function(t,e,r){"use strict";var n=r(26675),i=r(41940),a=i({editType:"none"});a.family.dflt=n.HOVERFONT,a.size.dflt=n.HOVERFONTSIZE,t.exports={clickmode:{valType:"flaglist",flags:["event","select"],dflt:"event",editType:"plot",extras:["none"]},dragmode:{valType:"enumerated",values:["zoom","pan","select","lasso","drawclosedpath","drawopenpath","drawline","drawrect","drawcircle","orbit","turntable",!1],dflt:"zoom",editType:"modebar"},hovermode:{valType:"enumerated",values:["x","y","closest",!1,"x unified","y unified"],dflt:"closest",editType:"modebar"},hoverdistance:{valType:"integer",min:-1,dflt:20,editType:"none"},spikedistance:{valType:"integer",min:-1,dflt:-1,editType:"none"},hoverlabel:{bgcolor:{valType:"color",editType:"none"},bordercolor:{valType:"color",editType:"none"},font:a,grouptitlefont:i({editType:"none"}),align:{valType:"enumerated",values:["left","right","auto"],dflt:"auto",editType:"none"},namelength:{valType:"integer",min:-1,dflt:15,editType:"none"},editType:"none"},selectdirection:{valType:"enumerated",values:["h","v","d","any"],dflt:"any",editType:"none"}}},34938:function(t,e,r){"use strict";var n=r(71828),i=r(528),a=r(98212),o=r(38048);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}a(t,e)&&(r("hoverdistance"),r("spikedistance")),"select"===r("dragmode")&&r("selectdirection");var s=e._has("mapbox"),l=e._has("geo"),u=e._basePlotModules.length;"zoom"===e.dragmode&&((s||l)&&1===u||s&&l&&2===u)&&(e.dragmode="pan"),o(t,e,r),n.coerceFont(r,"hoverlabel.grouptitlefont",e.hoverlabel.font)}},22774:function(t,e,r){"use strict";var n=r(71828),i=r(38048),a=r(528);t.exports=function(t,e){i(t,e,(function(r,i){return n.coerce(t,e,a,r,i)}))}},83312:function(t,e,r){"use strict";var n=r(71828),i=r(30587).counter,a=r(27670).Y,o=r(85555).idRegex,s=r(44467),l={rows:{valType:"integer",min:1,editType:"plot"},roworder:{valType:"enumerated",values:["top to bottom","bottom to top"],dflt:"top to bottom",editType:"plot"},columns:{valType:"integer",min:1,editType:"plot"},subplots:{valType:"info_array",freeLength:!0,dimensions:2,items:{valType:"enumerated",values:[i("xy").toString(),""],editType:"plot"},editType:"plot"},xaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[o.x.toString(),""],editType:"plot"},editType:"plot"},yaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[o.y.toString(),""],editType:"plot"},editType:"plot"},pattern:{valType:"enumerated",values:["independent","coupled"],dflt:"coupled",editType:"plot"},xgap:{valType:"number",min:0,max:1,editType:"plot"},ygap:{valType:"number",min:0,max:1,editType:"plot"},domain:a({name:"grid",editType:"plot",noGridCell:!0},{}),xside:{valType:"enumerated",values:["bottom","bottom plot","top plot","top"],dflt:"bottom plot",editType:"plot"},yside:{valType:"enumerated",values:["left","left plot","right plot","right"],dflt:"left plot",editType:"plot"},editType:"plot"};function u(t,e,r){var n=e[r+"axes"],i=Object.keys((t._splomAxes||{})[r]||{});return Array.isArray(n)?n:i.length?i:void 0}function c(t,e,r,n,i,a){var o=e(t+"gap",r),s=e("domain."+t);e(t+"side",n);for(var l=new Array(i),u=s[0],c=(s[1]-u)/(i-o),f=c*(1-o),h=0;h<i;h++){var p=u+c*h;l[a?i-1-h:h]=[p,p+f]}return l}function f(t,e,r,n,i){var a,o=new Array(r);function s(t,r){-1!==e.indexOf(r)&&void 0===n[r]?(o[t]=r,n[r]=t):o[t]=""}if(Array.isArray(t))for(a=0;a<r;a++)s(a,t[a]);else for(s(0,i),a=1;a<r;a++)s(a,i+(a+1));return o}t.exports={moduleType:"component",name:"grid",schema:{layout:{grid:l}},layoutAttributes:l,sizeDefaults:function(t,e){var r=t.grid||{},i=u(e,r,"x"),a=u(e,r,"y");if(t.grid||i||a){var o,f,h=Array.isArray(r.subplots)&&Array.isArray(r.subplots[0]),p=Array.isArray(i),d=Array.isArray(a),v=p&&i!==r.xaxes&&d&&a!==r.yaxes;h?(o=r.subplots.length,f=r.subplots[0].length):(d&&(o=a.length),p&&(f=i.length));var g=s.newContainer(e,"grid"),y=k("rows",o),m=k("columns",f);if(y*m>1){h||p||d||"independent"===k("pattern")&&(h=!0),g._hasSubplotGrid=h;var x,b,_="top to bottom"===k("roworder"),w=h?.2:.1,T=h?.3:.1;v&&e._splomGridDflt&&(x=e._splomGridDflt.xside,b=e._splomGridDflt.yside),g._domains={x:c("x",k,w,x,m),y:c("y",k,T,b,y,_)}}else delete e.grid}function k(t,e){return n.coerce(r,g,l,t,e)}},contentDefaults:function(t,e){var r=e.grid;if(r&&r._domains){var n,i,a,o,s,l,c,h=t.grid||{},p=e._subplots,d=r._hasSubplotGrid,v=r.rows,g=r.columns,y="independent"===r.pattern,m=r._axisMap={};if(d){var x=h.subplots||[];l=r.subplots=new Array(v);var b=1;for(n=0;n<v;n++){var _=l[n]=new Array(g),w=x[n]||[];for(i=0;i<g;i++)if(y?(s=1===b?"xy":"x"+b+"y"+b,b++):s=w[i],_[i]="",-1!==p.cartesian.indexOf(s)){if(c=s.indexOf("y"),a=s.slice(0,c),o=s.slice(c),void 0!==m[a]&&m[a]!==i||void 0!==m[o]&&m[o]!==n)continue;_[i]=s,m[a]=i,m[o]=n}}}else{var T=u(e,h,"x"),k=u(e,h,"y");r.xaxes=f(T,p.xaxis,g,m,"x"),r.yaxes=f(k,p.yaxis,v,m,"y")}var A=r._anchors={},M="top to bottom"===r.roworder;for(var S in m){var E,L,C,P=S.charAt(0),O=r[P+"side"];if(O.length<8)A[S]="free";else if("x"===P){if("t"===O.charAt(0)===M?(E=0,L=1,C=v):(E=v-1,L=-1,C=-1),d){var I=m[S];for(n=E;n!==C;n+=L)if((s=l[n][I])&&(c=s.indexOf("y"),s.slice(0,c)===S)){A[S]=s.slice(c);break}}else for(n=E;n!==C;n+=L)if(o=r.yaxes[n],-1!==p.cartesian.indexOf(S+o)){A[S]=o;break}}else if("l"===O.charAt(0)?(E=0,L=1,C=g):(E=g-1,L=-1,C=-1),d){var D=m[S];for(n=E;n!==C;n+=L)if((s=l[D][n])&&(c=s.indexOf("y"),s.slice(c)===S)){A[S]=s.slice(0,c);break}}else for(n=E;n!==C;n+=L)if(a=r.xaxes[n],-1!==p.cartesian.indexOf(a+S)){A[S]=a;break}}}}}},69819:function(t,e,r){"use strict";var n=r(85555),i=r(44467).templatedArray;r(24695),t.exports=i("image",{visible:{valType:"boolean",dflt:!0,editType:"arraydraw"},source:{valType:"string",editType:"arraydraw"},layer:{valType:"enumerated",values:["below","above"],dflt:"above",editType:"arraydraw"},sizex:{valType:"number",dflt:0,editType:"arraydraw"},sizey:{valType:"number",dflt:0,editType:"arraydraw"},sizing:{valType:"enumerated",values:["fill","contain","stretch"],dflt:"contain",editType:"arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},x:{valType:"any",dflt:0,editType:"arraydraw"},y:{valType:"any",dflt:0,editType:"arraydraw"},xanchor:{valType:"enumerated",values:["left","center","right"],dflt:"left",editType:"arraydraw"},yanchor:{valType:"enumerated",values:["top","middle","bottom"],dflt:"top",editType:"arraydraw"},xref:{valType:"enumerated",values:["paper",n.idRegex.x.toString()],dflt:"paper",editType:"arraydraw"},yref:{valType:"enumerated",values:["paper",n.idRegex.y.toString()],dflt:"paper",editType:"arraydraw"},editType:"arraydraw"})},75378:function(t,e,r){"use strict";var n=r(92770),i=r(58163);t.exports=function(t,e,r,a){e=e||{};var o="log"===r&&"linear"===e.type,s="linear"===r&&"log"===e.type;if(o||s)for(var l,u,c=t._fullLayout.images,f=e._id.charAt(0),h=0;h<c.length;h++)if(u="images["+h+"].",(l=c[h])[f+"ref"]===e._id){var p=l[f],d=l["size"+f],v=null,g=null;if(o){v=i(p,e.range);var y=d/Math.pow(10,v)/2;g=2*Math.log(y+Math.sqrt(1+y*y))/Math.LN10}else g=(v=Math.pow(10,p))*(Math.pow(10,d/2)-Math.pow(10,-d/2));n(v)?n(g)||(g=null):(v=null,g=null),a(u+f,v),a(u+"size"+f,g)}}},81603:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(85501),o=r(69819);function s(t,e,r){function a(r,i){return n.coerce(t,e,o,r,i)}var s=a("source");if(!a("visible",!!s))return e;a("layer"),a("xanchor"),a("yanchor"),a("sizex"),a("sizey"),a("sizing"),a("opacity");for(var l={_fullLayout:r},u=["x","y"],c=0;c<2;c++){var f=u[c],h=i.coerceRef(t,e,l,f,"paper",void 0);"paper"!==h&&i.getFromId(l,h)._imgIndices.push(e._index),i.coercePosition(e,l,a,h,f,0)}return e}t.exports=function(t,e){a(t,e,{name:"images",handleItemDefaults:s})}},80750:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(89298),o=r(41675),s=r(77922);t.exports=function(t){var e,r,l=t._fullLayout,u=[],c={},f=[];for(r=0;r<l.images.length;r++){var h=l.images[r];if(h.visible)if("below"===h.layer&&"paper"!==h.xref&&"paper"!==h.yref){e=o.ref2id(h.xref)+o.ref2id(h.yref);var p=l._plots[e];if(!p){f.push(h);continue}p.mainplot&&(e=p.mainplot.id),c[e]||(c[e]=[]),c[e].push(h)}else"above"===h.layer?u.push(h):f.push(h)}var d={left:{sizing:"xMin",offset:0},center:{sizing:"xMid",offset:-.5},right:{sizing:"xMax",offset:-1}},v={top:{sizing:"YMin",offset:0},middle:{sizing:"YMid",offset:-.5},bottom:{sizing:"YMax",offset:-1}};function g(e){var r=n.select(this);if(this._imgSrc!==e.source)if(r.attr("xmlns",s.svg),e.source&&"data:"===e.source.slice(0,5))r.attr("xlink:href",e.source),this._imgSrc=e.source;else{var i=new Promise(function(t){var n=new Image;function i(){r.remove(),t()}this.img=n,n.setAttribute("crossOrigin","anonymous"),n.onerror=i,n.onload=function(){var e=document.createElement("canvas");e.width=this.width,e.height=this.height,e.getContext("2d",{willReadFrequently:!0}).drawImage(this,0,0);var n=e.toDataURL("image/png");r.attr("xlink:href",n),t()},r.on("error",i),n.src=e.source,this._imgSrc=e.source}.bind(this));t._promises.push(i)}}function y(e){var r,o,s=n.select(this),u=a.getFromId(t,e.xref),c=a.getFromId(t,e.yref),f="domain"===a.getRefType(e.xref),h="domain"===a.getRefType(e.yref),p=l._size;r=void 0!==u?"string"==typeof e.xref&&f?u._length*e.sizex:Math.abs(u.l2p(e.sizex)-u.l2p(0)):e.sizex*p.w,o=void 0!==c?"string"==typeof e.yref&&h?c._length*e.sizey:Math.abs(c.l2p(e.sizey)-c.l2p(0)):e.sizey*p.h;var g,y,m=r*d[e.xanchor].offset,x=o*v[e.yanchor].offset,b=d[e.xanchor].sizing+v[e.yanchor].sizing;switch(g=void 0!==u?"string"==typeof e.xref&&f?u._length*e.x+u._offset:u.r2p(e.x)+u._offset:e.x*p.w+p.l,g+=m,y=void 0!==c?"string"==typeof e.yref&&h?c._length*(1-e.y)+c._offset:c.r2p(e.y)+c._offset:p.h-e.y*p.h+p.t,y+=x,e.sizing){case"fill":b+=" slice";break;case"stretch":b="none"}s.attr({x:g,y:y,width:r,height:o,preserveAspectRatio:b,opacity:e.opacity});var _=(u&&"domain"!==a.getRefType(e.xref)?u._id:"")+(c&&"domain"!==a.getRefType(e.yref)?c._id:"");i.setClipUrl(s,_?"clip"+l._uid+_:null,t)}var m=l._imageLowerLayer.selectAll("image").data(f),x=l._imageUpperLayer.selectAll("image").data(u);m.enter().append("image"),x.enter().append("image"),m.exit().remove(),x.exit().remove(),m.each((function(t){g.bind(this)(t),y.bind(this)(t)})),x.each((function(t){g.bind(this)(t),y.bind(this)(t)}));var b=Object.keys(l._plots);for(r=0;r<b.length;r++){e=b[r];var _=l._plots[e];if(_.imagelayer){var w=_.imagelayer.selectAll("image").data(c[e]||[]);w.enter().append("image"),w.exit().remove(),w.each((function(t){g.bind(this)(t),y.bind(this)(t)}))}}}},68804:function(t,e,r){"use strict";t.exports={moduleType:"component",name:"images",layoutAttributes:r(69819),supplyLayoutDefaults:r(81603),includeBasePlot:r(76325)("images"),draw:r(80750),convertCoords:r(75378)}},33030:function(t,e,r){"use strict";var n=r(41940),i=r(22399);t.exports={bgcolor:{valType:"color",editType:"legend"},bordercolor:{valType:"color",dflt:i.defaultLine,editType:"legend"},borderwidth:{valType:"number",min:0,dflt:0,editType:"legend"},font:n({editType:"legend"}),grouptitlefont:n({editType:"legend"}),orientation:{valType:"enumerated",values:["v","h"],dflt:"v",editType:"legend"},traceorder:{valType:"flaglist",flags:["reversed","grouped"],extras:["normal"],editType:"legend"},tracegroupgap:{valType:"number",min:0,dflt:10,editType:"legend"},entrywidth:{valType:"number",min:0,editType:"legend"},entrywidthmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"pixels",editType:"legend"},itemsizing:{valType:"enumerated",values:["trace","constant"],dflt:"trace",editType:"legend"},itemwidth:{valType:"number",min:30,dflt:30,editType:"legend"},itemclick:{valType:"enumerated",values:["toggle","toggleothers",!1],dflt:"toggle",editType:"legend"},itemdoubleclick:{valType:"enumerated",values:["toggle","toggleothers",!1],dflt:"toggleothers",editType:"legend"},groupclick:{valType:"enumerated",values:["toggleitem","togglegroup"],dflt:"togglegroup",editType:"legend"},x:{valType:"number",min:-2,max:3,editType:"legend"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left",editType:"legend"},y:{valType:"number",min:-2,max:3,editType:"legend"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],editType:"legend"},uirevision:{valType:"any",editType:"none"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"legend"},title:{text:{valType:"string",dflt:"",editType:"legend"},font:n({editType:"legend"}),side:{valType:"enumerated",values:["top","left","top left"],editType:"legend"},editType:"legend"},editType:"legend"}},14928:function(t){"use strict";t.exports={scrollBarWidth:6,scrollBarMinHeight:20,scrollBarColor:"#808BA4",scrollBarMargin:4,scrollBarEnterAttrs:{rx:20,ry:3,width:0,height:0},titlePad:2,itemGap:5}},99017:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(44467),o=r(9012),s=r(33030),l=r(10820),u=r(10130);t.exports=function(t,e,r){var c,f=t.legend||{},h=a.newContainer(e,"legend");function p(t,e){return i.coerce(f,h,s,t,e)}for(var d=function(t,e){var r=c._input,n=c;return i.coerce(r,n,o,t,e)},v=e.font||{},g=i.coerceFont(p,"grouptitlefont",i.extendFlat({},v,{size:Math.round(1.1*v.size)})),y=0,m=!1,x="normal",b=0;b<r.length;b++)(c=r[b]).visible&&((c.showlegend||c._dfltShowLegend&&!(c._module&&c._module.attributes&&c._module.attributes.showlegend&&!1===c._module.attributes.showlegend.dflt))&&(y++,c.showlegend&&(m=!0,(n.traceIs(c,"pie-like")||!0===c._input.showlegend)&&y++),i.coerceFont(d,"legendgrouptitle.font",g)),(n.traceIs(c,"bar")&&"stack"===e.barmode||-1!==["tonextx","tonexty"].indexOf(c.fill))&&(x=u.isGrouped({traceorder:x})?"grouped+reversed":"reversed"),void 0!==c.legendgroup&&""!==c.legendgroup&&(x=u.isReversed({traceorder:x})?"reversed+grouped":"grouped"));var _=i.coerce(t,e,l,"showlegend",m&&y>1);if(!1===_&&(e.legend=void 0),(!1!==_||f.uirevision)&&(p("uirevision",e.uirevision),!1!==_)){p("bgcolor",e.paper_bgcolor),p("bordercolor"),p("borderwidth");var w,T,k,A=i.coerceFont(p,"font",e.font),M="h"===p("orientation");if(M?(w=0,n.getComponentMethod("rangeslider","isVisible")(t.xaxis)?(T=1.1,k="bottom"):(T=-.1,k="top")):(w=1.02,T=1,k="auto"),p("traceorder",x),u.isGrouped(e.legend)&&p("tracegroupgap"),p("entrywidth"),p("entrywidthmode"),p("itemsizing"),p("itemwidth"),p("itemclick"),p("itemdoubleclick"),p("groupclick"),p("x",w),p("xanchor"),p("y",T),p("yanchor",k),p("valign"),i.noneOrAll(f,h,["x","y"]),p("title.text")){p("title.side",M?"left":"top");var S=i.extendFlat({},A,{size:i.bigFont(A.size)});i.coerceFont(p,"title.font",S)}}}},43969:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(74875),o=r(73972),s=r(11086),l=r(28569),u=r(91424),c=r(7901),f=r(63893),h=r(85167),p=r(14928),d=r(18783),v=d.LINE_SPACING,g=d.FROM_TL,y=d.FROM_BR,m=r(82424),x=r(53630),b=r(10130);function _(t,e,r){var n=t[0],i=n.width,a=e.entrywidthmode,o=n.trace.legendwidth||e.entrywidth;return"fraction"===a?e._maxWidth*o:r+(o||i)}function w(t,e,r,n,i){var a=r.data()[0][0].trace,l={event:i,node:r.node(),curveNumber:a.index,expandedIndex:a._expandedIndex,data:t.data,layout:t.layout,frames:t._transitionData._frames,config:t._context,fullData:t._fullData,fullLayout:t._fullLayout};a._group&&(l.group=a._group),o.traceIs(a,"pie-like")&&(l.label=r.datum()[0].label),!1!==s.triggerHandler(t,"plotly_legendclick",l)&&(1===n?e._clickTimeout=setTimeout((function(){t._fullLayout&&h(r,t,n)}),t._context.doubleClickDelay):2===n&&(e._clickTimeout&&clearTimeout(e._clickTimeout),t._legendMouseDownTime=0,!1!==s.triggerHandler(t,"plotly_legenddoubleclick",l)&&h(r,t,n)))}function T(t,e,r){var n,a,s=t.data()[0][0],l=s.trace,c=o.traceIs(l,"pie-like"),h=!r._inHover&&e._context.edits.legendText&&!c,d=r._maxNameLength;s.groupTitle?(n=s.groupTitle.text,a=s.groupTitle.font):(a=r.font,r.entries?n=s.text:(n=c?s.label:l.name,l._meta&&(n=i.templateString(n,l._meta))));var v=i.ensureSingle(t,"text","legendtext");v.attr("text-anchor","start").call(u.font,a).text(h?k(n,d):n);var g=r.itemwidth+2*p.itemGap;f.positionText(v,g,0),h?v.call(f.makeEditable,{gd:e,text:n}).call(M,t,e,r).on("edit",(function(n){this.text(k(n,d)).call(M,t,e,r);var a=s.trace._fullInput||{},u={};if(o.hasTransform(a,"groupby")){var c=o.getTransformIndices(a,"groupby"),f=c[c.length-1],h=i.keyedContainer(a,"transforms["+f+"].styles","target","value.name");h.set(s.trace._group,n),u=h.constructUpdate()}else u.name=n;return o.call("_guiRestyle",e,u,l.index)})):M(v,t,e,r)}function k(t,e){var r=Math.max(4,e);if(t&&t.trim().length>=r/2)return t;for(var n=r-(t=t||"").length;n>0;n--)t+=" ";return t}function A(t,e){var r,a=e._context.doubleClickDelay,o=1,s=i.ensureSingle(t,"rect","legendtoggle",(function(t){e._context.staticPlot||t.style("cursor","pointer").attr("pointer-events","all"),t.call(c.fill,"rgba(0,0,0,0)")}));e._context.staticPlot||(s.on("mousedown",(function(){(r=(new Date).getTime())-e._legendMouseDownTime<a?o+=1:(o=1,e._legendMouseDownTime=r)})),s.on("mouseup",(function(){if(!e._dragged&&!e._editing){var r=e._fullLayout.legend;(new Date).getTime()-e._legendMouseDownTime>a&&(o=Math.max(o-1,1)),w(e,r,t,o,n.event)}})))}function M(t,e,r,n,i){n._inHover&&t.attr("data-notex",!0),f.convertToTspans(t,r,(function(){!function(t,e,r,n){var i=t.data()[0][0];if(r._inHover||!i||i.trace.showlegend){var a=t.select("g[class*=math-group]"),o=a.node();r||(r=e._fullLayout.legend);var s,l,c=r.borderwidth,h=(1===n?r.title.font:i.groupTitle?i.groupTitle.font:r.font).size*v;if(o){var d=u.bBox(o);s=d.height,l=d.width,1===n?u.setTranslate(a,c,c+.75*s):u.setTranslate(a,0,.25*s)}else{var g=t.select(1===n?".legendtitletext":".legendtext"),y=f.lineCount(g),m=g.node();if(s=h*y,l=m?u.bBox(m).width:0,1===n)"left"===r.title.side&&(l+=2*p.itemGap),f.positionText(g,c+p.titlePad,c+h);else{var x=2*p.itemGap+r.itemwidth;i.groupTitle&&(x=p.itemGap,l-=r.itemwidth),f.positionText(g,x,-h*((y-1)/2-.3))}}1===n?(r._titleWidth=l,r._titleHeight=s):(i.lineHeight=h,i.height=Math.max(s,16)+3,i.width=l)}else t.remove()}(e,r,n,i)}))}function S(t){return i.isRightAnchor(t)?"right":i.isCenterAnchor(t)?"center":"left"}function E(t){return i.isBottomAnchor(t)?"bottom":i.isMiddleAnchor(t)?"middle":"top"}t.exports=function(t,e){return e||(e=t._fullLayout.legend||{}),function(t,e){var r,s,f=t._fullLayout,h="legend"+f._uid,d=e._inHover;if(d?(r=e.layer,h+="-hover"):r=f._infolayer,r){if(t._legendMouseDownTime||(t._legendMouseDownTime=0),d){if(!e.entries)return;s=m(e.entries,e)}else{if(!t.calcdata)return;s=f.showlegend&&m(t.calcdata,e)}var v=f.hiddenlabels||[];if(!(d||f.showlegend&&s.length))return r.selectAll(".legend").remove(),f._topdefs.select("#"+h).remove(),a.autoMargin(t,"legend");var k=i.ensureSingle(r,"g","legend",(function(t){d||t.attr("pointer-events","all")})),L=i.ensureSingleById(f._topdefs,"clipPath",h,(function(t){t.append("rect")})),C=i.ensureSingle(k,"rect","bg",(function(t){t.attr("shape-rendering","crispEdges")}));C.call(c.stroke,e.bordercolor).call(c.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px");var P=i.ensureSingle(k,"g","scrollbox"),O=e.title;if(e._titleWidth=0,e._titleHeight=0,O.text){var I=i.ensureSingle(P,"text","legendtitletext");I.attr("text-anchor","start").call(u.font,O.font).text(O.text),M(I,P,t,e,1)}else P.selectAll(".legendtitletext").remove();var D=i.ensureSingle(k,"rect","scrollbar",(function(t){t.attr(p.scrollBarEnterAttrs).call(c.fill,p.scrollBarColor)})),z=P.selectAll("g.groups").data(s);z.enter().append("g").attr("class","groups"),z.exit().remove();var R=z.selectAll("g.traces").data(i.identity);R.enter().append("g").attr("class","traces"),R.exit().remove(),R.style("opacity",(function(t){var e=t[0].trace;return o.traceIs(e,"pie-like")?-1!==v.indexOf(t[0].label)?.5:1:"legendonly"===e.visible?.5:1})).each((function(){n.select(this).call(T,t,e)})).call(x,t,e).each((function(){d||n.select(this).call(A,t)})),i.syncOrAsync([a.previousPromises,function(){return function(t,e,r,i){var a=t._fullLayout;i||(i=a.legend);var o=a._size,s=b.isVertical(i),l=b.isGrouped(i),c="fraction"===i.entrywidthmode,f=i.borderwidth,h=2*f,d=p.itemGap,v=i.itemwidth+2*d,g=2*(f+d),y=E(i),m=i.y<0||0===i.y&&"top"===y,x=i.y>1||1===i.y&&"bottom"===y,w=i.tracegroupgap,T={};i._maxHeight=Math.max(m||x?a.height/2:o.h,30);var k=0;i._width=0,i._height=0;var A=function(t){var e=0,r=0,n=t.title.side;return n&&(-1!==n.indexOf("left")&&(e=t._titleWidth),-1!==n.indexOf("top")&&(r=t._titleHeight)),[e,r]}(i);if(s)r.each((function(t){var e=t[0].height;u.setTranslate(this,f+A[0],f+A[1]+i._height+e/2+d),i._height+=e,i._width=Math.max(i._width,t[0].width)})),k=v+i._width,i._width+=d+v+h,i._height+=g,l&&(e.each((function(t,e){u.setTranslate(this,0,e*i.tracegroupgap)})),i._height+=(i._lgroupsLength-1)*i.tracegroupgap);else{var M=S(i),L=i.x<0||0===i.x&&"right"===M,C=i.x>1||1===i.x&&"left"===M,P=x||m,O=a.width/2;i._maxWidth=Math.max(L?P&&"left"===M?o.l+o.w:O:C?P&&"right"===M?o.r+o.w:O:o.w,2*v);var I=0,D=0;r.each((function(t){var e=_(t,i,v);I=Math.max(I,e),D+=e})),k=null;var z=0;if(l){var R=0,F=0,B=0;e.each((function(){var t=0,e=0;n.select(this).selectAll("g.traces").each((function(r){var n=_(r,i,v),a=r[0].height;u.setTranslate(this,A[0],A[1]+f+d+a/2+e),e+=a,t=Math.max(t,n),T[r[0].trace.legendgroup]=t}));var r=t+d;F>0&&r+f+F>i._maxWidth?(z=Math.max(z,F),F=0,B+=R+w,R=e):R=Math.max(R,e),u.setTranslate(this,F,B),F+=r})),i._width=Math.max(z,F)+f,i._height=B+R+g}else{var N=r.size(),j=D+h+(N-1)*d<i._maxWidth,U=0,V=0,H=0,q=0;r.each((function(t){var e=t[0].height,r=_(t,i,v),n=j?r:I;c||(n+=d),n+f+V-d>=i._maxWidth&&(z=Math.max(z,q),V=0,H+=U,i._height+=U,U=0),u.setTranslate(this,A[0]+f+V,A[1]+f+H+e/2+d),q=V+r+d,V+=n,U=Math.max(U,e)})),j?(i._width=V+h,i._height=U+g):(i._width=Math.max(z,q)+h,i._height+=U+g)}}i._width=Math.ceil(Math.max(i._width+A[0],i._titleWidth+2*(f+p.titlePad))),i._height=Math.ceil(Math.max(i._height+A[1],i._titleHeight+2*(f+p.itemGap))),i._effHeight=Math.min(i._height,i._maxHeight);var G=t._context.edits,Z=G.legendText||G.legendPosition;r.each((function(t){var e=n.select(this).select(".legendtoggle"),r=t[0].height,a=t[0].trace.legendgroup,o=_(t,i,v);l&&""!==a&&(o=T[a]);var f=Z?v:k||o;s||c||(f+=d/2),u.setRect(e,0,-r/2,f,r)}))}(t,z,R,e)},function(){var s,c,v,m,x=f._size,b=e.borderwidth;if(!d){var _=function(t){var e=t._fullLayout.legend,r=S(e),n=E(e);return a.autoMargin(t,"legend",{x:e.x,y:e.y,l:e._width*g[r],r:e._width*y[r],b:e._effHeight*y[n],t:e._effHeight*g[n]})}(t);if(_)return;var T=x.l+x.w*e.x-g[S(e)]*e._width,A=x.t+x.h*(1-e.y)-g[E(e)]*e._effHeight;if(f.margin.autoexpand){var M=T,O=A;T=i.constrain(T,0,f.width-e._width),A=i.constrain(A,0,f.height-e._effHeight),T!==M&&i.log("Constrain legend.x to make legend fit inside graph"),A!==O&&i.log("Constrain legend.y to make legend fit inside graph")}u.setTranslate(k,T,A)}if(D.on(".drag",null),k.on("wheel",null),d||e._height<=e._maxHeight||t._context.staticPlot){var I=e._effHeight;d&&(I=e._height),C.attr({width:e._width-b,height:I-b,x:b/2,y:b/2}),u.setTranslate(P,0,0),L.select("rect").attr({width:e._width-2*b,height:I-2*b,x:b,y:b}),u.setClipUrl(P,h,t),u.setRect(D,0,0,0,0),delete e._scrollY}else{var z,R,F,B=Math.max(p.scrollBarMinHeight,e._effHeight*e._effHeight/e._height),N=e._effHeight-B-2*p.scrollBarMargin,j=e._height-e._effHeight,U=N/j,V=Math.min(e._scrollY||0,j);C.attr({width:e._width-2*b+p.scrollBarWidth+p.scrollBarMargin,height:e._effHeight-b,x:b/2,y:b/2}),L.select("rect").attr({width:e._width-2*b+p.scrollBarWidth+p.scrollBarMargin,height:e._effHeight-2*b,x:b,y:b+V}),u.setClipUrl(P,h,t),G(V,B,U),k.on("wheel",(function(){G(V=i.constrain(e._scrollY+n.event.deltaY/N*j,0,j),B,U),0!==V&&V!==j&&n.event.preventDefault()}));var H=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;z="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,F=V})).on("drag",(function(){var t=n.event.sourceEvent;2===t.buttons||t.ctrlKey||(R="touchmove"===t.type?t.changedTouches[0].clientY:t.clientY,G(V=function(t,e,r){var n=(r-e)/U+t;return i.constrain(n,0,j)}(F,z,R),B,U))}));D.call(H);var q=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;"touchstart"===t.type&&(z=t.changedTouches[0].clientY,F=V)})).on("drag",(function(){var t=n.event.sourceEvent;"touchmove"===t.type&&(R=t.changedTouches[0].clientY,G(V=function(t,e,r){var n=(e-r)/U+t;return i.constrain(n,0,j)}(F,z,R),B,U))}));P.call(q)}function G(r,n,i){e._scrollY=t._fullLayout.legend._scrollY=r,u.setTranslate(P,0,-r),u.setRect(D,e._width,p.scrollBarMargin+r*i,p.scrollBarWidth,n),L.select("rect").attr("y",b+r)}t._context.edits.legendPosition&&(k.classed("cursor-move",!0),l.init({element:k.node(),gd:t,prepFn:function(){var t=u.getTranslate(k);v=t.x,m=t.y},moveFn:function(t,r){var n=v+t,i=m+r;u.setTranslate(k,n,i),s=l.align(n,0,x.l,x.l+x.w,e.xanchor),c=l.align(i,0,x.t+x.h,x.t,e.yanchor)},doneFn:function(){void 0!==s&&void 0!==c&&o.call("_guiRelayout",t,{"legend.x":s,"legend.y":c})},clickFn:function(e,n){var i=r.selectAll("g.traces").filter((function(){var t=this.getBoundingClientRect();return n.clientX>=t.left&&n.clientX<=t.right&&n.clientY>=t.top&&n.clientY<=t.bottom}));i.size()>0&&w(t,k,i,e,n)}}))}],t)}}(t,e)}},82424:function(t,e,r){"use strict";var n=r(73972),i=r(10130);t.exports=function(t,e){var r,a,o=e._inHover,s=i.isGrouped(e),l=i.isReversed(e),u={},c=[],f=!1,h={},p=0,d=0;function v(t,r){if(""!==t&&i.isGrouped(e))-1===c.indexOf(t)?(c.push(t),f=!0,u[t]=[r]):u[t].push(r);else{var n="~~i"+p;c.push(n),u[n]=[r],p++}}for(r=0;r<t.length;r++){var g=t[r],y=g[0],m=y.trace,x=m.legendgroup;if(o||m.visible&&m.showlegend)if(n.traceIs(m,"pie-like"))for(h[x]||(h[x]={}),a=0;a<g.length;a++){var b=g[a].label;h[x][b]||(v(x,{label:b,color:g[a].color,i:g[a].i,trace:m,pts:g[a].pts}),h[x][b]=!0,d=Math.max(d,(b||"").length))}else v(x,y),d=Math.max(d,(m.name||"").length)}if(!c.length)return[];var _=!f||!s,w=[];for(r=0;r<c.length;r++){var T=u[c[r]];_?w.push(T[0]):w.push(T)}for(_&&(w=[w]),r=0;r<w.length;r++){var k=1/0;for(a=0;a<w[r].length;a++){var A=w[r][a].trace.legendrank;k>A&&(k=A)}w[r][0]._groupMinRank=k,w[r][0]._preGroupSort=r}var M=function(t,e){return t.trace.legendrank-e.trace.legendrank||t._preSort-e._preSort};for(w.forEach((function(t,e){t[0]._preGroupSort=e})),w.sort((function(t,e){return t[0]._groupMinRank-e[0]._groupMinRank||t[0]._preGroupSort-e[0]._preGroupSort})),r=0;r<w.length;r++){w[r].forEach((function(t,e){t._preSort=e})),w[r].sort(M);var S=w[r][0].trace,E=null;for(a=0;a<w[r].length;a++){var L=w[r][a].trace.legendgrouptitle;if(L&&L.text){E=L,o&&(L.font=e._groupTitleFont);break}}if(l&&w[r].reverse(),E){var C=!1;for(a=0;a<w[r].length;a++)if(n.traceIs(w[r][a].trace,"pie-like")){C=!0;break}w[r].unshift({i:-1,groupTitle:E,noClick:C,trace:{showlegend:S.showlegend,legendgroup:S.legendgroup,visible:"toggleitem"===e.groupclick||S.visible}})}for(a=0;a<w[r].length;a++)w[r][a]=[w[r][a]]}return e._lgroupsLength=w.length,e._maxNameLength=d,w}},85167:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=!0;t.exports=function(t,e,r){var o=e._fullLayout;if(!e._dragged&&!e._editing){var s,l=o.legend.itemclick,u=o.legend.itemdoubleclick,c=o.legend.groupclick;if(1===r&&"toggle"===l&&"toggleothers"===u&&a&&e.data&&e._context.showTips?(n.notifier(n._(e,"Double-click on legend to isolate one trace"),"long"),a=!1):a=!1,1===r?s=l:2===r&&(s=u),s){var f="togglegroup"===c,h=o.hiddenlabels?o.hiddenlabels.slice():[],p=t.data()[0][0];if(!p.groupTitle||!p.noClick){var d,v,g,y,m,x=e._fullData,b=p.trace,_=b.legendgroup,w={},T=[],k=[],A=[];if(i.traceIs(b,"pie-like")){var M=p.label,S=h.indexOf(M);"toggle"===s?-1===S?h.push(M):h.splice(S,1):"toggleothers"===s&&(h=[],e.calcdata[0].forEach((function(t){M!==t.label&&h.push(t.label)})),e._fullLayout.hiddenlabels&&e._fullLayout.hiddenlabels.length===h.length&&-1===S&&(h=[])),i.call("_guiRelayout",e,"hiddenlabels",h)}else{var E,L=_&&_.length,C=[];if(L)for(d=0;d<x.length;d++)(E=x[d]).visible&&E.legendgroup===_&&C.push(d);if("toggle"===s){var P;switch(b.visible){case!0:P="legendonly";break;case!1:P=!1;break;case"legendonly":P=!0}if(L)if(f)for(d=0;d<x.length;d++)!1!==x[d].visible&&x[d].legendgroup===_&&j(x[d],P);else j(b,P);else j(b,P)}else if("toggleothers"===s){var O,I,D,z,R=!0;for(d=0;d<x.length;d++)if(O=x[d]===b,D=!0!==x[d].showlegend,!(O||D||(I=L&&x[d].legendgroup===_)||!0!==x[d].visible||i.traceIs(x[d],"notLegendIsolatable"))){R=!1;break}for(d=0;d<x.length;d++)if(!1!==x[d].visible&&!i.traceIs(x[d],"notLegendIsolatable"))switch(b.visible){case"legendonly":j(x[d],!0);break;case!0:z=!!R||"legendonly",O=x[d]===b,D=!0!==x[d].showlegend&&!x[d].legendgroup,I=O||L&&x[d].legendgroup===_,j(x[d],!(!I&&!D)||z)}}for(d=0;d<k.length;d++)if(g=k[d]){var F=g.constructUpdate(),B=Object.keys(F);for(v=0;v<B.length;v++)y=B[v],(w[y]=w[y]||[])[A[d]]=F[y]}for(m=Object.keys(w),d=0;d<m.length;d++)for(y=m[d],v=0;v<T.length;v++)w[y].hasOwnProperty(v)||(w[y][v]=void 0);i.call("_guiRestyle",e,w,T)}}}}function N(t,e,r){var n=T.indexOf(t),i=w[e];return i||(i=w[e]=[]),-1===T.indexOf(t)&&(T.push(t),n=T.length-1),i[n]=r,n}function j(t,e){if(!p.groupTitle||f){var r=t._fullInput;if(i.hasTransform(r,"groupby")){var a=k[r.index];if(!a){var o=i.getTransformIndices(r,"groupby"),s=o[o.length-1];a=n.keyedContainer(r,"transforms["+s+"].styles","target","value.visible"),k[r.index]=a}var l=a.get(t._group);void 0===l&&(l=!0),!1!==l&&a.set(t._group,e),A[r.index]=N(r.index,"visible",!1!==r.visible)}else{var u=!1!==r.visible&&e;N(r.index,"visible",u)}}}}},10130:function(t,e){"use strict";e.isGrouped=function(t){return-1!==(t.traceorder||"").indexOf("grouped")},e.isVertical=function(t){return"h"!==t.orientation},e.isReversed=function(t){return-1!==(t.traceorder||"").indexOf("reversed")}},2199:function(t,e,r){"use strict";t.exports={moduleType:"component",name:"legend",layoutAttributes:r(33030),supplyLayoutDefaults:r(99017),draw:r(43969),style:r(53630)}},53630:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(71828),o=a.strTranslate,s=r(91424),l=r(7901),u=r(52075).extractOpts,c=r(34098),f=r(63463),h=r(53581).castOption,p=r(14928);function d(t,e){return(e?"radial":"horizontal")+(t?"":"reversed")}function v(t){var e=t[0].trace,r=e.contours,n=c.hasLines(e),i=c.hasMarkers(e),a=e.visible&&e.fill&&"none"!==e.fill,o=!1,s=!1;if(r){var l=r.coloring;"lines"===l?o=!0:n="none"===l||"heatmap"===l||r.showlines,"constraint"===r.type?a="="!==r._operation:"fill"!==l&&"heatmap"!==l||(s=!0)}return{showMarker:i,showLine:n,showFill:a,showGradientLine:o,showGradientFill:s,anyLine:n||o,anyFill:a||s}}function g(t,e,r){return t&&a.isArrayOrTypedArray(t)?e:t>r?r:t}t.exports=function(t,e,r){var y=e._fullLayout;r||(r=y.legend);var m="constant"===r.itemsizing,x=r.itemwidth,b=(x+2*p.itemGap)/2,_=o(b,0),w=function(t,e,r,n){var i;if(t+1)i=t;else{if(!(e&&e.width>0))return 0;i=e.width}return m?n:Math.min(i,r)};function T(t,a,o){var c=t[0].trace,f=c.marker||{},h=f.line||{},p=o?c.visible&&c.type===o:i.traceIs(c,"bar"),d=n.select(a).select("g.legendpoints").selectAll("path.legend"+o).data(p?[t]:[]);d.enter().append("path").classed("legend"+o,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",_),d.exit().remove(),d.each((function(t){var i=n.select(this),a=t[0],o=w(a.mlw,f.line,5,2);i.style("stroke-width",o+"px");var p=a.mcc;if(!r._inHover&&"mc"in a){var d=u(f),v=d.mid;void 0===v&&(v=(d.max+d.min)/2),p=s.tryColorscale(f,"")(v)}var y=p||a.mc||f.color,m=f.pattern,x=m&&s.getPatternAttr(m.shape,0,"");if(x){var b=s.getPatternAttr(m.bgcolor,0,null),_=s.getPatternAttr(m.fgcolor,0,null),T=m.fgopacity,k=g(m.size,8,10),A=g(m.solidity,.5,1),M="legend-"+c.uid;i.call(s.pattern,"legend",e,M,x,k,A,p,m.fillmode,b,_,T)}else i.call(l.fill,y);o&&l.stroke(i,a.mlc||h.color)}))}function k(t,e,r){var o=t[0],s=o.trace,l=r?s.visible&&s.type===r:i.traceIs(s,r),u=n.select(e).select("g.legendpoints").selectAll("path.legend"+r).data(l?[t]:[]);if(u.enter().append("path").classed("legend"+r,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",_),u.exit().remove(),u.size()){var c=(s.marker||{}).line,p=w(h(c.width,o.pts),c,5,2),d=a.minExtend(s,{marker:{line:{width:p}}});d.marker.line.color=c.color;var v=a.minExtend(o,{trace:d});f(u,v,d)}}t.each((function(t){var e=n.select(this),i=a.ensureSingle(e,"g","layers");i.style("opacity",t[0].trace.opacity);var s=r.valign,l=t[0].lineHeight,u=t[0].height;if("middle"!==s&&l&&u){var c={top:1,bottom:-1}[s]*(.5*(l-u+3));i.attr("transform",o(0,c))}else i.attr("transform",null);i.selectAll("g.legendfill").data([t]).enter().append("g").classed("legendfill",!0),i.selectAll("g.legendlines").data([t]).enter().append("g").classed("legendlines",!0);var f=i.selectAll("g.legendsymbols").data([t]);f.enter().append("g").classed("legendsymbols",!0),f.selectAll("g.legendpoints").data([t]).enter().append("g").classed("legendpoints",!0)})).each((function(t){var r,i=t[0].trace,o=[];if(i.visible)switch(i.type){case"histogram2d":case"heatmap":o=[["M-15,-2V4H15V-2Z"]],r=!0;break;case"choropleth":case"choroplethmapbox":o=[["M-6,-6V6H6V-6Z"]],r=!0;break;case"densitymapbox":o=[["M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"]],r="radial";break;case"cone":o=[["M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z"],["M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z"],["M-6,-2 A2,2 0 0,0 -6,2 L6,0Z"]],r=!1;break;case"streamtube":o=[["M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z"],["M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z"],["M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z"]],r=!1;break;case"surface":o=[["M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z"],["M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z"]],r=!0;break;case"mesh3d":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!1;break;case"volume":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!0;break;case"isosurface":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6 A12,24 0 0,0 6,-6 L0,6Z"]],r=!1}var c=n.select(this).select("g.legendpoints").selectAll("path.legend3dandfriends").data(o);c.enter().append("path").classed("legend3dandfriends",!0).attr("transform",_).style("stroke-miterlimit",1),c.exit().remove(),c.each((function(t,o){var c,f=n.select(this),h=u(i),p=h.colorscale,v=h.reversescale;if(p){if(!r){var g=p.length;c=0===o?p[v?g-1:0][1]:1===o?p[v?0:g-1][1]:p[Math.floor((g-1)/2)][1]}}else{var y=i.vertexcolor||i.facecolor||i.color;c=a.isArrayOrTypedArray(y)?y[o]||y[0]:y}f.attr("d",t[0]),c?f.call(l.fill,c):f.call((function(t){if(t.size()){var n="legendfill-"+i.uid;s.gradient(t,e,n,d(v,"radial"===r),p,"fill")}}))}))})).each((function(t){var e=t[0].trace,r="waterfall"===e.type;if(t[0]._distinct&&r){var i=t[0].trace[t[0].dir].marker;return t[0].mc=i.color,t[0].mlw=i.line.width,t[0].mlc=i.line.color,T(t,this,"waterfall")}var a=[];e.visible&&r&&(a=t[0].hasTotals?[["increasing","M-6,-6V6H0Z"],["totals","M6,6H0L-6,-6H-0Z"],["decreasing","M6,6V-6H0Z"]]:[["increasing","M-6,-6V6H6Z"],["decreasing","M6,6V-6H-6Z"]]);var o=n.select(this).select("g.legendpoints").selectAll("path.legendwaterfall").data(a);o.enter().append("path").classed("legendwaterfall",!0).attr("transform",_).style("stroke-miterlimit",1),o.exit().remove(),o.each((function(t){var r=n.select(this),i=e[t[0]].marker,a=w(void 0,i.line,5,2);r.attr("d",t[1]).style("stroke-width",a+"px").call(l.fill,i.color),a&&r.call(l.stroke,i.line.color)}))})).each((function(t){T(t,this,"funnel")})).each((function(t){T(t,this)})).each((function(t){var r=t[0].trace,o=n.select(this).select("g.legendpoints").selectAll("path.legendbox").data(r.visible&&i.traceIs(r,"box-violin")?[t]:[]);o.enter().append("path").classed("legendbox",!0).attr("d","M6,6H-6V-6H6Z").attr("transform",_),o.exit().remove(),o.each((function(){var t=n.select(this);if("all"!==r.boxpoints&&"all"!==r.points||0!==l.opacity(r.fillcolor)||0!==l.opacity((r.line||{}).color)){var i=w(void 0,r.line,5,2);t.style("stroke-width",i+"px").call(l.fill,r.fillcolor),i&&l.stroke(t,r.line.color)}else{var u=a.minExtend(r,{marker:{size:m?12:a.constrain(r.marker.size,2,16),sizeref:1,sizemin:1,sizemode:"diameter"}});o.call(s.pointStyle,u,e)}}))})).each((function(t){k(t,this,"funnelarea")})).each((function(t){k(t,this,"pie")})).each((function(t){var r,i,o=v(t),l=o.showFill,f=o.showLine,h=o.showGradientLine,p=o.showGradientFill,g=o.anyFill,y=o.anyLine,m=t[0],b=m.trace,_=u(b),T=_.colorscale,k=_.reversescale,A=c.hasMarkers(b)||!g?"M5,0":y?"M5,-2":"M5,-3",M=n.select(this),S=M.select(".legendfill").selectAll("path").data(l||p?[t]:[]);if(S.enter().append("path").classed("js-fill",!0),S.exit().remove(),S.attr("d",A+"h"+x+"v6h-"+x+"z").call((function(t){if(t.size())if(l)s.fillGroupStyle(t,e);else{var r="legendfill-"+b.uid;s.gradient(t,e,r,d(k),T,"fill")}})),f||h){var E=w(void 0,b.line,10,5);i=a.minExtend(b,{line:{width:E}}),r=[a.minExtend(m,{trace:i})]}var L=M.select(".legendlines").selectAll("path").data(f||h?[r]:[]);L.enter().append("path").classed("js-line",!0),L.exit().remove(),L.attr("d",A+(h?"l"+x+",0.0001":"h"+x)).call(f?s.lineGroupStyle:function(t){if(t.size()){var r="legendline-"+b.uid;s.lineGroupStyle(t),s.gradient(t,e,r,d(k),T,"stroke")}})})).each((function(t){var r,i,o=v(t),l=o.anyFill,u=o.anyLine,f=o.showLine,h=o.showMarker,p=t[0],d=p.trace,g=!h&&!u&&!l&&c.hasText(d);function y(t,e,r,n){var i=a.nestedProperty(d,t).get(),o=a.isArrayOrTypedArray(i)&&e?e(i):i;if(m&&o&&void 0!==n&&(o=n),r){if(o<r[0])return r[0];if(o>r[1])return r[1]}return o}function x(t){return p._distinct&&p.index&&t[p.index]?t[p.index]:t[0]}if(h||g||f){var b={},w={};if(h){b.mc=y("marker.color",x),b.mx=y("marker.symbol",x),b.mo=y("marker.opacity",a.mean,[.2,1]),b.mlc=y("marker.line.color",x),b.mlw=y("marker.line.width",a.mean,[0,5],2),w.marker={sizeref:1,sizemin:1,sizemode:"diameter"};var T=y("marker.size",a.mean,[2,16],12);b.ms=T,w.marker.size=T}f&&(w.line={width:y("line.width",x,[0,10],5)}),g&&(b.tx="Aa",b.tp=y("textposition",x),b.ts=10,b.tc=y("textfont.color",x),b.tf=y("textfont.family",x)),r=[a.minExtend(p,b)],(i=a.minExtend(d,w)).selectedpoints=null,i.texttemplate=null}var k=n.select(this).select("g.legendpoints"),A=k.selectAll("path.scatterpts").data(h?r:[]);A.enter().insert("path",":first-child").classed("scatterpts",!0).attr("transform",_),A.exit().remove(),A.call(s.pointStyle,i,e),h&&(r[0].mrc=3);var M=k.selectAll("g.pointtext").data(g?r:[]);M.enter().append("g").classed("pointtext",!0).append("text").attr("transform",_),M.exit().remove(),M.selectAll("text").call(s.textPointStyle,i,e)})).each((function(t){var e=t[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendcandle").data(e.visible&&"candlestick"===e.type?[t,t]:[]);r.enter().append("path").classed("legendcandle",!0).attr("d",(function(t,e){return e?"M-15,0H-8M-8,6V-6H8Z":"M15,0H8M8,-6V6H-8Z"})).attr("transform",_).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(t,r){var i=n.select(this),a=e[r?"increasing":"decreasing"],o=w(void 0,a.line,5,2);i.style("stroke-width",o+"px").call(l.fill,a.fillcolor),o&&l.stroke(i,a.line.color)}))})).each((function(t){var e=t[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendohlc").data(e.visible&&"ohlc"===e.type?[t,t]:[]);r.enter().append("path").classed("legendohlc",!0).attr("d",(function(t,e){return e?"M-15,0H0M-8,-6V0":"M15,0H0M8,6V0"})).attr("transform",_).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(t,r){var i=n.select(this),a=e[r?"increasing":"decreasing"],o=w(void 0,a.line,5,2);i.style("fill","none").call(s.dashLine,a.line.dash,o),o&&l.stroke(i,a.line.color)}))}))}},42068:function(t,e,r){"use strict";r(93348),t.exports={editType:"modebar",orientation:{valType:"enumerated",values:["v","h"],dflt:"h",editType:"modebar"},bgcolor:{valType:"color",editType:"modebar"},color:{valType:"color",editType:"modebar"},activecolor:{valType:"color",editType:"modebar"},uirevision:{valType:"any",editType:"none"},add:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"},remove:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"}}},26023:function(t,e,r){"use strict";var n=r(73972),i=r(74875),a=r(41675),o=r(24255),s=r(34031).eraseActiveShape,l=r(71828),u=l._,c=t.exports={};function f(t,e){var r,i,o=e.currentTarget,s=o.getAttribute("data-attr"),l=o.getAttribute("data-val")||!0,u=t._fullLayout,c={},f=a.list(t,null,!0),h=u._cartesianSpikesEnabled;if("zoom"===s){var p,d="in"===l?.5:2,v=(1+d)/2,g=(1-d)/2;for(i=0;i<f.length;i++)if(!(r=f[i]).fixedrange)if(p=r._name,"auto"===l)c[p+".autorange"]=!0;else if("reset"===l){if(void 0===r._rangeInitial)c[p+".autorange"]=!0;else{var y=r._rangeInitial.slice();c[p+".range[0]"]=y[0],c[p+".range[1]"]=y[1]}void 0!==r._showSpikeInitial&&(c[p+".showspikes"]=r._showSpikeInitial,"on"!==h||r._showSpikeInitial||(h="off"))}else{var m=[r.r2l(r.range[0]),r.r2l(r.range[1])],x=[v*m[0]+g*m[1],v*m[1]+g*m[0]];c[p+".range[0]"]=r.l2r(x[0]),c[p+".range[1]"]=r.l2r(x[1])}}else"hovermode"!==s||"x"!==l&&"y"!==l||(l=u._isHoriz?"y":"x",o.setAttribute("data-val",l)),c[s]=l;u._cartesianSpikesEnabled=h,n.call("_guiRelayout",t,c)}function h(t,e){for(var r=e.currentTarget,i=r.getAttribute("data-attr"),a=r.getAttribute("data-val")||!0,o=t._fullLayout._subplots.gl3d||[],s={},l=i.split("."),u=0;u<o.length;u++)s[o[u]+"."+l[1]]=a;var c="pan"===a?a:"zoom";s.dragmode=c,n.call("_guiRelayout",t,s)}function p(t,e){for(var r=e.currentTarget.getAttribute("data-attr"),i="resetLastSave"===r,a="resetDefault"===r,o=t._fullLayout,s=o._subplots.gl3d||[],l={},u=0;u<s.length;u++){var c,f=s[u],h=f+".camera",p=f+".aspectratio",d=f+".aspectmode",v=o[f]._scene;i?(l[h+".up"]=v.viewInitial.up,l[h+".eye"]=v.viewInitial.eye,l[h+".center"]=v.viewInitial.center,c=!0):a&&(l[h+".up"]=null,l[h+".eye"]=null,l[h+".center"]=null,c=!0),c&&(l[p+".x"]=v.viewInitial.aspectratio.x,l[p+".y"]=v.viewInitial.aspectratio.y,l[p+".z"]=v.viewInitial.aspectratio.z,l[d]=v.viewInitial.aspectmode)}n.call("_guiRelayout",t,l)}function d(t,e){var r=e.currentTarget,n=r._previousVal,i=t._fullLayout,a=i._subplots.gl3d||[],o=["xaxis","yaxis","zaxis"],s={},l={};if(n)l=n,r._previousVal=null;else{for(var u=0;u<a.length;u++){var c=a[u],f=i[c],h=c+".hovermode";s[h]=f.hovermode,l[h]=!1;for(var p=0;p<3;p++){var d=o[p],v=c+"."+d+".showspikes";l[v]=!1,s[v]=f[d].showspikes}}r._previousVal=s}return l}function v(t,e){for(var r=e.currentTarget,i=r.getAttribute("data-attr"),a=r.getAttribute("data-val")||!0,o=t._fullLayout,s=o._subplots.geo||[],l=0;l<s.length;l++){var u=s[l],c=o[u];if("zoom"===i){var f=c.projection.scale,h="in"===a?2*f:.5*f;n.call("_guiRelayout",t,u+".projection.scale",h)}}"reset"===i&&x(t,"geo")}function g(t){var e=t._fullLayout;return!e.hovermode&&(e._has("cartesian")?e._isHoriz?"y":"x":"closest")}function y(t){var e=g(t);n.call("_guiRelayout",t,"hovermode",e)}function m(t,e){for(var r=e.currentTarget.getAttribute("data-val"),i=t._fullLayout,a=i._subplots.mapbox||[],o={},s=0;s<a.length;s++){var l=a[s],u=i[l].zoom,c="in"===r?1.05*u:u/1.05;o[l+".zoom"]=c}n.call("_guiRelayout",t,o)}function x(t,e){for(var r=t._fullLayout,i=r._subplots[e]||[],a={},o=0;o<i.length;o++)for(var s=i[o],l=r[s]._subplot.viewInitial,u=Object.keys(l),c=0;c<u.length;c++){var f=u[c];a[s+"."+f]=l[f]}n.call("_guiRelayout",t,a)}c.toImage={name:"toImage",title:function(t){var e=(t._context.toImageButtonOptions||{}).format||"png";return u(t,"png"===e?"Download plot as a png":"Download plot")},icon:o.camera,click:function(t){var e=t._context.toImageButtonOptions,r={format:e.format||"png"};l.notifier(u(t,"Taking snapshot - this may take a few seconds"),"long"),"svg"!==r.format&&l.isIE()&&(l.notifier(u(t,"IE only supports svg.  Changing format to svg."),"long"),r.format="svg"),["filename","width","height","scale"].forEach((function(t){t in e&&(r[t]=e[t])})),n.call("downloadImage",t,r).then((function(e){l.notifier(u(t,"Snapshot succeeded")+" - "+e,"long")})).catch((function(){l.notifier(u(t,"Sorry, there was a problem downloading your snapshot!"),"long")}))}},c.sendDataToCloud={name:"sendDataToCloud",title:function(t){return u(t,"Edit in Chart Studio")},icon:o.disk,click:function(t){i.sendDataToCloud(t)}},c.editInChartStudio={name:"editInChartStudio",title:function(t){return u(t,"Edit in Chart Studio")},icon:o.pencil,click:function(t){i.sendDataToCloud(t)}},c.zoom2d={name:"zoom2d",_cat:"zoom",title:function(t){return u(t,"Zoom")},attr:"dragmode",val:"zoom",icon:o.zoombox,click:f},c.pan2d={name:"pan2d",_cat:"pan",title:function(t){return u(t,"Pan")},attr:"dragmode",val:"pan",icon:o.pan,click:f},c.select2d={name:"select2d",_cat:"select",title:function(t){return u(t,"Box Select")},attr:"dragmode",val:"select",icon:o.selectbox,click:f},c.lasso2d={name:"lasso2d",_cat:"lasso",title:function(t){return u(t,"Lasso Select")},attr:"dragmode",val:"lasso",icon:o.lasso,click:f},c.drawclosedpath={name:"drawclosedpath",title:function(t){return u(t,"Draw closed freeform")},attr:"dragmode",val:"drawclosedpath",icon:o.drawclosedpath,click:f},c.drawopenpath={name:"drawopenpath",title:function(t){return u(t,"Draw open freeform")},attr:"dragmode",val:"drawopenpath",icon:o.drawopenpath,click:f},c.drawline={name:"drawline",title:function(t){return u(t,"Draw line")},attr:"dragmode",val:"drawline",icon:o.drawline,click:f},c.drawrect={name:"drawrect",title:function(t){return u(t,"Draw rectangle")},attr:"dragmode",val:"drawrect",icon:o.drawrect,click:f},c.drawcircle={name:"drawcircle",title:function(t){return u(t,"Draw circle")},attr:"dragmode",val:"drawcircle",icon:o.drawcircle,click:f},c.eraseshape={name:"eraseshape",title:function(t){return u(t,"Erase active shape")},icon:o.eraseshape,click:s},c.zoomIn2d={name:"zoomIn2d",_cat:"zoomin",title:function(t){return u(t,"Zoom in")},attr:"zoom",val:"in",icon:o.zoom_plus,click:f},c.zoomOut2d={name:"zoomOut2d",_cat:"zoomout",title:function(t){return u(t,"Zoom out")},attr:"zoom",val:"out",icon:o.zoom_minus,click:f},c.autoScale2d={name:"autoScale2d",_cat:"autoscale",title:function(t){return u(t,"Autoscale")},attr:"zoom",val:"auto",icon:o.autoscale,click:f},c.resetScale2d={name:"resetScale2d",_cat:"resetscale",title:function(t){return u(t,"Reset axes")},attr:"zoom",val:"reset",icon:o.home,click:f},c.hoverClosestCartesian={name:"hoverClosestCartesian",_cat:"hoverclosest",title:function(t){return u(t,"Show closest data on hover")},attr:"hovermode",val:"closest",icon:o.tooltip_basic,gravity:"ne",click:f},c.hoverCompareCartesian={name:"hoverCompareCartesian",_cat:"hoverCompare",title:function(t){return u(t,"Compare data on hover")},attr:"hovermode",val:function(t){return t._fullLayout._isHoriz?"y":"x"},icon:o.tooltip_compare,gravity:"ne",click:f},c.zoom3d={name:"zoom3d",_cat:"zoom",title:function(t){return u(t,"Zoom")},attr:"scene.dragmode",val:"zoom",icon:o.zoombox,click:h},c.pan3d={name:"pan3d",_cat:"pan",title:function(t){return u(t,"Pan")},attr:"scene.dragmode",val:"pan",icon:o.pan,click:h},c.orbitRotation={name:"orbitRotation",title:function(t){return u(t,"Orbital rotation")},attr:"scene.dragmode",val:"orbit",icon:o["3d_rotate"],click:h},c.tableRotation={name:"tableRotation",title:function(t){return u(t,"Turntable rotation")},attr:"scene.dragmode",val:"turntable",icon:o["z-axis"],click:h},c.resetCameraDefault3d={name:"resetCameraDefault3d",_cat:"resetCameraDefault",title:function(t){return u(t,"Reset camera to default")},attr:"resetDefault",icon:o.home,click:p},c.resetCameraLastSave3d={name:"resetCameraLastSave3d",_cat:"resetCameraLastSave",title:function(t){return u(t,"Reset camera to last save")},attr:"resetLastSave",icon:o.movie,click:p},c.hoverClosest3d={name:"hoverClosest3d",_cat:"hoverclosest",title:function(t){return u(t,"Toggle show closest data on hover")},attr:"hovermode",val:null,toggle:!0,icon:o.tooltip_basic,gravity:"ne",click:function(t,e){var r=d(t,e);n.call("_guiRelayout",t,r)}},c.zoomInGeo={name:"zoomInGeo",_cat:"zoomin",title:function(t){return u(t,"Zoom in")},attr:"zoom",val:"in",icon:o.zoom_plus,click:v},c.zoomOutGeo={name:"zoomOutGeo",_cat:"zoomout",title:function(t){return u(t,"Zoom out")},attr:"zoom",val:"out",icon:o.zoom_minus,click:v},c.resetGeo={name:"resetGeo",_cat:"reset",title:function(t){return u(t,"Reset")},attr:"reset",val:null,icon:o.autoscale,click:v},c.hoverClosestGeo={name:"hoverClosestGeo",_cat:"hoverclosest",title:function(t){return u(t,"Toggle show closest data on hover")},attr:"hovermode",val:null,toggle:!0,icon:o.tooltip_basic,gravity:"ne",click:y},c.hoverClosestGl2d={name:"hoverClosestGl2d",_cat:"hoverclosest",title:function(t){return u(t,"Toggle show closest data on hover")},attr:"hovermode",val:null,toggle:!0,icon:o.tooltip_basic,gravity:"ne",click:y},c.hoverClosestPie={name:"hoverClosestPie",_cat:"hoverclosest",title:function(t){return u(t,"Toggle show closest data on hover")},attr:"hovermode",val:"closest",icon:o.tooltip_basic,gravity:"ne",click:y},c.resetViewSankey={name:"resetSankeyGroup",title:function(t){return u(t,"Reset view")},icon:o.home,click:function(t){for(var e={"node.groups":[],"node.x":[],"node.y":[]},r=0;r<t._fullData.length;r++){var i=t._fullData[r]._viewInitial;e["node.groups"].push(i.node.groups.slice()),e["node.x"].push(i.node.x.slice()),e["node.y"].push(i.node.y.slice())}n.call("restyle",t,e)}},c.toggleHover={name:"toggleHover",title:function(t){return u(t,"Toggle show closest data on hover")},attr:"hovermode",val:null,toggle:!0,icon:o.tooltip_basic,gravity:"ne",click:function(t,e){var r=d(t,e);r.hovermode=g(t),n.call("_guiRelayout",t,r)}},c.resetViews={name:"resetViews",title:function(t){return u(t,"Reset views")},icon:o.home,click:function(t,e){var r=e.currentTarget;r.setAttribute("data-attr","zoom"),r.setAttribute("data-val","reset"),f(t,e),r.setAttribute("data-attr","resetLastSave"),p(t,e),x(t,"geo"),x(t,"mapbox")}},c.toggleSpikelines={name:"toggleSpikelines",title:function(t){return u(t,"Toggle Spike Lines")},icon:o.spikeline,attr:"_cartesianSpikesEnabled",val:"on",click:function(t){var e=t._fullLayout,r=e._cartesianSpikesEnabled;e._cartesianSpikesEnabled="on"===r?"off":"on",n.call("_guiRelayout",t,function(t){for(var e="on"===t._fullLayout._cartesianSpikesEnabled,r=a.list(t,null,!0),n={},i=0;i<r.length;i++){var o=r[i];n[o._name+".showspikes"]=!!e||o._showSpikeInitial}return n}(t))}},c.resetViewMapbox={name:"resetViewMapbox",_cat:"resetView",title:function(t){return u(t,"Reset view")},attr:"reset",icon:o.home,click:function(t){x(t,"mapbox")}},c.zoomInMapbox={name:"zoomInMapbox",_cat:"zoomin",title:function(t){return u(t,"Zoom in")},attr:"zoom",val:"in",icon:o.zoom_plus,click:m},c.zoomOutMapbox={name:"zoomOutMapbox",_cat:"zoomout",title:function(t){return u(t,"Zoom out")},attr:"zoom",val:"out",icon:o.zoom_minus,click:m}},93348:function(t,e,r){"use strict";var n=r(26023),i=Object.keys(n),a=["drawline","drawopenpath","drawclosedpath","drawcircle","drawrect","eraseshape"],o=["v1hovermode","hoverclosest","hovercompare","togglehover","togglespikelines"].concat(a),s=[];i.forEach((function(t){!function(t){if(-1===o.indexOf(t._cat||t.name)){var e=t.name,r=(t._cat||t.name).toLowerCase();-1===s.indexOf(e)&&s.push(e),-1===s.indexOf(r)&&s.push(r)}}(n[t])})),s.sort(),t.exports={DRAW_MODES:a,backButtons:o,foreButtons:s}},35750:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(44467),o=r(42068);t.exports=function(t,e){var r=t.modebar||{},s=a.newContainer(e,"modebar");function l(t,e){return n.coerce(r,s,o,t,e)}l("orientation"),l("bgcolor",i.addOpacity(e.paper_bgcolor,.5));var u=i.contrast(i.rgb(e.modebar.bgcolor));l("color",i.addOpacity(u,.3)),l("activecolor",i.addOpacity(u,.7)),l("uirevision",e.uirevision),l("add"),l("remove")}},64168:function(t,e,r){"use strict";t.exports={moduleType:"component",name:"modebar",layoutAttributes:r(42068),supplyLayoutDefaults:r(35750),manage:r(14192)}},14192:function(t,e,r){"use strict";var n=r(41675),i=r(34098),a=r(73972),o=r(23469).isUnifiedHover,s=r(37676),l=r(26023),u=r(93348).DRAW_MODES,c=r(71828).extendDeep;t.exports=function(t){var e=t._fullLayout,r=t._context,f=e._modeBar;if(r.displayModeBar||r.watermark){if(!Array.isArray(r.modeBarButtonsToRemove))throw new Error(["*modeBarButtonsToRemove* configuration options","must be an array."].join(" "));if(!Array.isArray(r.modeBarButtonsToAdd))throw new Error(["*modeBarButtonsToAdd* configuration options","must be an array."].join(" "));var h,p=r.modeBarButtons;h=Array.isArray(p)&&p.length?function(t){for(var e=c([],t),r=0;r<e.length;r++)for(var n=e[r],i=0;i<n.length;i++){var a=n[i];if("string"==typeof a){if(void 0===l[a])throw new Error(["*modeBarButtons* configuration options","invalid button name"].join(" "));e[r][i]=l[a]}}return e}(p):!r.displayModeBar&&r.watermark?[]:function(t){var e=t._fullLayout,r=t._fullData,s=t._context;function c(t,e){if("string"==typeof e){if(e.toLowerCase()===t.toLowerCase())return!0}else{var r=e.name,n=e._cat||e.name;if(r===t||n===t.toLowerCase())return!0}return!1}var f=e.modebar.add;"string"==typeof f&&(f=[f]);var h=e.modebar.remove;"string"==typeof h&&(h=[h]);var p=s.modeBarButtonsToAdd.concat(f.filter((function(t){for(var e=0;e<s.modeBarButtonsToRemove.length;e++)if(c(t,s.modeBarButtonsToRemove[e]))return!1;return!0}))),d=s.modeBarButtonsToRemove.concat(h.filter((function(t){for(var e=0;e<s.modeBarButtonsToAdd.length;e++)if(c(t,s.modeBarButtonsToAdd[e]))return!1;return!0}))),v=e._has("cartesian"),g=e._has("gl3d"),y=e._has("geo"),m=e._has("pie"),x=e._has("funnelarea"),b=e._has("gl2d"),_=e._has("ternary"),w=e._has("mapbox"),T=e._has("polar"),k=e._has("smith"),A=e._has("sankey"),M=function(t){for(var e=n.list({_fullLayout:t},null,!0),r=0;r<e.length;r++)if(!e[r].fixedrange)return!1;return!0}(e),S=o(e.hovermode),E=[];function L(t){if(t.length){for(var e=[],r=0;r<t.length;r++){for(var n=t[r],i=l[n],a=i.name.toLowerCase(),o=(i._cat||i.name).toLowerCase(),s=!1,u=0;u<d.length;u++){var c=d[u].toLowerCase();if(c===a||c===o){s=!0;break}}s||e.push(l[n])}E.push(e)}}var C=["toImage"];s.showEditInChartStudio?C.push("editInChartStudio"):s.showSendToCloud&&C.push("sendDataToCloud"),L(C);var P=[],O=[],I=[],D=[];(v||b||m||x||_)+y+g+w+T+k>1?(O=["toggleHover"],I=["resetViews"]):y?(P=["zoomInGeo","zoomOutGeo"],O=["hoverClosestGeo"],I=["resetGeo"]):g?(O=["hoverClosest3d"],I=["resetCameraDefault3d","resetCameraLastSave3d"]):w?(P=["zoomInMapbox","zoomOutMapbox"],O=["toggleHover"],I=["resetViewMapbox"]):b?O=["hoverClosestGl2d"]:m?O=["hoverClosestPie"]:A?(O=["hoverClosestCartesian","hoverCompareCartesian"],I=["resetViewSankey"]):O=["toggleHover"],v&&(O=["toggleSpikelines","hoverClosestCartesian","hoverCompareCartesian"]),(function(t){for(var e=0;e<t.length;e++)if(!a.traceIs(t[e],"noHover"))return!1;return!0}(r)||S)&&(O=[]),!v&&!b||M||(P=["zoomIn2d","zoomOut2d","autoScale2d"],"resetViews"!==I[0]&&(I=["resetScale2d"])),g?D=["zoom3d","pan3d","orbitRotation","tableRotation"]:(v||b)&&!M||_?D=["zoom2d","pan2d"]:w||y?D=["pan2d"]:T&&(D=["zoom2d"]),function(t){for(var e=!1,r=0;r<t.length&&!e;r++){var n=t[r];n._module&&n._module.selectPoints&&(a.traceIs(n,"scatter-like")?(i.hasMarkers(n)||i.hasText(n))&&(e=!0):a.traceIs(n,"box-violin")&&"all"!==n.boxpoints&&"all"!==n.points||(e=!0))}return e}(r)&&D.push("select2d","lasso2d");var z=[],R=function(t){-1===z.indexOf(t)&&-1!==O.indexOf(t)&&z.push(t)};if(Array.isArray(p)){for(var F=[],B=0;B<p.length;B++){var N=p[B];"string"==typeof N?(N=N.toLowerCase(),-1!==u.indexOf(N)?(e._has("mapbox")||e._has("cartesian"))&&D.push(N):"togglespikelines"===N?R("toggleSpikelines"):"togglehover"===N?R("toggleHover"):"hovercompare"===N?R("hoverCompareCartesian"):"hoverclosest"===N?(R("hoverClosestCartesian"),R("hoverClosestGeo"),R("hoverClosest3d"),R("hoverClosestGl2d"),R("hoverClosestPie")):"v1hovermode"===N&&(R("toggleHover"),R("hoverClosestCartesian"),R("hoverCompareCartesian"),R("hoverClosestGeo"),R("hoverClosest3d"),R("hoverClosestGl2d"),R("hoverClosestPie"))):F.push(N)}p=F}return L(D),L(P.concat(I)),L(z),function(t,e){if(e.length)if(Array.isArray(e[0]))for(var r=0;r<e.length;r++)t.push(e[r]);else t.push(e);return t}(E,p)}(t),f?f.update(t,h):e._modeBar=s(t,h)}else f&&(f.destroy(),delete e._modeBar)}},37676:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(71828),o=r(24255),s=r(11506).version,l=new DOMParser;function u(t){this.container=t.container,this.element=document.createElement("div"),this.update(t.graphInfo,t.buttons),this.container.appendChild(this.element)}var c=u.prototype;c.update=function(t,e){this.graphInfo=t;var r=this.graphInfo._context,n=this.graphInfo._fullLayout,i="modebar-"+n._uid;this.element.setAttribute("id",i),this._uid=i,this.element.className="modebar","hover"===r.displayModeBar&&(this.element.className+=" modebar--hover ease-bg"),"v"===n.modebar.orientation&&(this.element.className+=" vertical",e=e.reverse());var o=n.modebar,s="hover"===r.displayModeBar?".js-plotly-plot .plotly:hover ":"";a.deleteRelatedStyleRule(i),a.addRelatedStyleRule(i,s+"#"+i+" .modebar-group","background-color: "+o.bgcolor),a.addRelatedStyleRule(i,"#"+i+" .modebar-btn .icon path","fill: "+o.color),a.addRelatedStyleRule(i,"#"+i+" .modebar-btn:hover .icon path","fill: "+o.activecolor),a.addRelatedStyleRule(i,"#"+i+" .modebar-btn.active .icon path","fill: "+o.activecolor);var l=!this.hasButtons(e),u=this.hasLogo!==r.displaylogo,c=this.locale!==r.locale;if(this.locale=r.locale,(l||u||c)&&(this.removeAllButtons(),this.updateButtons(e),r.watermark||r.displaylogo)){var f=this.getLogo();r.watermark&&(f.className=f.className+" watermark"),"v"===n.modebar.orientation?this.element.insertBefore(f,this.element.childNodes[0]):this.element.appendChild(f),this.hasLogo=!0}this.updateActiveButton()},c.updateButtons=function(t){var e=this;this.buttons=t,this.buttonElements=[],this.buttonsNames=[],this.buttons.forEach((function(t){var r=e.createGroup();t.forEach((function(t){var n=t.name;if(!n)throw new Error("must provide button 'name' in button config");if(-1!==e.buttonsNames.indexOf(n))throw new Error("button name '"+n+"' is taken");e.buttonsNames.push(n);var i=e.createButton(t);e.buttonElements.push(i),r.appendChild(i)})),e.element.appendChild(r)}))},c.createGroup=function(){var t=document.createElement("div");return t.className="modebar-group",t},c.createButton=function(t){var e=this,r=document.createElement("a");r.setAttribute("rel","tooltip"),r.className="modebar-btn";var i=t.title;void 0===i?i=t.name:"function"==typeof i&&(i=i(this.graphInfo)),(i||0===i)&&r.setAttribute("data-title",i),void 0!==t.attr&&r.setAttribute("data-attr",t.attr);var a=t.val;if(void 0!==a&&("function"==typeof a&&(a=a(this.graphInfo)),r.setAttribute("data-val",a)),"function"!=typeof t.click)throw new Error("must provide button 'click' function in button config");r.addEventListener("click",(function(r){t.click(e.graphInfo,r),e.updateActiveButton(r.currentTarget)})),r.setAttribute("data-toggle",t.toggle||!1),t.toggle&&n.select(r).classed("active",!0);var s=t.icon;return"function"==typeof s?r.appendChild(s()):r.appendChild(this.createIcon(s||o.question)),r.setAttribute("data-gravity",t.gravity||"n"),r},c.createIcon=function(t){var e,r=i(t.height)?Number(t.height):t.ascent-t.descent,n="http://www.w3.org/2000/svg";if(t.path){(e=document.createElementNS(n,"svg")).setAttribute("viewBox",[0,0,t.width,r].join(" ")),e.setAttribute("class","icon");var a=document.createElementNS(n,"path");a.setAttribute("d",t.path),t.transform?a.setAttribute("transform",t.transform):void 0!==t.ascent&&a.setAttribute("transform","matrix(1 0 0 -1 0 "+t.ascent+")"),e.appendChild(a)}return t.svg&&(e=l.parseFromString(t.svg,"application/xml").childNodes[0]),e.setAttribute("height","1em"),e.setAttribute("width","1em"),e},c.updateActiveButton=function(t){var e=this.graphInfo._fullLayout,r=void 0!==t?t.getAttribute("data-attr"):null;this.buttonElements.forEach((function(t){var i=t.getAttribute("data-val")||!0,o=t.getAttribute("data-attr"),s="true"===t.getAttribute("data-toggle"),l=n.select(t);if(s)o===r&&l.classed("active",!l.classed("active"));else{var u=null===o?o:a.nestedProperty(e,o).get();l.classed("active",u===i)}}))},c.hasButtons=function(t){var e=this.buttons;if(!e)return!1;if(t.length!==e.length)return!1;for(var r=0;r<t.length;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;n<t[r].length;n++)if(t[r][n].name!==e[r][n].name)return!1}return!0},c.getLogo=function(){var t=this.createGroup(),e=document.createElement("a");return e.href="https://plotly.com/",e.target="_blank",e.setAttribute("data-title",a._(this.graphInfo,"Produced with Plotly.js")+" (v"+s+")"),e.className="modebar-btn plotlyjsicon modebar-btn--logo",e.appendChild(this.createIcon(o.newplotlylogo)),t.appendChild(e),t},c.removeAllButtons=function(){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.hasLogo=!1},c.destroy=function(){a.removeElement(this.container.querySelector(".modebar")),a.deleteRelatedStyleRule(this._uid)},t.exports=function(t,e){var r=t._fullLayout,i=new u({graphInfo:t,container:r._modebardiv.node(),buttons:e});return r._privateplot&&n.select(i.element).append("span").classed("badge-private float--left",!0).text("PRIVATE"),i}},37113:function(t,e,r){"use strict";var n=r(41940),i=r(22399),a=(0,r(44467).templatedArray)("button",{visible:{valType:"boolean",dflt:!0,editType:"plot"},step:{valType:"enumerated",values:["month","year","day","hour","minute","second","all"],dflt:"month",editType:"plot"},stepmode:{valType:"enumerated",values:["backward","todate"],dflt:"backward",editType:"plot"},count:{valType:"number",min:0,dflt:1,editType:"plot"},label:{valType:"string",editType:"plot"},editType:"plot"});t.exports={visible:{valType:"boolean",editType:"plot"},buttons:a,x:{valType:"number",min:-2,max:3,editType:"plot"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left",editType:"plot"},y:{valType:"number",min:-2,max:3,editType:"plot"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"bottom",editType:"plot"},font:n({editType:"plot"}),bgcolor:{valType:"color",dflt:i.lightLine,editType:"plot"},activecolor:{valType:"color",editType:"plot"},bordercolor:{valType:"color",dflt:i.defaultLine,editType:"plot"},borderwidth:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"plot"}},89573:function(t){"use strict";t.exports={yPad:.02,minButtonWidth:30,rx:3,ry:3,lightAmount:25,darkAmount:10}},28674:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(44467),o=r(85501),s=r(37113),l=r(89573);function u(t,e,r,i){var a=i.calendar;function o(r,i){return n.coerce(t,e,s.buttons,r,i)}if(o("visible")){var l=o("step");"all"!==l&&(!a||"gregorian"===a||"month"!==l&&"year"!==l?o("stepmode"):e.stepmode="backward",o("count")),o("label")}}t.exports=function(t,e,r,c,f){var h=t.rangeselector||{},p=a.newContainer(e,"rangeselector");function d(t,e){return n.coerce(h,p,s,t,e)}if(d("visible",o(h,p,{name:"buttons",handleItemDefaults:u,calendar:f}).length>0)){var v=function(t,e,r){for(var n=r.filter((function(r){return e[r].anchor===t._id})),i=0,a=0;a<n.length;a++){var o=e[n[a]].domain;o&&(i=Math.max(o[1],i))}return[t.domain[0],i+l.yPad]}(e,r,c);d("x",v[0]),d("y",v[1]),n.noneOrAll(t,e,["x","y"]),d("xanchor"),d("yanchor"),n.coerceFont(d,"font",r.font);var g=d("bgcolor");d("activecolor",i.contrast(g,l.lightAmount,l.darkAmount)),d("bordercolor"),d("borderwidth")}}},21598:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(74875),o=r(7901),s=r(91424),l=r(71828),u=l.strTranslate,c=r(63893),f=r(41675),h=r(18783),p=h.LINE_SPACING,d=h.FROM_TL,v=h.FROM_BR,g=r(89573),y=r(70565);function m(t){return t._id}function x(t,e,r){var n=l.ensureSingle(t,"rect","selector-rect",(function(t){t.attr("shape-rendering","crispEdges")}));n.attr({rx:g.rx,ry:g.ry}),n.call(o.stroke,e.bordercolor).call(o.fill,function(t,e){return e._isActive||e._isHovered?t.activecolor:t.bgcolor}(e,r)).style("stroke-width",e.borderwidth+"px")}function b(t,e,r,n){var i,a;l.ensureSingle(t,"text","selector-text",(function(t){t.attr("text-anchor","middle")})).call(s.font,e.font).text((i=r,a=n._fullLayout._meta,i.label?a?l.templateString(i.label,a):i.label:"all"===i.step?"all":i.count+i.step.charAt(0))).call((function(t){c.convertToTspans(t,n)}))}t.exports=function(t){var e=t._fullLayout._infolayer.selectAll(".rangeselector").data(function(t){for(var e=f.list(t,"x",!0),r=[],n=0;n<e.length;n++){var i=e[n];i.rangeselector&&i.rangeselector.visible&&r.push(i)}return r}(t),m);e.enter().append("g").classed("rangeselector",!0),e.exit().remove(),e.style({cursor:"pointer","pointer-events":"all"}),e.each((function(e){var r=n.select(this),o=e,f=o.rangeselector,h=r.selectAll("g.button").data(l.filterVisible(f.buttons));h.enter().append("g").classed("button",!0),h.exit().remove(),h.each((function(e){var r=n.select(this),a=y(o,e);e._isActive=function(t,e,r){if("all"===e.step)return!0===t.autorange;var n=Object.keys(r);return t.range[0]===r[n[0]]&&t.range[1]===r[n[1]]}(o,e,a),r.call(x,f,e),r.call(b,f,e,t),r.on("click",(function(){t._dragged||i.call("_guiRelayout",t,a)})),r.on("mouseover",(function(){e._isHovered=!0,r.call(x,f,e)})),r.on("mouseout",(function(){e._isHovered=!1,r.call(x,f,e)}))})),function(t,e,r,i,o){var f=0,h=0,y=r.borderwidth;e.each((function(){var t=n.select(this).select(".selector-text"),e=r.font.size*p,i=Math.max(e*c.lineCount(t),16)+3;h=Math.max(h,i)})),e.each((function(){var t=n.select(this),e=t.select(".selector-rect"),i=t.select(".selector-text"),a=i.node()&&s.bBox(i.node()).width,o=r.font.size*p,l=c.lineCount(i),d=Math.max(a+10,g.minButtonWidth);t.attr("transform",u(y+f,y)),e.attr({x:0,y:0,width:d,height:h}),c.positionText(i,d/2,h/2-(l-1)*o/2+3),f+=d+5}));var m=t._fullLayout._size,x=m.l+m.w*r.x,b=m.t+m.h*(1-r.y),_="left";l.isRightAnchor(r)&&(x-=f,_="right"),l.isCenterAnchor(r)&&(x-=f/2,_="center");var w="top";l.isBottomAnchor(r)&&(b-=h,w="bottom"),l.isMiddleAnchor(r)&&(b-=h/2,w="middle"),f=Math.ceil(f),h=Math.ceil(h),x=Math.round(x),b=Math.round(b),a.autoMargin(t,i+"-range-selector",{x:r.x,y:r.y,l:f*d[_],r:f*v[_],b:h*v[w],t:h*d[w]}),o.attr("transform",u(x,b))}(t,h,f,o._name,r)}))}},70565:function(t,e,r){"use strict";var n=r(81041),i=r(71828).titleCase;t.exports=function(t,e){var r=t._name,a={};if("all"===e.step)a[r+".autorange"]=!0;else{var o=function(t,e){var r,a=t.range,o=new Date(t.r2l(a[1])),s=e.step,l=n["utc"+i(s)],u=e.count;switch(e.stepmode){case"backward":r=t.l2r(+l.offset(o,-u));break;case"todate":var c=l.offset(o,-u);r=t.l2r(+l.ceil(c))}return[r,a[1]]}(t,e);a[r+".range[0]"]=o[0],a[r+".range[1]"]=o[1]}return a}},97218:function(t,e,r){"use strict";t.exports={moduleType:"component",name:"rangeselector",schema:{subplots:{xaxis:{rangeselector:r(37113)}}},layoutAttributes:r(37113),handleDefaults:r(28674),draw:r(21598)}},75148:function(t,e,r){"use strict";var n=r(22399);t.exports={bgcolor:{valType:"color",dflt:n.background,editType:"plot"},bordercolor:{valType:"color",dflt:n.defaultLine,editType:"plot"},borderwidth:{valType:"integer",dflt:0,min:0,editType:"plot"},autorange:{valType:"boolean",dflt:!0,editType:"calc",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},range:{valType:"info_array",items:[{valType:"any",editType:"calc",impliedEdits:{"^autorange":!1}},{valType:"any",editType:"calc",impliedEdits:{"^autorange":!1}}],editType:"calc",impliedEdits:{autorange:!1}},thickness:{valType:"number",dflt:.15,min:0,max:1,editType:"plot"},visible:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"}},88443:function(t,e,r){"use strict";var n=r(41675).list,i=r(71739).getAutoRange,a=r(73251);t.exports=function(t){for(var e=n(t,"x",!0),r=0;r<e.length;r++){var o=e[r],s=o[a.name];s&&s.visible&&s.autorange&&(s._input.autorange=!0,s._input.range=s.range=i(t,o))}}},73251:function(t){"use strict";t.exports={name:"rangeslider",containerClassName:"rangeslider-container",bgClassName:"rangeslider-bg",rangePlotClassName:"rangeslider-rangeplot",maskMinClassName:"rangeslider-mask-min",maskMaxClassName:"rangeslider-mask-max",slideBoxClassName:"rangeslider-slidebox",grabberMinClassName:"rangeslider-grabber-min",grabAreaMinClassName:"rangeslider-grabarea-min",handleMinClassName:"rangeslider-handle-min",grabberMaxClassName:"rangeslider-grabber-max",grabAreaMaxClassName:"rangeslider-grabarea-max",handleMaxClassName:"rangeslider-handle-max",maskMinOppAxisClassName:"rangeslider-mask-min-opp-axis",maskMaxOppAxisClassName:"rangeslider-mask-max-opp-axis",maskColor:"rgba(0,0,0,0.4)",maskOppAxisColor:"rgba(0,0,0,0.2)",slideBoxFill:"transparent",slideBoxCursor:"ew-resize",grabAreaFill:"transparent",grabAreaCursor:"col-resize",grabAreaWidth:10,handleWidth:4,handleRadius:1,handleStrokeWidth:1,extraPad:15}},26377:function(t,e,r){"use strict";var n=r(71828),i=r(44467),a=r(41675),o=r(75148),s=r(47850);t.exports=function(t,e,r){var l=t[r],u=e[r];if(l.rangeslider||e._requestRangeslider[u._id]){n.isPlainObject(l.rangeslider)||(l.rangeslider={});var c,f,h=l.rangeslider,p=i.newContainer(u,"rangeslider");if(_("visible")){_("bgcolor",e.plot_bgcolor),_("bordercolor"),_("borderwidth"),_("thickness"),_("autorange",!u.isValidRange(h.range)),_("range");var d=e._subplots;if(d)for(var v=d.cartesian.filter((function(t){return t.substr(0,t.indexOf("y"))===a.name2id(r)})).map((function(t){return t.substr(t.indexOf("y"),t.length)})),g=n.simpleMap(v,a.id2name),y=0;y<g.length;y++){var m=g[y];c=h[m]||{},f=i.newContainer(p,m,"yaxis");var x,b=e[m];c.range&&b.isValidRange(c.range)&&(x="fixed"),"match"!==w("rangemode",x)&&w("range",b.range.slice())}p._input=h}}function _(t,e){return n.coerce(h,p,o,t,e)}function w(t,e){return n.coerce(c,f,s,t,e)}}},72413:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(74875),o=r(71828),s=o.strTranslate,l=r(91424),u=r(7901),c=r(92998),f=r(93612),h=r(41675),p=r(28569),d=r(6964),v=r(73251);function g(t,e,r,n){var i=o.ensureSingle(t,"rect",v.bgClassName,(function(t){t.attr({x:0,y:0,"shape-rendering":"crispEdges"})})),a=n.borderwidth%2==0?n.borderwidth:n.borderwidth-1,c=-n._offsetShift,f=l.crispRound(e,n.borderwidth);i.attr({width:n._width+a,height:n._height+a,transform:s(c,c),"stroke-width":f}).call(u.stroke,n.bordercolor).call(u.fill,n.bgcolor)}function y(t,e,r,n){var i=e._fullLayout;o.ensureSingleById(i._topdefs,"clipPath",n._clipId,(function(t){t.append("rect").attr({x:0,y:0})})).select("rect").attr({width:n._width,height:n._height})}function m(t,e,r,i){var s,u=e.calcdata,c=t.selectAll("g."+v.rangePlotClassName).data(r._subplotsWith,o.identity);c.enter().append("g").attr("class",(function(t){return v.rangePlotClassName+" "+t})).call(l.setClipUrl,i._clipId,e),c.order(),c.exit().remove(),c.each((function(t,o){var l=n.select(this),c=0===o,p=h.getFromId(e,t,"y"),d=p._name,v=i[d],g={data:[],layout:{xaxis:{type:r.type,domain:[0,1],range:i.range.slice(),calendar:r.calendar},width:i._width,height:i._height,margin:{t:0,b:0,l:0,r:0}},_context:e._context};r.rangebreaks&&(g.layout.xaxis.rangebreaks=r.rangebreaks),g.layout[d]={type:p.type,domain:[0,1],range:"match"!==v.rangemode?v.range.slice():p.range.slice(),calendar:p.calendar},p.rangebreaks&&(g.layout[d].rangebreaks=p.rangebreaks),a.supplyDefaults(g);var y=g._fullLayout.xaxis,m=g._fullLayout[d];y.clearCalc(),y.setScale(),m.clearCalc(),m.setScale();var x={id:t,plotgroup:l,xaxis:y,yaxis:m,isRangePlot:!0};c?s=x:(x.mainplot="xy",x.mainplotinfo=s),f.rangePlot(e,x,function(t,e){for(var r=[],n=0;n<t.length;n++){var i=t[n],a=i[0].trace;a.xaxis+a.yaxis===e&&r.push(i)}return r}(u,t))}))}function x(t,e,r,n,i){o.ensureSingle(t,"rect",v.maskMinClassName,(function(t){t.attr({x:0,y:0,"shape-rendering":"crispEdges"})})).attr("height",n._height).call(u.fill,v.maskColor),o.ensureSingle(t,"rect",v.maskMaxClassName,(function(t){t.attr({y:0,"shape-rendering":"crispEdges"})})).attr("height",n._height).call(u.fill,v.maskColor),"match"!==i.rangemode&&(o.ensureSingle(t,"rect",v.maskMinOppAxisClassName,(function(t){t.attr({y:0,"shape-rendering":"crispEdges"})})).attr("width",n._width).call(u.fill,v.maskOppAxisColor),o.ensureSingle(t,"rect",v.maskMaxOppAxisClassName,(function(t){t.attr({y:0,"shape-rendering":"crispEdges"})})).attr("width",n._width).style("border-top",v.maskOppBorder).call(u.fill,v.maskOppAxisColor))}function b(t,e,r,n){e._context.staticPlot||o.ensureSingle(t,"rect",v.slideBoxClassName,(function(t){t.attr({y:0,cursor:v.slideBoxCursor,"shape-rendering":"crispEdges"})})).attr({height:n._height,fill:v.slideBoxFill})}function _(t,e,r,n){var i=o.ensureSingle(t,"g",v.grabberMinClassName),a=o.ensureSingle(t,"g",v.grabberMaxClassName),s={x:0,width:v.handleWidth,rx:v.handleRadius,fill:u.background,stroke:u.defaultLine,"stroke-width":v.handleStrokeWidth,"shape-rendering":"crispEdges"},l={y:Math.round(n._height/4),height:Math.round(n._height/2)};o.ensureSingle(i,"rect",v.handleMinClassName,(function(t){t.attr(s)})).attr(l),o.ensureSingle(a,"rect",v.handleMaxClassName,(function(t){t.attr(s)})).attr(l);var c={width:v.grabAreaWidth,x:0,y:0,fill:v.grabAreaFill,cursor:e._context.staticPlot?void 0:v.grabAreaCursor};o.ensureSingle(i,"rect",v.grabAreaMinClassName,(function(t){t.attr(c)})).attr("height",n._height),o.ensureSingle(a,"rect",v.grabAreaMaxClassName,(function(t){t.attr(c)})).attr("height",n._height)}t.exports=function(t){for(var e=t._fullLayout,r=e._rangeSliderData,a=0;a<r.length;a++){var l=r[a][v.name];l._clipId=l._id+"-"+e._uid}var u=e._infolayer.selectAll("g."+v.containerClassName).data(r,(function(t){return t._name}));u.exit().each((function(t){var r=t[v.name];e._topdefs.select("#"+r._clipId).remove()})).remove(),0!==r.length&&(u.enter().append("g").classed(v.containerClassName,!0).attr("pointer-events","all"),u.each((function(r){var a=n.select(this),l=r[v.name],u=e[h.id2name(r.anchor)],f=l[h.id2name(r.anchor)];if(l.range){var w,T=o.simpleMap(l.range,r.r2l),k=o.simpleMap(r.range,r.r2l);w=k[0]<k[1]?[Math.min(T[0],k[0]),Math.max(T[1],k[1])]:[Math.max(T[0],k[0]),Math.min(T[1],k[1])],l.range=l._input.range=o.simpleMap(w,r.l2r)}r.cleanRange("rangeslider.range");var A=e._size,M=r.domain;l._width=A.w*(M[1]-M[0]);var S=Math.round(A.l+A.w*M[0]),E=Math.round(A.t+A.h*(1-r._counterDomainMin)+("bottom"===r.side?r._depth:0)+l._offsetShift+v.extraPad);a.attr("transform",s(S,E)),l._rl=o.simpleMap(l.range,r.r2l);var L=l._rl[0],C=l._rl[1],P=C-L;if(l.p2d=function(t){return t/l._width*P+L},l.d2p=function(t){return(t-L)/P*l._width},r.rangebreaks){var O=r.locateBreaks(L,C);if(O.length){var I,D,z=0;for(I=0;I<O.length;I++)z+=(D=O[I]).max-D.min;var R=l._width/(C-L-z),F=[-R*L];for(I=0;I<O.length;I++)D=O[I],F.push(F[F.length-1]-R*(D.max-D.min));for(l.d2p=function(t){for(var e=F[0],r=0;r<O.length;r++){var n=O[r];if(t>=n.max)e=F[r+1];else if(t<n.min)break}return e+R*t},I=0;I<O.length;I++)(D=O[I]).pmin=l.d2p(D.min),D.pmax=l.d2p(D.max);l.p2d=function(t){for(var e=F[0],r=0;r<O.length;r++){var n=O[r];if(t>=n.pmax)e=F[r+1];else if(t<n.pmin)break}return(t-e)/R}}}if("match"!==f.rangemode){var B=u.r2l(f.range[0]),N=u.r2l(f.range[1])-B;l.d2pOppAxis=function(t){return(t-B)/N*l._height}}a.call(g,t,r,l).call(y,t,r,l).call(m,t,r,l).call(x,t,r,l,f).call(b,t,r,l).call(_,t,r,l),function(t,e,r,a){if(!e._context.staticPlot){var s=t.select("rect."+v.slideBoxClassName).node(),l=t.select("rect."+v.grabAreaMinClassName).node(),u=t.select("rect."+v.grabAreaMaxClassName).node();t.on("mousedown",c),t.on("touchstart",c)}function c(){var c=n.event,f=c.target,h=c.clientX||c.touches[0].clientX,v=h-t.node().getBoundingClientRect().left,g=a.d2p(r._rl[0]),y=a.d2p(r._rl[1]),m=p.coverSlip();function x(t){var c,p,x,b=+(t.clientX||t.touches[0].clientX)-h;switch(f){case s:x="ew-resize",c=g+b,p=y+b;break;case l:x="col-resize",c=g+b,p=y;break;case u:x="col-resize",c=g,p=y+b;break;default:x="ew-resize",c=v,p=v+b}if(p<c){var _=p;p=c,c=_}a._pixelMin=c,a._pixelMax=p,d(n.select(m),x),function(t,e,r,n){function a(t){return r.l2r(o.constrain(t,n._rl[0],n._rl[1]))}var s=a(n.p2d(n._pixelMin)),l=a(n.p2d(n._pixelMax));window.requestAnimationFrame((function(){i.call("_guiRelayout",e,r._name+".range",[s,l])}))}(0,e,r,a)}function b(){m.removeEventListener("mousemove",x),m.removeEventListener("mouseup",b),this.removeEventListener("touchmove",x),this.removeEventListener("touchend",b),o.removeElement(m)}this.addEventListener("touchmove",x),this.addEventListener("touchend",b),m.addEventListener("mousemove",x),m.addEventListener("mouseup",b)}}(a,t,r,l),function(t,e,r,n,i,a){var l=v.handleWidth/2;function u(t){return o.constrain(t,0,n._width)}function c(t){return o.constrain(t,0,n._height)}function f(t){return o.constrain(t,-l,n._width+l)}var h=u(n.d2p(r._rl[0])),p=u(n.d2p(r._rl[1]));if(t.select("rect."+v.slideBoxClassName).attr("x",h).attr("width",p-h),t.select("rect."+v.maskMinClassName).attr("width",h),t.select("rect."+v.maskMaxClassName).attr("x",p).attr("width",n._width-p),"match"!==a.rangemode){var d=n._height-c(n.d2pOppAxis(i._rl[1])),g=n._height-c(n.d2pOppAxis(i._rl[0]));t.select("rect."+v.maskMinOppAxisClassName).attr("x",h).attr("height",d).attr("width",p-h),t.select("rect."+v.maskMaxOppAxisClassName).attr("x",h).attr("y",g).attr("height",n._height-g).attr("width",p-h),t.select("rect."+v.slideBoxClassName).attr("y",d).attr("height",g-d)}var y=.5,m=Math.round(f(h-l))-y,x=Math.round(f(p-l))+y;t.select("g."+v.grabberMinClassName).attr("transform",s(m,y)),t.select("g."+v.grabberMaxClassName).attr("transform",s(x,y))}(a,0,r,l,u,f),"bottom"===r.side&&c.draw(t,r._id+"title",{propContainer:r,propName:r._name+".title",placeholder:e._dfltTitle.x,attributes:{x:r._offset+r._length/2,y:E+l._height+l._offsetShift+10+1.5*r.title.font.size,"text-anchor":"middle"}})})))}},549:function(t,e,r){"use strict";var n=r(41675),i=r(63893),a=r(73251),o=r(18783).LINE_SPACING,s=a.name;function l(t){var e=t&&t[s];return e&&e.visible}e.isVisible=l,e.makeData=function(t){var e=n.list({_fullLayout:t},"x",!0),r=t.margin,i=[];if(!t._has("gl2d"))for(var a=0;a<e.length;a++){var o=e[a];if(l(o)){i.push(o);var u=o[s];u._id=s+o._id,u._height=(t.height-r.b-r.t)*u.thickness,u._offsetShift=Math.floor(u.borderwidth/2)}}t._rangeSliderData=i},e.autoMarginOpts=function(t,e){var r=t._fullLayout,n=e[s],l=e._id.charAt(0),u=0,c=0;return"bottom"===e.side&&(u=e._depth,e.title.text!==r._dfltTitle[l]&&(c=1.5*e.title.font.size+10+n._offsetShift,c+=(e.title.text.match(i.BR_TAG_ALL)||[]).length*e.title.font.size*o)),{x:0,y:e._counterDomainMin,l:0,r:0,t:0,b:n._height+u+Math.max(r.margin.b,c),pad:a.extraPad+2*n._offsetShift}}},13137:function(t,e,r){"use strict";var n=r(71828),i=r(75148),a=r(47850),o=r(549);t.exports={moduleType:"component",name:"rangeslider",schema:{subplots:{xaxis:{rangeslider:n.extendFlat({},i,{yaxis:a})}}},layoutAttributes:r(75148),handleDefaults:r(26377),calcAutorange:r(88443),draw:r(72413),isVisible:o.isVisible,makeData:o.makeData,autoMarginOpts:o.autoMarginOpts}},47850:function(t){"use strict";t.exports={_isSubplotObj:!0,rangemode:{valType:"enumerated",values:["auto","fixed","match"],dflt:"match",editType:"calc"},range:{valType:"info_array",items:[{valType:"any",editType:"plot"},{valType:"any",editType:"plot"}],editType:"plot"},editType:"calc"}},8389:function(t,e,r){"use strict";var n=r(50215),i=r(82196).line,a=r(79952).P,o=r(1426).extendFlat,s=r(30962).overrideAll,l=r(44467).templatedArray;r(24695),t.exports=s(l("selection",{type:{valType:"enumerated",values:["rect","path"]},xref:o({},n.xref,{}),yref:o({},n.yref,{}),x0:{valType:"any"},x1:{valType:"any"},y0:{valType:"any"},y1:{valType:"any"},path:{valType:"string",editType:"arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:.7,editType:"arraydraw"},line:{color:i.color,width:o({},i.width,{min:1,dflt:1}),dash:o({},a,{dflt:"dot"})}}),"arraydraw","from-root")},34122:function(t){"use strict";t.exports={BENDPX:1.5,MINSELECT:12,SELECTDELAY:100,SELECTID:"-select"}},59402:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(85501),o=r(8389),s=r(30477);function l(t,e,r){function a(r,i){return n.coerce(t,e,o,r,i)}var l=a("path"),u="path"!==a("type",l?"path":"rect");u&&delete e.path,a("opacity"),a("line.color"),a("line.width"),a("line.dash");for(var c=["x","y"],f=0;f<2;f++){var h,p,d,v=c[f],g={_fullLayout:r},y=i.coerceRef(t,e,g,v);if((h=i.getFromId(g,y))._selectionIndices.push(e._index),d=s.rangeToShapePosition(h),p=s.shapePositionToRange(h),u){var m=v+"0",x=v+"1",b=t[m],_=t[x];t[m]=p(t[m],!0),t[x]=p(t[x],!0),i.coercePosition(e,g,a,y,m),i.coercePosition(e,g,a,y,x);var w=e[m],T=e[x];void 0!==w&&void 0!==T&&(e[m]=d(w),e[x]=d(T),t[m]=b,t[x]=_)}}u&&n.noneOrAll(t,e,["x0","x1","y0","y1"])}t.exports=function(t,e){a(t,e,{name:"selections",handleItemDefaults:l});for(var r=e.selections,n=0;n<r.length;n++){var i=r[n];i&&void 0===i.path&&(void 0!==i.x0&&void 0!==i.x1&&void 0!==i.y0&&void 0!==i.y1||(e.selections[n]=null))}}},32485:function(t,e,r){"use strict";var n=r(60165).readPaths,i=r(42359),a=r(51873).clearOutlineControllers,o=r(7901),s=r(91424),l=r(44467).arrayEditor,u=r(30477),c=u.getPathString;function f(t){var e=t._fullLayout;for(var r in a(t),e._selectionLayer.selectAll("path").remove(),e._plots){var n=e._plots[r].selectionLayer;n&&n.selectAll("path").remove()}for(var i=0;i<e.selections.length;i++)p(t,i)}function h(t){return t._context.editSelection}function p(t,e){t._fullLayout._paperdiv.selectAll('.selectionlayer [data-index="'+e+'"]').remove();var r=u.makeSelectionsOptionsAndPlotinfo(t,e),a=r.options,p=r.plotinfo;a._input&&function(r){var u=c(t,a),g={"data-index":e,"fill-rule":"evenodd",d:u},y=a.opacity,m="rgba(0,0,0,0)",x=a.line.color||o.contrast(t._fullLayout.plot_bgcolor),b=a.line.width,_=a.line.dash;b||(b=5,_="solid");var w=h(t)&&t._fullLayout._activeSelectionIndex===e;w&&(m=t._fullLayout.activeselection.fillcolor,y=t._fullLayout.activeselection.opacity);for(var T=[],k=1;k>=0;k--){var A=r.append("path").attr(g).style("opacity",k?.1:y).call(o.stroke,x).call(o.fill,m).call(s.dashLine,k?"solid":_,k?4+b:b);if(d(A,t,a),w){var M=l(t.layout,"selections",a);A.style({cursor:"move"});var S={element:A.node(),plotinfo:p,gd:t,editHelpers:M,isActiveSelection:!0},E=n(u,t);i(E,A,S)}else A.style("pointer-events",k?"all":"none");T[k]=A}var L=T[0];T[1].node().addEventListener("click",(function(){return function(t,e){if(h(t)){var r=+e.node().getAttribute("data-index");if(r>=0){if(r===t._fullLayout._activeSelectionIndex)return void v(t);t._fullLayout._activeSelectionIndex=r,t._fullLayout._deactivateSelection=v,f(t)}}}(t,L)}))}(t._fullLayout._selectionLayer)}function d(t,e,r){var n=r.xref+r.yref;s.setClipUrl(t,"clip"+e._fullLayout._uid+n,e)}function v(t){h(t)&&t._fullLayout._activeSelectionIndex>=0&&(a(t),delete t._fullLayout._activeSelectionIndex,f(t))}t.exports={draw:f,drawOne:p,activateLastSelection:function(t){if(h(t)){var e=t._fullLayout.selections.length-1;t._fullLayout._activeSelectionIndex=e,t._fullLayout._deactivateSelection=v,f(t)}}}},53777:function(t,e,r){"use strict";var n=r(79952).P,i=r(1426).extendFlat;t.exports={newselection:{mode:{valType:"enumerated",values:["immediate","gradual"],dflt:"immediate",editType:"none"},line:{color:{valType:"color",editType:"none"},width:{valType:"number",min:1,dflt:1,editType:"none"},dash:i({},n,{dflt:"dot",editType:"none"}),editType:"none"},editType:"none"},activeselection:{fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"none"},opacity:{valType:"number",min:0,max:1,dflt:.5,editType:"none"},editType:"none"}}},90849:function(t){"use strict";t.exports=function(t,e,r){r("newselection.mode"),r("newselection.line.width")&&(r("newselection.line.color"),r("newselection.line.dash")),r("activeselection.fillcolor"),r("activeselection.opacity")}},35855:function(t,e,r){"use strict";var n=r(64505).selectMode,i=r(51873).clearOutline,a=r(60165),o=a.readPaths,s=a.writePaths,l=a.fixDatesForPaths;t.exports=function(t,e){if(t.length){var r=t[0][0];if(r){var a=r.getAttribute("d"),u=e.gd,c=u._fullLayout.newselection,f=e.plotinfo,h=f.xaxis,p=f.yaxis,d=e.isActiveSelection,v=e.dragmode,g=(u.layout||{}).selections||[];if(!n(v)&&void 0!==d){var y=u._fullLayout._activeSelectionIndex;if(y<g.length)switch(u._fullLayout.selections[y].type){case"rect":v="select";break;case"path":v="lasso"}}var m,x=o(a,u,f,d),b={xref:h._id,yref:p._id,opacity:c.opacity,line:{color:c.line.color,width:c.line.width,dash:c.line.dash}};1===x.length&&(m=x[0]),m&&5===m.length&&"select"===v?(b.type="rect",b.x0=m[0][1],b.y0=m[0][2],b.x1=m[2][1],b.y1=m[2][2]):(b.type="path",h&&p&&l(x,h,p),b.path=s(x),m=null),i(u);for(var _=e.editHelpers,w=(_||{}).modifyItem,T=[],k=0;k<g.length;k++){var A=u._fullLayout.selections[k];if(A){if(T[k]=A._input,void 0!==d&&k===u._fullLayout._activeSelectionIndex){var M=b;switch(A.type){case"rect":w("x0",M.x0),w("x1",M.x1),w("y0",M.y0),w("y1",M.y1);break;case"path":w("path",M.path)}}}else T[k]=A}return void 0===d?(T.push(b),T):_?_.getUpdateObj():{}}}}},75549:function(t,e,r){"use strict";var n=r(71828).strTranslate;function i(t,e){switch(t.type){case"log":return t.p2d(e);case"date":return t.p2r(e,0,t.calendar);default:return t.p2r(e)}}t.exports={p2r:i,r2p:function(t,e){switch(t.type){case"log":return t.d2p(e);case"date":return t.r2p(e,0,t.calendar);default:return t.r2p(e)}},axValue:function(t){var e="y"===t._id.charAt(0)?1:0;return function(r){return i(t,r[e])}},getTransform:function(t){return n(t.xaxis._offset,t.yaxis._offset)}}},47322:function(t,e,r){"use strict";var n=r(32485),i=r(3937);t.exports={moduleType:"component",name:"selections",layoutAttributes:r(8389),supplyLayoutDefaults:r(59402),supplyDrawNewSelectionDefaults:r(90849),includeBasePlot:r(76325)("selections"),draw:n.draw,drawOne:n.drawOne,reselect:i.reselect,prepSelect:i.prepSelect,clearOutline:i.clearOutline,clearSelectionsCache:i.clearSelectionsCache,selectOnClick:i.selectOnClick}},3937:function(t,e,r){"use strict";var n=r(52142),i=r(38258),a=r(73972),o=r(91424).dashStyle,s=r(7901),l=r(30211),u=r(23469).makeEventData,c=r(64505),f=c.freeMode,h=c.rectMode,p=c.drawMode,d=c.openMode,v=c.selectMode,g=r(30477),y=r(21459),m=r(42359),x=r(51873).clearOutline,b=r(60165),_=b.handleEllipse,w=b.readPaths,T=r(90551),k=r(35855),A=r(32485).activateLastSelection,M=r(71828),S=M.sorterAsc,E=r(61082),L=r(79990),C=r(41675).getFromId,P=r(33306),O=r(61549).redrawReglTraces,I=r(34122),D=I.MINSELECT,z=E.filter,R=E.tester,F=r(75549),B=F.p2r,N=F.axValue,j=F.getTransform;function U(t){return void 0!==t.subplot}function V(t,e,r,n,i,a,o){var s,l,u,c,f,h,p,v,g,y=e._hoverdata,x=e._fullLayout.clickmode.indexOf("event")>-1,b=[];if(function(t){return t&&Array.isArray(t)&&!0!==t[0].hoverOnBox}(y)){Z(t,e,a);var _=function(t,e){var r,n,i=t[0],a=-1,o=[];for(n=0;n<e.length;n++)if(r=e[n],i.fullData._expandedIndex===r.cd[0].trace._expandedIndex){if(!0===i.hoverOnBox)break;void 0!==i.pointNumber?a=i.pointNumber:void 0!==i.binNumber&&(a=i.binNumber,o=i.pointNumbers);break}return{pointNumber:a,pointNumbers:o,searchInfo:r}}(y,s=X(e,r,n,i));if(_.pointNumbers.length>0?function(t,e){var r,n,i,a=[];for(i=0;i<t.length;i++)(r=t[i]).cd[0].trace.selectedpoints&&r.cd[0].trace.selectedpoints.length>0&&a.push(r);if(1===a.length&&a[0]===e.searchInfo&&(n=e.searchInfo.cd[0].trace).selectedpoints.length===e.pointNumbers.length){for(i=0;i<e.pointNumbers.length;i++)if(n.selectedpoints.indexOf(e.pointNumbers[i])<0)return!1;return!0}return!1}(s,_):function(t){var e,r,n=0;for(r=0;r<t.length;r++)if((e=t[r].cd[0].trace).selectedpoints){if(e.selectedpoints.length>1)return!1;if((n+=e.selectedpoints.length)>1)return!1}return 1===n}(s)&&(h=K(_))){for(o&&o.remove(),g=0;g<s.length;g++)(l=s[g])._module.selectPoints(l,!1);$(e,s),Y(a),x&&ht(e)}else{for(p=t.shiftKey&&(void 0!==h?h:K(_)),u=function(t,e,r){return{pointNumber:t,searchInfo:e,subtract:!!r}}(_.pointNumber,_.searchInfo,p),c=G(a.selectionDefs.concat([u])),g=0;g<s.length;g++)if(f=tt(s[g]._module.selectPoints(s[g],c),s[g]),b.length)for(var w=0;w<f.length;w++)b.push(f[w]);else b=f;if($(e,s,v={points:b}),u&&a&&a.selectionDefs.push(u),o){var T=a.mergedPolygons,k=d(a.dragmode);m(et(T,k),o,a)}x&&ft(e,v)}}}function H(t){return"pointNumber"in t&&"searchInfo"in t}function q(t){return{xmin:0,xmax:0,ymin:0,ymax:0,pts:[],contains:function(e,r,n,i){var a=t.searchInfo.cd[0].trace._expandedIndex;return i.cd[0].trace._expandedIndex===a&&n===t.pointNumber},isRect:!1,degenerate:!1,subtract:!!t.subtract}}function G(t){if(t.length){for(var e=[],r=H(t[0])?0:t[0][0][0],n=r,i=H(t[0])?0:t[0][0][1],a=i,o=0;o<t.length;o++)if(H(t[o]))e.push(q(t[o]));else{var s=R(t[o]);s.subtract=!!t[o].subtract,e.push(s),r=Math.min(r,s.xmin),n=Math.max(n,s.xmax),i=Math.min(i,s.ymin),a=Math.max(a,s.ymax)}return{xmin:r,xmax:n,ymin:i,ymax:a,pts:[],contains:function(t,r,n,i){for(var a=!1,o=0;o<e.length;o++)e[o].contains(t,r,n,i)&&(a=!e[o].subtract);return a},isRect:!1,degenerate:!1}}}function Z(t,e,r){var n=e._fullLayout,i=r.plotinfo,a=r.dragmode,o=n._lastSelectedSubplot&&n._lastSelectedSubplot===i.id,s=(t.shiftKey||t.altKey)&&!(p(a)&&d(a));o&&s&&i.selection&&i.selection.selectionDefs&&!r.selectionDefs?(r.selectionDefs=i.selection.selectionDefs,r.mergedPolygons=i.selection.mergedPolygons):s&&i.selection||Y(r),o||(x(e),n._lastSelectedSubplot=i.id)}function Y(t,e){var r=t.dragmode,n=t.plotinfo,i=t.gd;(function(t){return t._fullLayout._activeShapeIndex>=0})(i)&&i._fullLayout._deactivateShape(i),function(t){return t._fullLayout._activeSelectionIndex>=0}(i)&&i._fullLayout._deactivateSelection(i);var o=i._fullLayout._zoomlayer,s=p(r),l=v(r);if(s||l){var u,c,f=o.selectAll(".select-outline-"+n.id);f&&i._fullLayout._outlining&&(s&&(u=T(f,t)),u&&a.call("_guiRelayout",i,{shapes:u}),l&&!U(t)&&(c=k(f,t)),c&&(i._fullLayout._noEmitSelectedAtStart=!0,a.call("_guiRelayout",i,{selections:c}).then((function(){e&&A(i)}))),i._fullLayout._outlining=!1)}n.selection={},n.selection.selectionDefs=t.selectionDefs=[],n.selection.mergedPolygons=t.mergedPolygons=[]}function W(t){return t._id}function X(t,e,r,n){if(!t.calcdata)return[];var i,a,o,s=[],l=e.map(W),u=r.map(W);for(o=0;o<t.calcdata.length;o++)if(!0===(a=(i=t.calcdata[o])[0].trace).visible&&a._module&&a._module.selectPoints)if(!U({subplot:n})||a.subplot!==n&&a.geo!==n)if("splom"===a.type){if(a._xaxes[l[0]]&&a._yaxes[u[0]]){var c=J(a._module,i,e[0],r[0]);c.scene=t._fullLayout._splomScenes[a.uid],s.push(c)}}else if("sankey"===a.type){var f=J(a._module,i,e[0],r[0]);s.push(f)}else{if(-1===l.indexOf(a.xaxis))continue;if(-1===u.indexOf(a.yaxis))continue;s.push(J(a._module,i,C(t,a.xaxis),C(t,a.yaxis)))}else s.push(J(a._module,i,e[0],r[0]));return s}function J(t,e,r,n){return{_module:t,cd:e,xaxis:r,yaxis:n}}function K(t){var e=t.searchInfo.cd[0].trace,r=t.pointNumber,n=t.pointNumbers,i=n.length>0?n[0]:r;return!!e.selectedpoints&&e.selectedpoints.indexOf(i)>-1}function $(t,e,r){var n,i;for(n=0;n<e.length;n++){var o=e[n].cd[0].trace._fullInput,s=t._fullLayout._tracePreGUI[o.uid]||{};void 0===s.selectedpoints&&(s.selectedpoints=o._input.selectedpoints||null)}if(r){var l=r.points||[];for(n=0;n<e.length;n++)(i=e[n].cd[0].trace)._input.selectedpoints=i._fullInput.selectedpoints=[],i._fullInput!==i&&(i.selectedpoints=[]);for(var u=0;u<l.length;u++){var c=l[u],f=c.data,h=c.fullData,p=c.pointIndex,d=c.pointIndices;d?([].push.apply(f.selectedpoints,d),i._fullInput!==i&&[].push.apply(h.selectedpoints,d)):(f.selectedpoints.push(p),i._fullInput!==i&&h.selectedpoints.push(p))}}else for(n=0;n<e.length;n++)delete(i=e[n].cd[0].trace).selectedpoints,delete i._input.selectedpoints,i._fullInput!==i&&delete i._fullInput.selectedpoints;!function(t,e){for(var r=!1,n=0;n<e.length;n++){var i=e[n],o=i.cd;a.traceIs(o[0].trace,"regl")&&(r=!0);var s=i._module,l=s.styleOnSelect||s.style;l&&(l(t,o,o[0].node3),o[0].nodeRangePlot3&&l(t,o,o[0].nodeRangePlot3))}r&&(P(t),O(t))}(t,e)}function Q(t,e,r){for(var i=(r?n.difference:n.union)({regions:t},{regions:[e]}).regions.reverse(),a=0;a<i.length;a++){var o=i[a];o.subtract=st(o,i.slice(0,a))}return i}function tt(t,e){if(Array.isArray(t))for(var r=e.cd,n=e.cd[0].trace,i=0;i<t.length;i++)t[i]=u(t[i],n,r);return t}function et(t,e){for(var r=[],n=0;n<t.length;n++){r[n]=[];for(var i=0;i<t[n].length;i++){r[n][i]=[],r[n][i][0]=i?"L":"M";for(var a=0;a<t[n][i].length;a++)r[n][i].push(t[n][i][a])}e||r[n].push(["Z",r[n][0][1],r[n][0][2]])}return r}function rt(t,e){for(var r,n,i=[],a=[],o=0;o<e.length;o++){var s=e[o];n=s._module.selectPoints(s,t),a.push(n),r=tt(n,s),i=i.concat(r)}return i}function nt(t,e,r,n,i){var a,o,s,l=!!n;i&&(a=i.plotinfo,o=i.xaxes[0]._id,s=i.yaxes[0]._id);var u=[],c=[],f=ot(t),h=t._fullLayout;if(a){var d=h._zoomlayer,g=h.dragmode,y=p(g),m=v(g);if(y||m){var x=C(t,o,"x"),b=C(t,s,"y");if(x&&b){var _=d.selectAll(".select-outline-"+a.id);if(_&&t._fullLayout._outlining&&_.length){for(var T=_[0][0].getAttribute("d"),k=w(T,t,a),A=[],M=0;M<k.length;M++){for(var S=k[M],E=[],L=0;L<S.length;L++)E.push([lt(x,S[L][1]),lt(b,S[L][2])]);E.xref=o,E.yref=s,E.subtract=st(E,A),A.push(E)}f=f.concat(A)}}}}var P=o&&s?[o+s]:h._subplots.cartesian;!function(t){var e=t.calcdata;if(e)for(var r=0;r<e.length;r++){var n=e[r][0].trace,i=t._fullLayout._splomScenes;if(i){var a=i[n.uid];a&&(a.selectBatch=[])}}}(t);for(var O={},I=0;I<P.length;I++){var D=P[I],z=D.indexOf("y"),R=D.slice(0,z),F=D.slice(z),B=o&&s?r:void 0;if(B=at(f,R,F,B)){var N=n;if(!l){var j=C(t,R,"x"),U=C(t,F,"y");N=X(t,[j],[U],D);for(var V=0;V<N.length;V++){var H=N[V],q=H.cd[0],G=q.trace;if("scattergl"===H._module.name&&!q.t.xpx){var Z=G.x,Y=G.y,W=G._length;q.t.xpx=[],q.t.ypx=[];for(var J=0;J<W;J++)q.t.xpx[J]=j.c2p(Z[J]),q.t.ypx[J]=U.c2p(Y[J])}"splom"===H._module.name&&(O[G.uid]||(O[G.uid]=!0))}}var K=rt(B,N);u=u.concat(K),c=c.concat(N)}}var Q={points:u};$(t,c,Q);var tt=h.clickmode.indexOf("event")>-1&&e;if(!a&&e){var et=ot(t,!0);if(et.length){var nt=et[0].xref,pt=et[0].yref;if(nt&&pt){var dt=ut(et);ct([C(t,nt,"x"),C(t,pt,"y")])(Q,dt)}}t._fullLayout._noEmitSelectedAtStart?t._fullLayout._noEmitSelectedAtStart=!1:tt&&ft(t,Q),h._reselect=!1}if(!a&&h._deselect){var vt=h._deselect;(function(t,e,r){for(var n=0;n<r.length;n++){var i=r[n];if(i.xaxis&&i.xaxis._id===t&&i.yaxis&&i.yaxis._id===e)return!0}return!1})(o=vt.xref,s=vt.yref,c)||it(t,o,s,n),tt&&(Q.points.length?ft(t,Q):ht(t)),h._deselect=!1}return{eventData:Q,selectionTesters:r}}function it(t,e,r,n){n=X(t,[C(t,e,"x")],[C(t,r,"y")],e+r);for(var i=0;i<n.length;i++){var a=n[i];a._module.selectPoints(a,!1)}$(t,n)}function at(t,e,r,n){for(var i,a=0;a<t.length;a++){var o=t[a];e===o.xref&&r===o.yref&&(i?n=G(i=Q(i,o,!!o.subtract)):(i=[o],n=R(o)))}return n}function ot(t,e){for(var r=[],n=t._fullLayout,i=n.selections,a=i.length,o=0;o<a;o++)if(!e||o===n._activeSelectionIndex){var s=i[o];if(s){var l,u,c,f,h,p=s.xref,d=s.yref,v=C(t,p,"x"),m=C(t,d,"y");if("rect"===s.type){h=[];var x=lt(v,s.x0),b=lt(v,s.x1),_=lt(m,s.y0),w=lt(m,s.y1);h=[[x,_],[x,w],[b,w],[b,_]],l=Math.min(x,b),u=Math.max(x,b),c=Math.min(_,w),f=Math.max(_,w),h.xmin=l,h.xmax=u,h.ymin=c,h.ymax=f,h.xref=p,h.yref=d,h.subtract=!1,h.isRect=!0,r.push(h)}else if("path"===s.type)for(var T=s.path.split("Z"),k=[],A=0;A<T.length;A++){var M=T[A];if(M){M+="Z";var S=g.extractPathCoords(M,y.paramIsX,"raw"),E=g.extractPathCoords(M,y.paramIsY,"raw");l=1/0,u=-1/0,c=1/0,f=-1/0,h=[];for(var L=0;L<S.length;L++){var P=lt(v,S[L]),O=lt(m,E[L]);h.push([P,O]),l=Math.min(P,l),u=Math.max(P,u),c=Math.min(O,c),f=Math.max(O,f)}h.xmin=l,h.xmax=u,h.ymin=c,h.ymax=f,h.xref=p,h.yref=d,h.subtract=st(h,k),k.push(h),r.push(h)}}}}return r}function st(t,e){for(var r=!1,n=0;n<e.length;n++)for(var a=e[n],o=0;o<t.length;o++)if(i(t[o],a)){r=!r;break}return r}function lt(t,e){return"date"===t.type&&(e=e.replace("_"," ")),"log"===t.type?t.c2p(e):t.r2p(e,null,t.calendar)}function ut(t){for(var e=t.length,r=[],n=0;n<e;n++){var i=t[n];r=(r=r.concat(i)).concat([i[0]])}return(a=r).isRect=5===a.length&&a[0][0]===a[4][0]&&a[0][1]===a[4][1]&&a[0][0]===a[1][0]&&a[2][0]===a[3][0]&&a[0][1]===a[3][1]&&a[1][1]===a[2][1]||a[0][1]===a[1][1]&&a[2][1]===a[3][1]&&a[0][0]===a[3][0]&&a[1][0]===a[2][0],a.isRect&&(a.xmin=Math.min(a[0][0],a[2][0]),a.xmax=Math.max(a[0][0],a[2][0]),a.ymin=Math.min(a[0][1],a[2][1]),a.ymax=Math.max(a[0][1],a[2][1])),a;var a}function ct(t){return function(e,r){for(var n,i,a=0;a<t.length;a++){var o=t[a],s=o._id,l=s.charAt(0);if(r.isRect){n||(n={});var u=r[l+"min"],c=r[l+"max"];void 0!==u&&void 0!==c&&(n[s]=[B(o,u),B(o,c)].sort(S))}else i||(i={}),i[s]=r.map(N(o))}n&&(e.range=n),i&&(e.lassoPoints=i)}}function ft(t,e){e&&(e.selections=(t.layout||{}).selections||[]),t.emit("plotly_selected",e)}function ht(t){t.emit("plotly_deselect",null)}t.exports={reselect:nt,prepSelect:function(t,e,r,n,i){var u=!U(n),c=f(i),g=h(i),y=d(i),x=p(i),b=v(i),w="drawcircle"===i,T="drawline"===i||w,k=n.gd,A=k._fullLayout,S=b&&"immediate"===A.newselection.mode&&u,E=A._zoomlayer,C=n.element.getBoundingClientRect(),P=n.plotinfo,O=j(P),F=e-C.left,B=r-C.top;A._calcInverseTransform(k);var N=M.apply3DTransform(A._invTransform)(F,B);F=N[0],B=N[1];var H,q,W,J,K,tt,at,ot=A._invScaleX,st=A._invScaleY,lt=F,pt=B,dt="M"+F+","+B,vt=n.xaxes[0],gt=n.yaxes[0],yt=vt._length,mt=gt._length,xt=t.altKey&&!(p(i)&&y);Z(t,k,n),c&&(H=z([[F,B]],I.BENDPX));var bt=E.selectAll("path.select-outline-"+P.id).data([1]),_t=x?A.newshape:A.newselection,wt=x&&!y?_t.fillcolor:"rgba(0,0,0,0)",Tt=_t.line.color||(u?s.contrast(k._fullLayout.plot_bgcolor):"#7f7f7f");bt.enter().append("path").attr("class","select-outline select-outline-"+P.id).style({opacity:x?_t.opacity/2:1,"stroke-dasharray":o(_t.line.dash,_t.line.width),"stroke-width":_t.line.width+"px","shape-rendering":"crispEdges"}).call(s.stroke,Tt).call(s.fill,wt).attr("fill-rule","evenodd").classed("cursor-move",!!x).attr("transform",O).attr("d",dt+"Z");var kt=E.append("path").attr("class","zoombox-corners").style({fill:s.background,stroke:s.defaultLine,"stroke-width":1}).attr("transform",O).attr("d","M0,0Z"),At=A._uid+I.SELECTID,Mt=[],St=X(k,n.xaxes,n.yaxes,n.subplot);S&&!t.shiftKey&&(n._clearSubplotSelections=function(){if(u){var t=vt._id,e=gt._id;it(k,t,e,St);for(var r=(k.layout||{}).selections||[],n=[],i=!1,o=0;o<r.length;o++){var s=A.selections[o];s.xref!==t||s.yref!==e?n.push(r[o]):i=!0}i&&(k._fullLayout._noEmitSelectedAtStart=!0,a.call("_guiRelayout",k,{selections:n}))}});var Et=function(t){return t.plotinfo.fillRangeItems||ct(t.xaxes.concat(t.yaxes))}(n);n.moveFn=function(t,e){n._clearSubplotSelections&&(n._clearSubplotSelections(),n._clearSubplotSelections=void 0),lt=Math.max(0,Math.min(yt,ot*t+F)),pt=Math.max(0,Math.min(mt,st*e+B));var r=Math.abs(lt-F),i=Math.abs(pt-B);if(g){var a,o,s;if(b){var l=A.selectdirection;switch(a="any"===l?i<Math.min(.6*r,D)?"h":r<Math.min(.6*i,D)?"v":"d":l){case"h":o=w?mt/2:0,s=mt;break;case"v":o=w?yt/2:0,s=yt}}if(x)switch(A.newshape.drawdirection){case"vertical":a="h",o=w?mt/2:0,s=mt;break;case"horizontal":a="v",o=w?yt/2:0,s=yt;break;case"ortho":r<i?(a="h",o=B,s=pt):(a="v",o=F,s=lt);break;default:a="d"}"h"===a?((J=T?_(w,[lt,o],[lt,s]):[[F,o],[F,s],[lt,s],[lt,o]]).xmin=T?lt:Math.min(F,lt),J.xmax=T?lt:Math.max(F,lt),J.ymin=Math.min(o,s),J.ymax=Math.max(o,s),kt.attr("d","M"+J.xmin+","+(B-D)+"h-4v"+2*D+"h4ZM"+(J.xmax-1)+","+(B-D)+"h4v"+2*D+"h-4Z")):"v"===a?((J=T?_(w,[o,pt],[s,pt]):[[o,B],[o,pt],[s,pt],[s,B]]).xmin=Math.min(o,s),J.xmax=Math.max(o,s),J.ymin=T?pt:Math.min(B,pt),J.ymax=T?pt:Math.max(B,pt),kt.attr("d","M"+(F-D)+","+J.ymin+"v-4h"+2*D+"v4ZM"+(F-D)+","+(J.ymax-1)+"v4h"+2*D+"v-4Z")):"d"===a&&((J=T?_(w,[F,B],[lt,pt]):[[F,B],[F,pt],[lt,pt],[lt,B]]).xmin=Math.min(F,lt),J.xmax=Math.max(F,lt),J.ymin=Math.min(B,pt),J.ymax=Math.max(B,pt),kt.attr("d","M0,0Z"))}else c&&(H.addPt([lt,pt]),J=H.filtered);if(n.selectionDefs&&n.selectionDefs.length?(W=Q(n.mergedPolygons,J,xt),J.subtract=xt,q=G(n.selectionDefs.concat([J]))):(W=[J],q=R(J)),m(et(W,y),bt,n),b){var u,f=nt(k,!1),h=f.eventData?f.eventData.points.slice():[];f=nt(k,!1,q,St,n),q=f.selectionTesters,at=f.eventData,u=H?H.filtered:ut(W),L.throttle(At,I.SELECTDELAY,(function(){for(var t=(Mt=rt(q,St)).slice(),e=0;e<h.length;e++){for(var r=h[e],n=!1,i=0;i<t.length;i++)if(t[i].curveNumber===r.curveNumber&&t[i].pointNumber===r.pointNumber){n=!0;break}n||t.push(r)}t.length&&(at||(at={}),at.points=t),Et(at,u),function(t,e){t.emit("plotly_selecting",e)}(k,at)}))}},n.clickFn=function(t,e){if(kt.remove(),k._fullLayout._activeShapeIndex>=0)k._fullLayout._deactivateShape(k);else if(!x){var r=A.clickmode;L.done(At).then((function(){if(L.clear(At),2===t){for(bt.remove(),K=0;K<St.length;K++)(tt=St[K])._module.selectPoints(tt,!1);if($(k,St),Y(n),ht(k),St.length){var i=St[0].xaxis,o=St[0].yaxis;if(i&&o){for(var s=[],u=k._fullLayout.selections,c=0;c<u.length;c++){var f=u[c];f&&(f.xref===i._id&&f.yref===o._id||s.push(f))}s.length<u.length&&(k._fullLayout._noEmitSelectedAtStart=!0,a.call("_guiRelayout",k,{selections:s}))}}}else r.indexOf("select")>-1&&V(e,k,n.xaxes,n.yaxes,n.subplot,n,bt),"event"===r&&ft(k,void 0);l.click(k,e)})).catch(M.error)}},n.doneFn=function(){kt.remove(),L.done(At).then((function(){L.clear(At),!S&&J&&n.selectionDefs&&(J.subtract=xt,n.selectionDefs.push(J),n.mergedPolygons.length=0,[].push.apply(n.mergedPolygons,W)),(S||x)&&Y(n,S),n.doneFnCompleted&&n.doneFnCompleted(Mt),b&&ft(k,at)})).catch(M.error)}},clearOutline:x,clearSelectionsCache:Y,selectOnClick:V}},89827:function(t,e,r){"use strict";var n=r(50215),i=r(82196).line,a=r(79952).P,o=r(1426).extendFlat,s=r(44467).templatedArray;r(24695),t.exports=s("shape",{visible:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},type:{valType:"enumerated",values:["circle","rect","path","line"],editType:"calc+arraydraw"},layer:{valType:"enumerated",values:["below","above"],dflt:"above",editType:"arraydraw"},xref:o({},n.xref,{}),xsizemode:{valType:"enumerated",values:["scaled","pixel"],dflt:"scaled",editType:"calc+arraydraw"},xanchor:{valType:"any",editType:"calc+arraydraw"},x0:{valType:"any",editType:"calc+arraydraw"},x1:{valType:"any",editType:"calc+arraydraw"},yref:o({},n.yref,{}),ysizemode:{valType:"enumerated",values:["scaled","pixel"],dflt:"scaled",editType:"calc+arraydraw"},yanchor:{valType:"any",editType:"calc+arraydraw"},y0:{valType:"any",editType:"calc+arraydraw"},y1:{valType:"any",editType:"calc+arraydraw"},path:{valType:"string",editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},line:{color:o({},i.color,{editType:"arraydraw"}),width:o({},i.width,{editType:"calc+arraydraw"}),dash:o({},a,{editType:"arraydraw"}),editType:"calc+arraydraw"},fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},fillrule:{valType:"enumerated",values:["evenodd","nonzero"],dflt:"evenodd",editType:"arraydraw"},editable:{valType:"boolean",dflt:!1,editType:"calc+arraydraw"},editType:"arraydraw"})},5627:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(21459),o=r(30477);function s(t){return u(t.line.width,t.xsizemode,t.x0,t.x1,t.path,!1)}function l(t){return u(t.line.width,t.ysizemode,t.y0,t.y1,t.path,!0)}function u(t,e,r,i,s,l){var u=t/2,c=l;if("pixel"===e){var f=s?o.extractPathCoords(s,l?a.paramIsY:a.paramIsX):[r,i],h=n.aggNums(Math.max,null,f),p=n.aggNums(Math.min,null,f),d=p<0?Math.abs(p)+u:u,v=h>0?h+u:u;return{ppad:u,ppadplus:c?d:v,ppadminus:c?v:d}}return{ppad:u}}function c(t,e,r,n,i){var s="category"===t.type||"multicategory"===t.type?t.r2c:t.d2c;if(void 0!==e)return[s(e),s(r)];if(n){var l,u,c,f,h=1/0,p=-1/0,d=n.match(a.segmentRE);for("date"===t.type&&(s=o.decodeDate(s)),l=0;l<d.length;l++)void 0!==(u=i[d[l].charAt(0)].drawn)&&(!(c=d[l].substr(1).match(a.paramRE))||c.length<u||((f=s(c[u]))<h&&(h=f),f>p&&(p=f)));return p>=h?[h,p]:void 0}}t.exports=function(t){var e=t._fullLayout,r=n.filterVisible(e.shapes);if(r.length&&t._fullData.length)for(var o=0;o<r.length;o++){var u,f,h=r[o];h._extremes={};var p=i.getRefType(h.xref),d=i.getRefType(h.yref);if("paper"!==h.xref&&"domain"!==p){var v="pixel"===h.xsizemode?h.xanchor:h.x0,g="pixel"===h.xsizemode?h.xanchor:h.x1;(f=c(u=i.getFromId(t,h.xref),v,g,h.path,a.paramIsX))&&(h._extremes[u._id]=i.findExtremes(u,f,s(h)))}if("paper"!==h.yref&&"domain"!==d){var y="pixel"===h.ysizemode?h.yanchor:h.y0,m="pixel"===h.ysizemode?h.yanchor:h.y1;(f=c(u=i.getFromId(t,h.yref),y,m,h.path,a.paramIsY))&&(h._extremes[u._id]=i.findExtremes(u,f,l(h)))}}}},21459:function(t){"use strict";t.exports={segmentRE:/[MLHVQCTSZ][^MLHVQCTSZ]*/g,paramRE:/[^\s,]+/g,paramIsX:{M:{0:!0,drawn:0},L:{0:!0,drawn:0},H:{0:!0,drawn:0},V:{},Q:{0:!0,2:!0,drawn:2},C:{0:!0,2:!0,4:!0,drawn:4},T:{0:!0,drawn:0},S:{0:!0,2:!0,drawn:2},Z:{}},paramIsY:{M:{1:!0,drawn:1},L:{1:!0,drawn:1},H:{},V:{0:!0,drawn:0},Q:{1:!0,3:!0,drawn:3},C:{1:!0,3:!0,5:!0,drawn:5},T:{1:!0,drawn:1},S:{1:!0,3:!0,drawn:5},Z:{}},numParams:{M:2,L:2,H:1,V:1,Q:4,C:6,T:2,S:4,Z:0}}},84726:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(85501),o=r(89827),s=r(30477);function l(t,e,r){function a(r,i){return n.coerce(t,e,o,r,i)}if(a("visible")){var l=a("path"),u="path"!==a("type",l?"path":"rect");u&&delete e.path,a("editable"),a("layer"),a("opacity"),a("fillcolor"),a("fillrule"),a("line.width")&&(a("line.color"),a("line.dash"));for(var c=a("xsizemode"),f=a("ysizemode"),h=["x","y"],p=0;p<2;p++){var d,v,g,y=h[p],m=y+"anchor",x="x"===y?c:f,b={_fullLayout:r},_=i.coerceRef(t,e,b,y,void 0,"paper");if("range"===i.getRefType(_)?((d=i.getFromId(b,_))._shapeIndices.push(e._index),g=s.rangeToShapePosition(d),v=s.shapePositionToRange(d)):v=g=n.identity,u){var w=y+"0",T=y+"1",k=t[w],A=t[T];t[w]=v(t[w],!0),t[T]=v(t[T],!0),"pixel"===x?(a(w,0),a(T,10)):(i.coercePosition(e,b,a,_,w,.25),i.coercePosition(e,b,a,_,T,.75)),e[w]=g(e[w]),e[T]=g(e[T]),t[w]=k,t[T]=A}if("pixel"===x){var M=t[m];t[m]=v(t[m],!0),i.coercePosition(e,b,a,_,m,.25),e[m]=g(e[m]),t[m]=M}}u&&n.noneOrAll(t,e,["x0","x1","y0","y1"])}}t.exports=function(t,e){a(t,e,{name:"shapes",handleItemDefaults:l})}},42359:function(t,e,r){"use strict";var n=r(71828).strTranslate,i=r(28569),a=r(64505),o=a.drawMode,s=a.selectMode,l=r(73972),u=r(7901),c=r(89995),f=c.i000,h=c.i090,p=c.i180,d=c.i270,v=r(51873).clearOutlineControllers,g=r(60165),y=g.pointsOnRectangle,m=g.pointsOnEllipse,x=g.writePaths,b=r(90551),_=r(35855);function w(t,e){var r,n,i,a=t[e][1],o=t[e][2],s=t.length;return n=t[r=(e+1)%s][1],i=t[r][2],n===a&&i===o&&(n=t[r=(e+2)%s][1],i=t[r][2]),[r,n,i]}t.exports=function t(e,r,a,c){c||(c=0);var g=a.gd;function T(){t(e,r,a,c++),m(e[0])&&k({redrawing:!0})}function k(t){var e={};void 0!==a.isActiveShape&&(a.isActiveShape=!1,e=b(r,a)),void 0!==a.isActiveSelection&&(a.isActiveSelection=!1,e=_(r,a),g._fullLayout._reselect=!0),Object.keys(e).length&&l.call((t||{}).redrawing?"relayout":"_guiRelayout",g,e)}var A,M,S,E,L,C=g._fullLayout._zoomlayer,P=a.dragmode,O=o(P),I=s(P);function D(t){S=+t.srcElement.getAttribute("data-i"),E=+t.srcElement.getAttribute("data-j"),A[S][E].moveFn=z}function z(t,r){if(e.length){var n=L[S][E][1],i=L[S][E][2],o=e[S],s=o.length;if(y(o)){var l=t,u=r;a.isActiveSelection&&(w(o,E)[1]===o[E][1]?u=0:l=0);for(var c=0;c<s;c++)if(c!==E){var f=o[c];f[1]===o[E][1]&&(f[1]=n+l),f[2]===o[E][2]&&(f[2]=i+u)}if(o[E][1]=n+l,o[E][2]=i+u,!y(o))for(var h=0;h<s;h++)for(var p=0;p<o[h].length;p++)o[h][p]=L[S][h][p]}else o[E][1]=n+t,o[E][2]=i+r;T()}}function R(){k()}function F(t,r){if(2===t){S=+r.srcElement.getAttribute("data-i"),E=+r.srcElement.getAttribute("data-j");var n=e[S];y(n)||m(n)||function(){if(e.length&&e[S]&&e[S].length){for(var t=[],r=0;r<e[S].length;r++)r!==E&&t.push(e[S][r]);t.length>1&&(2!==t.length||"Z"!==t[1][0])&&(0===E&&(t[0][0]="M"),e[S]=t,T(),k())}}()}}function B(t,r){!function(t,r){if(e.length)for(var n=0;n<e.length;n++)for(var i=0;i<e[n].length;i++)for(var a=0;a+2<e[n][i].length;a+=2)e[n][i][a+1]=L[n][i][a+1]+t,e[n][i][a+2]=L[n][i][a+2]+r}(t,r),T()}function N(t){(S=+t.srcElement.getAttribute("data-i"))||(S=0),M[S].moveFn=B}function j(){k()}function U(t){2===t&&function(t){if(s(t._fullLayout.dragmode)){v(t);var e=t._fullLayout._activeSelectionIndex,r=(t.layout||{}).selections||[];if(e<r.length){for(var n=[],i=0;i<r.length;i++)i!==e&&n.push(r[i]);delete t._fullLayout._activeSelectionIndex;var a=t._fullLayout.selections[e];t._fullLayout._deselect={xref:a.xref,yref:a.yref},l.call("_guiRelayout",t,{selections:n})}}}(g)}(O||I)&&(g._fullLayout._outlining=!0),v(g),r.attr("d",x(e)),c||!a.isActiveShape&&!a.isActiveSelection||(L=function(t,e){for(var r=0;r<e.length;r++){var n=e[r];t[r]=[];for(var i=0;i<n.length;i++){t[r][i]=[];for(var a=0;a<n[i].length;a++)t[r][i][a]=n[i][a]}}return t}([],e),function(t){A=[];for(var r=0;r<e.length;r++){var o=e[r],s=y(o),l=!s&&m(o);A[r]=[];for(var c=o.length,v=0;v<c;v++)if("Z"!==o[v][0]&&(!l||v===f||v===h||v===p||v===d)){var x,b=s&&a.isActiveSelection;b&&(x=w(o,v));var _=o[v][1],T=o[v][2],k=t.append(b?"rect":"circle").attr("data-i",r).attr("data-j",v).style({fill:u.background,stroke:u.defaultLine,"stroke-width":1,"shape-rendering":"crispEdges"});if(b){var M=x[1]-_,S=x[2]-T,E=S?5:Math.max(Math.min(25,Math.abs(M)-5),5),L=M?5:Math.max(Math.min(25,Math.abs(S)-5),5);k.classed(S?"cursor-ew-resize":"cursor-ns-resize",!0).attr("width",E).attr("height",L).attr("x",_-E/2).attr("y",T-L/2).attr("transform",n(M/2,S/2))}else k.classed("cursor-grab",!0).attr("r",5).attr("cx",_).attr("cy",T);A[r][v]={element:k.node(),gd:g,prepFn:D,doneFn:R,clickFn:F},i.init(A[r][v])}}}(C.append("g").attr("class","outline-controllers")),function(){if(M=[],e.length){M[0]={element:r[0][0],gd:g,prepFn:N,doneFn:j,clickFn:U},i.init(M[0])}}())}},34031:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(89298),o=r(60165).readPaths,s=r(42359),l=r(51873).clearOutlineControllers,u=r(7901),c=r(91424),f=r(44467).arrayEditor,h=r(28569),p=r(6964),d=r(21459),v=r(30477),g=v.getPathString;function y(t){var e=t._fullLayout;for(var r in e._shapeUpperLayer.selectAll("path").remove(),e._shapeLowerLayer.selectAll("path").remove(),e._plots){var n=e._plots[r].shapelayer;n&&n.selectAll("path").remove()}for(var i=0;i<e.shapes.length;i++)e.shapes[i].visible&&b(t,i)}function m(t){return!!t._fullLayout._outlining}function x(t){return!t._context.edits.shapePosition}function b(t,e){t._fullLayout._paperdiv.selectAll('.shapelayer [data-index="'+e+'"]').remove();var r=v.makeShapesOptionsAndPlotinfo(t,e),l=r.options,b=r.plotinfo;function k(r){var k=g(t,l),A={"data-index":e,"fill-rule":l.fillrule,d:k},M=l.opacity,S=l.fillcolor,E=l.line.width?l.line.color:"rgba(0,0,0,0)",L=l.line.width,C=l.line.dash;L||!0!==l.editable||(L=5,C="solid");var P="Z"!==k[k.length-1],O=x(t)&&l.editable&&t._fullLayout._activeShapeIndex===e;O&&(S=P?"rgba(0,0,0,0)":t._fullLayout.activeshape.fillcolor,M=t._fullLayout.activeshape.opacity);var I,D=r.append("path").attr(A).style("opacity",M).call(u.stroke,E).call(u.fill,S).call(c.dashLine,C,L);if(_(D,t,l),(O||t._context.edits.shapePosition)&&(I=f(t.layout,"shapes",l)),O){D.style({cursor:"move"});var z={element:D.node(),plotinfo:b,gd:t,editHelpers:I,isActiveShape:!0},R=o(k,t);s(R,D,z)}else t._context.edits.shapePosition?function(t,e,r,o,s,l){var u,f,y,x,b,T,k,A,M,S,E,L,C,P,O,I,D="pixel"===r.xsizemode,z="pixel"===r.ysizemode,R="line"===r.type,F="path"===r.type,B=l.modifyItem,N=a.getFromId(t,r.xref),j=a.getRefType(r.xref),U=a.getFromId(t,r.yref),V=a.getRefType(r.yref),H=v.getDataToPixel(t,N,!1,j),q=v.getDataToPixel(t,U,!0,V),G=v.getPixelToData(t,N,!1,j),Z=v.getPixelToData(t,U,!0,V),Y=R?function(){var t=10,n=Math.max(r.line.width,t),i=s.append("g").attr("data-index",o);i.append("path").attr("d",e.attr("d")).style({cursor:"move","stroke-width":n,"stroke-opacity":"0"});var a={"fill-opacity":"0"},l=Math.max(n/2,t);return i.append("circle").attr({"data-line-point":"start-point",cx:D?H(r.xanchor)+r.x0:H(r.x0),cy:z?q(r.yanchor)-r.y0:q(r.y0),r:l}).style(a).classed("cursor-grab",!0),i.append("circle").attr({"data-line-point":"end-point",cx:D?H(r.xanchor)+r.x1:H(r.x1),cy:z?q(r.yanchor)-r.y1:q(r.y1),r:l}).style(a).classed("cursor-grab",!0),i}():e,W={element:Y.node(),gd:t,prepFn:function(n){m(t)||(D&&(b=H(r.xanchor)),z&&(T=q(r.yanchor)),"path"===r.type?O=r.path:(u=D?r.x0:H(r.x0),f=z?r.y0:q(r.y0),y=D?r.x1:H(r.x1),x=z?r.y1:q(r.y1)),u<y?(M=u,C="x0",S=y,P="x1"):(M=y,C="x1",S=u,P="x0"),!z&&f<x||z&&f>x?(k=f,E="y0",A=x,L="y1"):(k=x,E="y1",A=f,L="y0"),X(n),$(s,r),function(t,e,r){var n=e.xref,i=e.yref,o=a.getFromId(r,n),s=a.getFromId(r,i),l="";"paper"===n||o.autorange||(l+=n),"paper"===i||s.autorange||(l+=i),c.setClipUrl(t,l?"clip"+r._fullLayout._uid+l:null,r)}(e,r,t),W.moveFn="move"===I?J:K,W.altKey=n.altKey)},doneFn:function(){m(t)||(p(e),Q(s),_(e,t,r),n.call("_guiRelayout",t,l.getUpdateObj()))},clickFn:function(){m(t)||Q(s)}};function X(r){if(m(t))I=null;else if(R)I="path"===r.target.tagName?"move":"start-point"===r.target.attributes["data-line-point"].value?"resize-over-start-point":"resize-over-end-point";else{var n=W.element.getBoundingClientRect(),i=n.right-n.left,a=n.bottom-n.top,o=r.clientX-n.left,s=r.clientY-n.top,l=!F&&i>10&&a>10&&!r.shiftKey?h.getCursor(o/i,1-s/a):"move";p(e,l),I=l.split("-")[0]}}function J(n,i){if("path"===r.type){var a=function(t){return t},o=a,l=a;D?B("xanchor",r.xanchor=G(b+n)):(o=function(t){return G(H(t)+n)},N&&"date"===N.type&&(o=v.encodeDate(o))),z?B("yanchor",r.yanchor=Z(T+i)):(l=function(t){return Z(q(t)+i)},U&&"date"===U.type&&(l=v.encodeDate(l))),B("path",r.path=w(O,o,l))}else D?B("xanchor",r.xanchor=G(b+n)):(B("x0",r.x0=G(u+n)),B("x1",r.x1=G(y+n))),z?B("yanchor",r.yanchor=Z(T+i)):(B("y0",r.y0=Z(f+i)),B("y1",r.y1=Z(x+i)));e.attr("d",g(t,r)),$(s,r)}function K(n,i){if(F){var a=function(t){return t},o=a,l=a;D?B("xanchor",r.xanchor=G(b+n)):(o=function(t){return G(H(t)+n)},N&&"date"===N.type&&(o=v.encodeDate(o))),z?B("yanchor",r.yanchor=Z(T+i)):(l=function(t){return Z(q(t)+i)},U&&"date"===U.type&&(l=v.encodeDate(l))),B("path",r.path=w(O,o,l))}else if(R){if("resize-over-start-point"===I){var c=u+n,h=z?f-i:f+i;B("x0",r.x0=D?c:G(c)),B("y0",r.y0=z?h:Z(h))}else if("resize-over-end-point"===I){var p=y+n,d=z?x-i:x+i;B("x1",r.x1=D?p:G(p)),B("y1",r.y1=z?d:Z(d))}}else{var m=function(t){return-1!==I.indexOf(t)},_=m("n"),j=m("s"),V=m("w"),Y=m("e"),W=_?k+i:k,X=j?A+i:A,J=V?M+n:M,K=Y?S+n:S;z&&(_&&(W=k-i),j&&(X=A-i)),(!z&&X-W>10||z&&W-X>10)&&(B(E,r[E]=z?W:Z(W)),B(L,r[L]=z?X:Z(X))),K-J>10&&(B(C,r[C]=D?J:G(J)),B(P,r[P]=D?K:G(K)))}e.attr("d",g(t,r)),$(s,r)}function $(t,e){(D||z)&&function(){var r="path"!==e.type,n=t.selectAll(".visual-cue").data([0]);n.enter().append("path").attr({fill:"#fff","fill-rule":"evenodd",stroke:"#000","stroke-width":1}).classed("visual-cue",!0);var a=H(D?e.xanchor:i.midRange(r?[e.x0,e.x1]:v.extractPathCoords(e.path,d.paramIsX))),o=q(z?e.yanchor:i.midRange(r?[e.y0,e.y1]:v.extractPathCoords(e.path,d.paramIsY)));if(a=v.roundPositionForSharpStrokeRendering(a,1),o=v.roundPositionForSharpStrokeRendering(o,1),D&&z){var s="M"+(a-1-1)+","+(o-1-1)+"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z";n.attr("d",s)}else if(D){var l="M"+(a-1-1)+","+(o-9-1)+"v18 h2 v-18 Z";n.attr("d",l)}else{var u="M"+(a-9-1)+","+(o-1-1)+"h18 v2 h-18 Z";n.attr("d",u)}}()}function Q(t){t.selectAll(".visual-cue").remove()}h.init(W),Y.node().onmousemove=X}(t,D,l,e,r,I):!0===l.editable&&D.style("pointer-events",P||u.opacity(S)*M<=.5?"stroke":"all");D.node().addEventListener("click",(function(){return function(t,e){if(x(t)){var r=+e.node().getAttribute("data-index");if(r>=0){if(r===t._fullLayout._activeShapeIndex)return void T(t);t._fullLayout._activeShapeIndex=r,t._fullLayout._deactivateShape=T,y(t)}}}(t,D)}))}l._input&&!1!==l.visible&&("below"!==l.layer?k(t._fullLayout._shapeUpperLayer):"paper"===l.xref||"paper"===l.yref?k(t._fullLayout._shapeLowerLayer):b._hadPlotinfo?k((b.mainplotinfo||b).shapelayer):k(t._fullLayout._shapeLowerLayer))}function _(t,e,r){var n=(r.xref+r.yref).replace(/paper/g,"").replace(/[xyz][1-9]* *domain/g,"");c.setClipUrl(t,n?"clip"+e._fullLayout._uid+n:null,e)}function w(t,e,r){return t.replace(d.segmentRE,(function(t){var n=0,i=t.charAt(0),a=d.paramIsX[i],o=d.paramIsY[i],s=d.numParams[i];return i+t.substr(1).replace(d.paramRE,(function(t){return n>=s||(a[n]?t=e(t):o[n]&&(t=r(t)),n++),t}))}))}function T(t){x(t)&&t._fullLayout._activeShapeIndex>=0&&(l(t),delete t._fullLayout._activeShapeIndex,y(t))}t.exports={draw:y,drawOne:b,eraseActiveShape:function(t){if(x(t)){l(t);var e=t._fullLayout._activeShapeIndex,r=(t.layout||{}).shapes||[];if(e<r.length){for(var i=[],a=0;a<r.length;a++)a!==e&&i.push(r[a]);delete t._fullLayout._activeShapeIndex,n.call("_guiRelayout",t,{shapes:i})}}}}},29241:function(t,e,r){"use strict";var n=r(79952).P,i=r(1426).extendFlat;t.exports={newshape:{line:{color:{valType:"color",editType:"none"},width:{valType:"number",min:0,dflt:4,editType:"none"},dash:i({},n,{dflt:"solid",editType:"none"}),editType:"none"},fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"none"},fillrule:{valType:"enumerated",values:["evenodd","nonzero"],dflt:"evenodd",editType:"none"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"none"},layer:{valType:"enumerated",values:["below","above"],dflt:"above",editType:"none"},drawdirection:{valType:"enumerated",values:["ortho","horizontal","vertical","diagonal"],dflt:"diagonal",editType:"none"},editType:"none"},activeshape:{fillcolor:{valType:"color",dflt:"rgb(255,0,255)",editType:"none"},opacity:{valType:"number",min:0,max:1,dflt:.5,editType:"none"},editType:"none"}}},89995:function(t){"use strict";t.exports={CIRCLE_SIDES:32,i000:0,i090:8,i180:16,i270:24,cos45:Math.cos(Math.PI/4),sin45:Math.sin(Math.PI/4),SQRT2:Math.sqrt(2)}},45547:function(t,e,r){"use strict";var n=r(7901);t.exports=function(t,e,r){if(r("newshape.drawdirection"),r("newshape.layer"),r("newshape.fillcolor"),r("newshape.fillrule"),r("newshape.opacity"),r("newshape.line.width")){var i=(t||{}).plot_bgcolor||"#FFF";r("newshape.line.color",n.contrast(i)),r("newshape.line.dash")}r("activeshape.fillcolor"),r("activeshape.opacity")}},60165:function(t,e,r){"use strict";var n=r(95616),i=r(89995),a=i.CIRCLE_SIDES,o=i.SQRT2,s=r(75549),l=s.p2r,u=s.r2p,c=[0,3,4,5,6,1,2],f=[0,3,4,1,2];function h(t,e){return Math.abs(t-e)<=1e-6}function p(t,e){var r=e[1]-t[1],n=e[2]-t[2];return Math.sqrt(r*r+n*n)}e.writePaths=function(t){var e=t.length;if(!e)return"M0,0Z";for(var r="",n=0;n<e;n++)for(var i=t[n].length,a=0;a<i;a++){var o=t[n][a][0];if("Z"===o)r+="Z";else for(var s=t[n][a].length,l=0;l<s;l++){var u=l;"Q"===o||"S"===o?u=f[l]:"C"===o&&(u=c[l]),r+=t[n][a][u],l>0&&l<s-1&&(r+=",")}}return r},e.readPaths=function(t,e,r,i){var o,s,c,f=n(t),h=[],p=-1,d=0,v=0,g=function(){s=d,c=v};g();for(var y=0;y<f.length;y++){var m,x,b,_,w=[],T=f[y][0],k=T;switch(T){case"M":h[++p]=[],d=+f[y][1],v=+f[y][2],w.push([k,d,v]),g();break;case"Q":case"S":m=+f[y][1],b=+f[y][2],d=+f[y][3],v=+f[y][4],w.push([k,d,v,m,b]);break;case"C":m=+f[y][1],b=+f[y][2],x=+f[y][3],_=+f[y][4],d=+f[y][5],v=+f[y][6],w.push([k,d,v,m,b,x,_]);break;case"T":case"L":d=+f[y][1],v=+f[y][2],w.push([k,d,v]);break;case"H":k="L",d=+f[y][1],w.push([k,d,v]);break;case"V":k="L",v=+f[y][1],w.push([k,d,v]);break;case"A":k="L";var A=+f[y][1],M=+f[y][2];+f[y][4]||(A=-A,M=-M);var S=d-A,E=v;for(o=1;o<=a/2;o++){var L=2*Math.PI*o/a;w.push([k,S+A*Math.cos(L),E+M*Math.sin(L)])}break;case"Z":d===s&&v===c||(d=s,v=c,w.push([k,d,v]))}for(var C=(r||{}).domain,P=e._fullLayout._size,O=r&&"pixel"===r.xsizemode,I=r&&"pixel"===r.ysizemode,D=!1===i,z=0;z<w.length;z++){for(o=0;o+2<7;o+=2){var R=w[z][o+1],F=w[z][o+2];void 0!==R&&void 0!==F&&(d=R,v=F,r&&(r.xaxis&&r.xaxis.p2r?(D&&(R-=r.xaxis._offset),R=O?u(r.xaxis,r.xanchor)+R:l(r.xaxis,R)):(D&&(R-=P.l),C?R=C.x[0]+R/P.w:R/=P.w),r.yaxis&&r.yaxis.p2r?(D&&(F-=r.yaxis._offset),F=I?u(r.yaxis,r.yanchor)-F:l(r.yaxis,F)):(D&&(F-=P.t),F=C?C.y[1]-F/P.h:1-F/P.h)),w[z][o+1]=R,w[z][o+2]=F)}h[p].push(w[z].slice())}}return h},e.pointsOnRectangle=function(t){if(5!==t.length)return!1;for(var e=1;e<3;e++){if(!h(t[0][e]-t[1][e],t[3][e]-t[2][e]))return!1;if(!h(t[0][e]-t[3][e],t[1][e]-t[2][e]))return!1}return!(!h(t[0][1],t[1][1])&&!h(t[0][1],t[3][1])||!(p(t[0],t[1])*p(t[0],t[3])))},e.pointsOnEllipse=function(t){var e=t.length;if(e!==a+1)return!1;e=a;for(var r=0;r<e;r++){var n=(2*e-r)%e,i=(e/2+n)%e,o=(e/2+r)%e;if(!h(p(t[r],t[o]),p(t[n],t[i])))return!1}return!0},e.handleEllipse=function(t,r,n){if(!t)return[r,n];var i=e.ellipseOver({x0:r[0],y0:r[1],x1:n[0],y1:n[1]}),s=(i.x1+i.x0)/2,l=(i.y1+i.y0)/2,u=(i.x1-i.x0)/2,c=(i.y1-i.y0)/2;u||(u=c/=o),c||(c=u/=o);for(var f=[],h=0;h<a;h++){var p=2*h*Math.PI/a;f.push([s+u*Math.cos(p),l+c*Math.sin(p)])}return f},e.ellipseOver=function(t){var e=t.x0,r=t.y0,n=t.x1,i=t.y1,a=n-e,s=i-r,l=((e-=a)+n)/2,u=((r-=s)+i)/2;return{x0:l-(a*=o),y0:u-(s*=o),x1:l+a,y1:u+s}},e.fixDatesForPaths=function(t,e,r){var n="date"===e.type,i="date"===r.type;if(!n&&!i)return t;for(var a=0;a<t.length;a++)for(var o=0;o<t[a].length;o++)for(var s=0;s+2<t[a][o].length;s+=2)n&&(t[a][o][s+1]=t[a][o][s+1].replace(" ","_")),i&&(t[a][o][s+2]=t[a][o][s+2].replace(" ","_"));return t}},90551:function(t,e,r){"use strict";var n=r(64505),i=n.drawMode,a=n.openMode,o=r(89995),s=o.i000,l=o.i090,u=o.i180,c=o.i270,f=o.cos45,h=o.sin45,p=r(75549),d=p.p2r,v=p.r2p,g=r(51873).clearOutline,y=r(60165),m=y.readPaths,x=y.writePaths,b=y.ellipseOver,_=y.fixDatesForPaths;t.exports=function(t,e){if(t.length){var r=t[0][0];if(r){var n=r.getAttribute("d"),o=e.gd,p=o._fullLayout.newshape,y=e.plotinfo,w=y.xaxis,T=y.yaxis,k=!!y.domain||!y.xaxis,A=!!y.domain||!y.yaxis,M=e.isActiveShape,S=e.dragmode,E=(o.layout||{}).shapes||[];if(!i(S)&&void 0!==M){var L=o._fullLayout._activeShapeIndex;if(L<E.length)switch(o._fullLayout.shapes[L].type){case"rect":S="drawrect";break;case"circle":S="drawcircle";break;case"line":S="drawline";break;case"path":var C=E[L].path||"";S="Z"===C[C.length-1]?"drawclosedpath":"drawopenpath"}}var P,O=a(S),I=m(n,o,y,M),D={editable:!0,xref:k?"paper":w._id,yref:A?"paper":T._id,layer:p.layer,opacity:p.opacity,line:{color:p.line.color,width:p.line.width,dash:p.line.dash}};if(O||(D.fillcolor=p.fillcolor,D.fillrule=p.fillrule),1===I.length&&(P=I[0]),P&&5===P.length&&"drawrect"===S)D.type="rect",D.x0=P[0][1],D.y0=P[0][2],D.x1=P[2][1],D.y1=P[2][2];else if(P&&"drawline"===S)D.type="line",D.x0=P[0][1],D.y0=P[0][2],D.x1=P[1][1],D.y1=P[1][2];else if(P&&"drawcircle"===S){D.type="circle";var z=P[s][1],R=P[l][1],F=P[u][1],B=P[c][1],N=P[s][2],j=P[l][2],U=P[u][2],V=P[c][2],H=y.xaxis&&("date"===y.xaxis.type||"log"===y.xaxis.type),q=y.yaxis&&("date"===y.yaxis.type||"log"===y.yaxis.type);H&&(z=v(y.xaxis,z),R=v(y.xaxis,R),F=v(y.xaxis,F),B=v(y.xaxis,B)),q&&(N=v(y.yaxis,N),j=v(y.yaxis,j),U=v(y.yaxis,U),V=v(y.yaxis,V));var G=(R+B)/2,Z=(N+U)/2,Y=b({x0:G,y0:Z,x1:G+(B-R+F-z)/2*f,y1:Z+(V-j+U-N)/2*h});H&&(Y.x0=d(y.xaxis,Y.x0),Y.x1=d(y.xaxis,Y.x1)),q&&(Y.y0=d(y.yaxis,Y.y0),Y.y1=d(y.yaxis,Y.y1)),D.x0=Y.x0,D.y0=Y.y0,D.x1=Y.x1,D.y1=Y.y1}else D.type="path",w&&T&&_(I,w,T),D.path=x(I),P=null;g(o);for(var W=e.editHelpers,X=(W||{}).modifyItem,J=[],K=0;K<E.length;K++){var $=o._fullLayout.shapes[K];if(J[K]=$._input,void 0!==M&&K===o._fullLayout._activeShapeIndex){var Q=D;switch($.type){case"line":case"rect":case"circle":X("x0",Q.x0),X("x1",Q.x1),X("y0",Q.y0),X("y1",Q.y1);break;case"path":X("path",Q.path)}}}return void 0===M?(J.push(D),J):W?W.getUpdateObj():{}}}}},51873:function(t){"use strict";t.exports={clearOutlineControllers:function(t){var e=t._fullLayout._zoomlayer;e&&e.selectAll(".outline-controllers").remove()},clearOutline:function(t){var e=t._fullLayout._zoomlayer;e&&e.selectAll(".select-outline").remove(),t._fullLayout._outlining=!1}}},30477:function(t,e,r){"use strict";var n=r(21459),i=r(71828),a=r(89298);e.rangeToShapePosition=function(t){return"log"===t.type?t.r2d:function(t){return t}},e.shapePositionToRange=function(t){return"log"===t.type?t.d2r:function(t){return t}},e.decodeDate=function(t){return function(e){return e.replace&&(e=e.replace("_"," ")),t(e)}},e.encodeDate=function(t){return function(e){return t(e).replace(" ","_")}},e.extractPathCoords=function(t,e,r){var a=[];return t.match(n.segmentRE).forEach((function(t){var o=e[t.charAt(0)].drawn;if(void 0!==o){var s=t.substr(1).match(n.paramRE);if(s&&!(s.length<o)){var l=s[o],u=r?l:i.cleanNumber(l);a.push(u)}}})),a},e.getDataToPixel=function(t,r,n,i){var a,o=t._fullLayout._size;if(r)if("domain"===i)a=function(t){return r._length*(n?1-t:t)+r._offset};else{var s=e.shapePositionToRange(r);a=function(t){return r._offset+r.r2p(s(t,!0))},"date"===r.type&&(a=e.decodeDate(a))}else a=n?function(t){return o.t+o.h*(1-t)}:function(t){return o.l+o.w*t};return a},e.getPixelToData=function(t,r,n,i){var a,o=t._fullLayout._size;if(r)if("domain"===i)a=function(t){var e=(t-r._offset)/r._length;return n?1-e:e};else{var s=e.rangeToShapePosition(r);a=function(t){return s(r.p2r(t-r._offset))}}else a=n?function(t){return 1-(t-o.t)/o.h}:function(t){return(t-o.l)/o.w};return a},e.roundPositionForSharpStrokeRendering=function(t,e){var r=1===Math.round(e%2),n=Math.round(t);return r?n+.5:n},e.makeShapesOptionsAndPlotinfo=function(t,e){var r=t._fullLayout.shapes[e]||{},n=t._fullLayout._plots[r.xref+r.yref];return n?n._hadPlotinfo=!0:(n={},r.xref&&"paper"!==r.xref&&(n.xaxis=t._fullLayout[r.xref+"axis"]),r.yref&&"paper"!==r.yref&&(n.yaxis=t._fullLayout[r.yref+"axis"])),n.xsizemode=r.xsizemode,n.ysizemode=r.ysizemode,n.xanchor=r.xanchor,n.yanchor=r.yanchor,{options:r,plotinfo:n}},e.makeSelectionsOptionsAndPlotinfo=function(t,e){var r=t._fullLayout.selections[e]||{},n=t._fullLayout._plots[r.xref+r.yref];return n?n._hadPlotinfo=!0:(n={},r.xref&&(n.xaxis=t._fullLayout[r.xref+"axis"]),r.yref&&(n.yaxis=t._fullLayout[r.yref+"axis"])),{options:r,plotinfo:n}},e.getPathString=function(t,r){var o,s,l,u,c,f,h,p,d=r.type,v=a.getRefType(r.xref),g=a.getRefType(r.yref),y=a.getFromId(t,r.xref),m=a.getFromId(t,r.yref),x=t._fullLayout._size;if(y?"domain"===v?s=function(t){return y._offset+y._length*t}:(o=e.shapePositionToRange(y),s=function(t){return y._offset+y.r2p(o(t,!0))}):s=function(t){return x.l+x.w*t},m?"domain"===g?u=function(t){return m._offset+m._length*(1-t)}:(l=e.shapePositionToRange(m),u=function(t){return m._offset+m.r2p(l(t,!0))}):u=function(t){return x.t+x.h*(1-t)},"path"===d)return y&&"date"===y.type&&(s=e.decodeDate(s)),m&&"date"===m.type&&(u=e.decodeDate(u)),function(t,e,r){var a=t.path,o=t.xsizemode,s=t.ysizemode,l=t.xanchor,u=t.yanchor;return a.replace(n.segmentRE,(function(t){var a=0,c=t.charAt(0),f=n.paramIsX[c],h=n.paramIsY[c],p=n.numParams[c],d=t.substr(1).replace(n.paramRE,(function(t){return f[a]?t="pixel"===o?e(l)+Number(t):e(t):h[a]&&(t="pixel"===s?r(u)-Number(t):r(t)),++a>p&&(t="X"),t}));return a>p&&(d=d.replace(/[\s,]*X.*/,""),i.log("Ignoring extra params in segment "+t)),c+d}))}(r,s,u);if("pixel"===r.xsizemode){var b=s(r.xanchor);c=b+r.x0,f=b+r.x1}else c=s(r.x0),f=s(r.x1);if("pixel"===r.ysizemode){var _=u(r.yanchor);h=_-r.y0,p=_-r.y1}else h=u(r.y0),p=u(r.y1);if("line"===d)return"M"+c+","+h+"L"+f+","+p;if("rect"===d)return"M"+c+","+h+"H"+f+"V"+p+"H"+c+"Z";var w=(c+f)/2,T=(h+p)/2,k=Math.abs(w-c),A=Math.abs(T-h),M="A"+k+","+A,S=w+k+","+T;return"M"+S+M+" 0 1,1 "+w+","+(T-A)+M+" 0 0,1 "+S+"Z"}},89853:function(t,e,r){"use strict";var n=r(34031);t.exports={moduleType:"component",name:"shapes",layoutAttributes:r(89827),supplyLayoutDefaults:r(84726),supplyDrawNewShapeDefaults:r(45547),includeBasePlot:r(76325)("shapes"),calcAutorange:r(5627),draw:n.draw,drawOne:n.drawOne}},75067:function(t,e,r){"use strict";var n=r(41940),i=r(35025),a=r(1426).extendDeepAll,o=r(30962).overrideAll,s=r(85594),l=r(44467).templatedArray,u=r(98292),c=l("step",{visible:{valType:"boolean",dflt:!0},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string"},value:{valType:"string"},execute:{valType:"boolean",dflt:!0}});t.exports=o(l("slider",{visible:{valType:"boolean",dflt:!0},active:{valType:"number",min:0,dflt:0},steps:c,lenmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"fraction"},len:{valType:"number",min:0,dflt:1},x:{valType:"number",min:-2,max:3,dflt:0},pad:a(i({editType:"arraydraw"}),{},{t:{dflt:20}}),xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left"},y:{valType:"number",min:-2,max:3,dflt:0},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},transition:{duration:{valType:"number",min:0,dflt:150},easing:{valType:"enumerated",values:s.transition.easing.values,dflt:"cubic-in-out"}},currentvalue:{visible:{valType:"boolean",dflt:!0},xanchor:{valType:"enumerated",values:["left","center","right"],dflt:"left"},offset:{valType:"number",dflt:10},prefix:{valType:"string"},suffix:{valType:"string"},font:n({})},font:n({}),activebgcolor:{valType:"color",dflt:u.gripBgActiveColor},bgcolor:{valType:"color",dflt:u.railBgColor},bordercolor:{valType:"color",dflt:u.railBorderColor},borderwidth:{valType:"number",min:0,dflt:u.railBorderWidth},ticklen:{valType:"number",min:0,dflt:u.tickLength},tickcolor:{valType:"color",dflt:u.tickColor},tickwidth:{valType:"number",min:0,dflt:1},minorticklen:{valType:"number",min:0,dflt:u.minorTickLength}}),"arraydraw","from-root")},98292:function(t){"use strict";t.exports={name:"sliders",containerClassName:"slider-container",groupClassName:"slider-group",inputAreaClass:"slider-input-area",railRectClass:"slider-rail-rect",railTouchRectClass:"slider-rail-touch-rect",gripRectClass:"slider-grip-rect",tickRectClass:"slider-tick-rect",inputProxyClass:"slider-input-proxy",labelsClass:"slider-labels",labelGroupClass:"slider-label-group",labelClass:"slider-label",currentValueClass:"slider-current-value",railHeight:5,menuIndexAttrName:"slider-active-index",autoMarginIdRoot:"slider-",minWidth:30,minHeight:30,textPadX:40,arrowOffsetX:4,railRadius:2,railWidth:5,railBorder:4,railBorderWidth:1,railBorderColor:"#bec8d9",railBgColor:"#f8fafc",railInset:8,stepInset:10,gripRadius:10,gripWidth:20,gripHeight:20,gripBorder:20,gripBorderWidth:1,gripBorderColor:"#bec8d9",gripBgColor:"#f6f8fa",gripBgActiveColor:"#dbdde0",labelPadding:8,labelOffset:0,tickWidth:1,tickColor:"#333",tickOffset:25,tickLength:7,minorTickOffset:25,minorTickColor:"#333",minorTickLength:4,currentValuePadding:8,currentValueInset:0}},12343:function(t,e,r){"use strict";var n=r(71828),i=r(85501),a=r(75067),o=r(98292).name,s=a.steps;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}for(var s=i(t,e,{name:"steps",handleItemDefaults:u}),l=0,c=0;c<s.length;c++)s[c].visible&&l++;if(l<2?e.visible=!1:o("visible")){e._stepCount=l;var f=e._visibleSteps=n.filterVisible(s);(s[o("active")]||{}).visible||(e.active=f[0]._index),o("x"),o("y"),n.noneOrAll(t,e,["x","y"]),o("xanchor"),o("yanchor"),o("len"),o("lenmode"),o("pad.t"),o("pad.r"),o("pad.b"),o("pad.l"),n.coerceFont(o,"font",r.font),o("currentvalue.visible")&&(o("currentvalue.xanchor"),o("currentvalue.prefix"),o("currentvalue.suffix"),o("currentvalue.offset"),n.coerceFont(o,"currentvalue.font",e.font)),o("transition.duration"),o("transition.easing"),o("bgcolor"),o("activebgcolor"),o("bordercolor"),o("borderwidth"),o("ticklen"),o("tickwidth"),o("tickcolor"),o("minorticklen")}}function u(t,e){function r(r,i){return n.coerce(t,e,s,r,i)}if("skip"===t.method||Array.isArray(t.args)?r("visible"):e.visible=!1){r("method"),r("args");var i=r("label","step-"+e._index);r("value",i),r("execute")}}t.exports=function(t,e){i(t,e,{name:o,handleItemDefaults:l})}},44504:function(t,e,r){"use strict";var n=r(39898),i=r(74875),a=r(7901),o=r(91424),s=r(71828),l=s.strTranslate,u=r(63893),c=r(44467).arrayEditor,f=r(98292),h=r(18783),p=h.LINE_SPACING,d=h.FROM_TL,v=h.FROM_BR;function g(t){return f.autoMarginIdRoot+t._index}function y(t){return t._index}function m(t,e){var r=o.tester.selectAll("g."+f.labelGroupClass).data(e._visibleSteps);r.enter().append("g").classed(f.labelGroupClass,!0);var a=0,l=0;r.each((function(t){var r=_(n.select(this),{step:t},e).node();if(r){var i=o.bBox(r);l=Math.max(l,i.height),a=Math.max(a,i.width)}})),r.remove();var c=e._dims={};c.inputAreaWidth=Math.max(f.railWidth,f.gripHeight);var h=t._fullLayout._size;c.lx=h.l+h.w*e.x,c.ly=h.t+h.h*(1-e.y),"fraction"===e.lenmode?c.outerLength=Math.round(h.w*e.len):c.outerLength=e.len,c.inputAreaStart=0,c.inputAreaLength=Math.round(c.outerLength-e.pad.l-e.pad.r);var p=(c.inputAreaLength-2*f.stepInset)/(e._stepCount-1),y=a+f.labelPadding;if(c.labelStride=Math.max(1,Math.ceil(y/p)),c.labelHeight=l,c.currentValueMaxWidth=0,c.currentValueHeight=0,c.currentValueTotalHeight=0,c.currentValueMaxLines=1,e.currentvalue.visible){var m=o.tester.append("g");r.each((function(t){var r=x(m,e,t.label),n=r.node()&&o.bBox(r.node())||{width:0,height:0},i=u.lineCount(r);c.currentValueMaxWidth=Math.max(c.currentValueMaxWidth,Math.ceil(n.width)),c.currentValueHeight=Math.max(c.currentValueHeight,Math.ceil(n.height)),c.currentValueMaxLines=Math.max(c.currentValueMaxLines,i)})),c.currentValueTotalHeight=c.currentValueHeight+e.currentvalue.offset,m.remove()}c.height=c.currentValueTotalHeight+f.tickOffset+e.ticklen+f.labelOffset+c.labelHeight+e.pad.t+e.pad.b;var b="left";s.isRightAnchor(e)&&(c.lx-=c.outerLength,b="right"),s.isCenterAnchor(e)&&(c.lx-=c.outerLength/2,b="center");var w="top";s.isBottomAnchor(e)&&(c.ly-=c.height,w="bottom"),s.isMiddleAnchor(e)&&(c.ly-=c.height/2,w="middle"),c.outerLength=Math.ceil(c.outerLength),c.height=Math.ceil(c.height),c.lx=Math.round(c.lx),c.ly=Math.round(c.ly);var T={y:e.y,b:c.height*v[w],t:c.height*d[w]};"fraction"===e.lenmode?(T.l=0,T.xl=e.x-e.len*d[b],T.r=0,T.xr=e.x+e.len*v[b]):(T.x=e.x,T.l=c.outerLength*d[b],T.r=c.outerLength*v[b]),i.autoMargin(t,g(e),T)}function x(t,e,r){if(e.currentvalue.visible){var n,i,a=e._dims;switch(e.currentvalue.xanchor){case"right":n=a.inputAreaLength-f.currentValueInset-a.currentValueMaxWidth,i="left";break;case"center":n=.5*a.inputAreaLength,i="middle";break;default:n=f.currentValueInset,i="left"}var l=s.ensureSingle(t,"text",f.labelClass,(function(t){t.attr({"text-anchor":i,"data-notex":1})})),c=e.currentvalue.prefix?e.currentvalue.prefix:"";if("string"==typeof r)c+=r;else{var h=e.steps[e.active].label,d=e._gd._fullLayout._meta;d&&(h=s.templateString(h,d)),c+=h}e.currentvalue.suffix&&(c+=e.currentvalue.suffix),l.call(o.font,e.currentvalue.font).text(c).call(u.convertToTspans,e._gd);var v=u.lineCount(l),g=(a.currentValueMaxLines+1-v)*e.currentvalue.font.size*p;return u.positionText(l,n,g),l}}function b(t,e,r){s.ensureSingle(t,"rect",f.gripRectClass,(function(n){n.call(A,e,t,r).style("pointer-events","all")})).attr({width:f.gripWidth,height:f.gripHeight,rx:f.gripRadius,ry:f.gripRadius}).call(a.stroke,r.bordercolor).call(a.fill,r.bgcolor).style("stroke-width",r.borderwidth+"px")}function _(t,e,r){var n=s.ensureSingle(t,"text",f.labelClass,(function(t){t.attr({"text-anchor":"middle","data-notex":1})})),i=e.step.label,a=r._gd._fullLayout._meta;return a&&(i=s.templateString(i,a)),n.call(o.font,r.font).text(i).call(u.convertToTspans,r._gd),n}function w(t,e){var r=s.ensureSingle(t,"g",f.labelsClass),i=e._dims,a=r.selectAll("g."+f.labelGroupClass).data(i.labelSteps);a.enter().append("g").classed(f.labelGroupClass,!0),a.exit().remove(),a.each((function(t){var r=n.select(this);r.call(_,t,e),o.setTranslate(r,E(e,t.fraction),f.tickOffset+e.ticklen+e.font.size*p+f.labelOffset+i.currentValueTotalHeight)}))}function T(t,e,r,n,i){var a=Math.round(n*(r._stepCount-1)),o=r._visibleSteps[a]._index;o!==r.active&&k(t,e,r,o,!0,i)}function k(t,e,r,n,a,o){var s=r.active;r.active=n,c(t.layout,f.name,r).applyUpdate("active",n);var l=r.steps[r.active];e.call(S,r,o),e.call(x,r),t.emit("plotly_sliderchange",{slider:r,step:r.steps[r.active],interaction:a,previousActive:s}),l&&l.method&&a&&(e._nextMethod?(e._nextMethod.step=l,e._nextMethod.doCallback=a,e._nextMethod.doTransition=o):(e._nextMethod={step:l,doCallback:a,doTransition:o},e._nextMethodRaf=window.requestAnimationFrame((function(){var r=e._nextMethod.step;r.method&&(r.execute&&i.executeAPICommand(t,r.method,r.args),e._nextMethod=null,e._nextMethodRaf=null)}))))}function A(t,e,r){if(!e._context.staticPlot){var i=r.node(),o=n.select(e);t.on("mousedown",l),t.on("touchstart",l)}function s(){return r.data()[0]}function l(){var t=s();e.emit("plotly_sliderstart",{slider:t});var l=r.select("."+f.gripRectClass);n.event.stopPropagation(),n.event.preventDefault(),l.call(a.fill,t.activebgcolor);var u=L(t,n.mouse(i)[0]);function c(){var t=s(),a=L(t,n.mouse(i)[0]);T(e,r,t,a,!1)}function h(){var t=s();t._dragging=!1,l.call(a.fill,t.bgcolor),o.on("mouseup",null),o.on("mousemove",null),o.on("touchend",null),o.on("touchmove",null),e.emit("plotly_sliderend",{slider:t,step:t.steps[t.active]})}T(e,r,t,u,!0),t._dragging=!0,o.on("mousemove",c),o.on("touchmove",c),o.on("mouseup",h),o.on("touchend",h)}}function M(t,e){var r=t.selectAll("rect."+f.tickRectClass).data(e._visibleSteps),i=e._dims;r.enter().append("rect").classed(f.tickRectClass,!0),r.exit().remove(),r.attr({width:e.tickwidth+"px","shape-rendering":"crispEdges"}),r.each((function(t,r){var s=r%i.labelStride==0,l=n.select(this);l.attr({height:s?e.ticklen:e.minorticklen}).call(a.fill,e.tickcolor),o.setTranslate(l,E(e,r/(e._stepCount-1))-.5*e.tickwidth,(s?f.tickOffset:f.minorTickOffset)+i.currentValueTotalHeight)}))}function S(t,e,r){for(var n=t.select("rect."+f.gripRectClass),i=0,a=0;a<e._stepCount;a++)if(e._visibleSteps[a]._index===e.active){i=a;break}var o=E(e,i/(e._stepCount-1));if(!e._invokingCommand){var s=n;r&&e.transition.duration>0&&(s=s.transition().duration(e.transition.duration).ease(e.transition.easing)),s.attr("transform",l(o-.5*f.gripWidth,e._dims.currentValueTotalHeight))}}function E(t,e){var r=t._dims;return r.inputAreaStart+f.stepInset+(r.inputAreaLength-2*f.stepInset)*Math.min(1,Math.max(0,e))}function L(t,e){var r=t._dims;return Math.min(1,Math.max(0,(e-f.stepInset-r.inputAreaStart)/(r.inputAreaLength-2*f.stepInset-2*r.inputAreaStart)))}function C(t,e,r){var n=r._dims,i=s.ensureSingle(t,"rect",f.railTouchRectClass,(function(n){n.call(A,e,t,r).style("pointer-events","all")}));i.attr({width:n.inputAreaLength,height:Math.max(n.inputAreaWidth,f.tickOffset+r.ticklen+n.labelHeight)}).call(a.fill,r.bgcolor).attr("opacity",0),o.setTranslate(i,0,n.currentValueTotalHeight)}function P(t,e){var r=e._dims,n=r.inputAreaLength-2*f.railInset,i=s.ensureSingle(t,"rect",f.railRectClass);i.attr({width:n,height:f.railWidth,rx:f.railRadius,ry:f.railRadius,"shape-rendering":"crispEdges"}).call(a.stroke,e.bordercolor).call(a.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px"),o.setTranslate(i,f.railInset,.5*(r.inputAreaWidth-f.railWidth)+r.currentValueTotalHeight)}t.exports=function(t){var e=t._context.staticPlot,r=t._fullLayout,a=function(t,e){for(var r=t[f.name],n=[],i=0;i<r.length;i++){var a=r[i];a.visible&&(a._gd=e,n.push(a))}return n}(r,t),s=r._infolayer.selectAll("g."+f.containerClassName).data(a.length>0?[0]:[]);function l(e){e._commandObserver&&(e._commandObserver.remove(),delete e._commandObserver),i.autoMargin(t,g(e))}if(s.enter().append("g").classed(f.containerClassName,!0).style("cursor",e?null:"ew-resize"),s.exit().each((function(){n.select(this).selectAll("g."+f.groupClassName).each(l)})).remove(),0!==a.length){var u=s.selectAll("g."+f.groupClassName).data(a,y);u.enter().append("g").classed(f.groupClassName,!0),u.exit().each(l).remove();for(var c=0;c<a.length;c++){var h=a[c];m(t,h)}u.each((function(e){var r=n.select(this);!function(t){var e=t._dims;e.labelSteps=[];for(var r=t._stepCount,n=0;n<r;n+=e.labelStride)e.labelSteps.push({fraction:n/(r-1),step:t._visibleSteps[n]})}(e),i.manageCommandObserver(t,e,e._visibleSteps,(function(e){var n=r.data()[0];n.active!==e.index&&(n._dragging||k(t,r,n,e.index,!1,!0))})),function(t,e,r){(r.steps[r.active]||{}).visible||(r.active=r._visibleSteps[0]._index),e.call(x,r).call(P,r).call(w,r).call(M,r).call(C,t,r).call(b,t,r);var n=r._dims;o.setTranslate(e,n.lx+r.pad.l,n.ly+r.pad.t),e.call(S,r,!1),e.call(x,r)}(t,n.select(this),e)}))}}},23243:function(t,e,r){"use strict";var n=r(98292);t.exports={moduleType:"component",name:n.name,layoutAttributes:r(75067),supplyLayoutDefaults:r(12343),draw:r(44504)}},92998:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(74875),o=r(73972),s=r(71828),l=s.strTranslate,u=r(91424),c=r(7901),f=r(63893),h=r(37822),p=r(18783).OPPOSITE_SIDE,d=/ [XY][0-9]* /;t.exports={draw:function(t,e,r){var v,g=r.propContainer,y=r.propName,m=r.placeholder,x=r.traceIndex,b=r.avoid||{},_=r.attributes,w=r.transform,T=r.containerGroup,k=t._fullLayout,A=1,M=!1,S=g.title,E=(S&&S.text?S.text:"").trim(),L=S&&S.font?S.font:{},C=L.family,P=L.size,O=L.color;"title.text"===y?v="titleText":-1!==y.indexOf("axis")?v="axisTitleText":y.indexOf(!0)&&(v="colorbarTitleText");var I=t._context.edits[v];""===E?A=0:E.replace(d," % ")===m.replace(d," % ")&&(A=.2,M=!0,I||(E="")),r._meta?E=s.templateString(E,r._meta):k._meta&&(E=s.templateString(E,k._meta));var D,z=E||I;T||(T=s.ensureSingle(k._infolayer,"g","g-"+e),D=k._hColorbarMoveTitle);var R=T.selectAll("text").data(z?[0]:[]);if(R.enter().append("text"),R.text(E).attr("class",e),R.exit().remove(),!z)return T;function F(t){s.syncOrAsync([B,N],t)}function B(e){var r;return!w&&D&&(w={}),w?(r="",w.rotate&&(r+="rotate("+[w.rotate,_.x,_.y]+")"),(w.offset||D)&&(r+=l(0,(w.offset||0)-(D||0)))):r=null,e.attr("transform",r),e.style({"font-family":C,"font-size":n.round(P,2)+"px",fill:c.rgb(O),opacity:A*c.opacity(O),"font-weight":a.fontWeight}).attr(_).call(f.convertToTspans,t),a.previousPromises(t)}function N(t){var e=n.select(t.node().parentNode);if(b&&b.selection&&b.side&&E){e.attr("transform",null);var r=p[b.side],a="left"===b.side||"top"===b.side?-1:1,o=i(b.pad)?b.pad:2,c=u.bBox(e.node()),f={left:0,top:0,right:k.width,bottom:k.height},h=b.maxShift||a*(f[b.side]-c[b.side]),d=0;if(h<0)d=h;else{var v=b.offsetLeft||0,y=b.offsetTop||0;c.left-=v,c.right-=v,c.top-=y,c.bottom-=y,b.selection.each((function(){var t=u.bBox(this);s.bBoxIntersect(c,t,o)&&(d=Math.max(d,a*(t[b.side]-c[r])+o))})),d=Math.min(h,d),g._titleScoot=Math.abs(d)}if(d>0||h<0){var m={left:[-d,0],right:[d,0],top:[0,-d],bottom:[0,d]}[b.side];e.attr("transform",l(m[0],m[1]))}}}return R.call(F),I&&(E?R.on(".opacity",null):(A=0,M=!0,R.text(m).on("mouseover.opacity",(function(){n.select(this).transition().duration(h.SHOW_PLACEHOLDER).style("opacity",1)})).on("mouseout.opacity",(function(){n.select(this).transition().duration(h.HIDE_PLACEHOLDER).style("opacity",0)}))),R.call(f.makeEditable,{gd:t}).on("edit",(function(e){void 0!==x?o.call("_guiRestyle",t,y,e,x):o.call("_guiRelayout",t,y,e)})).on("cancel",(function(){this.text(this.attr("data-unformatted")).call(F)})).on("input",(function(t){this.text(t||" ").call(f.positionText,_.x,_.y)}))),R.classed("js-placeholder",M),T}}},7163:function(t,e,r){"use strict";var n=r(41940),i=r(22399),a=r(1426).extendFlat,o=r(30962).overrideAll,s=r(35025),l=r(44467).templatedArray,u=l("button",{visible:{valType:"boolean"},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},args2:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string",dflt:""},execute:{valType:"boolean",dflt:!0}});t.exports=o(l("updatemenu",{_arrayAttrRegexps:[/^updatemenus\[(0|[1-9][0-9]+)\]\.buttons/],visible:{valType:"boolean"},type:{valType:"enumerated",values:["dropdown","buttons"],dflt:"dropdown"},direction:{valType:"enumerated",values:["left","right","up","down"],dflt:"down"},active:{valType:"integer",min:-1,dflt:0},showactive:{valType:"boolean",dflt:!0},buttons:u,x:{valType:"number",min:-2,max:3,dflt:-.05},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"right"},y:{valType:"number",min:-2,max:3,dflt:1},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},pad:a(s({editType:"arraydraw"}),{}),font:n({}),bgcolor:{valType:"color"},bordercolor:{valType:"color",dflt:i.borderLine},borderwidth:{valType:"number",min:0,dflt:1,editType:"arraydraw"}}),"arraydraw","from-root")},75909:function(t){"use strict";t.exports={name:"updatemenus",containerClassName:"updatemenu-container",headerGroupClassName:"updatemenu-header-group",headerClassName:"updatemenu-header",headerArrowClassName:"updatemenu-header-arrow",dropdownButtonGroupClassName:"updatemenu-dropdown-button-group",dropdownButtonClassName:"updatemenu-dropdown-button",buttonClassName:"updatemenu-button",itemRectClassName:"updatemenu-item-rect",itemTextClassName:"updatemenu-item-text",menuIndexAttrName:"updatemenu-active-index",autoMarginIdRoot:"updatemenu-",blankHeaderOpts:{label:"  "},minWidth:30,minHeight:30,textPadX:24,arrowPadX:16,rx:2,ry:2,textOffsetX:12,textOffsetY:3,arrowOffsetX:4,gapButtonHeader:5,gapButton:2,activeColor:"#F4FAFF",hoverColor:"#F4FAFF",arrowSymbol:{left:"◄",right:"►",up:"▲",down:"▼"}}},64897:function(t,e,r){"use strict";var n=r(71828),i=r(85501),a=r(7163),o=r(75909).name,s=a.buttons;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}o("visible",i(t,e,{name:"buttons",handleItemDefaults:u}).length>0)&&(o("active"),o("direction"),o("type"),o("showactive"),o("x"),o("y"),n.noneOrAll(t,e,["x","y"]),o("xanchor"),o("yanchor"),o("pad.t"),o("pad.r"),o("pad.b"),o("pad.l"),n.coerceFont(o,"font",r.font),o("bgcolor",r.paper_bgcolor),o("bordercolor"),o("borderwidth"))}function u(t,e){function r(r,i){return n.coerce(t,e,s,r,i)}r("visible","skip"===t.method||Array.isArray(t.args))&&(r("method"),r("args"),r("args2"),r("label"),r("execute"))}t.exports=function(t,e){i(t,e,{name:o,handleItemDefaults:l})}},13689:function(t,e,r){"use strict";var n=r(39898),i=r(74875),a=r(7901),o=r(91424),s=r(71828),l=r(63893),u=r(44467).arrayEditor,c=r(18783).LINE_SPACING,f=r(75909),h=r(25849);function p(t){return t._index}function d(t,e){return+t.attr(f.menuIndexAttrName)===e._index}function v(t,e,r,n,i,a,o,s){e.active=o,u(t.layout,f.name,e).applyUpdate("active",o),"buttons"===e.type?y(t,n,null,null,e):"dropdown"===e.type&&(i.attr(f.menuIndexAttrName,"-1"),g(t,n,i,a,e),s||y(t,n,i,a,e))}function g(t,e,r,n,i){var a=s.ensureSingle(e,"g",f.headerClassName,(function(t){t.style("pointer-events","all")})),l=i._dims,u=i.active,c=i.buttons[u]||f.blankHeaderOpts,h={y:i.pad.t,yPad:0,x:i.pad.l,xPad:0,index:0},p={width:l.headerWidth,height:l.headerHeight};a.call(m,i,c,t).call(M,i,h,p),s.ensureSingle(e,"text",f.headerArrowClassName,(function(t){t.attr("text-anchor","end").call(o.font,i.font).text(f.arrowSymbol[i.direction])})).attr({x:l.headerWidth-f.arrowOffsetX+i.pad.l,y:l.headerHeight/2+f.textOffsetY+i.pad.t}),a.on("click",(function(){r.call(S,String(d(r,i)?-1:i._index)),y(t,e,r,n,i)})),a.on("mouseover",(function(){a.call(w)})),a.on("mouseout",(function(){a.call(T,i)})),o.setTranslate(e,l.lx,l.ly)}function y(t,e,r,a,o){r||(r=e).attr("pointer-events","all");var l=function(t){return-1==+t.attr(f.menuIndexAttrName)}(r)&&"buttons"!==o.type?[]:o.buttons,u="dropdown"===o.type?f.dropdownButtonClassName:f.buttonClassName,c=r.selectAll("g."+u).data(s.filterVisible(l)),h=c.enter().append("g").classed(u,!0),p=c.exit();"dropdown"===o.type?(h.attr("opacity","0").transition().attr("opacity","1"),p.transition().attr("opacity","0").remove()):p.remove();var d=0,g=0,y=o._dims,x=-1!==["up","down"].indexOf(o.direction);"dropdown"===o.type&&(x?g=y.headerHeight+f.gapButtonHeader:d=y.headerWidth+f.gapButtonHeader),"dropdown"===o.type&&"up"===o.direction&&(g=-f.gapButtonHeader+f.gapButton-y.openHeight),"dropdown"===o.type&&"left"===o.direction&&(d=-f.gapButtonHeader+f.gapButton-y.openWidth);var b={x:y.lx+d+o.pad.l,y:y.ly+g+o.pad.t,yPad:f.gapButton,xPad:f.gapButton,index:0},k={l:b.x+o.borderwidth,t:b.y+o.borderwidth};c.each((function(s,l){var u=n.select(this);u.call(m,o,s,t).call(M,o,b),u.on("click",(function(){n.event.defaultPrevented||(s.execute&&(s.args2&&o.active===l?(v(t,o,0,e,r,a,-1),i.executeAPICommand(t,s.method,s.args2)):(v(t,o,0,e,r,a,l),i.executeAPICommand(t,s.method,s.args))),t.emit("plotly_buttonclicked",{menu:o,button:s,active:o.active}))})),u.on("mouseover",(function(){u.call(w)})),u.on("mouseout",(function(){u.call(T,o),c.call(_,o)}))})),c.call(_,o),x?(k.w=Math.max(y.openWidth,y.headerWidth),k.h=b.y-k.t):(k.w=b.x-k.l,k.h=Math.max(y.openHeight,y.headerHeight)),k.direction=o.direction,a&&(c.size()?function(t,e,r,n,i,a){var o,s,l,u=i.direction,c="up"===u||"down"===u,h=i._dims,p=i.active;if(c)for(s=0,l=0;l<p;l++)s+=h.heights[l]+f.gapButton;else for(o=0,l=0;l<p;l++)o+=h.widths[l]+f.gapButton;n.enable(a,o,s),n.hbar&&n.hbar.attr("opacity","0").transition().attr("opacity","1"),n.vbar&&n.vbar.attr("opacity","0").transition().attr("opacity","1")}(0,0,0,a,o,k):function(t){var e=!!t.hbar,r=!!t.vbar;e&&t.hbar.transition().attr("opacity","0").each("end",(function(){e=!1,r||t.disable()})),r&&t.vbar.transition().attr("opacity","0").each("end",(function(){r=!1,e||t.disable()}))}(a))}function m(t,e,r,n){t.call(x,e).call(b,e,r,n)}function x(t,e){s.ensureSingle(t,"rect",f.itemRectClassName,(function(t){t.attr({rx:f.rx,ry:f.ry,"shape-rendering":"crispEdges"})})).call(a.stroke,e.bordercolor).call(a.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px")}function b(t,e,r,n){var i=s.ensureSingle(t,"text",f.itemTextClassName,(function(t){t.attr({"text-anchor":"start","data-notex":1})})),a=r.label,u=n._fullLayout._meta;u&&(a=s.templateString(a,u)),i.call(o.font,e.font).text(a).call(l.convertToTspans,n)}function _(t,e){var r=e.active;t.each((function(t,i){var o=n.select(this);i===r&&e.showactive&&o.select("rect."+f.itemRectClassName).call(a.fill,f.activeColor)}))}function w(t){t.select("rect."+f.itemRectClassName).call(a.fill,f.hoverColor)}function T(t,e){t.select("rect."+f.itemRectClassName).call(a.fill,e.bgcolor)}function k(t,e){var r=e._dims={width1:0,height1:0,heights:[],widths:[],totalWidth:0,totalHeight:0,openWidth:0,openHeight:0,lx:0,ly:0},a=o.tester.selectAll("g."+f.dropdownButtonClassName).data(s.filterVisible(e.buttons));a.enter().append("g").classed(f.dropdownButtonClassName,!0);var u=-1!==["up","down"].indexOf(e.direction);a.each((function(i,a){var s=n.select(this);s.call(m,e,i,t);var h=s.select("."+f.itemTextClassName),p=h.node()&&o.bBox(h.node()).width,d=Math.max(p+f.textPadX,f.minWidth),v=e.font.size*c,g=l.lineCount(h),y=Math.max(v*g,f.minHeight)+f.textOffsetY;y=Math.ceil(y),d=Math.ceil(d),r.widths[a]=d,r.heights[a]=y,r.height1=Math.max(r.height1,y),r.width1=Math.max(r.width1,d),u?(r.totalWidth=Math.max(r.totalWidth,d),r.openWidth=r.totalWidth,r.totalHeight+=y+f.gapButton,r.openHeight+=y+f.gapButton):(r.totalWidth+=d+f.gapButton,r.openWidth+=d+f.gapButton,r.totalHeight=Math.max(r.totalHeight,y),r.openHeight=r.totalHeight)})),u?r.totalHeight-=f.gapButton:r.totalWidth-=f.gapButton,r.headerWidth=r.width1+f.arrowPadX,r.headerHeight=r.height1,"dropdown"===e.type&&(u?(r.width1+=f.arrowPadX,r.totalHeight=r.height1):r.totalWidth=r.width1,r.totalWidth+=f.arrowPadX),a.remove();var h=r.totalWidth+e.pad.l+e.pad.r,p=r.totalHeight+e.pad.t+e.pad.b,d=t._fullLayout._size;r.lx=d.l+d.w*e.x,r.ly=d.t+d.h*(1-e.y);var v="left";s.isRightAnchor(e)&&(r.lx-=h,v="right"),s.isCenterAnchor(e)&&(r.lx-=h/2,v="center");var g="top";s.isBottomAnchor(e)&&(r.ly-=p,g="bottom"),s.isMiddleAnchor(e)&&(r.ly-=p/2,g="middle"),r.totalWidth=Math.ceil(r.totalWidth),r.totalHeight=Math.ceil(r.totalHeight),r.lx=Math.round(r.lx),r.ly=Math.round(r.ly),i.autoMargin(t,A(e),{x:e.x,y:e.y,l:h*({right:1,center:.5}[v]||0),r:h*({left:1,center:.5}[v]||0),b:p*({top:1,middle:.5}[g]||0),t:p*({bottom:1,middle:.5}[g]||0)})}function A(t){return f.autoMarginIdRoot+t._index}function M(t,e,r,n){n=n||{};var i=t.select("."+f.itemRectClassName),a=t.select("."+f.itemTextClassName),s=e.borderwidth,u=r.index,h=e._dims;o.setTranslate(t,s+r.x,s+r.y);var p=-1!==["up","down"].indexOf(e.direction),d=n.height||(p?h.heights[u]:h.height1);i.attr({x:0,y:0,width:n.width||(p?h.width1:h.widths[u]),height:d});var v=e.font.size*c,g=(l.lineCount(a)-1)*v/2;l.positionText(a,f.textOffsetX,d/2-g+f.textOffsetY),p?r.y+=h.heights[u]+r.yPad:r.x+=h.widths[u]+r.xPad,r.index++}function S(t,e){t.attr(f.menuIndexAttrName,e||"-1").selectAll("g."+f.dropdownButtonClassName).remove()}t.exports=function(t){var e=t._fullLayout,r=s.filterVisible(e[f.name]);function a(e){i.autoMargin(t,A(e))}var o=e._menulayer.selectAll("g."+f.containerClassName).data(r.length>0?[0]:[]);if(o.enter().append("g").classed(f.containerClassName,!0).style("cursor","pointer"),o.exit().each((function(){n.select(this).selectAll("g."+f.headerGroupClassName).each(a)})).remove(),0!==r.length){var l=o.selectAll("g."+f.headerGroupClassName).data(r,p);l.enter().append("g").classed(f.headerGroupClassName,!0);for(var u=s.ensureSingle(o,"g",f.dropdownButtonGroupClassName,(function(t){t.style("pointer-events","all")})),c=0;c<r.length;c++){var m=r[c];k(t,m)}var x="updatemenus"+e._uid,b=new h(t,u,x);l.enter().size()&&(u.node().parentNode.appendChild(u.node()),u.call(S)),l.exit().each((function(t){u.call(S),a(t)})).remove(),l.each((function(e){var r=n.select(this),a="dropdown"===e.type?u:null;i.manageCommandObserver(t,e,e.buttons,(function(n){v(t,e,e.buttons[n.index],r,a,b,n.index,!0)})),"dropdown"===e.type?(g(t,r,u,b,e),d(u,e)&&y(t,r,u,b,e)):y(t,r,null,null,e)}))}}},20763:function(t,e,r){"use strict";var n=r(75909);t.exports={moduleType:"component",name:n.name,layoutAttributes:r(7163),supplyLayoutDefaults:r(64897),draw:r(13689)}},25849:function(t,e,r){"use strict";t.exports=s;var n=r(39898),i=r(7901),a=r(91424),o=r(71828);function s(t,e,r){this.gd=t,this.container=e,this.id=r,this.position=null,this.translateX=null,this.translateY=null,this.hbar=null,this.vbar=null,this.bg=this.container.selectAll("rect.scrollbox-bg").data([0]),this.bg.exit().on(".drag",null).on("wheel",null).remove(),this.bg.enter().append("rect").classed("scrollbox-bg",!0).style("pointer-events","all").attr({opacity:0,x:0,y:0,width:0,height:0})}s.barWidth=2,s.barLength=20,s.barRadius=2,s.barPad=1,s.barColor="#808BA4",s.prototype.enable=function(t,e,r){var o=this.gd._fullLayout,l=o.width,u=o.height;this.position=t;var c,f,h,p,d=this.position.l,v=this.position.w,g=this.position.t,y=this.position.h,m=this.position.direction,x="down"===m,b="left"===m,_="up"===m,w=v,T=y;x||b||"right"===m||_||(this.position.direction="down",x=!0),x||_?(f=(c=d)+w,x?(h=g,T=(p=Math.min(h+T,u))-h):T=(p=g+T)-(h=Math.max(p-T,0))):(p=(h=g)+T,b?w=(f=d+w)-(c=Math.max(f-w,0)):(c=d,w=(f=Math.min(c+w,l))-c)),this._box={l:c,t:h,w:w,h:T};var k=v>w,A=s.barLength+2*s.barPad,M=s.barWidth+2*s.barPad,S=d,E=g+y;E+M>u&&(E=u-M);var L=this.container.selectAll("rect.scrollbar-horizontal").data(k?[0]:[]);L.exit().on(".drag",null).remove(),L.enter().append("rect").classed("scrollbar-horizontal",!0).call(i.fill,s.barColor),k?(this.hbar=L.attr({rx:s.barRadius,ry:s.barRadius,x:S,y:E,width:A,height:M}),this._hbarXMin=S+A/2,this._hbarTranslateMax=w-A):(delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax);var C=y>T,P=s.barWidth+2*s.barPad,O=s.barLength+2*s.barPad,I=d+v,D=g;I+P>l&&(I=l-P);var z=this.container.selectAll("rect.scrollbar-vertical").data(C?[0]:[]);z.exit().on(".drag",null).remove(),z.enter().append("rect").classed("scrollbar-vertical",!0).call(i.fill,s.barColor),C?(this.vbar=z.attr({rx:s.barRadius,ry:s.barRadius,x:I,y:D,width:P,height:O}),this._vbarYMin=D+O/2,this._vbarTranslateMax=T-O):(delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax);var R=this.id,F=c-.5,B=C?f+P+.5:f+.5,N=h-.5,j=k?p+M+.5:p+.5,U=o._topdefs.selectAll("#"+R).data(k||C?[0]:[]);if(U.exit().remove(),U.enter().append("clipPath").attr("id",R).append("rect"),k||C?(this._clipRect=U.select("rect").attr({x:Math.floor(F),y:Math.floor(N),width:Math.ceil(B)-Math.floor(F),height:Math.ceil(j)-Math.floor(N)}),this.container.call(a.setClipUrl,R,this.gd),this.bg.attr({x:d,y:g,width:v,height:y})):(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(a.setClipUrl,null),delete this._clipRect),k||C){var V=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault()})).on("drag",this._onBoxDrag.bind(this));this.container.on("wheel",null).on("wheel",this._onBoxWheel.bind(this)).on(".drag",null).call(V);var H=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault(),n.event.sourceEvent.stopPropagation()})).on("drag",this._onBarDrag.bind(this));k&&this.hbar.on(".drag",null).call(H),C&&this.vbar.on(".drag",null).call(H)}this.setTranslate(e,r)},s.prototype.disable=function(){(this.hbar||this.vbar)&&(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(a.setClipUrl,null),delete this._clipRect),this.hbar&&(this.hbar.on(".drag",null),this.hbar.remove(),delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax),this.vbar&&(this.vbar.on(".drag",null),this.vbar.remove(),delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax)},s.prototype._onBoxDrag=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t-=n.event.dx),this.vbar&&(e-=n.event.dy),this.setTranslate(t,e)},s.prototype._onBoxWheel=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t+=n.event.deltaY),this.vbar&&(e+=n.event.deltaY),this.setTranslate(t,e)},s.prototype._onBarDrag=function(){var t=this.translateX,e=this.translateY;if(this.hbar){var r=t+this._hbarXMin,i=r+this._hbarTranslateMax;t=(o.constrain(n.event.x,r,i)-r)/(i-r)*(this.position.w-this._box.w)}if(this.vbar){var a=e+this._vbarYMin,s=a+this._vbarTranslateMax;e=(o.constrain(n.event.y,a,s)-a)/(s-a)*(this.position.h-this._box.h)}this.setTranslate(t,e)},s.prototype.setTranslate=function(t,e){var r=this.position.w-this._box.w,n=this.position.h-this._box.h;if(t=o.constrain(t||0,0,r),e=o.constrain(e||0,0,n),this.translateX=t,this.translateY=e,this.container.call(a.setTranslate,this._box.l-this.position.l-t,this._box.t-this.position.t-e),this._clipRect&&this._clipRect.attr({x:Math.floor(this.position.l+t-.5),y:Math.floor(this.position.t+e-.5)}),this.hbar){var i=t/r;this.hbar.call(a.setTranslate,t+i*this._hbarTranslateMax,e)}if(this.vbar){var s=e/n;this.vbar.call(a.setTranslate,t,e+s*this._vbarTranslateMax)}}},18783:function(t){"use strict";t.exports={FROM_BL:{left:0,center:.5,right:1,bottom:0,middle:.5,top:1},FROM_TL:{left:0,center:.5,right:1,bottom:1,middle:.5,top:0},FROM_BR:{left:1,center:.5,right:0,bottom:0,middle:.5,top:1},LINE_SPACING:1.3,CAP_SHIFT:.7,MID_SHIFT:.35,OPPOSITE_SIDE:{left:"right",right:"left",top:"bottom",bottom:"top"}}},24695:function(t){"use strict";t.exports={axisRefDescription:function(t,e,r){return["If set to a",t,"axis id (e.g. *"+t+"* or","*"+t+"2*), the `"+t+"` position refers to a",t,"coordinate. If set to *paper*, the `"+t+"`","position refers to the distance from the",e,"of the plotting","area in normalized coordinates where *0* (*1*) corresponds to the",e,"("+r+"). If set to a",t,"axis ID followed by","*domain* (separated by a space), the position behaves like for","*paper*, but refers to the distance in fractions of the domain","length from the",e,"of the domain of that axis: e.g.,","*"+t+"2 domain* refers to the domain of the second",t," axis and a",t,"position of 0.5 refers to the","point between the",e,"and the",r,"of the domain of the","second",t,"axis."].join(" ")}}},22372:function(t){"use strict";t.exports={INCREASING:{COLOR:"#3D9970",SYMBOL:"▲"},DECREASING:{COLOR:"#FF4136",SYMBOL:"▼"}}},31562:function(t){"use strict";t.exports={FORMAT_LINK:"https://github.com/d3/d3-format/tree/v1.4.5#d3-format",DATE_FORMAT_LINK:"https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format"}},74808:function(t){"use strict";t.exports={COMPARISON_OPS:["=","!=","<",">=",">","<="],COMPARISON_OPS2:["=","<",">=",">","<="],INTERVAL_OPS:["[]","()","[)","(]","][",")(","](",")["],SET_OPS:["{}","}{"],CONSTRAINT_REDUCTION:{"=":"=","<":"<","<=":"<",">":">",">=":">","[]":"[]","()":"[]","[)":"[]","(]":"[]","][":"][",")(":"][","](":"][",")[":"]["}}},29659:function(t){"use strict";t.exports={solid:[[],0],dot:[[.5,1],200],dash:[[.5,1],50],longdash:[[.5,1],10],dashdot:[[.5,.625,.875,1],50],longdashdot:[[.5,.7,.8,1],10]}},87381:function(t){"use strict";t.exports={circle:"●","circle-open":"○",square:"■","square-open":"□",diamond:"◆","diamond-open":"◇",cross:"+",x:"❌"}},37822:function(t){"use strict";t.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}},50606:function(t){"use strict";t.exports={BADNUM:void 0,FP_SAFE:1e-4*Number.MAX_VALUE,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,EPOCHJD:2440587.5,ALMOST_EQUAL:.999999,LOG_CLIP:10,MINUS_SIGN:"−"}},77922:function(t,e){"use strict";e.xmlns="http://www.w3.org/2000/xmlns/",e.svg="http://www.w3.org/2000/svg",e.xlink="http://www.w3.org/1999/xlink",e.svgAttrs={xmlns:e.svg,"xmlns:xlink":e.xlink}},8729:function(t,e,r){"use strict";e.version=r(11506).version,r(7417),r(98847);for(var n=r(73972),i=e.register=n.register,a=r(10641),o=Object.keys(a),s=0;s<o.length;s++){var l=o[s];"_"!==l.charAt(0)&&(e[l]=a[l]),i({moduleType:"apiMethod",name:l,fn:a[l]})}i(r(67368)),i([r(2199),r(30211),r(32745),r(2468),r(47322),r(89853),r(68804),r(20763),r(23243),r(13137),r(97218),r(83312),r(37369),r(21081),r(12311),r(64168)]),i([r(92177),r(37815)]),window.PlotlyLocales&&Array.isArray(window.PlotlyLocales)&&(i(window.PlotlyLocales),delete window.PlotlyLocales),e.Icons=r(24255);var u=r(30211),c=r(74875);e.Plots={resize:c.resize,graphJson:c.graphJson,sendDataToCloud:c.sendDataToCloud},e.Fx={hover:u.hover,unhover:u.unhover,loneHover:u.loneHover,loneUnhover:u.loneUnhover},e.Snapshot=r(44511),e.PlotSchema=r(86281)},24255:function(t){"use strict";t.exports={undo:{width:857.1,height:1e3,path:"m857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z",transform:"matrix(1 0 0 -1 0 850)"},home:{width:928.6,height:1e3,path:"m786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z",transform:"matrix(1 0 0 -1 0 850)"},"camera-retro":{width:1e3,height:1e3,path:"m518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z",transform:"matrix(1 0 0 -1 0 850)"},zoombox:{width:1e3,height:1e3,path:"m1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z",transform:"matrix(1 0 0 -1 0 850)"},pan:{width:1e3,height:1e3,path:"m1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z",transform:"matrix(1 0 0 -1 0 850)"},zoom_plus:{width:875,height:1e3,path:"m1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z",transform:"matrix(1 0 0 -1 0 850)"},zoom_minus:{width:875,height:1e3,path:"m0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z",transform:"matrix(1 0 0 -1 0 850)"},autoscale:{width:1e3,height:1e3,path:"m250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z",transform:"matrix(1 0 0 -1 0 850)"},tooltip_basic:{width:1500,height:1e3,path:"m375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z",transform:"matrix(1 0 0 -1 0 850)"},tooltip_compare:{width:1125,height:1e3,path:"m187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z",transform:"matrix(1 0 0 -1 0 850)"},plotlylogo:{width:1542,height:1e3,path:"m0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z",transform:"matrix(1 0 0 -1 0 850)"},"z-axis":{width:1e3,height:1e3,path:"m833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z",transform:"matrix(1 0 0 -1 0 850)"},"3d_rotate":{width:1e3,height:1e3,path:"m922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z",transform:"matrix(1 0 0 -1 0 850)"},camera:{width:1e3,height:1e3,path:"m500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z",transform:"matrix(1 0 0 -1 0 850)"},movie:{width:1e3,height:1e3,path:"m938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z",transform:"matrix(1 0 0 -1 0 850)"},question:{width:857.1,height:1e3,path:"m500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z",transform:"matrix(1 0 0 -1 0 850)"},disk:{width:857.1,height:1e3,path:"m214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z",transform:"matrix(1 0 0 -1 0 850)"},drawopenpath:{width:70,height:70,path:"M33.21,85.65a7.31,7.31,0,0,1-2.59-.48c-8.16-3.11-9.27-19.8-9.88-41.3-.1-3.58-.19-6.68-.35-9-.15-2.1-.67-3.48-1.43-3.79-2.13-.88-7.91,2.32-12,5.86L3,32.38c1.87-1.64,11.55-9.66,18.27-6.9,2.13.87,4.75,3.14,5.17,9,.17,2.43.26,5.59.36,9.25a224.17,224.17,0,0,0,1.5,23.4c1.54,10.76,4,12.22,4.48,12.4.84.32,2.79-.46,5.76-3.59L43,80.07C41.53,81.57,37.68,85.64,33.21,85.65ZM74.81,69a11.34,11.34,0,0,0,6.09-6.72L87.26,44.5,74.72,32,56.9,38.35c-2.37.86-5.57,3.42-6.61,6L38.65,72.14l8.42,8.43ZM55,46.27a7.91,7.91,0,0,1,3.64-3.17l14.8-5.3,8,8L76.11,60.6l-.06.19a6.37,6.37,0,0,1-3,3.43L48.25,74.59,44.62,71Zm16.57,7.82A6.9,6.9,0,1,0,64.64,61,6.91,6.91,0,0,0,71.54,54.09Zm-4.05,0a2.85,2.85,0,1,1-2.85-2.85A2.86,2.86,0,0,1,67.49,54.09Zm-4.13,5.22L60.5,56.45,44.26,72.7l2.86,2.86ZM97.83,35.67,84.14,22l-8.57,8.57L89.26,44.24Zm-13.69-8,8,8-2.85,2.85-8-8Z",transform:"matrix(1 0 0 1 -15 -15)"},drawclosedpath:{width:90,height:90,path:"M88.41,21.12a26.56,26.56,0,0,0-36.18,0l-2.07,2-2.07-2a26.57,26.57,0,0,0-36.18,0,23.74,23.74,0,0,0,0,34.8L48,90.12a3.22,3.22,0,0,0,4.42,0l36-34.21a23.73,23.73,0,0,0,0-34.79ZM84,51.24,50.16,83.35,16.35,51.25a17.28,17.28,0,0,1,0-25.47,20,20,0,0,1,27.3,0l4.29,4.07a3.23,3.23,0,0,0,4.44,0l4.29-4.07a20,20,0,0,1,27.3,0,17.27,17.27,0,0,1,0,25.46ZM66.76,47.68h-33v6.91h33ZM53.35,35H46.44V68h6.91Z",transform:"matrix(1 0 0 1 -5 -5)"},lasso:{width:1031,height:1e3,path:"m1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z",transform:"matrix(1 0 0 -1 0 850)"},selectbox:{width:1e3,height:1e3,path:"m0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z",transform:"matrix(1 0 0 -1 0 850)"},drawline:{width:70,height:70,path:"M60.64,62.3a11.29,11.29,0,0,0,6.09-6.72l6.35-17.72L60.54,25.31l-17.82,6.4c-2.36.86-5.57,3.41-6.6,6L24.48,65.5l8.42,8.42ZM40.79,39.63a7.89,7.89,0,0,1,3.65-3.17l14.79-5.31,8,8L61.94,54l-.06.19a6.44,6.44,0,0,1-3,3.43L34.07,68l-3.62-3.63Zm16.57,7.81a6.9,6.9,0,1,0-6.89,6.9A6.9,6.9,0,0,0,57.36,47.44Zm-4,0a2.86,2.86,0,1,1-2.85-2.85A2.86,2.86,0,0,1,53.32,47.44Zm-4.13,5.22L46.33,49.8,30.08,66.05l2.86,2.86ZM83.65,29,70,15.34,61.4,23.9,75.09,37.59ZM70,21.06l8,8-2.84,2.85-8-8ZM87,80.49H10.67V87H87Z",transform:"matrix(1 0 0 1 -15 -15)"},drawrect:{width:80,height:80,path:"M78,22V79H21V22H78m9-9H12V88H87V13ZM68,46.22H31V54H68ZM53,32H45.22V69H53Z",transform:"matrix(1 0 0 1 -10 -10)"},drawcircle:{width:80,height:80,path:"M50,84.72C26.84,84.72,8,69.28,8,50.3S26.84,15.87,50,15.87,92,31.31,92,50.3,73.16,84.72,50,84.72Zm0-60.59c-18.6,0-33.74,11.74-33.74,26.17S31.4,76.46,50,76.46,83.74,64.72,83.74,50.3,68.6,24.13,50,24.13Zm17.15,22h-34v7.11h34Zm-13.8-13H46.24v34h7.11Z",transform:"matrix(1 0 0 1 -10 -10)"},eraseshape:{width:80,height:80,path:"M82.77,78H31.85L6,49.57,31.85,21.14H82.77a8.72,8.72,0,0,1,8.65,8.77V69.24A8.72,8.72,0,0,1,82.77,78ZM35.46,69.84H82.77a.57.57,0,0,0,.49-.6V29.91a.57.57,0,0,0-.49-.61H35.46L17,49.57Zm32.68-34.7-24,24,5,5,24-24Zm-19,.53-5,5,24,24,5-5Z",transform:"matrix(1 0 0 1 -10 -10)"},spikeline:{width:1e3,height:1e3,path:"M512 409c0-57-46-104-103-104-57 0-104 47-104 104 0 57 47 103 104 103 57 0 103-46 103-103z m-327-39l92 0 0 92-92 0z m-185 0l92 0 0 92-92 0z m370-186l92 0 0 93-92 0z m0-184l92 0 0 92-92 0z",transform:"matrix(1.5 0 0 -1.5 0 850)"},pencil:{width:1792,height:1792,path:"M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z",transform:"matrix(1 0 0 1 0 1)"},newplotlylogo:{name:"newplotlylogo",svg:["<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 132'>","<defs>"," <style>","  .cls-0{fill:#000;}","  .cls-1{fill:#FFF;}","  .cls-2{fill:#F26;}","  .cls-3{fill:#D69;}","  .cls-4{fill:#BAC;}","  .cls-5{fill:#9EF;}"," </style>","</defs>"," <title>plotly-logomark</title>"," <g id='symbol'>","  <rect class='cls-0' x='0' y='0' width='132' height='132' rx='18' ry='18'/>","  <circle class='cls-5' cx='102' cy='30' r='6'/>","  <circle class='cls-4' cx='78' cy='30' r='6'/>","  <circle class='cls-4' cx='78' cy='54' r='6'/>","  <circle class='cls-3' cx='54' cy='30' r='6'/>","  <circle class='cls-2' cx='30' cy='30' r='6'/>","  <circle class='cls-2' cx='30' cy='54' r='6'/>","  <path class='cls-1' d='M30,72a6,6,0,0,0-6,6v24a6,6,0,0,0,12,0V78A6,6,0,0,0,30,72Z'/>","  <path class='cls-1' d='M78,72a6,6,0,0,0-6,6v24a6,6,0,0,0,12,0V78A6,6,0,0,0,78,72Z'/>","  <path class='cls-1' d='M54,48a6,6,0,0,0-6,6v48a6,6,0,0,0,12,0V54A6,6,0,0,0,54,48Z'/>","  <path class='cls-1' d='M102,48a6,6,0,0,0-6,6v48a6,6,0,0,0,12,0V54A6,6,0,0,0,102,48Z'/>"," </g>","</svg>"].join("")}}},99863:function(t,e){"use strict";e.isLeftAnchor=function(t){return"left"===t.xanchor||"auto"===t.xanchor&&t.x<=1/3},e.isCenterAnchor=function(t){return"center"===t.xanchor||"auto"===t.xanchor&&t.x>1/3&&t.x<2/3},e.isRightAnchor=function(t){return"right"===t.xanchor||"auto"===t.xanchor&&t.x>=2/3},e.isTopAnchor=function(t){return"top"===t.yanchor||"auto"===t.yanchor&&t.y>=2/3},e.isMiddleAnchor=function(t){return"middle"===t.yanchor||"auto"===t.yanchor&&t.y>1/3&&t.y<2/3},e.isBottomAnchor=function(t){return"bottom"===t.yanchor||"auto"===t.yanchor&&t.y<=1/3}},26348:function(t,e,r){"use strict";var n=r(64872),i=n.mod,a=n.modHalf,o=Math.PI,s=2*o;function l(t){return Math.abs(t[1]-t[0])>s-1e-14}function u(t,e){return a(e-t,s)}function c(t,e){if(l(e))return!0;var r,n;e[0]<e[1]?(r=e[0],n=e[1]):(r=e[1],n=e[0]),(r=i(r,s))>(n=i(n,s))&&(n+=s);var a=i(t,s),o=a+s;return a>=r&&a<=n||o>=r&&o<=n}function f(t,e,r,n,i,a,u){i=i||0,a=a||0;var c,f,h,p,d,v=l([r,n]);function g(t,e){return[t*Math.cos(e)+i,a-t*Math.sin(e)]}v?(c=0,f=o,h=s):r<n?(c=r,h=n):(c=n,h=r),t<e?(p=t,d=e):(p=e,d=t);var y,m=Math.abs(h-c)<=o?0:1;function x(t,e,r){return"A"+[t,t]+" "+[0,m,r]+" "+g(t,e)}return v?y=null===p?"M"+g(d,c)+x(d,f,0)+x(d,h,0)+"Z":"M"+g(p,c)+x(p,f,0)+x(p,h,0)+"ZM"+g(d,c)+x(d,f,1)+x(d,h,1)+"Z":null===p?(y="M"+g(d,c)+x(d,h,0),u&&(y+="L0,0Z")):y="M"+g(p,c)+"L"+g(d,c)+x(d,h,0)+"L"+g(p,h)+x(p,c,1)+"Z",y}t.exports={deg2rad:function(t){return t/180*o},rad2deg:function(t){return t/o*180},angleDelta:u,angleDist:function(t,e){return Math.abs(u(t,e))},isFullCircle:l,isAngleInsideSector:c,isPtInsideSector:function(t,e,r,n){return!!c(e,n)&&(r[0]<r[1]?(i=r[0],a=r[1]):(i=r[1],a=r[0]),t>=i&&t<=a);var i,a},pathArc:function(t,e,r,n,i){return f(null,t,e,r,n,i,0)},pathSector:function(t,e,r,n,i){return f(null,t,e,r,n,i,1)},pathAnnulus:function(t,e,r,n,i,a){return f(t,e,r,n,i,a,1)}}},73627:function(t,e){"use strict";var r=Array.isArray,n=ArrayBuffer,i=DataView;function a(t){return n.isView(t)&&!(t instanceof i)}function o(t){return r(t)||a(t)}function s(t,e,r){if(o(t)){if(o(t[0])){for(var n=r,i=0;i<t.length;i++)n=e(n,t[i].length);return n}return t.length}return 0}e.isTypedArray=a,e.isArrayOrTypedArray=o,e.isArray1D=function(t){return!o(t[0])},e.ensureArray=function(t,e){return r(t)||(t=[]),t.length=e,t},e.concat=function(){var t,e,n,i,a,o,s,l,u=[],c=!0,f=0;for(n=0;n<arguments.length;n++)(o=(i=arguments[n]).length)&&(e?u.push(i):(e=i,a=o),r(i)?t=!1:(c=!1,f?t!==i.constructor&&(t=!1):t=i.constructor),f+=o);if(!f)return[];if(!u.length)return e;if(c)return e.concat.apply(e,u);if(t){for((s=new t(f)).set(e),n=0;n<u.length;n++)i=u[n],s.set(i,a),a+=i.length;return s}for(s=new Array(f),l=0;l<e.length;l++)s[l]=e[l];for(n=0;n<u.length;n++){for(i=u[n],l=0;l<i.length;l++)s[a+l]=i[l];a+=l}return s},e.maxRowLength=function(t){return s(t,Math.max,0)},e.minRowLength=function(t){return s(t,Math.min,1/0)}},95218:function(t,e,r){"use strict";var n=r(92770),i=r(50606).BADNUM,a=/^['"%,$#\s']+|[, ]|['"%,$#\s']+$/g;t.exports=function(t){return"string"==typeof t&&(t=t.replace(a,"")),n(t)?Number(t):i}},33306:function(t){"use strict";t.exports=function(t){var e=t._fullLayout;e._glcanvas&&e._glcanvas.size()&&e._glcanvas.each((function(t){t.regl&&t.regl.clear({color:!0,depth:!0})}))}},86367:function(t){"use strict";t.exports=function(t){t._responsiveChartHandler&&(window.removeEventListener("resize",t._responsiveChartHandler),delete t._responsiveChartHandler)}},96554:function(t,e,r){"use strict";var n=r(92770),i=r(84267),a=r(9012),o=r(63282),s=r(7901),l=r(37822).DESELECTDIM,u=r(65487),c=r(30587).counter,f=r(64872).modHalf,h=r(73627).isArrayOrTypedArray;function p(t,r){var n=e.valObjectMeta[r.valType];if(r.arrayOk&&h(t))return!0;if(n.validateFunction)return n.validateFunction(t,r);var i={},a=i,o={set:function(t){a=t}};return n.coerceFunction(t,o,i,r),a!==i}e.valObjectMeta={data_array:{coerceFunction:function(t,e,r){h(t)?e.set(t):void 0!==r&&e.set(r)}},enumerated:{coerceFunction:function(t,e,r,n){n.coerceNumber&&(t=+t),-1===n.values.indexOf(t)?e.set(r):e.set(t)},validateFunction:function(t,e){e.coerceNumber&&(t=+t);for(var r=e.values,n=0;n<r.length;n++){var i=String(r[n]);if("/"===i.charAt(0)&&"/"===i.charAt(i.length-1)){if(new RegExp(i.substr(1,i.length-2)).test(t))return!0}else if(t===r[n])return!0}return!1}},boolean:{coerceFunction:function(t,e,r){!0===t||!1===t?e.set(t):e.set(r)}},number:{coerceFunction:function(t,e,r,i){!n(t)||void 0!==i.min&&t<i.min||void 0!==i.max&&t>i.max?e.set(r):e.set(+t)}},integer:{coerceFunction:function(t,e,r,i){t%1||!n(t)||void 0!==i.min&&t<i.min||void 0!==i.max&&t>i.max?e.set(r):e.set(+t)}},string:{coerceFunction:function(t,e,r,n){if("string"!=typeof t){var i="number"==typeof t;!0!==n.strict&&i?e.set(String(t)):e.set(r)}else n.noBlank&&!t?e.set(r):e.set(t)}},color:{coerceFunction:function(t,e,r){i(t).isValid()?e.set(t):e.set(r)}},colorlist:{coerceFunction:function(t,e,r){Array.isArray(t)&&t.length&&t.every((function(t){return i(t).isValid()}))?e.set(t):e.set(r)}},colorscale:{coerceFunction:function(t,e,r){e.set(o.get(t,r))}},angle:{coerceFunction:function(t,e,r){"auto"===t?e.set("auto"):n(t)?e.set(f(+t,360)):e.set(r)}},subplotid:{coerceFunction:function(t,e,r,n){var i=n.regex||c(r);"string"==typeof t&&i.test(t)?e.set(t):e.set(r)},validateFunction:function(t,e){var r=e.dflt;return t===r||"string"==typeof t&&!!c(r).test(t)}},flaglist:{coerceFunction:function(t,e,r,n){if(-1===(n.extras||[]).indexOf(t))if("string"==typeof t){for(var i=t.split("+"),a=0;a<i.length;){var o=i[a];-1===n.flags.indexOf(o)||i.indexOf(o)<a?i.splice(a,1):a++}i.length?e.set(i.join("+")):e.set(r)}else e.set(r);else e.set(t)}},any:{coerceFunction:function(t,e,r){void 0===t?e.set(r):e.set(t)}},info_array:{coerceFunction:function(t,r,n,i){function a(t,r,n){var i,a={set:function(t){i=t}};return void 0===n&&(n=r.dflt),e.valObjectMeta[r.valType].coerceFunction(t,a,n,r),i}var o=2===i.dimensions||"1-2"===i.dimensions&&Array.isArray(t)&&Array.isArray(t[0]);if(Array.isArray(t)){var s,l,u,c,f,h,p=i.items,d=[],v=Array.isArray(p),g=v&&o&&Array.isArray(p[0]),y=o&&v&&!g,m=v&&!y?p.length:t.length;if(n=Array.isArray(n)?n:[],o)for(s=0;s<m;s++)for(d[s]=[],u=Array.isArray(t[s])?t[s]:[],f=y?p.length:v?p[s].length:u.length,l=0;l<f;l++)c=y?p[l]:v?p[s][l]:p,void 0!==(h=a(u[l],c,(n[s]||[])[l]))&&(d[s][l]=h);else for(s=0;s<m;s++)void 0!==(h=a(t[s],v?p[s]:p,n[s]))&&(d[s]=h);r.set(d)}else r.set(n)},validateFunction:function(t,e){if(!Array.isArray(t))return!1;var r=e.items,n=Array.isArray(r),i=2===e.dimensions;if(!e.freeLength&&t.length!==r.length)return!1;for(var a=0;a<t.length;a++)if(i){if(!Array.isArray(t[a])||!e.freeLength&&t[a].length!==r[a].length)return!1;for(var o=0;o<t[a].length;o++)if(!p(t[a][o],n?r[a][o]:r))return!1}else if(!p(t[a],n?r[a]:r))return!1;return!0}}},e.coerce=function(t,r,n,i,a){var o=u(n,i).get(),s=u(t,i),l=u(r,i),c=s.get(),f=r._template;if(void 0===c&&f&&(c=u(f,i).get(),f=0),void 0===a&&(a=o.dflt),o.arrayOk&&h(c))return l.set(c),c;var d=e.valObjectMeta[o.valType].coerceFunction;d(c,l,a,o);var v=l.get();return f&&v===a&&!p(c,o)&&(d(c=u(f,i).get(),l,a,o),v=l.get()),v},e.coerce2=function(t,r,n,i,a){var o=u(t,i),s=e.coerce(t,r,n,i,a);return null!=o.get()&&s},e.coerceFont=function(t,e,r){var n={};return r=r||{},n.family=t(e+".family",r.family),n.size=t(e+".size",r.size),n.color=t(e+".color",r.color),n},e.coercePattern=function(t,e,r,n){if(t(e+".shape")){t(e+".solidity"),t(e+".size");var i="overlay"===t(e+".fillmode");if(!n){var a=t(e+".bgcolor",i?r:void 0);t(e+".fgcolor",i?s.contrast(a):r)}t(e+".fgopacity",i?.5:1)}},e.coerceHoverinfo=function(t,r,n){var i,o=r._module.attributes,s=o.hoverinfo?o:a,l=s.hoverinfo;if(1===n._dataLength){var u="all"===l.dflt?l.flags.slice():l.dflt.split("+");u.splice(u.indexOf("name"),1),i=u.join("+")}return e.coerce(t,r,s,"hoverinfo",i)},e.coerceSelectionMarkerOpacity=function(t,e){if(t.marker){var r,n,i=t.marker.opacity;void 0!==i&&(h(i)||t.selected||t.unselected||(r=i,n=l*i),e("selected.marker.opacity",r),e("unselected.marker.opacity",n))}},e.validate=p},41631:function(t,e,r){"use strict";var n,i,a=r(84096).i$,o=r(92770),s=r(47769),l=r(64872).mod,u=r(50606),c=u.BADNUM,f=u.ONEDAY,h=u.ONEHOUR,p=u.ONEMIN,d=u.ONESEC,v=u.EPOCHJD,g=r(73972),y=r(84096).g0,m=/^\s*(-?\d\d\d\d|\d\d)(-(\d?\d)(-(\d?\d)([ Tt]([01]?\d|2[0-3])(:([0-5]\d)(:([0-5]\d(\.\d+)?))?(Z|z|[+\-]\d\d(:?\d\d)?)?)?)?)?)?\s*$/m,x=/^\s*(-?\d\d\d\d|\d\d)(-(\d?\di?)(-(\d?\d)([ Tt]([01]?\d|2[0-3])(:([0-5]\d)(:([0-5]\d(\.\d+)?))?(Z|z|[+\-]\d\d(:?\d\d)?)?)?)?)?)?\s*$/m,b=(new Date).getFullYear()-70;function _(t){return t&&g.componentsRegistry.calendars&&"string"==typeof t&&"gregorian"!==t}function w(t,e){return String(t+Math.pow(10,e)).substr(1)}e.dateTick0=function(t,r){var n=function(t,e){return _(t)?e?g.getComponentMethod("calendars","CANONICAL_SUNDAY")[t]:g.getComponentMethod("calendars","CANONICAL_TICK")[t]:e?"2000-01-02":"2000-01-01"}(t,!!r);if(r<2)return n;var i=e.dateTime2ms(n,t);return i+=f*(r-1),e.ms2DateTime(i,0,t)},e.dfltRange=function(t){return _(t)?g.getComponentMethod("calendars","DFLTRANGE")[t]:["2000-01-01","2001-01-01"]},e.isJSDate=function(t){return"object"==typeof t&&null!==t&&"function"==typeof t.getTime},e.dateTime2ms=function(t,r){if(e.isJSDate(t)){var a=t.getTimezoneOffset()*p,o=(t.getUTCMinutes()-t.getMinutes())*p+(t.getUTCSeconds()-t.getSeconds())*d+(t.getUTCMilliseconds()-t.getMilliseconds());if(o){var s=3*p;a=a-s/2+l(o-a+s/2,s)}return(t=Number(t)-a)>=n&&t<=i?t:c}if("string"!=typeof t&&"number"!=typeof t)return c;t=String(t);var u=_(r),y=t.charAt(0);!u||"G"!==y&&"g"!==y||(t=t.substr(1),r="");var w=u&&"chinese"===r.substr(0,7),T=t.match(w?x:m);if(!T)return c;var k=T[1],A=T[3]||"1",M=Number(T[5]||1),S=Number(T[7]||0),E=Number(T[9]||0),L=Number(T[11]||0);if(u){if(2===k.length)return c;var C;k=Number(k);try{var P=g.getComponentMethod("calendars","getCal")(r);if(w){var O="i"===A.charAt(A.length-1);A=parseInt(A,10),C=P.newDate(k,P.toMonthIndex(k,A,O),M)}else C=P.newDate(k,Number(A),M)}catch(t){return c}return C?(C.toJD()-v)*f+S*h+E*p+L*d:c}k=2===k.length?(Number(k)+2e3-b)%100+b:Number(k),A-=1;var I=new Date(Date.UTC(2e3,A,M,S,E));return I.setUTCFullYear(k),I.getUTCMonth()!==A||I.getUTCDate()!==M?c:I.getTime()+L*d},n=e.MIN_MS=e.dateTime2ms("-9999"),i=e.MAX_MS=e.dateTime2ms("9999-12-31 23:59:59.9999"),e.isDateTime=function(t,r){return e.dateTime2ms(t,r)!==c};var T=90*f,k=3*h,A=5*p;function M(t,e,r,n,i){if((e||r||n||i)&&(t+=" "+w(e,2)+":"+w(r,2),(n||i)&&(t+=":"+w(n,2),i))){for(var a=4;i%10==0;)a-=1,i/=10;t+="."+w(i,a)}return t}e.ms2DateTime=function(t,e,r){if("number"!=typeof t||!(t>=n&&t<=i))return c;e||(e=0);var a,o,s,u,m,x,b=Math.floor(10*l(t+.05,1)),w=Math.round(t-b/10);if(_(r)){var S=Math.floor(w/f)+v,E=Math.floor(l(t,f));try{a=g.getComponentMethod("calendars","getCal")(r).fromJD(S).formatDate("yyyy-mm-dd")}catch(t){a=y("G%Y-%m-%d")(new Date(w))}if("-"===a.charAt(0))for(;a.length<11;)a="-0"+a.substr(1);else for(;a.length<10;)a="0"+a;o=e<T?Math.floor(E/h):0,s=e<T?Math.floor(E%h/p):0,u=e<k?Math.floor(E%p/d):0,m=e<A?E%d*10+b:0}else x=new Date(w),a=y("%Y-%m-%d")(x),o=e<T?x.getUTCHours():0,s=e<T?x.getUTCMinutes():0,u=e<k?x.getUTCSeconds():0,m=e<A?10*x.getUTCMilliseconds()+b:0;return M(a,o,s,u,m)},e.ms2DateTimeLocal=function(t){if(!(t>=n+f&&t<=i-f))return c;var e=Math.floor(10*l(t+.05,1)),r=new Date(Math.round(t-e/10));return M(a("%Y-%m-%d")(r),r.getHours(),r.getMinutes(),r.getSeconds(),10*r.getUTCMilliseconds()+e)},e.cleanDate=function(t,r,n){if(t===c)return r;if(e.isJSDate(t)||"number"==typeof t&&isFinite(t)){if(_(n))return s.error("JS Dates and milliseconds are incompatible with world calendars",t),r;if(!(t=e.ms2DateTimeLocal(+t))&&void 0!==r)return r}else if(!e.isDateTime(t,n))return s.error("unrecognized date",t),r;return t};var S=/%\d?f/g,E=/%h/g,L={1:"1",2:"1",3:"2",4:"2"};function C(t,e,r,n){t=t.replace(S,(function(t){var r=Math.min(+t.charAt(1)||6,6);return(e/1e3%1+2).toFixed(r).substr(2).replace(/0+$/,"")||"0"}));var i=new Date(Math.floor(e+.05));if(t=t.replace(E,(function(){return L[r("%q")(i)]})),_(n))try{t=g.getComponentMethod("calendars","worldCalFmt")(t,e,n)}catch(t){return"Invalid"}return r(t)(i)}var P=[59,59.9,59.99,59.999,59.9999];e.formatDate=function(t,e,r,n,i,a){if(i=_(i)&&i,!e)if("y"===r)e=a.year;else if("m"===r)e=a.month;else{if("d"!==r)return function(t,e){var r=l(t+.05,f),n=w(Math.floor(r/h),2)+":"+w(l(Math.floor(r/p),60),2);if("M"!==e){o(e)||(e=0);var i=(100+Math.min(l(t/d,60),P[e])).toFixed(e).substr(1);e>0&&(i=i.replace(/0+$/,"").replace(/[\.]$/,"")),n+=":"+i}return n}(t,r)+"\n"+C(a.dayMonthYear,t,n,i);e=a.dayMonth+"\n"+a.year}return C(e,t,n,i)};var O=3*f;e.incrementMonth=function(t,e,r){r=_(r)&&r;var n=l(t,f);if(t=Math.round(t-n),r)try{var i=Math.round(t/f)+v,a=g.getComponentMethod("calendars","getCal")(r),o=a.fromJD(i);return e%12?a.add(o,e,"m"):a.add(o,e/12,"y"),(o.toJD()-v)*f+n}catch(e){s.error("invalid ms "+t+" in calendar "+r)}var u=new Date(t+O);return u.setUTCMonth(u.getUTCMonth()+e)+n-O},e.findExactDates=function(t,e){for(var r,n,i=0,a=0,s=0,l=0,u=_(e)&&g.getComponentMethod("calendars","getCal")(e),c=0;c<t.length;c++)if(n=t[c],o(n)){if(!(n%f))if(u)try{1===(r=u.fromJD(n/f+v)).day()?1===r.month()?i++:a++:s++}catch(t){}else 1===(r=new Date(n)).getUTCDate()?0===r.getUTCMonth()?i++:a++:s++}else l++;s+=a+=i;var h=t.length-l;return{exactYears:i/h,exactMonths:a/h,exactDays:s/h}}},24401:function(t,e,r){"use strict";var n=r(39898),i=r(47769),a=r(35657),o=r(79576);function s(t){var e=t&&t.parentNode;e&&e.removeChild(t)}function l(t,e,r){var n="plotly.js-style-"+t,a=document.getElementById(n);a||((a=document.createElement("style")).setAttribute("id",n),a.appendChild(document.createTextNode("")),document.head.appendChild(a));var o=a.sheet;o.insertRule?o.insertRule(e+"{"+r+"}",0):o.addRule?o.addRule(e,r,0):i.warn("addStyleRule failed")}function u(t){var e=window.getComputedStyle(t,null),r=e.getPropertyValue("-webkit-transform")||e.getPropertyValue("-moz-transform")||e.getPropertyValue("-ms-transform")||e.getPropertyValue("-o-transform")||e.getPropertyValue("transform");return"none"===r?null:r.replace("matrix","").replace("3d","").slice(1,-1).split(",").map((function(t){return+t}))}function c(t){for(var e=[];f(t);)e.push(t),t=t.parentNode;return e}function f(t){return t&&(t instanceof Element||t instanceof HTMLElement)}t.exports={getGraphDiv:function(t){var e;if("string"==typeof t){if(null===(e=document.getElementById(t)))throw new Error("No DOM element with id '"+t+"' exists on the page.");return e}if(null==t)throw new Error("DOM element provided is null or undefined");return t},isPlotDiv:function(t){var e=n.select(t);return e.node()instanceof HTMLElement&&e.size()&&e.classed("js-plotly-plot")},removeElement:s,addStyleRule:function(t,e){l("global",t,e)},addRelatedStyleRule:l,deleteRelatedStyleRule:function(t){var e="plotly.js-style-"+t,r=document.getElementById(e);r&&s(r)},getFullTransformMatrix:function(t){var e=c(t),r=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];return e.forEach((function(t){var e=u(t);if(e){var n=a.convertCssMatrix(e);r=o.multiply(r,r,n)}})),r},getElementTransformMatrix:u,getElementAndAncestors:c,equalDomRects:function(t,e){return t&&e&&t.x===e.x&&t.y===e.y&&t.top===e.top&&t.left===e.left&&t.right===e.right&&t.bottom===e.bottom}}},11086:function(t,e,r){"use strict";var n=r(15398).EventEmitter,i={init:function(t){if(t._ev instanceof n)return t;var e=new n,r=new n;return t._ev=e,t._internalEv=r,t.on=e.on.bind(e),t.once=e.once.bind(e),t.removeListener=e.removeListener.bind(e),t.removeAllListeners=e.removeAllListeners.bind(e),t._internalOn=r.on.bind(r),t._internalOnce=r.once.bind(r),t._removeInternalListener=r.removeListener.bind(r),t._removeAllInternalListeners=r.removeAllListeners.bind(r),t.emit=function(n,i){"undefined"!=typeof jQuery&&jQuery(t).trigger(n,i),e.emit(n,i),r.emit(n,i)},t},triggerHandler:function(t,e,r){var n,i;"undefined"!=typeof jQuery&&(n=jQuery(t).triggerHandler(e,r));var a=t._ev;if(!a)return n;var o,s=a._events[e];if(!s)return n;function l(t){return t.listener?(a.removeListener(e,t.listener),t.fired?void 0:(t.fired=!0,t.listener.apply(a,[r]))):t.apply(a,[r])}for(s=Array.isArray(s)?s:[s],o=0;o<s.length-1;o++)l(s[o]);return i=l(s[o]),void 0!==n?n:i},purge:function(t){return delete t._ev,delete t.on,delete t.once,delete t.removeListener,delete t.removeAllListeners,delete t.emit,delete t._ev,delete t._internalEv,delete t._internalOn,delete t._internalOnce,delete t._removeInternalListener,delete t._removeAllInternalListeners,t}};t.exports=i},1426:function(t,e,r){"use strict";var n=r(41965),i=Array.isArray;function a(t,e,r,o){var s,l,u,c,f,h,p,d=t[0],v=t.length;if(2===v&&i(d)&&i(t[1])&&0===d.length){if(p=function(t,e){var r,n;for(r=0;r<t.length;r++){if(null!==(n=t[r])&&"object"==typeof n)return!1;void 0!==n&&(e[r]=n)}return!0}(t[1],d),p)return d;d.splice(0,d.length)}for(var g=1;g<v;g++)for(l in s=t[g])u=d[l],c=s[l],o&&i(c)?d[l]=c:e&&c&&(n(c)||(f=i(c)))?(f?(f=!1,h=u&&i(u)?u:[]):h=u&&n(u)?u:{},d[l]=a([h,c],e,r,o)):(void 0!==c||r)&&(d[l]=c);return d}e.extendFlat=function(){return a(arguments,!1,!1,!1)},e.extendDeep=function(){return a(arguments,!0,!1,!1)},e.extendDeepAll=function(){return a(arguments,!0,!0,!1)},e.extendDeepNoArrays=function(){return a(arguments,!0,!1,!0)}},75744:function(t){"use strict";t.exports=function(t){for(var e={},r=[],n=0,i=0;i<t.length;i++){var a=t[i];1!==e[a]&&(e[a]=1,r[n++]=a)}return r}},76756:function(t){"use strict";function e(t){return!0===t.visible}function r(t){var e=t[0].trace;return!0===e.visible&&0!==e._length}t.exports=function(t){for(var n,i=(n=t,Array.isArray(n)&&Array.isArray(n[0])&&n[0][0]&&n[0][0].trace?r:e),a=[],o=0;o<t.length;o++){var s=t[o];i(s)&&a.push(s)}return a}},41327:function(t,e,r){"use strict";var n=r(39898),i=r(24138),a=r(30774),o=r(29261),s=r(85268),l=r(23389),u=r(47769),c=r(41965),f=r(65487),h=r(61082),p=Object.keys(i),d={"ISO-3":l,"USA-states":l,"country names":function(t){for(var e=0;e<p.length;e++){var r=p[e];if(new RegExp(i[r]).test(t.trim().toLowerCase()))return r}return u.log("Unrecognized country name: "+t+"."),!1}};function v(t){var e=t.geojson,r=window.PlotlyGeoAssets||{},n="string"==typeof e?r[e]:e;return c(n)?n:(u.error("Oops ... something went wrong when fetching "+e),!1)}t.exports={locationToFeature:function(t,e,r){if(!e||"string"!=typeof e)return!1;var n,i,a,o=d[t](e);if(o){if("USA-states"===t)for(n=[],a=0;a<r.length;a++)(i=r[a]).properties&&i.properties.gu&&"USA"===i.properties.gu&&n.push(i);else n=r;for(a=0;a<n.length;a++)if((i=n[a]).id===o)return i;u.log(["Location with id",o,"does not have a matching topojson feature at this resolution."].join(" "))}return!1},feature2polygons:function(t){var e,r,n,i,a=t.geometry,o=a.coordinates,s=t.id,l=[];function u(t){for(var e=0;e<t.length-1;e++)if(t[e][0]>0&&t[e+1][0]<0)return e;return null}switch(e="RUS"===s||"FJI"===s?function(t){var e;if(null===u(t))e=t;else for(e=new Array(t.length),i=0;i<t.length;i++)e[i]=[t[i][0]<0?t[i][0]+360:t[i][0],t[i][1]];l.push(h.tester(e))}:"ATA"===s?function(t){var e=u(t);if(null===e)return l.push(h.tester(t));var r=new Array(t.length+1),n=0;for(i=0;i<t.length;i++)i>e?r[n++]=[t[i][0]+360,t[i][1]]:i===e?(r[n++]=t[i],r[n++]=[t[i][0],-90]):r[n++]=t[i];var a=h.tester(r);a.pts.pop(),l.push(a)}:function(t){l.push(h.tester(t))},a.type){case"MultiPolygon":for(r=0;r<o.length;r++)for(n=0;n<o[r].length;n++)e(o[r][n]);break;case"Polygon":for(r=0;r<o.length;r++)e(o[r])}return l},getTraceGeojson:v,extractTraceFeature:function(t){var e=t[0].trace,r=v(e);if(!r)return!1;var n,i={},s=[];for(n=0;n<e._length;n++){var l=t[n];(l.loc||0===l.loc)&&(i[l.loc]=l)}function c(t){var r=f(t,e.featureidkey||"id").get(),n=i[r];if(n){var l=t.geometry;if("Polygon"===l.type||"MultiPolygon"===l.type){var c={type:"Feature",id:r,geometry:l,properties:{}};c.properties.ct=function(t){var e,r=t.geometry;if("MultiPolygon"===r.type)for(var n=r.coordinates,i=0,s=0;s<n.length;s++){var l={type:"Polygon",coordinates:n[s]},u=a.default(l);u>i&&(i=u,e=l)}else e=r;return o.default(e).geometry.coordinates}(c),n.fIn=t,n.fOut=c,s.push(c)}else u.log(["Location",n.loc,"does not have a valid GeoJSON geometry.","Traces with locationmode *geojson-id* only support","*Polygon* and *MultiPolygon* geometries."].join(" "))}delete i[r]}switch(r.type){case"FeatureCollection":var h=r.features;for(n=0;n<h.length;n++)c(h[n]);break;case"Feature":c(r);break;default:return u.warn(["Invalid GeoJSON type",(r.type||"none")+".","Traces with locationmode *geojson-id* only support","*FeatureCollection* and *Feature* types."].join(" ")),!1}for(var p in i)u.log(["Location *"+p+"*","does not have a matching feature with id-key","*"+e.featureidkey+"*."].join(" "));return s},fetchTraceGeoData:function(t){var e=window.PlotlyGeoAssets||{},r=[];function i(t){return new Promise((function(r,i){n.json(t,(function(n,a){if(n){delete e[t];var o=404===n.status?'GeoJSON at URL "'+t+'" does not exist.':"Unexpected error while fetching from "+t;return i(new Error(o))}return e[t]=a,r(a)}))}))}function a(t){return new Promise((function(r,n){var i=0,a=setInterval((function(){return e[t]&&"pending"!==e[t]?(clearInterval(a),r(e[t])):i>100?(clearInterval(a),n("Unexpected error while fetching from "+t)):void i++}),50)}))}for(var o=0;o<t.length;o++){var s=t[o][0].trace.geojson;"string"==typeof s&&(e[s]?"pending"===e[s]&&r.push(a(s)):(e[s]="pending",r.push(i(s))))}return r},computeBbox:function(t){return s.default(t)}}},18214:function(t,e,r){"use strict";var n=r(50606).BADNUM;e.calcTraceToLineCoords=function(t){for(var e=t[0].trace.connectgaps,r=[],i=[],a=0;a<t.length;a++){var o=t[a].lonlat;o[0]!==n?i.push(o):!e&&i.length>0&&(r.push(i),i=[])}return i.length>0&&r.push(i),r},e.makeLine=function(t){return 1===t.length?{type:"LineString",coordinates:t[0]}:{type:"MultiLineString",coordinates:t}},e.makePolygon=function(t){if(1===t.length)return{type:"Polygon",coordinates:t};for(var e=new Array(t.length),r=0;r<t.length;r++)e[r]=[t[r]];return{type:"MultiPolygon",coordinates:e}},e.makeBlank=function(){return{type:"Point",coordinates:[]}}},87642:function(t,e,r){"use strict";var n,i,a,o=r(64872).mod;function s(t,e,r,n,i,a,o,s){var l=r-t,u=i-t,c=o-i,f=n-e,h=a-e,p=s-a,d=l*p-c*f;if(0===d)return null;var v=(u*p-c*h)/d,g=(u*f-l*h)/d;return g<0||g>1||v<0||v>1?null:{x:t+l*v,y:e+f*v}}function l(t,e,r,n,i){var a=n*t+i*e;if(a<0)return n*n+i*i;if(a>r){var o=n-t,s=i-e;return o*o+s*s}var l=n*e-i*t;return l*l/r}e.segmentsIntersect=s,e.segmentDistance=function(t,e,r,n,i,a,o,u){if(s(t,e,r,n,i,a,o,u))return 0;var c=r-t,f=n-e,h=o-i,p=u-a,d=c*c+f*f,v=h*h+p*p,g=Math.min(l(c,f,d,i-t,a-e),l(c,f,d,o-t,u-e),l(h,p,v,t-i,e-a),l(h,p,v,r-i,n-a));return Math.sqrt(g)},e.getTextLocation=function(t,e,r,s){if(t===i&&s===a||(n={},i=t,a=s),n[r])return n[r];var l=t.getPointAtLength(o(r-s/2,e)),u=t.getPointAtLength(o(r+s/2,e)),c=Math.atan((u.y-l.y)/(u.x-l.x)),f=t.getPointAtLength(o(r,e)),h={x:(4*f.x+l.x+u.x)/6,y:(4*f.y+l.y+u.y)/6,theta:c};return n[r]=h,h},e.clearLocationCache=function(){i=null},e.getVisibleSegment=function(t,e,r){var n,i,a=e.left,o=e.right,s=e.top,l=e.bottom,u=0,c=t.getTotalLength(),f=c;function h(e){var r=t.getPointAtLength(e);0===e?n=r:e===c&&(i=r);var u=r.x<a?a-r.x:r.x>o?r.x-o:0,f=r.y<s?s-r.y:r.y>l?r.y-l:0;return Math.sqrt(u*u+f*f)}for(var p=h(u);p;){if((u+=p+r)>f)return;p=h(u)}for(p=h(f);p;){if(u>(f-=p+r))return;p=h(f)}return{min:u,max:f,len:f-u,total:c,isClosed:0===u&&f===c&&Math.abs(n.x-i.x)<.1&&Math.abs(n.y-i.y)<.1}},e.findPointOnPath=function(t,e,r,n){for(var i,a,o,s=(n=n||{}).pathLength||t.getTotalLength(),l=n.tolerance||.001,u=n.iterationLimit||30,c=t.getPointAtLength(0)[r]>t.getPointAtLength(s)[r]?-1:1,f=0,h=0,p=s;f<u;){if(i=(h+p)/2,o=(a=t.getPointAtLength(i))[r]-e,Math.abs(o)<l)return a;c*o>0?p=i:h=i,f++}return a}},81697:function(t,e,r){"use strict";var n=r(92770),i=r(84267),a=r(25075),o=r(21081),s=r(22399).defaultLine,l=r(73627).isArrayOrTypedArray,u=a(s);function c(t,e){var r=t;return r[3]*=e,r}function f(t){if(n(t))return u;var e=a(t);return e.length?e:u}function h(t){return n(t)?t:1}t.exports={formatColor:function(t,e,r){var n,i,s,p,d,v=t.color,g=l(v),y=l(e),m=o.extractOpts(t),x=[];if(n=void 0!==m.colorscale?o.makeColorScaleFuncFromTrace(t):f,i=g?function(t,e){return void 0===t[e]?u:a(n(t[e]))}:f,s=y?function(t,e){return void 0===t[e]?1:h(t[e])}:h,g||y)for(var b=0;b<r;b++)p=i(v,b),d=s(e,b),x[b]=c(p,d);else x=c(a(v),e);return x},parseColorScale:function(t){var e=o.extractOpts(t),r=e.colorscale;return e.reversescale&&(r=o.flipScale(e.colorscale)),r.map((function(t){var e=t[0],r=i(t[1]).toRgb();return{index:e,rgb:[r.r,r.g,r.b,r.a]}}))}}},28984:function(t,e,r){"use strict";var n=r(23389);function i(t){return[t]}t.exports={keyFun:function(t){return t.key},repeat:i,descend:n,wrap:i,unwrap:function(t){return t[0]}}},23389:function(t){"use strict";t.exports=function(t){return t}},39240:function(t){"use strict";t.exports=function(t,e){if(!e)return t;var r=1/Math.abs(e),n=r>1?(r*t+r*e)/r:t+e,i=String(n).length;if(i>16){var a=String(e).length;if(i>=String(t).length+a){var o=parseFloat(n).toPrecision(12);-1===o.indexOf("e+")&&(n=+o)}}return n}},71828:function(t,e,r){"use strict";var n=r(39898),i=r(84096).g0,a=r(60721).WU,o=r(92770),s=r(50606),l=s.FP_SAFE,u=-l,c=s.BADNUM,f=t.exports={};f.adjustFormat=function(t){return!t||/^\d[.]\df/.test(t)||/[.]\d%/.test(t)?t:"0.f"===t?"~f":/^\d%/.test(t)?"~%":/^\ds/.test(t)?"~s":!/^[~,.0$]/.test(t)&&/[&fps]/.test(t)?"~"+t:t};var h={};f.warnBadFormat=function(t){var e=String(t);h[e]||(h[e]=1,f.warn('encountered bad format: "'+e+'"'))},f.noFormat=function(t){return String(t)},f.numberFormat=function(t){var e;try{e=a(f.adjustFormat(t))}catch(e){return f.warnBadFormat(t),f.noFormat}return e},f.nestedProperty=r(65487),f.keyedContainer=r(66636),f.relativeAttr=r(6962),f.isPlainObject=r(41965),f.toLogRange=r(58163),f.relinkPrivateKeys=r(51332);var p=r(73627);f.isTypedArray=p.isTypedArray,f.isArrayOrTypedArray=p.isArrayOrTypedArray,f.isArray1D=p.isArray1D,f.ensureArray=p.ensureArray,f.concat=p.concat,f.maxRowLength=p.maxRowLength,f.minRowLength=p.minRowLength;var d=r(64872);f.mod=d.mod,f.modHalf=d.modHalf;var v=r(96554);f.valObjectMeta=v.valObjectMeta,f.coerce=v.coerce,f.coerce2=v.coerce2,f.coerceFont=v.coerceFont,f.coercePattern=v.coercePattern,f.coerceHoverinfo=v.coerceHoverinfo,f.coerceSelectionMarkerOpacity=v.coerceSelectionMarkerOpacity,f.validate=v.validate;var g=r(41631);f.dateTime2ms=g.dateTime2ms,f.isDateTime=g.isDateTime,f.ms2DateTime=g.ms2DateTime,f.ms2DateTimeLocal=g.ms2DateTimeLocal,f.cleanDate=g.cleanDate,f.isJSDate=g.isJSDate,f.formatDate=g.formatDate,f.incrementMonth=g.incrementMonth,f.dateTick0=g.dateTick0,f.dfltRange=g.dfltRange,f.findExactDates=g.findExactDates,f.MIN_MS=g.MIN_MS,f.MAX_MS=g.MAX_MS;var y=r(65888);f.findBin=y.findBin,f.sorterAsc=y.sorterAsc,f.sorterDes=y.sorterDes,f.distinctVals=y.distinctVals,f.roundUp=y.roundUp,f.sort=y.sort,f.findIndexOfMin=y.findIndexOfMin,f.sortObjectKeys=r(78607);var m=r(80038);f.aggNums=m.aggNums,f.len=m.len,f.mean=m.mean,f.median=m.median,f.midRange=m.midRange,f.variance=m.variance,f.stdev=m.stdev,f.interp=m.interp;var x=r(35657);f.init2dArray=x.init2dArray,f.transposeRagged=x.transposeRagged,f.dot=x.dot,f.translationMatrix=x.translationMatrix,f.rotationMatrix=x.rotationMatrix,f.rotationXYMatrix=x.rotationXYMatrix,f.apply3DTransform=x.apply3DTransform,f.apply2DTransform=x.apply2DTransform,f.apply2DTransform2=x.apply2DTransform2,f.convertCssMatrix=x.convertCssMatrix,f.inverseTransformMatrix=x.inverseTransformMatrix;var b=r(26348);f.deg2rad=b.deg2rad,f.rad2deg=b.rad2deg,f.angleDelta=b.angleDelta,f.angleDist=b.angleDist,f.isFullCircle=b.isFullCircle,f.isAngleInsideSector=b.isAngleInsideSector,f.isPtInsideSector=b.isPtInsideSector,f.pathArc=b.pathArc,f.pathSector=b.pathSector,f.pathAnnulus=b.pathAnnulus;var _=r(99863);f.isLeftAnchor=_.isLeftAnchor,f.isCenterAnchor=_.isCenterAnchor,f.isRightAnchor=_.isRightAnchor,f.isTopAnchor=_.isTopAnchor,f.isMiddleAnchor=_.isMiddleAnchor,f.isBottomAnchor=_.isBottomAnchor;var w=r(87642);f.segmentsIntersect=w.segmentsIntersect,f.segmentDistance=w.segmentDistance,f.getTextLocation=w.getTextLocation,f.clearLocationCache=w.clearLocationCache,f.getVisibleSegment=w.getVisibleSegment,f.findPointOnPath=w.findPointOnPath;var T=r(1426);f.extendFlat=T.extendFlat,f.extendDeep=T.extendDeep,f.extendDeepAll=T.extendDeepAll,f.extendDeepNoArrays=T.extendDeepNoArrays;var k=r(47769);f.log=k.log,f.warn=k.warn,f.error=k.error;var A=r(30587);f.counterRegex=A.counter;var M=r(79990);f.throttle=M.throttle,f.throttleDone=M.done,f.clearThrottle=M.clear;var S=r(24401);function E(t){var e={};for(var r in t)for(var n=t[r],i=0;i<n.length;i++)e[n[i]]=+r;return e}f.getGraphDiv=S.getGraphDiv,f.isPlotDiv=S.isPlotDiv,f.removeElement=S.removeElement,f.addStyleRule=S.addStyleRule,f.addRelatedStyleRule=S.addRelatedStyleRule,f.deleteRelatedStyleRule=S.deleteRelatedStyleRule,f.getFullTransformMatrix=S.getFullTransformMatrix,f.getElementTransformMatrix=S.getElementTransformMatrix,f.getElementAndAncestors=S.getElementAndAncestors,f.equalDomRects=S.equalDomRects,f.clearResponsive=r(86367),f.preserveDrawingBuffer=r(45142),f.makeTraceGroups=r(77310),f._=r(15867),f.notifier=r(75046),f.filterUnique=r(75744),f.filterVisible=r(76756),f.pushUnique=r(75138),f.increment=r(39240),f.cleanNumber=r(95218),f.ensureNumber=function(t){return o(t)?(t=Number(t))>l||t<u?c:t:c},f.isIndex=function(t,e){return!(void 0!==e&&t>=e)&&o(t)&&t>=0&&t%1==0},f.noop=r(64213),f.identity=r(23389),f.repeat=function(t,e){for(var r=new Array(e),n=0;n<e;n++)r[n]=t;return r},f.swapAttrs=function(t,e,r,n){r||(r="x"),n||(n="y");for(var i=0;i<e.length;i++){var a=e[i],o=f.nestedProperty(t,a.replace("?",r)),s=f.nestedProperty(t,a.replace("?",n)),l=o.get();o.set(s.get()),s.set(l)}},f.raiseToTop=function(t){t.parentNode.appendChild(t)},f.cancelTransition=function(t){return t.transition().duration(0)},f.constrain=function(t,e,r){return e>r?Math.max(r,Math.min(e,t)):Math.max(e,Math.min(r,t))},f.bBoxIntersect=function(t,e,r){return r=r||0,t.left<=e.right+r&&e.left<=t.right+r&&t.top<=e.bottom+r&&e.top<=t.bottom+r},f.simpleMap=function(t,e,r,n,i){for(var a=t.length,o=new Array(a),s=0;s<a;s++)o[s]=e(t[s],r,n,i);return o},f.randstr=function t(e,r,n,i){if(n||(n=16),void 0===r&&(r=24),r<=0)return"0";var a,o,s=Math.log(Math.pow(2,r))/Math.log(n),l="";for(a=2;s===1/0;a*=2)s=Math.log(Math.pow(2,r/a))/Math.log(n)*a;var u=s-Math.floor(s);for(a=0;a<Math.floor(s);a++)l=Math.floor(Math.random()*n).toString(n)+l;u&&(o=Math.pow(n,u),l=Math.floor(Math.random()*o).toString(n)+l);var c=parseInt(l,n);return e&&e[l]||c!==1/0&&c>=Math.pow(2,r)?i>10?(f.warn("randstr failed uniqueness"),l):t(e,r,n,(i||0)+1):l},f.OptionControl=function(t,e){t||(t={}),e||(e="opt");var r={optionList:[],_newoption:function(n){n[e]=t,r[n.name]=n,r.optionList.push(n)}};return r["_"+e]=t,r},f.smooth=function(t,e){if((e=Math.round(e)||0)<2)return t;var r,n,i,a,o=t.length,s=2*o,l=2*e-1,u=new Array(l),c=new Array(o);for(r=0;r<l;r++)u[r]=(1-Math.cos(Math.PI*(r+1)/e))/(2*e);for(r=0;r<o;r++){for(a=0,n=0;n<l;n++)(i=r+n+1-e)<-o?i-=s*Math.round(i/s):i>=s&&(i-=s*Math.floor(i/s)),i<0?i=-1-i:i>=o&&(i=s-1-i),a+=t[i]*u[n];c[r]=a}return c},f.syncOrAsync=function(t,e,r){var n;function i(){return f.syncOrAsync(t,e,r)}for(;t.length;)if((n=(0,t.splice(0,1)[0])(e))&&n.then)return n.then(i);return r&&r(e)},f.stripTrailingSlash=function(t){return"/"===t.substr(-1)?t.substr(0,t.length-1):t},f.noneOrAll=function(t,e,r){if(t){var n,i=!1,a=!0;for(n=0;n<r.length;n++)null!=t[r[n]]?i=!0:a=!1;if(i&&!a)for(n=0;n<r.length;n++)t[r[n]]=e[r[n]]}},f.mergeArray=function(t,e,r,n){var i="function"==typeof n;if(f.isArrayOrTypedArray(t))for(var a=Math.min(t.length,e.length),o=0;o<a;o++){var s=t[o];e[o][r]=i?n(s):s}},f.mergeArrayCastPositive=function(t,e,r){return f.mergeArray(t,e,r,(function(t){var e=+t;return isFinite(e)&&e>0?e:0}))},f.fillArray=function(t,e,r,n){if(n=n||f.identity,f.isArrayOrTypedArray(t))for(var i=0;i<e.length;i++)e[i][r]=n(t[i])},f.castOption=function(t,e,r,n){n=n||f.identity;var i=f.nestedProperty(t,r).get();return f.isArrayOrTypedArray(i)?Array.isArray(e)&&f.isArrayOrTypedArray(i[e[0]])?n(i[e[0]][e[1]]):n(i[e]):i},f.extractOption=function(t,e,r,n){if(r in t)return t[r];var i=f.nestedProperty(e,n).get();return Array.isArray(i)?void 0:i},f.tagSelected=function(t,e,r){var n,i,a=e.selectedpoints,o=e._indexToPoints;o&&(n=E(o));for(var s=0;s<a.length;s++){var l=a[s];if(f.isIndex(l)||f.isArrayOrTypedArray(l)&&f.isIndex(l[0])&&f.isIndex(l[1])){var u=n?n[l]:l,c=r?r[u]:u;void 0!==(i=c)&&i<t.length&&(t[c].selected=1)}}},f.selIndices2selPoints=function(t){var e=t.selectedpoints,r=t._indexToPoints;if(r){for(var n=E(r),i=[],a=0;a<e.length;a++){var o=e[a];if(f.isIndex(o)){var s=n[o];f.isIndex(s)&&i.push(s)}}return i}return e},f.getTargetArray=function(t,e){var r=e.target;if("string"==typeof r&&r){var n=f.nestedProperty(t,r).get();return!!Array.isArray(n)&&n}return!!Array.isArray(r)&&r},f.minExtend=function(t,e){var r={};"object"!=typeof e&&(e={});var n,i,a,o=Object.keys(t);for(n=0;n<o.length;n++)a=t[i=o[n]],"_"!==i.charAt(0)&&"function"!=typeof a&&("module"===i?r[i]=a:Array.isArray(a)?r[i]="colorscale"===i?a.slice():a.slice(0,3):f.isTypedArray(a)?r[i]=a.subarray(0,3):r[i]=a&&"object"==typeof a?f.minExtend(t[i],e[i]):a);for(o=Object.keys(e),n=0;n<o.length;n++)"object"==typeof(a=e[i=o[n]])&&i in r&&"object"==typeof r[i]||(r[i]=a);return r},f.titleCase=function(t){return t.charAt(0).toUpperCase()+t.substr(1)},f.containsAny=function(t,e){for(var r=0;r<e.length;r++)if(-1!==t.indexOf(e[r]))return!0;return!1},f.isIE=function(){return void 0!==window.navigator.msSaveBlob};var L=/Version\/[\d\.]+.*Safari/;f.isSafari=function(){return L.test(window.navigator.userAgent)};var C=/iPad|iPhone|iPod/;f.isIOS=function(){return C.test(window.navigator.userAgent)};var P=/Firefox\/(\d+)\.\d+/;f.getFirefoxVersion=function(){var t=P.exec(window.navigator.userAgent);if(t&&2===t.length){var e=parseInt(t[1]);if(!isNaN(e))return e}return null},f.isD3Selection=function(t){return t instanceof n.selection},f.ensureSingle=function(t,e,r,n){var i=t.select(e+(r?"."+r:""));if(i.size())return i;var a=t.append(e);return r&&a.classed(r,!0),n&&a.call(n),a},f.ensureSingleById=function(t,e,r,n){var i=t.select(e+"#"+r);if(i.size())return i;var a=t.append(e).attr("id",r);return n&&a.call(n),a},f.objectFromPath=function(t,e){for(var r,n=t.split("."),i=r={},a=0;a<n.length;a++){var o=n[a],s=null,l=n[a].match(/(.*)\[([0-9]+)\]/);l?(o=l[1],s=l[2],r=r[o]=[],a===n.length-1?r[s]=e:r[s]={},r=r[s]):(a===n.length-1?r[o]=e:r[o]={},r=r[o])}return i};var O=/^([^\[\.]+)\.(.+)?/,I=/^([^\.]+)\[([0-9]+)\](\.)?(.+)?/;f.expandObjectPaths=function(t){var e,r,n,i,a,o,s;if("object"==typeof t&&!Array.isArray(t))for(r in t)t.hasOwnProperty(r)&&((e=r.match(O))?(i=t[r],n=e[1],delete t[r],t[n]=f.extendDeepNoArrays(t[n]||{},f.objectFromPath(r,f.expandObjectPaths(i))[n])):(e=r.match(I))?(i=t[r],n=e[1],a=parseInt(e[2]),delete t[r],t[n]=t[n]||[],"."===e[3]?(s=e[4],o=t[n][a]=t[n][a]||{},f.extendDeepNoArrays(o,f.objectFromPath(s,f.expandObjectPaths(i)))):t[n][a]=f.expandObjectPaths(i)):t[r]=f.expandObjectPaths(t[r]));return t},f.numSeparate=function(t,e,r){if(r||(r=!1),"string"!=typeof e||0===e.length)throw new Error("Separator string required for formatting!");"number"==typeof t&&(t=String(t));var n=/(\d+)(\d{3})/,i=e.charAt(0),a=e.charAt(1),o=t.split("."),s=o[0],l=o.length>1?i+o[1]:"";if(a&&(o.length>1||s.length>4||r))for(;n.test(s);)s=s.replace(n,"$1"+a+"$2");return s+l},f.TEMPLATE_STRING_REGEX=/%{([^\s%{}:]*)([:|\|][^}]*)?}/g;var D=/^\w*$/;f.templateString=function(t,e){var r={};return t.replace(f.TEMPLATE_STRING_REGEX,(function(t,n){var i;return D.test(n)?i=e[n]:(r[n]=r[n]||f.nestedProperty(e,n).get,i=r[n]()),f.isValidTextValue(i)?i:""}))};var z={max:10,count:0,name:"hovertemplate"};f.hovertemplateString=function(){return B.apply(z,arguments)};var R={max:10,count:0,name:"texttemplate"};f.texttemplateString=function(){return B.apply(R,arguments)};var F=/^[:|\|]/;function B(t,e,r){var n=this,a=arguments;e||(e={});var o={};return t.replace(f.TEMPLATE_STRING_REGEX,(function(t,s,l){var u,c,h,p="_xother"===s||"_yother"===s,d="_xother_"===s||"_yother_"===s,v="xother_"===s||"yother_"===s,g="xother"===s||"yother"===s||p||v||d,y=s;if((p||d)&&(y=y.substring(1)),(v||d)&&(y=y.substring(0,y.length-1)),g){if(void 0===(u=e[y]))return""}else for(h=3;h<a.length;h++)if(c=a[h]){if(c.hasOwnProperty(y)){u=c[y];break}if(D.test(y)||(u=f.nestedProperty(c,y).get(),(u=o[y]||f.nestedProperty(c,y).get())&&(o[y]=u)),void 0!==u)break}if(void 0===u&&n)return n.count<n.max&&(f.warn("Variable '"+y+"' in "+n.name+" could not be found!"),u=t),n.count===n.max&&f.warn("Too many "+n.name+" warnings - additional warnings will be suppressed"),n.count++,t;if(l){var m;if(":"===l[0]&&(u=(m=r?r.numberFormat:f.numberFormat)(l.replace(F,""))(u)),"|"===l[0]){m=r?r.timeFormat:i;var x=f.dateTime2ms(u);u=f.formatDate(x,l.replace(F,""),!1,m)}}else{var b=y+"Label";e.hasOwnProperty(b)&&(u=e[b])}return g&&(u="("+u+")",(p||d)&&(u=" "+u),(v||d)&&(u+=" ")),u}))}f.subplotSort=function(t,e){for(var r=Math.min(t.length,e.length)+1,n=0,i=0,a=0;a<r;a++){var o=t.charCodeAt(a)||0,s=e.charCodeAt(a)||0,l=o>=48&&o<=57,u=s>=48&&s<=57;if(l&&(n=10*n+o-48),u&&(i=10*i+s-48),!l||!u){if(n!==i)return n-i;if(o!==s)return o-s}}return i-n};var N=2e9;f.seedPseudoRandom=function(){N=2e9},f.pseudoRandom=function(){var t=N;return N=(69069*N+1)%4294967296,Math.abs(N-t)<429496729?f.pseudoRandom():N/4294967296},f.fillText=function(t,e,r){var n=Array.isArray(r)?function(t){r.push(t)}:function(t){r.text=t},i=f.extractOption(t,e,"htx","hovertext");if(f.isValidTextValue(i))return n(i);var a=f.extractOption(t,e,"tx","text");return f.isValidTextValue(a)?n(a):void 0},f.isValidTextValue=function(t){return t||0===t},f.formatPercent=function(t,e){e=e||0;for(var r=(Math.round(100*t*Math.pow(10,e))*Math.pow(.1,e)).toFixed(e)+"%",n=0;n<e;n++)-1!==r.indexOf(".")&&(r=(r=r.replace("0%","%")).replace(".%","%"));return r},f.isHidden=function(t){var e=window.getComputedStyle(t).display;return!e||"none"===e},f.strTranslate=function(t,e){return t||e?"translate("+t+","+e+")":""},f.strRotate=function(t){return t?"rotate("+t+")":""},f.strScale=function(t){return 1!==t?"scale("+t+")":""},f.getTextTransform=function(t){var e=t.noCenter,r=t.textX,n=t.textY,i=t.targetX,a=t.targetY,o=t.anchorX||0,s=t.anchorY||0,l=t.rotate,u=t.scale;return u?u>1&&(u=1):u=0,f.strTranslate(i-u*(r+o),a-u*(n+s))+f.strScale(u)+(l?"rotate("+l+(e?"":" "+r+" "+n)+")":"")},f.setTransormAndDisplay=function(t,e){t.attr("transform",f.getTextTransform(e)),t.style("display",e.scale?null:"none")},f.ensureUniformFontSize=function(t,e){var r=f.extendFlat({},e);return r.size=Math.max(e.size,t._fullLayout.uniformtext.minsize||0),r},f.join2=function(t,e,r){var n=t.length;return n>1?t.slice(0,-1).join(e)+r+t[n-1]:t.join(e)},f.bigFont=function(t){return Math.round(1.2*t)};var j=f.getFirefoxVersion(),U=null!==j&&j<86;f.getPositionFromD3Event=function(){return U?[n.event.layerX,n.event.layerY]:[n.event.offsetX,n.event.offsetY]}},41965:function(t){"use strict";t.exports=function(t){return window&&window.process&&window.process.versions?"[object Object]"===Object.prototype.toString.call(t):"[object Object]"===Object.prototype.toString.call(t)&&Object.getPrototypeOf(t).hasOwnProperty("hasOwnProperty")}},66636:function(t,e,r){"use strict";var n=r(65487),i=/^\w*$/;t.exports=function(t,e,r,a){var o,s,l;r=r||"name",a=a||"value";var u={};e&&e.length?(l=n(t,e),s=l.get()):s=t,e=e||"";var c={};if(s)for(o=0;o<s.length;o++)c[s[o][r]]=o;var f=i.test(a),h={set:function(t,e){var i=null===e?4:0;if(!s){if(!l||4===i)return;s=[],l.set(s)}var o=c[t];if(void 0===o){if(4===i)return;i|=3,o=s.length,c[t]=o}else e!==(f?s[o][a]:n(s[o],a).get())&&(i|=2);var p=s[o]=s[o]||{};return p[r]=t,f?p[a]=e:n(p,a).set(e),null!==e&&(i&=-5),u[o]=u[o]|i,h},get:function(t){if(s){var e=c[t];return void 0===e?void 0:f?s[e][a]:n(s[e],a).get()}},rename:function(t,e){var n=c[t];return void 0===n||(u[n]=1|u[n],c[e]=n,delete c[t],s[n][r]=e),h},remove:function(t){var e=c[t];if(void 0===e)return h;var i=s[e];if(Object.keys(i).length>2)return u[e]=2|u[e],h.set(t,null);if(f){for(o=e;o<s.length;o++)u[o]=3|u[o];for(o=e;o<s.length;o++)c[s[o][r]]--;s.splice(e,1),delete c[t]}else n(i,a).set(null),u[e]=6|u[e];return h},constructUpdate:function(){for(var t,i,o={},l=Object.keys(u),c=0;c<l.length;c++)i=l[c],t=e+"["+i+"]",s[i]?(1&u[i]&&(o[t+"."+r]=s[i][r]),2&u[i]&&(o[t+"."+a]=f?4&u[i]?null:s[i][a]:4&u[i]?null:n(s[i],a).get())):o[t]=null;return o}};return h}},15867:function(t,e,r){"use strict";var n=r(73972);t.exports=function(t,e){for(var r=t._context.locale,i=0;i<2;i++){for(var a=t._context.locales,o=0;o<2;o++){var s=(a[r]||{}).dictionary;if(s){var l=s[e];if(l)return l}a=n.localeRegistry}var u=r.split("-")[0];if(u===r)break;r=u}return e}},47769:function(t,e,r){"use strict";var n=r(72075).dfltConfig,i=r(75046),a=t.exports={};a.log=function(){var t;if(n.logging>1){var e=["LOG:"];for(t=0;t<arguments.length;t++)e.push(arguments[t]);console.trace.apply(console,e)}if(n.notifyOnLogging>1){var r=[];for(t=0;t<arguments.length;t++)r.push(arguments[t]);i(r.join("<br>"),"long")}},a.warn=function(){var t;if(n.logging>0){var e=["WARN:"];for(t=0;t<arguments.length;t++)e.push(arguments[t]);console.trace.apply(console,e)}if(n.notifyOnLogging>0){var r=[];for(t=0;t<arguments.length;t++)r.push(arguments[t]);i(r.join("<br>"),"stick")}},a.error=function(){var t;if(n.logging>0){var e=["ERROR:"];for(t=0;t<arguments.length;t++)e.push(arguments[t]);console.error.apply(console,e)}if(n.notifyOnLogging>0){var r=[];for(t=0;t<arguments.length;t++)r.push(arguments[t]);i(r.join("<br>"),"stick")}}},77310:function(t,e,r){"use strict";var n=r(39898);t.exports=function(t,e,r){var i=t.selectAll("g."+r.replace(/\s/g,".")).data(e,(function(t){return t[0].trace.uid}));i.exit().remove(),i.enter().append("g").attr("class",r),i.order();var a=t.classed("rangeplot")?"nodeRangePlot3":"node3";return i.each((function(t){t[0][a]=n.select(this)})),i}},35657:function(t,e,r){"use strict";var n=r(79576);e.init2dArray=function(t,e){for(var r=new Array(t),n=0;n<t;n++)r[n]=new Array(e);return r},e.transposeRagged=function(t){var e,r,n=0,i=t.length;for(e=0;e<i;e++)n=Math.max(n,t[e].length);var a=new Array(n);for(e=0;e<n;e++)for(a[e]=new Array(i),r=0;r<i;r++)a[e][r]=t[r][e];return a},e.dot=function(t,r){if(!t.length||!r.length||t.length!==r.length)return null;var n,i,a=t.length;if(t[0].length)for(n=new Array(a),i=0;i<a;i++)n[i]=e.dot(t[i],r);else if(r[0].length){var o=e.transposeRagged(r);for(n=new Array(o.length),i=0;i<o.length;i++)n[i]=e.dot(t,o[i])}else for(n=0,i=0;i<a;i++)n+=t[i]*r[i];return n},e.translationMatrix=function(t,e){return[[1,0,t],[0,1,e],[0,0,1]]},e.rotationMatrix=function(t){var e=t*Math.PI/180;return[[Math.cos(e),-Math.sin(e),0],[Math.sin(e),Math.cos(e),0],[0,0,1]]},e.rotationXYMatrix=function(t,r,n){return e.dot(e.dot(e.translationMatrix(r,n),e.rotationMatrix(t)),e.translationMatrix(-r,-n))},e.apply3DTransform=function(t){return function(){var r=arguments,n=1===arguments.length?r[0]:[r[0],r[1],r[2]||0];return e.dot(t,[n[0],n[1],n[2],1]).slice(0,3)}},e.apply2DTransform=function(t){return function(){var r=arguments;3===r.length&&(r=r[0]);var n=1===arguments.length?r[0]:[r[0],r[1]];return e.dot(t,[n[0],n[1],1]).slice(0,2)}},e.apply2DTransform2=function(t){var r=e.apply2DTransform(t);return function(t){return r(t.slice(0,2)).concat(r(t.slice(2,4)))}},e.convertCssMatrix=function(t){if(t){var e=t.length;if(16===e)return t;if(6===e)return[t[0],t[1],0,0,t[2],t[3],0,0,0,0,1,0,t[4],t[5],0,1]}return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},e.inverseTransformMatrix=function(t){var e=[];return n.invert(e,t),[[e[0],e[1],e[2],e[3]],[e[4],e[5],e[6],e[7]],[e[8],e[9],e[10],e[11]],[e[12],e[13],e[14],e[15]]]}},64872:function(t){"use strict";t.exports={mod:function(t,e){var r=t%e;return r<0?r+e:r},modHalf:function(t,e){return Math.abs(t)>e/2?t-Math.round(t/e)*e:t}}},65487:function(t,e,r){"use strict";var n=r(92770),i=r(73627).isArrayOrTypedArray;function a(t,e){return function(){var r,n,o,s,l,u=t;for(s=0;s<e.length-1;s++){if(-1===(r=e[s])){for(n=!0,o=[],l=0;l<u.length;l++)o[l]=a(u[l],e.slice(s+1))(),o[l]!==o[0]&&(n=!1);return n?o[0]:o}if("number"==typeof r&&!i(u))return;if("object"!=typeof(u=u[r])||null===u)return}if("object"==typeof u&&null!==u&&null!==(o=u[e[s]]))return o}}t.exports=function(t,e){if(n(e))e=String(e);else if("string"!=typeof e||"[-1]"===e.substr(e.length-4))throw"bad property string";for(var r,i,o,s=0,u=e.split(".");s<u.length;){if(r=String(u[s]).match(/^([^\[\]]*)((\[\-?[0-9]*\])+)$/)){if(r[1])u[s]=r[1];else{if(0!==s)throw"bad property string";u.splice(0,1)}for(i=r[2].substr(1,r[2].length-2).split("]["),o=0;o<i.length;o++)s++,u.splice(s,0,Number(i[o]))}s++}return"object"!=typeof t?function(t,e,r){return{set:function(){throw"bad container"},get:function(){},astr:e,parts:r,obj:t}}(t,e,u):{set:l(t,u,e),get:a(t,u),astr:e,parts:u,obj:t}};var o=/(^|\.)args\[/;function s(t,e){return void 0===t||null===t&&!e.match(o)}function l(t,e,r){return function(n){var a,o,l=t,h="",p=[[t,h]],d=s(n,r);for(o=0;o<e.length-1;o++){if("number"==typeof(a=e[o])&&!i(l))throw"array index but container is not an array";if(-1===a){if(d=!c(l,e.slice(o+1),n,r))break;return}if(!f(l,a,e[o+1],d))break;if("object"!=typeof(l=l[a])||null===l)throw"container is not an object";h=u(h,a),p.push([l,h])}if(d){if(o===e.length-1&&(delete l[e[o]],Array.isArray(l)&&+e[o]==l.length-1))for(;l.length&&void 0===l[l.length-1];)l.pop()}else l[e[o]]=n}}function u(t,e){var r=e;return n(e)?r="["+e+"]":t&&(r="."+e),t+r}function c(t,e,r,n){var a,o=i(r),u=!0,c=r,h=n.replace("-1",0),p=!o&&s(r,h),d=e[0];for(a=0;a<t.length;a++)h=n.replace("-1",a),o&&(p=s(c=r[a%r.length],h)),p&&(u=!1),f(t,a,d,p)&&l(t[a],e,n.replace("-1",a))(c);return u}function f(t,e,r,n){if(void 0===t[e]){if(n)return!1;t[e]="number"==typeof r?[]:{}}return!0}},64213:function(t){"use strict";t.exports=function(){}},75046:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=[];t.exports=function(t,e){if(-1===a.indexOf(t)){a.push(t);var r=1e3;i(e)?r=e:"long"===e&&(r=3e3);var o=n.select("body").selectAll(".plotly-notifier").data([0]);o.enter().append("div").classed("plotly-notifier",!0),o.selectAll(".notifier-note").data(a).enter().append("div").classed("notifier-note",!0).style("opacity",0).each((function(t){var i=n.select(this);i.append("button").classed("notifier-close",!0).html("&times;").on("click",(function(){i.transition().call(s)}));for(var a=i.append("p"),o=t.split(/<br\s*\/?>/g),l=0;l<o.length;l++)l&&a.append("br"),a.append("span").text(o[l]);"stick"===e?i.transition().duration(350).style("opacity",1):i.transition().duration(700).style("opacity",1).transition().delay(r).call(s)}))}function s(t){t.duration(700).style("opacity",0).each("end",(function(t){var e=a.indexOf(t);-1!==e&&a.splice(e,1),n.select(this).remove()}))}}},39918:function(t,e,r){"use strict";var n=r(6964),i="data-savedcursor";t.exports=function(t,e){var r=t.attr(i);if(e){if(!r){for(var a=(t.attr("class")||"").split(" "),o=0;o<a.length;o++){var s=a[o];0===s.indexOf("cursor-")&&t.attr(i,s.substr(7)).classed(s,!1)}t.attr(i)||t.attr(i,"!!")}n(t,e)}else r&&(t.attr(i,null),"!!"===r?n(t):n(t,r))}},61082:function(t,e,r){"use strict";var n=r(35657).dot,i=r(50606).BADNUM,a=t.exports={};a.tester=function(t){var e,r=t.slice(),n=r[0][0],a=n,o=r[0][1],s=o;for(r[r.length-1][0]===r[0][0]&&r[r.length-1][1]===r[0][1]||r.push(r[0]),e=1;e<r.length;e++)n=Math.min(n,r[e][0]),a=Math.max(a,r[e][0]),o=Math.min(o,r[e][1]),s=Math.max(s,r[e][1]);var l,u=!1;5===r.length&&(r[0][0]===r[1][0]?r[2][0]===r[3][0]&&r[0][1]===r[3][1]&&r[1][1]===r[2][1]&&(u=!0,l=function(t){return t[0]===r[0][0]}):r[0][1]===r[1][1]&&r[2][1]===r[3][1]&&r[0][0]===r[3][0]&&r[1][0]===r[2][0]&&(u=!0,l=function(t){return t[1]===r[0][1]}));var c=!0,f=r[0];for(e=1;e<r.length;e++)if(f[0]!==r[e][0]||f[1]!==r[e][1]){c=!1;break}return{xmin:n,xmax:a,ymin:o,ymax:s,pts:r,contains:u?function(t,e){var r=t[0],u=t[1];return!(r===i||r<n||r>a||u===i||u<o||u>s||e&&l(t))}:function(t,e){var l=t[0],u=t[1];if(l===i||l<n||l>a||u===i||u<o||u>s)return!1;var c,f,h,p,d,v=r.length,g=r[0][0],y=r[0][1],m=0;for(c=1;c<v;c++)if(f=g,h=y,g=r[c][0],y=r[c][1],!(l<(p=Math.min(f,g))||l>Math.max(f,g)||u>Math.max(h,y)))if(u<Math.min(h,y))l!==p&&m++;else{if(u===(d=g===f?u:h+(l-f)*(y-h)/(g-f)))return 1!==c||!e;u<=d&&l!==p&&m++}return m%2==1},isRect:u,degenerate:c}},a.isSegmentBent=function(t,e,r,i){var a,o,s,l=t[e],u=[t[r][0]-l[0],t[r][1]-l[1]],c=n(u,u),f=Math.sqrt(c),h=[-u[1]/f,u[0]/f];for(a=e+1;a<r;a++)if(o=[t[a][0]-l[0],t[a][1]-l[1]],(s=n(o,u))<0||s>c||Math.abs(n(o,h))>i)return!0;return!1},a.filter=function(t,e){var r=[t[0]],n=0,i=0;function o(o){t.push(o);var s=r.length,l=n;r.splice(i+1);for(var u=l+1;u<t.length;u++)(u===t.length-1||a.isSegmentBent(t,l,u+1,e))&&(r.push(t[u]),r.length<s-2&&(n=u,i=r.length-1),l=u)}return t.length>1&&o(t.pop()),{addPt:o,raw:t,filtered:r}}},79749:function(t,e,r){"use strict";var n=r(58617),i=r(98580);t.exports=function(t,e,a){var o=t._fullLayout,s=!0;return o._glcanvas.each((function(n){if(n.regl)n.regl.preloadCachedCode(a);else if(!n.pick||o._has("parcoords")){try{n.regl=i({canvas:this,attributes:{antialias:!n.pick,preserveDrawingBuffer:!0},pixelRatio:t._context.plotGlPixelRatio||r.g.devicePixelRatio,extensions:e||[],cachedCode:a||{}})}catch(t){s=!1}n.regl||(s=!1),s&&this.addEventListener("webglcontextlost",(function(e){t&&t.emit&&t.emit("plotly_webglcontextlost",{event:e,layer:n.key})}),!1)}})),s||n({container:o._glcontainer.node()}),s}},45142:function(t,e,r){"use strict";var n=r(92770),i=r(35791);t.exports=function(t){var e;if("string"!=typeof(e=t&&t.hasOwnProperty("userAgent")?t.userAgent:function(){var t;return"undefined"!=typeof navigator&&(t=navigator.userAgent),t&&t.headers&&"string"==typeof t.headers["user-agent"]&&(t=t.headers["user-agent"]),t}()))return!0;var r=i({ua:{headers:{"user-agent":e}},tablet:!0,featureDetect:!1});if(!r)for(var a=e.split(" "),o=1;o<a.length;o++)if(-1!==a[o].indexOf("Safari"))for(var s=o-1;s>-1;s--){var l=a[s];if("Version/"===l.substr(0,8)){var u=l.substr(8).split(".")[0];if(n(u)&&(u=+u),u>=13)return!0}}return r}},75138:function(t){"use strict";t.exports=function(t,e){if(e instanceof RegExp){for(var r=e.toString(),n=0;n<t.length;n++)if(t[n]instanceof RegExp&&t[n].toString()===r)return t;t.push(e)}else!e&&0!==e||-1!==t.indexOf(e)||t.push(e);return t}},10847:function(t,e,r){"use strict";var n=r(71828),i=r(72075).dfltConfig,a={add:function(t,e,r,n,a){var o,s;t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},s=t.undoQueue.index,t.autoplay?t.undoQueue.inSequence||(t.autoplay=!1):(!t.undoQueue.sequence||t.undoQueue.beginSequence?(o={undo:{calls:[],args:[]},redo:{calls:[],args:[]}},t.undoQueue.queue.splice(s,t.undoQueue.queue.length-s,o),t.undoQueue.index+=1):o=t.undoQueue.queue[s-1],t.undoQueue.beginSequence=!1,o&&(o.undo.calls.unshift(e),o.undo.args.unshift(r),o.redo.calls.push(n),o.redo.args.push(a)),t.undoQueue.queue.length>i.queueLength&&(t.undoQueue.queue.shift(),t.undoQueue.index--))},startSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!0,t.undoQueue.beginSequence=!0},stopSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!1,t.undoQueue.beginSequence=!1},undo:function(t){var e,r;if(!(void 0===t.undoQueue||isNaN(t.undoQueue.index)||t.undoQueue.index<=0)){for(t.undoQueue.index--,e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r<e.undo.calls.length;r++)a.plotDo(t,e.undo.calls[r],e.undo.args[r]);t.undoQueue.inSequence=!1,t.autoplay=!1}},redo:function(t){var e,r;if(!(void 0===t.undoQueue||isNaN(t.undoQueue.index)||t.undoQueue.index>=t.undoQueue.queue.length)){for(e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r<e.redo.calls.length;r++)a.plotDo(t,e.redo.calls[r],e.redo.args[r]);t.undoQueue.inSequence=!1,t.autoplay=!1,t.undoQueue.index++}},plotDo:function(t,e,r){t.autoplay=!0,r=function(t,e){for(var r,i=[],a=0;a<e.length;a++)r=e[a],i[a]=r===t?r:"object"==typeof r?Array.isArray(r)?n.extendDeep([],r):n.extendDeepAll({},r):r;return i}(t,r),e.apply(null,r)}};t.exports=a},30587:function(t,e){"use strict";e.counter=function(t,e,r,n){var i=(e||"")+(r?"":"$"),a=!1===n?"":"^";return"xy"===t?new RegExp(a+"x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?"+i):new RegExp(a+t+"([2-9]|[1-9][0-9]+)?"+i)}},6962:function(t){"use strict";var e=/^(.*)(\.[^\.\[\]]+|\[\d\])$/,r=/^[^\.\[\]]+$/;t.exports=function(t,n){for(;n;){var i=t.match(e);if(i)t=i[1];else{if(!t.match(r))throw new Error("bad relativeAttr call:"+[t,n]);t=""}if("^"!==n.charAt(0))break;n=n.slice(1)}return t&&"["!==n.charAt(0)?t+"."+n:t+n}},51332:function(t,e,r){"use strict";var n=r(73627).isArrayOrTypedArray,i=r(41965);t.exports=function t(e,r){for(var a in r){var o=r[a],s=e[a];if(s!==o)if("_"===a.charAt(0)||"function"==typeof o){if(a in e)continue;e[a]=o}else if(n(o)&&n(s)&&i(o[0])){if("customdata"===a||"ids"===a)continue;for(var l=Math.min(o.length,s.length),u=0;u<l;u++)s[u]!==o[u]&&i(o[u])&&i(s[u])&&t(s[u],o[u])}else i(o)&&i(s)&&(t(s,o),Object.keys(s).length||delete e[a])}}},65888:function(t,e,r){"use strict";var n=r(92770),i=r(47769),a=r(23389),o=r(50606).BADNUM,s=1e-9;function l(t,e){return t<e}function u(t,e){return t<=e}function c(t,e){return t>e}function f(t,e){return t>=e}e.findBin=function(t,e,r){if(n(e.start))return r?Math.ceil((t-e.start)/e.size-s)-1:Math.floor((t-e.start)/e.size+s);var a,o,h=0,p=e.length,d=0,v=p>1?(e[p-1]-e[0])/(p-1):1;for(o=v>=0?r?l:u:r?f:c,t+=v*s*(r?-1:1)*(v>=0?1:-1);h<p&&d++<100;)o(e[a=Math.floor((h+p)/2)],t)?h=a+1:p=a;return d>90&&i.log("Long binary search..."),h-1},e.sorterAsc=function(t,e){return t-e},e.sorterDes=function(t,e){return e-t},e.distinctVals=function(t){var r,n=t.slice();for(n.sort(e.sorterAsc),r=n.length-1;r>-1&&n[r]===o;r--);for(var i,a=n[r]-n[0]||1,s=a/(r||1)/1e4,l=[],u=0;u<=r;u++){var c=n[u],f=c-i;void 0===i?(l.push(c),i=c):f>s&&(a=Math.min(a,f),l.push(c),i=c)}return{vals:l,minDiff:a}},e.roundUp=function(t,e,r){for(var n,i=0,a=e.length-1,o=0,s=r?0:1,l=r?1:0,u=r?Math.ceil:Math.floor;i<a&&o++<100;)e[n=u((i+a)/2)]<=t?i=n+s:a=n-l;return e[i]},e.sort=function(t,e){for(var r=0,n=0,i=1;i<t.length;i++){var a=e(t[i],t[i-1]);if(a<0?r=1:a>0&&(n=1),r&&n)return t.sort(e)}return n?t:t.reverse()},e.findIndexOfMin=function(t,e){e=e||a;for(var r,n=1/0,i=0;i<t.length;i++){var o=e(t[i]);o<n&&(n=o,r=i)}return r}},6964:function(t){"use strict";t.exports=function(t,e){(t.attr("class")||"").split(" ").forEach((function(e){0===e.indexOf("cursor-")&&t.classed(e,!1)})),e&&t.classed("cursor-"+e,!0)}},58617:function(t,e,r){"use strict";var n=r(7901),i=function(){};t.exports=function(t){for(var e in t)"function"==typeof t[e]&&(t[e]=i);t.destroy=function(){t.container.parentNode.removeChild(t.container)};var r=document.createElement("div");r.className="no-webgl",r.style.cursor="pointer",r.style.fontSize="24px",r.style.color=n.defaults[0],r.style.position="absolute",r.style.left=r.style.top="0px",r.style.width=r.style.height="100%",r.style["background-color"]=n.lightLine,r.style["z-index"]=30;var a=document.createElement("p");return a.textContent="WebGL is not supported by your browser - visit https://get.webgl.org for more info",a.style.position="relative",a.style.top="50%",a.style.left="50%",a.style.height="30%",a.style.width="50%",a.style.margin="-15% 0 0 -25%",r.appendChild(a),t.container.appendChild(r),t.container.style.background="#FFFFFF",t.container.onclick=function(){window.open("https://get.webgl.org")},!1}},78607:function(t){"use strict";t.exports=function(t){return Object.keys(t).sort()}},80038:function(t,e,r){"use strict";var n=r(92770),i=r(73627).isArrayOrTypedArray;e.aggNums=function(t,r,a,o){var s,l;if((!o||o>a.length)&&(o=a.length),n(r)||(r=!1),i(a[0])){for(l=new Array(o),s=0;s<o;s++)l[s]=e.aggNums(t,r,a[s]);a=l}for(s=0;s<o;s++)n(r)?n(a[s])&&(r=t(+r,+a[s])):r=a[s];return r},e.len=function(t){return e.aggNums((function(t){return t+1}),0,t)},e.mean=function(t,r){return r||(r=e.len(t)),e.aggNums((function(t,e){return t+e}),0,t)/r},e.midRange=function(t){if(void 0!==t&&0!==t.length)return(e.aggNums(Math.max,null,t)+e.aggNums(Math.min,null,t))/2},e.variance=function(t,r,i){return r||(r=e.len(t)),n(i)||(i=e.mean(t,r)),e.aggNums((function(t,e){return t+Math.pow(e-i,2)}),0,t)/r},e.stdev=function(t,r,n){return Math.sqrt(e.variance(t,r,n))},e.median=function(t){var r=t.slice().sort();return e.interp(r,.5)},e.interp=function(t,e){if(!n(e))throw"n should be a finite number";if((e=e*t.length-.5)<0)return t[0];if(e>t.length-1)return t[t.length-1];var r=e%1;return r*t[Math.ceil(e)]+(1-r)*t[Math.floor(e)]}},78614:function(t,e,r){"use strict";var n=r(25075);t.exports=function(t){return t?n(t):[0,0,0,1]}},63893:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.strTranslate,o=r(77922),s=r(18783).LINE_SPACING,l=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;e.convertToTspans=function(t,r,g){var S=t.text(),E=!t.attr("data-notex")&&r&&r._context.typesetMath&&"undefined"!=typeof MathJax&&S.match(l),P=n.select(t.node().parentNode);if(!P.empty()){var O=t.attr("class")?t.attr("class").split(" ")[0]:"text";return O+="-math",P.selectAll("svg."+O).remove(),P.selectAll("g."+O+"-group").remove(),t.style("display",null).attr({"data-unformatted":S,"data-math":"N"}),E?(r&&r._promises||[]).push(new Promise((function(e){t.style("display","none");var r=parseInt(t.node().style.fontSize,10),o={fontSize:r};!function(t,e,r){var a,o,s,l,h=parseInt((MathJax.version||"").split(".")[0]);if(2===h||3===h){var p=function(){var r="math-output-"+i.randstr({},64),a=(l=n.select("body").append("div").attr({id:r}).style({visibility:"hidden",position:"absolute","font-size":e.fontSize+"px"}).text(t.replace(u,"\\lt ").replace(c,"\\gt "))).node();return 2===h?MathJax.Hub.Typeset(a):MathJax.typeset([a])},d=function(){var e=l.select(2===h?".MathJax_SVG":".MathJax"),a=!e.empty()&&l.select("svg").node();if(a){var o,s=a.getBoundingClientRect();o=2===h?n.select("body").select("#MathJax_SVG_glyphs"):e.select("defs"),r(e,o,s)}else i.log("There was an error in the tex syntax.",t),r();l.remove()};2===h?MathJax.Hub.Queue((function(){return o=i.extendDeepAll({},MathJax.Hub.config),s=MathJax.Hub.processSectionDelay,void 0!==MathJax.Hub.processSectionDelay&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:"none",tex2jax:{inlineMath:f},displayAlign:"left"})}),(function(){if("SVG"!==(a=MathJax.Hub.config.menuSettings.renderer))return MathJax.Hub.setRenderer("SVG")}),p,d,(function(){if("SVG"!==a)return MathJax.Hub.setRenderer(a)}),(function(){return void 0!==s&&(MathJax.Hub.processSectionDelay=s),MathJax.Hub.Config(o)})):3===h&&(o=i.extendDeepAll({},MathJax.config),MathJax.config.tex||(MathJax.config.tex={}),MathJax.config.tex.inlineMath=f,"svg"!==(a=MathJax.config.startup.output)&&(MathJax.config.startup.output="svg"),MathJax.startup.defaultReady(),MathJax.startup.promise.then((function(){p(),d(),"svg"!==a&&(MathJax.config.startup.output=a),MathJax.config=o})))}else i.warn("No MathJax version:",MathJax.version)}(E[2],o,(function(n,i,o){P.selectAll("svg."+O).remove(),P.selectAll("g."+O+"-group").remove();var s=n&&n.select("svg");if(!s||!s.node())return I(),void e();var l=P.append("g").classed(O+"-group",!0).attr({"pointer-events":"none","data-unformatted":S,"data-math":"Y"});l.node().appendChild(s.node()),i&&i.node()&&s.node().insertBefore(i.node().cloneNode(!0),s.node().firstChild);var u=o.width,c=o.height;s.attr({class:O,height:c,preserveAspectRatio:"xMinYMin meet"}).style({overflow:"visible","pointer-events":"none"});var f=t.node().style.fill||"black",h=s.select("g");h.attr({fill:f,stroke:f});var p=h.node().getBoundingClientRect(),d=p.width,v=p.height;(d>u||v>c)&&(s.style("overflow","hidden"),d=(p=s.node().getBoundingClientRect()).width,v=p.height);var y=+t.attr("x"),m=+t.attr("y"),x=-(r||t.node().getBoundingClientRect().height)/4;if("y"===O[0])l.attr({transform:"rotate("+[-90,y,m]+")"+a(-d/2,x-v/2)});else if("l"===O[0])m=x-v/2;else if("a"===O[0]&&0!==O.indexOf("atitle"))y=0,m=x;else{var b=t.attr("text-anchor");y-=d*("middle"===b?.5:"end"===b?1:0),m=m+x-v/2}s.attr({x:y,y:m}),g&&g.call(t,l),e(l)}))}))):I(),t}function I(){P.empty()||(O=t.attr("class")+"-math",P.select("svg."+O).remove()),t.text("").style("white-space","pre");var r=function(t,e){e=e.replace(y," ");var r,a=!1,l=[],u=-1;function c(){u++;var e=document.createElementNS(o.svg,"tspan");n.select(e).attr({class:"line",dy:u*s+"em"}),t.appendChild(e),r=e;var i=l;if(l=[{node:e}],i.length>1)for(var a=1;a<i.length;a++)f(i[a])}function f(t){var e,i=t.type,a={};if("a"===i){e="a";var s=t.target,u=t.href,c=t.popup;u&&(a={"xlink:xlink:show":"_blank"===s||"_"!==s.charAt(0)?"new":"replace",target:s,"xlink:xlink:href":u},c&&(a.onclick='window.open(this.href.baseVal,this.target.baseVal,"'+c+'");return false;'))}else e="tspan";t.style&&(a.style=t.style);var f=document.createElementNS(o.svg,e);if("sup"===i||"sub"===i){g(r,v),r.appendChild(f);var h=document.createElementNS(o.svg,"tspan");g(h,v),n.select(h).attr("dy",d[i]),a.dy=p[i],r.appendChild(f),r.appendChild(h)}else r.appendChild(f);n.select(f).attr(a),r=t.node=f,l.push(t)}function g(t,e){t.appendChild(document.createTextNode(e))}function S(t){if(1!==l.length){var n=l.pop();t!==n.type&&i.log("Start tag <"+n.type+"> doesnt match end tag <"+t+">. Pretending it did match.",e),r=l[l.length-1].node}else i.log("Ignoring unexpected end tag </"+t+">.",e)}b.test(e)?c():(r=t,l=[{node:t}]);for(var E=e.split(m),P=0;P<E.length;P++){var O=E[P],I=O.match(x),D=I&&I[2].toLowerCase(),z=h[D];if("br"===D)c();else if(void 0===z)g(r,L(O));else if(I[1])S(D);else{var R=I[4],F={type:D},B=A(R,_);if(B?(B=B.replace(M,"$1 fill:"),z&&(B+=";"+z)):z&&(B=z),B&&(F.style=B),"a"===D){a=!0;var N=A(R,w);if(N){var j=C(N);j&&(F.href=j,F.target=A(R,T)||"_blank",F.popup=A(R,k))}}f(F)}}return a}(t.node(),S);r&&t.style("pointer-events","all"),e.positionText(t),g&&g.call(t)}};var u=/(<|&lt;|&#60;)/g,c=/(>|&gt;|&#62;)/g,f=[["$","$"],["\\(","\\)"]],h={sup:"font-size:70%",sub:"font-size:70%",b:"font-weight:bold",i:"font-style:italic",a:"cursor:pointer",span:"",em:"font-style:italic;font-weight:bold"},p={sub:"0.3em",sup:"-0.6em"},d={sub:"-0.21em",sup:"0.42em"},v="​",g=["http:","https:","mailto:","",void 0,":"],y=e.NEWLINES=/(\r\n?|\n)/g,m=/(<[^<>]*>)/,x=/<(\/?)([^ >]*)(\s+(.*))?>/i,b=/<br(\s+.*)?>/i;e.BR_TAG_ALL=/<br(\s+.*)?>/gi;var _=/(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i,w=/(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i,T=/(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i,k=/(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;function A(t,e){if(!t)return null;var r=t.match(e),n=r&&(r[3]||r[4]);return n&&L(n)}var M=/(^|;)\s*color:/;e.plainText=function(t,e){for(var r=void 0!==(e=e||{}).len&&-1!==e.len?e.len:1/0,n=void 0!==e.allowedTags?e.allowedTags:["br"],i="...".length,a=t.split(m),o=[],s="",l=0,u=0;u<a.length;u++){var c=a[u],f=c.match(x),h=f&&f[2].toLowerCase();if(h)-1!==n.indexOf(h)&&(o.push(c),s=h);else{var p=c.length;if(l+p<r)o.push(c),l+=p;else if(l<r){var d=r-l;s&&("br"!==s||d<=i||p<=i)&&o.pop(),r>i?o.push(c.substr(0,d-i)+"..."):o.push(c.substr(0,d));break}s=""}}return o.join("")};var S={mu:"μ",amp:"&",lt:"<",gt:">",nbsp:" ",times:"×",plusmn:"±",deg:"°"},E=/&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;function L(t){return t.replace(E,(function(t,e){return("#"===e.charAt(0)?function(t){if(!(t>1114111)){var e=String.fromCodePoint;if(e)return e(t);var r=String.fromCharCode;return t<=65535?r(t):r(55232+(t>>10),t%1024+56320)}}("x"===e.charAt(1)?parseInt(e.substr(2),16):parseInt(e.substr(1),10)):S[e])||t}))}function C(t){var e=encodeURI(decodeURI(t)),r=document.createElement("a"),n=document.createElement("a");r.href=t,n.href=e;var i=r.protocol,a=n.protocol;return-1!==g.indexOf(i)&&-1!==g.indexOf(a)?e:""}function P(t,e,r){var n,a,o,s=r.horizontalAlign,l=r.verticalAlign||"top",u=t.node().getBoundingClientRect(),c=e.node().getBoundingClientRect();return a="bottom"===l?function(){return u.bottom-n.height}:"middle"===l?function(){return u.top+(u.height-n.height)/2}:function(){return u.top},o="right"===s?function(){return u.right-n.width}:"center"===s?function(){return u.left+(u.width-n.width)/2}:function(){return u.left},function(){n=this.node().getBoundingClientRect();var t=o()-c.left,e=a()-c.top,s=r.gd||{};if(r.gd){s._fullLayout._calcInverseTransform(s);var l=i.apply3DTransform(s._fullLayout._invTransform)(t,e);t=l[0],e=l[1]}return this.style({top:e+"px",left:t+"px","z-index":1e3}),this}}e.convertEntities=L,e.sanitizeHTML=function(t){t=t.replace(y," ");for(var e=document.createElement("p"),r=e,i=[],a=t.split(m),o=0;o<a.length;o++){var s=a[o],l=s.match(x),u=l&&l[2].toLowerCase();if(u in h)if(l[1])i.length&&(r=i.pop());else{var c=l[4],f=A(c,_),p=f?{style:f}:{};if("a"===u){var d=A(c,w);if(d){var v=C(d);if(v){p.href=v;var g=A(c,T);g&&(p.target=g)}}}var b=document.createElement(u);r.appendChild(b),n.select(b).attr(p),r=b,i.push(b)}else r.appendChild(document.createTextNode(L(s)))}return e.innerHTML},e.lineCount=function(t){return t.selectAll("tspan.line").size()||1},e.positionText=function(t,e,r){return t.each((function(){var t=n.select(this);function i(e,r){return void 0===r?null===(r=t.attr(e))&&(t.attr(e,0),r=0):t.attr(e,r),r}var a=i("x",e),o=i("y",r);"text"===this.nodeName&&t.selectAll("tspan.line").attr({x:a,y:o})}))};var O="1px ";e.makeTextShadow=function(t){return"1px 1px 1px "+t+", -"+"1px -"+O+O+t+", "+"1px -"+O+O+t+", -"+O+O+O+t},e.makeEditable=function(t,e){var r=e.gd,i=e.delegate,a=n.dispatch("edit","input","cancel"),o=i||t;if(t.style({"pointer-events":i?"none":"all"}),1!==t.size())throw new Error("boo");function s(){var i,s,u,c,f;i=n.select(r).select(".svg-container"),s=i.append("div"),u=t.node().style,c=parseFloat(u.fontSize||12),void 0===(f=e.text)&&(f=t.attr("data-unformatted")),s.classed("plugin-editable editable",!0).style({position:"absolute","font-family":u.fontFamily||"Arial","font-size":c,color:e.fill||u.fill||"black",opacity:1,"background-color":e.background||"transparent",outline:"#ffffff33 1px solid",margin:[-c/8+1,0,0,-1].join("px ")+"px",padding:"0","box-sizing":"border-box"}).attr({contenteditable:!0}).text(f).call(P(t,i,e)).on("blur",(function(){r._editing=!1,t.text(this.textContent).style({opacity:1});var e,i=n.select(this).attr("class");(e=i?"."+i.split(" ")[0]+"-math-group":"[class*=-math-group]")&&n.select(t.node().parentNode).select(e).style({opacity:0});var o=this.textContent;n.select(this).transition().duration(0).remove(),n.select(document).on("mouseup",null),a.edit.call(t,o)})).on("focus",(function(){var t=this;r._editing=!0,n.select(document).on("mouseup",(function(){if(n.event.target===t)return!1;document.activeElement===s.node()&&s.node().blur()}))})).on("keyup",(function(){27===n.event.which?(r._editing=!1,t.style({opacity:1}),n.select(this).style({opacity:0}).on("blur",(function(){return!1})).transition().remove(),a.cancel.call(t,this.textContent)):(a.input.call(t,this.textContent),n.select(this).call(P(t,i,e)))})).on("keydown",(function(){13===n.event.which&&this.blur()})).call(l),t.style({opacity:0});var h,p=o.attr("class");(h=p?"."+p.split(" ")[0]+"-math-group":"[class*=-math-group]")&&n.select(t.node().parentNode).select(h).style({opacity:0})}function l(t){var e=t.node(),r=document.createRange();r.selectNodeContents(e);var n=window.getSelection();n.removeAllRanges(),n.addRange(r),e.focus()}return e.immediate?s():o.on("click",s),n.rebind(t,a,"on")}},79990:function(t,e){"use strict";var r={};function n(t){t&&null!==t.timer&&(clearTimeout(t.timer),t.timer=null)}e.throttle=function(t,e,i){var a=r[t],o=Date.now();if(!a){for(var s in r)r[s].ts<o-6e4&&delete r[s];a=r[t]={ts:0,timer:null}}function l(){i(),a.ts=Date.now(),a.onDone&&(a.onDone(),a.onDone=null)}n(a),o>a.ts+e?l():a.timer=setTimeout((function(){l(),a.timer=null}),e)},e.done=function(t){var e=r[t];return e&&e.timer?new Promise((function(t){var r=e.onDone;e.onDone=function(){r&&r(),t(),e.onDone=null}})):Promise.resolve()},e.clear=function(t){if(t)n(r[t]),delete r[t];else for(var i in r)e.clear(i)}},58163:function(t,e,r){"use strict";var n=r(92770);t.exports=function(t,e){if(t>0)return Math.log(t)/Math.LN10;var r=Math.log(Math.min(e[0],e[1]))/Math.LN10;return n(r)||(r=Math.log(Math.max(e[0],e[1]))/Math.LN10-6),r}},90973:function(t,e,r){"use strict";var n=t.exports={},i=r(78776).locationmodeToLayer,a=r(96892).zL;n.getTopojsonName=function(t){return[t.scope.replace(/ /g,"-"),"_",t.resolution.toString(),"m"].join("")},n.getTopojsonPath=function(t,e){return t+e+".json"},n.getTopojsonFeatures=function(t,e){var r=i[t.locationmode],n=e.objects[r];return a(e,n).features}},37815:function(t){"use strict";t.exports={moduleType:"locale",name:"en-US",dictionary:{"Click to enter Colorscale title":"Click to enter Colorscale title"},format:{date:"%m/%d/%Y"}}},92177:function(t){"use strict";t.exports={moduleType:"locale",name:"en",dictionary:{"Click to enter Colorscale title":"Click to enter Colourscale title"},format:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],periods:["AM","PM"],dateTime:"%a %b %e %X %Y",date:"%d/%m/%Y",time:"%H:%M:%S",decimal:".",thousands:",",grouping:[3],currency:["$",""],year:"%Y",month:"%b %Y",dayMonth:"%b %-d",dayMonthYear:"%b %-d, %Y"}}},14458:function(t,e,r){"use strict";var n=r(73972);t.exports=function(t){for(var e,r,i=n.layoutArrayContainers,a=n.layoutArrayRegexes,o=t.split("[")[0],s=0;s<a.length;s++)if((r=t.match(a[s]))&&0===r.index){e=r[0];break}if(e||(e=i[i.indexOf(o)]),!e)return!1;var l=t.substr(e.length);return l?!!(r=l.match(/^\[(0|[1-9][0-9]*)\](\.(.+))?$/))&&{array:e,index:Number(r[1]),property:r[3]||""}:{array:e,index:"",property:""}}},30962:function(t,e,r){"use strict";var n=r(71828),i=n.extendFlat,a=n.isPlainObject,o={valType:"flaglist",extras:["none"],flags:["calc","clearAxisTypes","plot","style","markerSize","colorbars"]},s={valType:"flaglist",extras:["none"],flags:["calc","plot","legend","ticks","axrange","layoutstyle","modebar","camera","arraydraw","colorbars"]},l=o.flags.slice().concat(["fullReplot"]),u=s.flags.slice().concat("layoutReplot");function c(t){for(var e={},r=0;r<t.length;r++)e[t[r]]=!1;return e}function f(t,e,r){var n=i({},t);for(var o in n){var s=n[o];a(s)&&(n[o]=h(s,e,0,o))}return"from-root"===r&&(n.editType=e),n}function h(t,e,r,n){if(t.valType){var a=i({},t);if(a.editType=e,Array.isArray(t.items)){a.items=new Array(t.items.length);for(var o=0;o<t.items.length;o++)a.items[o]=h(t.items[o],e)}return a}return f(t,e,"_"===n.charAt(0)?"nested":"from-root")}t.exports={traces:o,layout:s,traceFlags:function(){return c(l)},layoutFlags:function(){return c(u)},update:function(t,e){var r=e.editType;if(r&&"none"!==r)for(var n=r.split("+"),i=0;i<n.length;i++)t[n[i]]=!0},overrideAll:f}},58377:function(t,e,r){"use strict";var n=r(92770),i=r(27812),a=r(73972),o=r(71828),s=r(74875),l=r(41675),u=r(7901),c=l.cleanId,f=l.getFromTrace,h=a.traceIs;function p(t,e){var r=t[e],n=e.charAt(0);r&&"paper"!==r&&(t[e]=c(r,n,!0))}function d(t){function e(e,r){var n=t[e],i=t.title&&t.title[r];n&&!i&&(t.title||(t.title={}),t.title[r]=t[e],delete t[e])}t&&("string"!=typeof t.title&&"number"!=typeof t.title||(t.title={text:t.title}),e("titlefont","font"),e("titleposition","position"),e("titleside","side"),e("titleoffset","offset"))}function v(t){if(!o.isPlainObject(t))return!1;var e=t.name;return delete t.name,delete t.showlegend,("string"==typeof e||"number"==typeof e)&&String(e)}function g(t,e,r,n){if(r&&!n)return t;if(n&&!r)return e;if(!t.trim())return e;if(!e.trim())return t;var i,a=Math.min(t.length,e.length);for(i=0;i<a&&t.charAt(i)===e.charAt(i);i++);return t.substr(0,i).trim()}function y(t){var e="middle",r="center";return"string"==typeof t&&(-1!==t.indexOf("top")?e="top":-1!==t.indexOf("bottom")&&(e="bottom"),-1!==t.indexOf("left")?r="left":-1!==t.indexOf("right")&&(r="right")),e+" "+r}function m(t,e){return e in t&&"object"==typeof t[e]&&0===Object.keys(t[e]).length}e.clearPromiseQueue=function(t){Array.isArray(t._promises)&&t._promises.length>0&&o.log("Clearing previous rejected promises from queue."),t._promises=[]},e.cleanLayout=function(t){var r,n;t||(t={}),t.xaxis1&&(t.xaxis||(t.xaxis=t.xaxis1),delete t.xaxis1),t.yaxis1&&(t.yaxis||(t.yaxis=t.yaxis1),delete t.yaxis1),t.scene1&&(t.scene||(t.scene=t.scene1),delete t.scene1);var a=(s.subplotsRegistry.cartesian||{}).attrRegex,l=(s.subplotsRegistry.polar||{}).attrRegex,f=(s.subplotsRegistry.ternary||{}).attrRegex,h=(s.subplotsRegistry.gl3d||{}).attrRegex,v=Object.keys(t);for(r=0;r<v.length;r++){var g=v[r];if(a&&a.test(g)){var y=t[g];y.anchor&&"free"!==y.anchor&&(y.anchor=c(y.anchor)),y.overlaying&&(y.overlaying=c(y.overlaying)),y.type||(y.isdate?y.type="date":y.islog?y.type="log":!1===y.isdate&&!1===y.islog&&(y.type="linear")),"withzero"!==y.autorange&&"tozero"!==y.autorange||(y.autorange=!0,y.rangemode="tozero"),delete y.islog,delete y.isdate,delete y.categories,m(y,"domain")&&delete y.domain,void 0!==y.autotick&&(void 0===y.tickmode&&(y.tickmode=y.autotick?"auto":"linear"),delete y.autotick),d(y)}else if(l&&l.test(g))d(t[g].radialaxis);else if(f&&f.test(g)){var x=t[g];d(x.aaxis),d(x.baxis),d(x.caxis)}else if(h&&h.test(g)){var b=t[g],_=b.cameraposition;if(Array.isArray(_)&&4===_[0].length){var w=_[0],T=_[1],k=_[2],A=i([],w),M=[];for(n=0;n<3;++n)M[n]=T[n]+k*A[2+4*n];b.camera={eye:{x:M[0],y:M[1],z:M[2]},center:{x:T[0],y:T[1],z:T[2]},up:{x:0,y:0,z:1}},delete b.cameraposition}d(b.xaxis),d(b.yaxis),d(b.zaxis)}}var S=Array.isArray(t.annotations)?t.annotations.length:0;for(r=0;r<S;r++){var E=t.annotations[r];o.isPlainObject(E)&&(E.ref&&("paper"===E.ref?(E.xref="paper",E.yref="paper"):"data"===E.ref&&(E.xref="x",E.yref="y"),delete E.ref),p(E,"xref"),p(E,"yref"))}var L=Array.isArray(t.shapes)?t.shapes.length:0;for(r=0;r<L;r++){var C=t.shapes[r];o.isPlainObject(C)&&(p(C,"xref"),p(C,"yref"))}var P=Array.isArray(t.images)?t.images.length:0;for(r=0;r<P;r++){var O=t.images[r];o.isPlainObject(O)&&(p(O,"xref"),p(O,"yref"))}var I=t.legend;return I&&(I.x>3?(I.x=1.02,I.xanchor="left"):I.x<-2&&(I.x=-.02,I.xanchor="right"),I.y>3?(I.y=1.02,I.yanchor="bottom"):I.y<-2&&(I.y=-.02,I.yanchor="top")),d(t),"rotate"===t.dragmode&&(t.dragmode="orbit"),u.clean(t),t.template&&t.template.layout&&e.cleanLayout(t.template.layout),t},e.cleanData=function(t){for(var r=0;r<t.length;r++){var n,i=t[r];if("histogramy"===i.type&&"xbins"in i&&!("ybins"in i)&&(i.ybins=i.xbins,delete i.xbins),i.error_y&&"opacity"in i.error_y){var l=u.defaults,f=i.error_y.color||(h(i,"bar")?u.defaultLine:l[r%l.length]);i.error_y.color=u.addOpacity(u.rgb(f),u.opacity(f)*i.error_y.opacity),delete i.error_y.opacity}if("bardir"in i&&("h"!==i.bardir||!h(i,"bar")&&"histogram"!==i.type.substr(0,9)||(i.orientation="h",e.swapXYData(i)),delete i.bardir),"histogramy"===i.type&&e.swapXYData(i),"histogramx"!==i.type&&"histogramy"!==i.type||(i.type="histogram"),"scl"in i&&!("colorscale"in i)&&(i.colorscale=i.scl,delete i.scl),"reversescl"in i&&!("reversescale"in i)&&(i.reversescale=i.reversescl,delete i.reversescl),i.xaxis&&(i.xaxis=c(i.xaxis,"x")),i.yaxis&&(i.yaxis=c(i.yaxis,"y")),h(i,"gl3d")&&i.scene&&(i.scene=s.subplotsRegistry.gl3d.cleanId(i.scene)),!h(i,"pie-like")&&!h(i,"bar-like"))if(Array.isArray(i.textposition))for(n=0;n<i.textposition.length;n++)i.textposition[n]=y(i.textposition[n]);else i.textposition&&(i.textposition=y(i.textposition));var p=a.getModule(i);if(p&&p.colorbar){var x=p.colorbar.container,b=x?i[x]:i;b&&b.colorscale&&("YIGnBu"===b.colorscale&&(b.colorscale="YlGnBu"),"YIOrRd"===b.colorscale&&(b.colorscale="YlOrRd"))}if("surface"===i.type&&o.isPlainObject(i.contours)){var _=["x","y","z"];for(n=0;n<_.length;n++){var w=i.contours[_[n]];o.isPlainObject(w)&&(w.highlightColor&&(w.highlightcolor=w.highlightColor,delete w.highlightColor),w.highlightWidth&&(w.highlightwidth=w.highlightWidth,delete w.highlightWidth))}}if("candlestick"===i.type||"ohlc"===i.type){var T=!1!==(i.increasing||{}).showlegend,k=!1!==(i.decreasing||{}).showlegend,A=v(i.increasing),M=v(i.decreasing);if(!1!==A&&!1!==M){var S=g(A,M,T,k);S&&(i.name=S)}else!A&&!M||i.name||(i.name=A||M)}if(Array.isArray(i.transforms)){var E=i.transforms;for(n=0;n<E.length;n++){var L=E[n];if(o.isPlainObject(L))switch(L.type){case"filter":L.filtersrc&&(L.target=L.filtersrc,delete L.filtersrc),L.calendar&&(L.valuecalendar||(L.valuecalendar=L.calendar),delete L.calendar);break;case"groupby":if(L.styles=L.styles||L.style,L.styles&&!Array.isArray(L.styles)){var C=L.styles,P=Object.keys(C);L.styles=[];for(var O=0;O<P.length;O++)L.styles.push({target:P[O],value:C[P[O]]})}}}}m(i,"line")&&delete i.line,"marker"in i&&(m(i.marker,"line")&&delete i.marker.line,m(i,"marker")&&delete i.marker),u.clean(i),i.autobinx&&(delete i.autobinx,delete i.xbins),i.autobiny&&(delete i.autobiny,delete i.ybins),d(i),i.colorbar&&d(i.colorbar),i.marker&&i.marker.colorbar&&d(i.marker.colorbar),i.line&&i.line.colorbar&&d(i.line.colorbar),i.aaxis&&d(i.aaxis),i.baxis&&d(i.baxis)}},e.swapXYData=function(t){var e;if(o.swapAttrs(t,["?","?0","d?","?bins","nbins?","autobin?","?src","error_?"]),Array.isArray(t.z)&&Array.isArray(t.z[0])&&(t.transpose?delete t.transpose:t.transpose=!0),t.error_x&&t.error_y){var r=t.error_y,n="copy_ystyle"in r?r.copy_ystyle:!(r.color||r.thickness||r.width);o.swapAttrs(t,["error_?.copy_ystyle"]),n&&o.swapAttrs(t,["error_?.color","error_?.thickness","error_?.width"])}if("string"==typeof t.hoverinfo){var i=t.hoverinfo.split("+");for(e=0;e<i.length;e++)"x"===i[e]?i[e]="y":"y"===i[e]&&(i[e]="x");t.hoverinfo=i.join("+")}},e.coerceTraceIndices=function(t,e){if(n(e))return[e];if(!Array.isArray(e)||!e.length)return t.data.map((function(t,e){return e}));if(Array.isArray(e)){for(var r=[],i=0;i<e.length;i++)o.isIndex(e[i],t.data.length)?r.push(e[i]):o.warn("trace index (",e[i],") is not a number or is out of bounds");return r}return e},e.manageArrayContainers=function(t,e,r){var i=t.obj,a=t.parts,s=a.length,l=a[s-1],u=n(l);if(u&&null===e){var c=a.slice(0,s-1).join(".");o.nestedProperty(i,c).get().splice(l,1)}else u&&void 0===t.get()?(void 0===t.get()&&(r[t.astr]=null),t.set(e)):t.set(e)};var x=/(\.[^\[\]\.]+|\[[^\[\]\.]+\])$/;function b(t){var e=t.search(x);if(e>0)return t.substr(0,e)}e.hasParent=function(t,e){for(var r=b(e);r;){if(r in t)return!0;r=b(r)}return!1};var _=["x","y","z"];e.clearAxisTypes=function(t,e,r){for(var n=0;n<e.length;n++)for(var i=t._fullData[n],a=0;a<3;a++){var s=f(t,i,_[a]);if(s&&"log"!==s.type){var l=s._name,u=s._id.substr(1);if("scene"===u.substr(0,5)){if(void 0!==r[u])continue;l=u+"."+l}var c=l+".type";void 0===r[l]&&void 0===r[c]&&o.nestedProperty(t.layout,c).set(null)}}}},10641:function(t,e,r){"use strict";var n=r(72391);e._doPlot=n._doPlot,e.newPlot=n.newPlot,e.restyle=n.restyle,e.relayout=n.relayout,e.redraw=n.redraw,e.update=n.update,e._guiRestyle=n._guiRestyle,e._guiRelayout=n._guiRelayout,e._guiUpdate=n._guiUpdate,e._storeDirectGUIEdit=n._storeDirectGUIEdit,e.react=n.react,e.extendTraces=n.extendTraces,e.prependTraces=n.prependTraces,e.addTraces=n.addTraces,e.deleteTraces=n.deleteTraces,e.moveTraces=n.moveTraces,e.purge=n.purge,e.addFrames=n.addFrames,e.deleteFrames=n.deleteFrames,e.animate=n.animate,e.setPlotConfig=n.setPlotConfig,e.toImage=r(403),e.validate=r(84936),e.downloadImage=r(7239);var i=r(96318);e.makeTemplate=i.makeTemplate,e.validateTemplate=i.validateTemplate},6611:function(t,e,r){"use strict";var n=r(41965),i=r(64213),a=r(47769),o=r(65888).sorterAsc,s=r(73972);e.containerArrayMatch=r(14458);var l=e.isAddVal=function(t){return"add"===t||n(t)},u=e.isRemoveVal=function(t){return null===t||"remove"===t};e.applyContainerArrayChanges=function(t,e,r,n,c){var f=e.astr,h=s.getComponentMethod(f,"supplyLayoutDefaults"),p=s.getComponentMethod(f,"draw"),d=s.getComponentMethod(f,"drawOne"),v=n.replot||n.recalc||h===i||p===i,g=t.layout,y=t._fullLayout;if(r[""]){Object.keys(r).length>1&&a.warn("Full array edits are incompatible with other edits",f);var m=r[""][""];if(u(m))e.set(null);else{if(!Array.isArray(m))return a.warn("Unrecognized full array edit value",f,m),!0;e.set(m)}return!v&&(h(g,y),p(t),!0)}var x,b,_,w,T,k,A,M,S=Object.keys(r).map(Number).sort(o),E=e.get(),L=E||[],C=c(y,f).get(),P=[],O=-1,I=L.length;for(x=0;x<S.length;x++)if(w=r[_=S[x]],T=Object.keys(w),k=w[""],A=l(k),_<0||_>L.length-(A?0:1))a.warn("index out of range",f,_);else if(void 0!==k)T.length>1&&a.warn("Insertion & removal are incompatible with edits to the same index.",f,_),u(k)?P.push(_):A?("add"===k&&(k={}),L.splice(_,0,k),C&&C.splice(_,0,{})):a.warn("Unrecognized full object edit value",f,_,k),-1===O&&(O=_);else for(b=0;b<T.length;b++)M=f+"["+_+"].",c(L[_],T[b],M).set(w[T[b]]);for(x=P.length-1;x>=0;x--)L.splice(P[x],1),C&&C.splice(P[x],1);if(L.length?E||e.set(L):e.set(null),v)return!1;if(h(g,y),d!==i){var D;if(-1===O)D=S;else{for(I=Math.max(L.length,I),D=[],x=0;x<S.length&&!((_=S[x])>=O);x++)D.push(_);for(x=O;x<I;x++)D.push(x)}for(x=0;x<D.length;x++)d(t,D[x])}else p(t);return!0}},72391:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(57035),o=r(71828),s=o.nestedProperty,l=r(11086),u=r(10847),c=r(73972),f=r(86281),h=r(74875),p=r(89298),d=r(91424),v=r(7901),g=r(4305).initInteractions,y=r(77922),m=r(47322).clearOutline,x=r(72075).dfltConfig,b=r(6611),_=r(58377),w=r(61549),T=r(30962),k=r(85555).AX_NAME_PATTERN,A=0;function M(t){var e=t._fullLayout;e._redrawFromAutoMarginCount?e._redrawFromAutoMarginCount--:t.emit("plotly_afterplot")}function S(t,e){try{t._fullLayout._paper.style("background",e)}catch(t){o.error(t)}}function E(t,e){S(t,v.combine(e,"white"))}function L(t,e){if(!t._context){t._context=o.extendDeep({},x);var r=n.select("base");t._context._baseUrl=r.size()&&r.attr("href")?window.location.href.split("#")[0]:""}var i,s,l,u=t._context;if(e){for(s=Object.keys(e),i=0;i<s.length;i++)"editable"!==(l=s[i])&&"edits"!==l&&l in u&&("setBackground"===l&&"opaque"===e[l]?u[l]=E:u[l]=e[l]);e.plot3dPixelRatio&&!u.plotGlPixelRatio&&(u.plotGlPixelRatio=u.plot3dPixelRatio);var c=e.editable;if(void 0!==c)for(u.editable=c,s=Object.keys(u.edits),i=0;i<s.length;i++)u.edits[s[i]]=c;if(e.edits)for(s=Object.keys(e.edits),i=0;i<s.length;i++)(l=s[i])in u.edits&&(u.edits[l]=e.edits[l]);u._exportedPlot=e._exportedPlot}u.staticPlot&&(u.editable=!1,u.edits={},u.autosizable=!1,u.scrollZoom=!1,u.doubleClick=!1,u.showTips=!1,u.showLink=!1,u.displayModeBar=!1),"hover"!==u.displayModeBar||a||(u.displayModeBar=!0),"transparent"!==u.setBackground&&"function"==typeof u.setBackground||(u.setBackground=S),u._hasZeroHeight=u._hasZeroHeight||0===t.clientHeight,u._hasZeroWidth=u._hasZeroWidth||0===t.clientWidth;var f=u.scrollZoom,h=u._scrollZoom={};if(!0===f)h.cartesian=1,h.gl3d=1,h.geo=1,h.mapbox=1;else if("string"==typeof f){var p=f.split("+");for(i=0;i<p.length;i++)h[p[i]]=1}else!1!==f&&(h.gl3d=1,h.geo=1,h.mapbox=1)}function C(t,e){var r,n,i=e+1,a=[];for(r=0;r<t.length;r++)(n=t[r])<0?a.push(i+n):a.push(n);return a}function P(t,e,r){var n,i;for(n=0;n<e.length;n++){if((i=e[n])!==parseInt(i,10))throw new Error("all values in "+r+" must be integers");if(i>=t.data.length||i<-t.data.length)throw new Error(r+" must be valid indices for gd.data.");if(e.indexOf(i,n+1)>-1||i>=0&&e.indexOf(-t.data.length+i)>-1||i<0&&e.indexOf(t.data.length+i)>-1)throw new Error("each index in "+r+" must be unique.")}}function O(t,e,r){if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if(void 0===e)throw new Error("currentIndices is a required argument.");if(Array.isArray(e)||(e=[e]),P(t,e,"currentIndices"),void 0===r||Array.isArray(r)||(r=[r]),void 0!==r&&P(t,r,"newIndices"),void 0!==r&&e.length!==r.length)throw new Error("current and new indices must be of equal length.")}function I(t,e,r,n,a){!function(t,e,r,n){var i=o.isPlainObject(n);if(!Array.isArray(t.data))throw new Error("gd.data must be an array");if(!o.isPlainObject(e))throw new Error("update must be a key:value object");if(void 0===r)throw new Error("indices must be an integer or array of integers");for(var a in P(t,r,"indices"),e){if(!Array.isArray(e[a])||e[a].length!==r.length)throw new Error("attribute "+a+" must be an array of length equal to indices array length");if(i&&(!(a in n)||!Array.isArray(n[a])||n[a].length!==e[a].length))throw new Error("when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object")}}(t,e,r,n);for(var l=function(t,e,r,n){var a,l,u,c,f,h=o.isPlainObject(n),p=[];for(var d in Array.isArray(r)||(r=[r]),r=C(r,t.data.length-1),e)for(var v=0;v<r.length;v++){if(a=t.data[r[v]],l=(u=s(a,d)).get(),c=e[d][v],!o.isArrayOrTypedArray(c))throw new Error("attribute: "+d+" index: "+v+" must be an array");if(!o.isArrayOrTypedArray(l))throw new Error("cannot extend missing or non-array attribute: "+d);if(l.constructor!==c.constructor)throw new Error("cannot extend array with an array of a different type: "+d);f=h?n[d][v]:n,i(f)||(f=-1),p.push({prop:u,target:l,insert:c,maxp:Math.floor(f)})}return p}(t,e,r,n),u={},c={},f=0;f<l.length;f++){var h=l[f].prop,p=l[f].maxp,d=a(l[f].target,l[f].insert,p);h.set(d[0]),Array.isArray(u[h.astr])||(u[h.astr]=[]),u[h.astr].push(d[1]),Array.isArray(c[h.astr])||(c[h.astr]=[]),c[h.astr].push(l[f].target.length)}return{update:u,maxPoints:c}}function D(t,e){var r=new t.constructor(t.length+e.length);return r.set(t),r.set(e,t.length),r}function z(t,r,n,i){t=o.getGraphDiv(t),_.clearPromiseQueue(t);var a={};if("string"==typeof r)a[r]=n;else{if(!o.isPlainObject(r))return o.warn("Restyle fail.",r,n,i),Promise.reject();a=o.extendFlat({},r),void 0===i&&(i=n)}Object.keys(a).length&&(t.changed=!0);var s=_.coerceTraceIndices(t,i),l=N(t,a,s),c=l.flags;c.calc&&(t.calcdata=void 0),c.clearAxisTypes&&_.clearAxisTypes(t,s,{});var f=[];c.fullReplot?f.push(e._doPlot):(f.push(h.previousPromises),h.supplyDefaults(t),c.markerSize&&(h.doCalcdata(t),H(f)),c.style&&f.push(w.doTraceStyle),c.colorbars&&f.push(w.doColorBars),f.push(M)),f.push(h.rehover,h.redrag,h.reselect),u.add(t,z,[t,l.undoit,l.traces],z,[t,l.redoit,l.traces]);var p=o.syncOrAsync(f,t);return p&&p.then||(p=Promise.resolve()),p.then((function(){return t.emit("plotly_restyle",l.eventData),t}))}function R(t){return void 0===t?null:t}function F(t,e){return e?function(e,r,n){var i=s(e,r),a=i.set;return i.set=function(e){B((n||"")+r,i.get(),e,t),a(e)},i}:s}function B(t,e,r,n){if(Array.isArray(e)||Array.isArray(r))for(var i=Array.isArray(e)?e:[],a=Array.isArray(r)?r:[],s=Math.max(i.length,a.length),l=0;l<s;l++)B(t+"["+l+"]",i[l],a[l],n);else if(o.isPlainObject(e)||o.isPlainObject(r)){var u=o.isPlainObject(e)?e:{},c=o.isPlainObject(r)?r:{},f=o.extendFlat({},u,c);for(var h in f)B(t+"."+h,u[h],c[h],n)}else void 0===n[t]&&(n[t]=R(e))}function N(t,e,r){var n,i=t._fullLayout,a=t._fullData,l=t.data,u=i._guiEditing,d=F(i._preGUI,u),v=o.extendDeepAll({},e);j(e);var g,y=T.traceFlags(),m={},x={};function b(){return r.map((function(){}))}function w(t){var e=p.id2name(t);-1===g.indexOf(e)&&g.push(e)}function k(t){return"LAYOUT"+t+".autorange"}function A(t){return"LAYOUT"+t+".range"}function M(t){for(var e=t;e<a.length;e++)if(a[e]._input===l[t])return a[e]}function S(n,a,o){if(Array.isArray(n))n.forEach((function(t){S(t,a,o)}));else if(!(n in e)&&!_.hasParent(e,n)){var s;if("LAYOUT"===n.substr(0,6))s=d(t.layout,n.replace("LAYOUT",""));else{var c=r[o];s=F(i._tracePreGUI[M(c)._fullInput.uid],u)(l[c],n)}n in x||(x[n]=b()),void 0===x[n][o]&&(x[n][o]=R(s.get())),void 0!==a&&s.set(a)}}function E(t){return function(e){return a[e][t]}}function L(t){return function(e,n){return!1===e?a[r[n]][t]:null}}for(var C in e){if(_.hasParent(e,C))throw new Error("cannot set "+C+" and a parent attribute simultaneously");var P,O,I,D,z,B,N=e[C];if("autobinx"!==C&&"autobiny"!==C||(C=C.charAt(C.length-1)+"bins",N=Array.isArray(N)?N.map(L(C)):!1===N?r.map(E(C)):null),m[C]=N,"LAYOUT"!==C.substr(0,6)){for(x[C]=b(),n=0;n<r.length;n++)if(P=l[r[n]],O=M(r[n]),D=(I=F(i._tracePreGUI[O._fullInput.uid],u)(P,C)).get(),void 0!==(z=Array.isArray(N)?N[n%N.length]:N)){var U=I.parts[I.parts.length-1],V=C.substr(0,C.length-U.length-1),H=V?V+".":"",q=V?s(O,V).get():O;if((B=f.getTraceValObject(O,I.parts))&&B.impliedEdits&&null!==z)for(var G in B.impliedEdits)S(o.relativeAttr(C,G),B.impliedEdits[G],n);else if("thicknessmode"!==U&&"lenmode"!==U||D===z||"fraction"!==z&&"pixels"!==z||!q){if("type"===C&&("pie"===z!=("pie"===D)||"funnelarea"===z!=("funnelarea"===D))){var Z="x",Y="y";"bar"!==z&&"bar"!==D||"h"!==P.orientation||(Z="y",Y="x"),o.swapAttrs(P,["?","?src"],"labels",Z),o.swapAttrs(P,["d?","?0"],"label",Z),o.swapAttrs(P,["?","?src"],"values",Y),"pie"===D||"funnelarea"===D?(s(P,"marker.color").set(s(P,"marker.colors").get()),i._pielayer.selectAll("g.trace").remove()):c.traceIs(P,"cartesian")&&s(P,"marker.colors").set(s(P,"marker.color").get())}}else{var W=i._size,X=q.orient,J="top"===X||"bottom"===X;if("thicknessmode"===U){var K=J?W.h:W.w;S(H+"thickness",q.thickness*("fraction"===z?1/K:K),n)}else{var $=J?W.w:W.h;S(H+"len",q.len*("fraction"===z?1/$:$),n)}}if(x[C][n]=R(D),-1!==["swapxy","swapxyaxes","orientation","orientationaxes"].indexOf(C)){if("orientation"===C){I.set(z);var Q=P.x&&!P.y?"h":"v";if((I.get()||Q)===O.orientation)continue}else"orientationaxes"===C&&(P.orientation={v:"h",h:"v"}[O.orientation]);_.swapXYData(P),y.calc=y.clearAxisTypes=!0}else-1!==h.dataArrayContainers.indexOf(I.parts[0])?(_.manageArrayContainers(I,z,x),y.calc=!0):(B?B.arrayOk&&!c.traceIs(O,"regl")&&(o.isArrayOrTypedArray(z)||o.isArrayOrTypedArray(D))?y.calc=!0:T.update(y,B):y.calc=!0,I.set(z))}if(-1!==["swapxyaxes","orientationaxes"].indexOf(C)&&p.swap(t,r),"orientationaxes"===C){var tt=s(t.layout,"hovermode"),et=tt.get();"x"===et?tt.set("y"):"y"===et?tt.set("x"):"x unified"===et?tt.set("y unified"):"y unified"===et&&tt.set("x unified")}if(-1!==["orientation","type"].indexOf(C)){for(g=[],n=0;n<r.length;n++){var rt=l[r[n]];c.traceIs(rt,"cartesian")&&(w(rt.xaxis||"x"),w(rt.yaxis||"y"))}S(g.map(k),!0,0),S(g.map(A),[0,1],0)}}else I=d(t.layout,C.replace("LAYOUT","")),x[C]=[R(I.get())],I.set(Array.isArray(N)?N[0]:N),y.calc=!0}return(y.calc||y.plot)&&(y.fullReplot=!0),{flags:y,undoit:x,redoit:m,traces:r,eventData:o.extendDeepNoArrays([],[v,r])}}function j(t){var e,r,n,i=o.counterRegex("axis",".title",!1,!1),a=/colorbar\.title$/,s=Object.keys(t);for(e=0;e<s.length;e++)r=s[e],n=t[r],"title"!==r&&!i.test(r)&&!a.test(r)||"string"!=typeof n&&"number"!=typeof n?r.indexOf("titlefont")>-1&&-1===r.indexOf("grouptitlefont")?l(r,r.replace("titlefont","title.font")):r.indexOf("titleposition")>-1?l(r,r.replace("titleposition","title.position")):r.indexOf("titleside")>-1?l(r,r.replace("titleside","title.side")):r.indexOf("titleoffset")>-1&&l(r,r.replace("titleoffset","title.offset")):l(r,r.replace("title","title.text"));function l(e,r){t[r]=t[e],delete t[e]}}function U(t,e,r){t=o.getGraphDiv(t),_.clearPromiseQueue(t);var n={};if("string"==typeof e)n[e]=r;else{if(!o.isPlainObject(e))return o.warn("Relayout fail.",e,r),Promise.reject();n=o.extendFlat({},e)}Object.keys(n).length&&(t.changed=!0);var i=Y(t,n),a=i.flags;a.calc&&(t.calcdata=void 0);var s=[h.previousPromises];a.layoutReplot?s.push(w.layoutReplot):Object.keys(n).length&&(V(t,a,i)||h.supplyDefaults(t),a.legend&&s.push(w.doLegend),a.layoutstyle&&s.push(w.layoutStyles),a.axrange&&H(s,i.rangesAltered),a.ticks&&s.push(w.doTicksRelayout),a.modebar&&s.push(w.doModeBar),a.camera&&s.push(w.doCamera),a.colorbars&&s.push(w.doColorBars),s.push(M)),s.push(h.rehover,h.redrag,h.reselect),u.add(t,U,[t,i.undoit],U,[t,i.redoit]);var l=o.syncOrAsync(s,t);return l&&l.then||(l=Promise.resolve(t)),l.then((function(){return t.emit("plotly_relayout",i.eventData),t}))}function V(t,e,r){var n=t._fullLayout;if(!e.axrange)return!1;for(var i in e)if("axrange"!==i&&e[i])return!1;for(var a in r.rangesAltered){var o=p.id2name(a),s=t.layout[o],l=n[o];if(l.autorange=s.autorange,s.range&&(l.range=s.range.slice()),l.cleanRange(),l._matchGroup)for(var u in l._matchGroup)if(u!==a){var c=n[p.id2name(u)];c.autorange=l.autorange,c.range=l.range.slice(),c._input.range=l.range.slice()}}return!0}function H(t,e){var r=e?function(t){var r=[];for(var n in e){var i=p.getFromId(t,n);if(r.push(n),-1!==(i.ticklabelposition||"").indexOf("inside")&&i._anchorAxis&&r.push(i._anchorAxis._id),i._matchGroup)for(var a in i._matchGroup)e[a]||r.push(a)}return p.draw(t,r,{skipTitle:!0})}:function(t){return p.draw(t,"redraw")};t.push(m,w.doAutoRangeAndConstraints,r,w.drawData,w.finalDraw)}var q=/^[xyz]axis[0-9]*\.range(\[[0|1]\])?$/,G=/^[xyz]axis[0-9]*\.autorange$/,Z=/^[xyz]axis[0-9]*\.domain(\[[0|1]\])?$/;function Y(t,e){var r,n,i,a=t.layout,l=t._fullLayout,u=l._guiEditing,h=F(l._preGUI,u),d=Object.keys(e),v=p.list(t),g=o.extendDeepAll({},e),y={};for(j(e),d=Object.keys(e),n=0;n<d.length;n++)if(0===d[n].indexOf("allaxes")){for(i=0;i<v.length;i++){var m=v[i]._id.substr(1),x=-1!==m.indexOf("scene")?m+".":"",w=d[n].replace("allaxes",x+v[i]._name);e[w]||(e[w]=e[d[n]])}delete e[d[n]]}var A=T.layoutFlags(),M={},S={};function E(t,r){if(Array.isArray(t))t.forEach((function(t){E(t,r)}));else if(!(t in e)&&!_.hasParent(e,t)){var n=h(a,t);t in S||(S[t]=R(n.get())),void 0!==r&&n.set(r)}}var L,C={};function P(t){var e=p.name2id(t.split(".")[0]);return C[e]=1,e}for(var O in e){if(_.hasParent(e,O))throw new Error("cannot set "+O+" and a parent attribute simultaneously");for(var I=h(a,O),D=e[O],z=I.parts.length-1;z>0&&"string"!=typeof I.parts[z];)z--;var B=I.parts[z],N=I.parts[z-1]+"."+B,U=I.parts.slice(0,z).join("."),V=s(t.layout,U).get(),H=s(l,U).get(),Y=I.get();if(void 0!==D){M[O]=D,S[O]="reverse"===B?D:R(Y);var X=f.getLayoutValObject(l,I.parts);if(X&&X.impliedEdits&&null!==D)for(var J in X.impliedEdits)E(o.relativeAttr(O,J),X.impliedEdits[J]);if(-1!==["width","height"].indexOf(O))if(D){E("autosize",null);var K="height"===O?"width":"height";E(K,l[K])}else l[O]=t._initialAutoSize[O];else if("autosize"===O)E("width",D?null:l.width),E("height",D?null:l.height);else if(N.match(q))P(N),s(l,U+"._inputRange").set(null);else if(N.match(G)){P(N),s(l,U+"._inputRange").set(null);var $=s(l,U).get();$._inputDomain&&($._input.domain=$._inputDomain.slice())}else N.match(Z)&&s(l,U+"._inputDomain").set(null);if("type"===B){L=V;var Q="linear"===H.type&&"log"===D,tt="log"===H.type&&"linear"===D;if(Q||tt){if(L&&L.range)if(H.autorange)Q&&(L.range=L.range[1]>L.range[0]?[1,2]:[2,1]);else{var et=L.range[0],rt=L.range[1];Q?(et<=0&&rt<=0&&E(U+".autorange",!0),et<=0?et=rt/1e6:rt<=0&&(rt=et/1e6),E(U+".range[0]",Math.log(et)/Math.LN10),E(U+".range[1]",Math.log(rt)/Math.LN10)):(E(U+".range[0]",Math.pow(10,et)),E(U+".range[1]",Math.pow(10,rt)))}else E(U+".autorange",!0);Array.isArray(l._subplots.polar)&&l._subplots.polar.length&&l[I.parts[0]]&&"radialaxis"===I.parts[1]&&delete l[I.parts[0]]._subplot.viewInitial["radialaxis.range"],c.getComponentMethod("annotations","convertCoords")(t,H,D,E),c.getComponentMethod("images","convertCoords")(t,H,D,E)}else E(U+".autorange",!0),E(U+".range",null);s(l,U+"._inputRange").set(null)}else if(B.match(k)){var nt=s(l,O).get(),it=(D||{}).type;it&&"-"!==it||(it="linear"),c.getComponentMethod("annotations","convertCoords")(t,nt,it,E),c.getComponentMethod("images","convertCoords")(t,nt,it,E)}var at=b.containerArrayMatch(O);if(at){r=at.array,n=at.index;var ot=at.property,st=X||{editType:"calc"};""!==n&&""===ot&&(b.isAddVal(D)?S[O]=null:b.isRemoveVal(D)?S[O]=(s(a,r).get()||[])[n]:o.warn("unrecognized full object value",e)),T.update(A,st),y[r]||(y[r]={});var lt=y[r][n];lt||(lt=y[r][n]={}),lt[ot]=D,delete e[O]}else"reverse"===B?(V.range?V.range.reverse():(E(U+".autorange",!0),V.range=[1,0]),H.autorange?A.calc=!0:A.plot=!0):("dragmode"===O&&(!1===D&&!1!==Y||!1!==D&&!1===Y)||l._has("scatter-like")&&l._has("regl")&&"dragmode"===O&&("lasso"===D||"select"===D)&&"lasso"!==Y&&"select"!==Y||l._has("gl2d")?A.plot=!0:X?T.update(A,X):A.calc=!0,I.set(D))}}for(r in y)b.applyContainerArrayChanges(t,h(a,r),y[r],A,h)||(A.plot=!0);for(var ut in C){var ct=(L=p.getFromId(t,ut))&&L._constraintGroup;if(ct)for(var ft in A.calc=!0,ct)C[ft]||(p.getFromId(t,ft)._constraintShrinkable=!0)}return(W(t)||e.height||e.width)&&(A.plot=!0),(A.plot||A.calc)&&(A.layoutReplot=!0),{flags:A,rangesAltered:C,undoit:S,redoit:M,eventData:g}}function W(t){var e=t._fullLayout,r=e.width,n=e.height;return t.layout.autosize&&h.plotAutoSize(t,t.layout,e),e.width!==r||e.height!==n}function X(t,r,n,i){t=o.getGraphDiv(t),_.clearPromiseQueue(t),o.isPlainObject(r)||(r={}),o.isPlainObject(n)||(n={}),Object.keys(r).length&&(t.changed=!0),Object.keys(n).length&&(t.changed=!0);var a=_.coerceTraceIndices(t,i),s=N(t,o.extendFlat({},r),a),l=s.flags,c=Y(t,o.extendFlat({},n)),f=c.flags;(l.calc||f.calc)&&(t.calcdata=void 0),l.clearAxisTypes&&_.clearAxisTypes(t,a,n);var p=[];f.layoutReplot?p.push(w.layoutReplot):l.fullReplot?p.push(e._doPlot):(p.push(h.previousPromises),V(t,f,c)||h.supplyDefaults(t),l.style&&p.push(w.doTraceStyle),(l.colorbars||f.colorbars)&&p.push(w.doColorBars),f.legend&&p.push(w.doLegend),f.layoutstyle&&p.push(w.layoutStyles),f.axrange&&H(p,c.rangesAltered),f.ticks&&p.push(w.doTicksRelayout),f.modebar&&p.push(w.doModeBar),f.camera&&p.push(w.doCamera),p.push(M)),p.push(h.rehover,h.redrag,h.reselect),u.add(t,X,[t,s.undoit,c.undoit,s.traces],X,[t,s.redoit,c.redoit,s.traces]);var d=o.syncOrAsync(p,t);return d&&d.then||(d=Promise.resolve(t)),d.then((function(){return t.emit("plotly_update",{data:s.eventData,layout:c.eventData}),t}))}function J(t){return function(e){e._fullLayout._guiEditing=!0;var r=t.apply(null,arguments);return e._fullLayout._guiEditing=!1,r}}var K=[{pattern:/^hiddenlabels/,attr:"legend.uirevision"},{pattern:/^((x|y)axis\d*)\.((auto)?range|title\.text)/},{pattern:/axis\d*\.showspikes$/,attr:"modebar.uirevision"},{pattern:/(hover|drag)mode$/,attr:"modebar.uirevision"},{pattern:/^(scene\d*)\.camera/},{pattern:/^(geo\d*)\.(projection|center|fitbounds)/},{pattern:/^(ternary\d*\.[abc]axis)\.(min|title\.text)$/},{pattern:/^(polar\d*\.radialaxis)\.((auto)?range|angle|title\.text)/},{pattern:/^(polar\d*\.angularaxis)\.rotation/},{pattern:/^(mapbox\d*)\.(center|zoom|bearing|pitch)/},{pattern:/^legend\.(x|y)$/,attr:"editrevision"},{pattern:/^(shapes|annotations)/,attr:"editrevision"},{pattern:/^title\.text$/,attr:"editrevision"}],$=[{pattern:/^selectedpoints$/,attr:"selectionrevision"},{pattern:/(^|value\.)visible$/,attr:"legend.uirevision"},{pattern:/^dimensions\[\d+\]\.constraintrange/},{pattern:/^node\.(x|y|groups)/},{pattern:/^level$/},{pattern:/(^|value\.)name$/},{pattern:/colorbar\.title\.text$/},{pattern:/colorbar\.(x|y)$/,attr:"editrevision"}];function Q(t,e){for(var r=0;r<e.length;r++){var n=e[r],i=t.match(n.pattern);if(i){var a=i[1]||"";return{head:a,tail:t.substr(a.length+1),attr:n.attr}}}}function tt(t,e){var r=s(e,t).get();if(void 0!==r)return r;var n=t.split(".");for(n.pop();n.length>1;)if(n.pop(),void 0!==(r=s(e,n.join(".")+".uirevision").get()))return r;return e.uirevision}function et(t,e){for(var r=0;r<e.length;r++)if(e[r]._fullInput.uid===t)return r;return-1}function rt(t,e,r){for(var n=0;n<e.length;n++)if(e[n].uid===t)return n;return!e[r]||e[r].uid?-1:r}function nt(t,e){var r=o.isPlainObject(t),n=Array.isArray(t);return r||n?(r&&o.isPlainObject(e)||n&&Array.isArray(e))&&JSON.stringify(t)===JSON.stringify(e):t===e}function it(t,e,r,n){var i,a,l,u=n.getValObject,c=n.flags,f=n.immutable,h=n.inArray,p=n.arrayIndex;function d(){var t=i.editType;h&&-1!==t.indexOf("arraydraw")?o.pushUnique(c.arrays[h],p):(T.update(c,i),"none"!==t&&c.nChanges++,n.transition&&i.anim&&c.nChangesAnim++,(q.test(l)||G.test(l))&&(c.rangesAltered[r[0]]=1),Z.test(l)&&s(e,"_inputDomain").set(null),"datarevision"===a&&(c.newDataRevision=1))}function v(t){return"data_array"===t.valType||t.arrayOk}for(a in t){if(c.calc&&!n.transition)return;var g=t[a],y=e[a],m=r.concat(a);if(l=m.join("."),"_"!==a.charAt(0)&&"function"!=typeof g&&g!==y){if(("tick0"===a||"dtick"===a)&&"geo"!==r[0]){var x=e.tickmode;if("auto"===x||"array"===x||!x)continue}if(("range"!==a||!e.autorange)&&("zmin"!==a&&"zmax"!==a||"contourcarpet"!==e.type)&&(i=u(m))&&(!i._compareAsJSON||JSON.stringify(g)!==JSON.stringify(y))){var b,_=i.valType,w=v(i),k=Array.isArray(g),A=Array.isArray(y);if(k&&A){var M="_input_"+a,S=t[M],E=e[M];if(Array.isArray(S)&&S===E)continue}if(void 0===y)w&&k?c.calc=!0:d();else if(i._isLinkedToArray){var L=[],C=!1;h||(c.arrays[a]=L);var P=Math.min(g.length,y.length),O=Math.max(g.length,y.length);if(P!==O){if("arraydraw"!==i.editType){d();continue}C=!0}for(b=0;b<P;b++)it(g[b],y[b],m.concat(b),o.extendFlat({inArray:a,arrayIndex:b},n));if(C)for(b=P;b<O;b++)L.push(b)}else!_&&o.isPlainObject(g)?it(g,y,m,n):w?k&&A?(f&&(c.calc=!0),(f||n.newDataRevision)&&d()):k!==A?c.calc=!0:d():k&&A&&g.length===y.length&&String(g)===String(y)||d()}}}for(a in e)if(!(a in t)&&"_"!==a.charAt(0)&&"function"!=typeof e[a]){if(v(i=u(r.concat(a)))&&Array.isArray(e[a]))return void(c.calc=!0);d()}}function at(t,e){var r;for(r in t)if("_"!==r.charAt(0)){var n=t[r],i=e[r];if(n!==i)if(o.isPlainObject(n)&&o.isPlainObject(i)){if(at(n,i))return!0}else{if(!Array.isArray(n)||!Array.isArray(i))return!0;if(n.length!==i.length)return!0;for(var a=0;a<n.length;a++)if(n[a]!==i[a]){if(!o.isPlainObject(n[a])||!o.isPlainObject(i[a]))return!0;if(at(n[a],i[a]))return!0}}}}function ot(t){var e=t._fullLayout,r=t.getBoundingClientRect();if(!o.equalDomRects(r,e._lastBBox)){var n=e._invTransform=o.inverseTransformMatrix(o.getFullTransformMatrix(t));e._invScaleX=Math.sqrt(n[0][0]*n[0][0]+n[0][1]*n[0][1]+n[0][2]*n[0][2]),e._invScaleY=Math.sqrt(n[1][0]*n[1][0]+n[1][1]*n[1][1]+n[1][2]*n[1][2]),e._lastBBox=r}}e.animate=function(t,e,r){if(t=o.getGraphDiv(t),!o.isPlotDiv(t))throw new Error("This element is not a Plotly plot: "+t+". It's likely that you've failed to create a plot before animating it. For more details, see https://plotly.com/javascript/animations/");var n=t._transitionData;n._frameQueue||(n._frameQueue=[]);var i=(r=h.supplyAnimationDefaults(r)).transition,a=r.frame;function s(t){return Array.isArray(i)?t>=i.length?i[0]:i[t]:i}function l(t){return Array.isArray(a)?t>=a.length?a[0]:a[t]:a}function u(t,e){var r=0;return function(){if(t&&++r===e)return t()}}return void 0===n._frameWaitingCnt&&(n._frameWaitingCnt=0),new Promise((function(a,c){function f(){t.emit("plotly_animating"),n._lastFrameAt=-1/0,n._timeToNext=0,n._runningTransitions=0,n._currentFrame=null;var e=function(){n._animationRaf=window.requestAnimationFrame(e),Date.now()-n._lastFrameAt>n._timeToNext&&function(){n._currentFrame&&n._currentFrame.onComplete&&n._currentFrame.onComplete();var e=n._currentFrame=n._frameQueue.shift();if(e){var r=e.name?e.name.toString():null;t._fullLayout._currentFrame=r,n._lastFrameAt=Date.now(),n._timeToNext=e.frameOpts.duration,h.transition(t,e.frame.data,e.frame.layout,_.coerceTraceIndices(t,e.frame.traces),e.frameOpts,e.transitionOpts).then((function(){e.onComplete&&e.onComplete()})),t.emit("plotly_animatingframe",{name:r,frame:e.frame,animation:{frame:e.frameOpts,transition:e.transitionOpts}})}else t.emit("plotly_animated"),window.cancelAnimationFrame(n._animationRaf),n._animationRaf=null}()};e()}var p,d,v=0;function g(t){return Array.isArray(i)?v>=i.length?t.transitionOpts=i[v]:t.transitionOpts=i[0]:t.transitionOpts=i,v++,t}var y=[],m=null==e,x=Array.isArray(e);if(m||x||!o.isPlainObject(e)){if(m||-1!==["string","number"].indexOf(typeof e))for(p=0;p<n._frames.length;p++)(d=n._frames[p])&&(m||String(d.group)===String(e))&&y.push({type:"byname",name:String(d.name),data:g({name:d.name})});else if(x)for(p=0;p<e.length;p++){var b=e[p];-1!==["number","string"].indexOf(typeof b)?(b=String(b),y.push({type:"byname",name:b,data:g({name:b})})):o.isPlainObject(b)&&y.push({type:"object",data:g(o.extendFlat({},b))})}}else y.push({type:"object",data:g(o.extendFlat({},e))});for(p=0;p<y.length;p++)if("byname"===(d=y[p]).type&&!n._frameHash[d.data.name])return o.warn('animate failure: frame not found: "'+d.data.name+'"'),void c();-1!==["next","immediate"].indexOf(r.mode)&&function(){if(0!==n._frameQueue.length){for(;n._frameQueue.length;){var e=n._frameQueue.pop();e.onInterrupt&&e.onInterrupt()}t.emit("plotly_animationinterrupted",[])}}(),"reverse"===r.direction&&y.reverse();var w=t._fullLayout._currentFrame;if(w&&r.fromcurrent){var T=-1;for(p=0;p<y.length;p++)if("byname"===(d=y[p]).type&&d.name===w){T=p;break}if(T>0&&T<y.length-1){var k=[];for(p=0;p<y.length;p++)d=y[p],("byname"!==y[p].type||p>T)&&k.push(d);y=k}}y.length>0?function(e){if(0!==e.length){for(var i=0;i<e.length;i++){var o;o="byname"===e[i].type?h.computeFrame(t,e[i].name):e[i].data;var p=l(i),d=s(i);d.duration=Math.min(d.duration,p.duration);var v={frame:o,name:e[i].name,frameOpts:p,transitionOpts:d};i===e.length-1&&(v.onComplete=u(a,2),v.onInterrupt=c),n._frameQueue.push(v)}"immediate"===r.mode&&(n._lastFrameAt=-1/0),n._animationRaf||f()}}(y):(t.emit("plotly_animated"),a())}))},e.addFrames=function(t,e,r){if(t=o.getGraphDiv(t),null==e)return Promise.resolve();if(!o.isPlotDiv(t))throw new Error("This element is not a Plotly plot: "+t+". It's likely that you've failed to create a plot before adding frames. For more details, see https://plotly.com/javascript/animations/");var n,i,a,s,l=t._transitionData._frames,c=t._transitionData._frameHash;if(!Array.isArray(e))throw new Error("addFrames failure: frameList must be an Array of frame definitions"+e);var f=l.length+2*e.length,p=[],d={};for(n=e.length-1;n>=0;n--)if(o.isPlainObject(e[n])){var v=e[n].name,g=(c[v]||d[v]||{}).name,y=e[n].name,m=c[g]||d[g];g&&y&&"number"==typeof y&&m&&A<5&&(A++,o.warn('addFrames: overwriting frame "'+(c[g]||d[g]).name+'" with a frame whose name of type "number" also equates to "'+g+'". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'),5===A&&o.warn("addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.")),d[v]={name:v},p.push({frame:h.supplyFrameDefaults(e[n]),index:r&&void 0!==r[n]&&null!==r[n]?r[n]:f+n})}p.sort((function(t,e){return t.index>e.index?-1:t.index<e.index?1:0}));var x=[],b=[],_=l.length;for(n=p.length-1;n>=0;n--){if("number"==typeof(i=p[n].frame).name&&o.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"),!i.name)for(;c[i.name="frame "+t._transitionData._counter++];);if(c[i.name]){for(a=0;a<l.length&&(l[a]||{}).name!==i.name;a++);x.push({type:"replace",index:a,value:i}),b.unshift({type:"replace",index:a,value:l[a]})}else s=Math.max(0,Math.min(p[n].index,_)),x.push({type:"insert",index:s,value:i}),b.unshift({type:"delete",index:s}),_++}var w=h.modifyFrames,T=h.modifyFrames,k=[t,b],M=[t,x];return u&&u.add(t,w,k,T,M),h.modifyFrames(t,x)},e.deleteFrames=function(t,e){if(t=o.getGraphDiv(t),!o.isPlotDiv(t))throw new Error("This element is not a Plotly plot: "+t);var r,n,i=t._transitionData._frames,a=[],s=[];if(!e)for(e=[],r=0;r<i.length;r++)e.push(r);for((e=e.slice()).sort(),r=e.length-1;r>=0;r--)n=e[r],a.push({type:"delete",index:n}),s.unshift({type:"insert",index:n,value:i[n]});var l=h.modifyFrames,c=h.modifyFrames,f=[t,s],p=[t,a];return u&&u.add(t,l,f,c,p),h.modifyFrames(t,a)},e.addTraces=function t(r,n,i){r=o.getGraphDiv(r);var a,s,l=[],c=e.deleteTraces,f=t,h=[r,l],p=[r,n];for(function(t,e,r){var n,i;if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if(void 0===e)throw new Error("traces must be defined.");for(Array.isArray(e)||(e=[e]),n=0;n<e.length;n++)if("object"!=typeof(i=e[n])||Array.isArray(i)||null===i)throw new Error("all values in traces array must be non-array objects");if(void 0===r||Array.isArray(r)||(r=[r]),void 0!==r&&r.length!==e.length)throw new Error("if indices is specified, traces.length must equal indices.length")}(r,n,i),Array.isArray(n)||(n=[n]),n=n.map((function(t){return o.extendFlat({},t)})),_.cleanData(n),a=0;a<n.length;a++)r.data.push(n[a]);for(a=0;a<n.length;a++)l.push(-n.length+a);if(void 0===i)return s=e.redraw(r),u.add(r,c,h,f,p),s;Array.isArray(i)||(i=[i]);try{O(r,l,i)}catch(t){throw r.data.splice(r.data.length-n.length,n.length),t}return u.startSequence(r),u.add(r,c,h,f,p),s=e.moveTraces(r,l,i),u.stopSequence(r),s},e.deleteTraces=function t(r,n){r=o.getGraphDiv(r);var i,a,s=[],l=e.addTraces,c=t,f=[r,s,n],h=[r,n];if(void 0===n)throw new Error("indices must be an integer or array of integers.");for(Array.isArray(n)||(n=[n]),P(r,n,"indices"),(n=C(n,r.data.length-1)).sort(o.sorterDes),i=0;i<n.length;i+=1)a=r.data.splice(n[i],1)[0],s.push(a);var p=e.redraw(r);return u.add(r,l,f,c,h),p},e.extendTraces=function t(r,n,i,a){function s(t,e,r){var n,i;if(o.isTypedArray(t))if(r<0){var a=new t.constructor(0),s=D(t,e);r<0?(n=s,i=a):(n=a,i=s)}else if(n=new t.constructor(r),i=new t.constructor(t.length+e.length-r),r===e.length)n.set(e),i.set(t);else if(r<e.length){var l=e.length-r;n.set(e.subarray(l)),i.set(t),i.set(e.subarray(0,l),t.length)}else{var u=r-e.length,c=t.length-u;n.set(t.subarray(c)),n.set(e,u),i.set(t.subarray(0,c))}else n=t.concat(e),i=r>=0&&r<n.length?n.splice(0,n.length-r):[];return[n,i]}var l=I(r=o.getGraphDiv(r),n,i,a,s),c=e.redraw(r),f=[r,l.update,i,l.maxPoints];return u.add(r,e.prependTraces,f,t,arguments),c},e.moveTraces=function t(r,n,i){var a,s=[],l=[],c=t,f=t,h=[r=o.getGraphDiv(r),i,n],p=[r,n,i];if(O(r,n,i),n=Array.isArray(n)?n:[n],void 0===i)for(i=[],a=0;a<n.length;a++)i.push(-n.length+a);for(i=Array.isArray(i)?i:[i],n=C(n,r.data.length-1),i=C(i,r.data.length-1),a=0;a<r.data.length;a++)-1===n.indexOf(a)&&s.push(r.data[a]);for(a=0;a<n.length;a++)l.push({newIndex:i[a],trace:r.data[n[a]]});for(l.sort((function(t,e){return t.newIndex-e.newIndex})),a=0;a<l.length;a+=1)s.splice(l[a].newIndex,0,l[a].trace);r.data=s;var d=e.redraw(r);return u.add(r,c,h,f,p),d},e.prependTraces=function t(r,n,i,a){function s(t,e,r){var n,i;if(o.isTypedArray(t))if(r<=0){var a=new t.constructor(0),s=D(e,t);r<0?(n=s,i=a):(n=a,i=s)}else if(n=new t.constructor(r),i=new t.constructor(t.length+e.length-r),r===e.length)n.set(e),i.set(t);else if(r<e.length){var l=e.length-r;n.set(e.subarray(0,l)),i.set(e.subarray(l)),i.set(t,l)}else{var u=r-e.length;n.set(e),n.set(t.subarray(0,u),e.length),i.set(t.subarray(u))}else n=e.concat(t),i=r>=0&&r<n.length?n.splice(r,n.length):[];return[n,i]}var l=I(r=o.getGraphDiv(r),n,i,a,s),c=e.redraw(r),f=[r,l.update,i,l.maxPoints];return u.add(r,e.extendTraces,f,t,arguments),c},e.newPlot=function(t,r,n,i){return t=o.getGraphDiv(t),h.cleanPlot([],{},t._fullData||[],t._fullLayout||{}),h.purge(t),e._doPlot(t,r,n,i)},e._doPlot=function(t,r,i,a){var s;if(t=o.getGraphDiv(t),l.init(t),o.isPlainObject(r)){var u=r;r=u.data,i=u.layout,a=u.config,s=u.frames}if(!1===l.triggerHandler(t,"plotly_beforeplot",[r,i,a]))return Promise.reject();r||i||o.isPlotDiv(t)||o.warn("Calling _doPlot as if redrawing but this container doesn't yet have a plot.",t),L(t,a),i||(i={}),n.select(t).classed("js-plotly-plot",!0),d.makeTester(),Array.isArray(t._promises)||(t._promises=[]);var f=0===(t.data||[]).length&&Array.isArray(r);Array.isArray(r)&&(_.cleanData(r),f?t.data=r:t.data.push.apply(t.data,r),t.empty=!1),t.layout&&!f||(t.layout=_.cleanLayout(i)),h.supplyDefaults(t);var v=t._fullLayout,m=v._has("cartesian");v._replotting=!0,(f||v._shouldCreateBgLayer)&&(function(t){var e=n.select(t),r=t._fullLayout;if(r._calcInverseTransform=ot,r._calcInverseTransform(t),r._container=e.selectAll(".plot-container").data([0]),r._container.enter().insert("div",":first-child").classed("plot-container",!0).classed("plotly",!0),r._paperdiv=r._container.selectAll(".svg-container").data([0]),r._paperdiv.enter().append("div").classed("user-select-none",!0).classed("svg-container",!0).style("position","relative"),r._glcontainer=r._paperdiv.selectAll(".gl-container").data([{}]),r._glcontainer.enter().append("div").classed("gl-container",!0),r._paperdiv.selectAll(".main-svg").remove(),r._paperdiv.select(".modebar-container").remove(),r._paper=r._paperdiv.insert("svg",":first-child").classed("main-svg",!0),r._toppaper=r._paperdiv.append("svg").classed("main-svg",!0),r._modebardiv=r._paperdiv.append("div"),delete r._modeBar,r._hoverpaper=r._paperdiv.append("svg").classed("main-svg",!0),!r._uid){var i={};n.selectAll("defs").each((function(){this.id&&(i[this.id.split("-")[1]]=1)})),r._uid=o.randstr(i)}r._paperdiv.selectAll(".main-svg").attr(y.svgAttrs),r._defs=r._paper.append("defs").attr("id","defs-"+r._uid),r._clips=r._defs.append("g").classed("clips",!0),r._topdefs=r._toppaper.append("defs").attr("id","topdefs-"+r._uid),r._topclips=r._topdefs.append("g").classed("clips",!0),r._bgLayer=r._paper.append("g").classed("bglayer",!0),r._draggers=r._paper.append("g").classed("draglayer",!0);var a=r._paper.append("g").classed("layer-below",!0);r._imageLowerLayer=a.append("g").classed("imagelayer",!0),r._shapeLowerLayer=a.append("g").classed("shapelayer",!0),r._cartesianlayer=r._paper.append("g").classed("cartesianlayer",!0),r._polarlayer=r._paper.append("g").classed("polarlayer",!0),r._smithlayer=r._paper.append("g").classed("smithlayer",!0),r._ternarylayer=r._paper.append("g").classed("ternarylayer",!0),r._geolayer=r._paper.append("g").classed("geolayer",!0),r._funnelarealayer=r._paper.append("g").classed("funnelarealayer",!0),r._pielayer=r._paper.append("g").classed("pielayer",!0),r._iciclelayer=r._paper.append("g").classed("iciclelayer",!0),r._treemaplayer=r._paper.append("g").classed("treemaplayer",!0),r._sunburstlayer=r._paper.append("g").classed("sunburstlayer",!0),r._indicatorlayer=r._toppaper.append("g").classed("indicatorlayer",!0),r._glimages=r._paper.append("g").classed("glimages",!0);var s=r._toppaper.append("g").classed("layer-above",!0);r._imageUpperLayer=s.append("g").classed("imagelayer",!0),r._shapeUpperLayer=s.append("g").classed("shapelayer",!0),r._selectionLayer=r._toppaper.append("g").classed("selectionlayer",!0),r._infolayer=r._toppaper.append("g").classed("infolayer",!0),r._menulayer=r._toppaper.append("g").classed("menulayer",!0),r._zoomlayer=r._toppaper.append("g").classed("zoomlayer",!0),r._hoverlayer=r._hoverpaper.append("g").classed("hoverlayer",!0),r._modebardiv.classed("modebar-container",!0).style("position","absolute").style("top","0px").style("right","0px"),t.emit("plotly_framework")}(t),v._shouldCreateBgLayer&&delete v._shouldCreateBgLayer),d.initGradients(t),d.initPatterns(t),f&&p.saveShowSpikeInitial(t);var x=!t.calcdata||t.calcdata.length!==(t._fullData||[]).length;x&&h.doCalcdata(t);for(var b=0;b<t.calcdata.length;b++)t.calcdata[b][0].trace=t._fullData[b];t._context.responsive?t._responsiveChartHandler||(t._responsiveChartHandler=function(){o.isHidden(t)||h.resize(t)},window.addEventListener("resize",t._responsiveChartHandler)):o.clearResponsive(t);var T=o.extendFlat({},v._size),k=0;function A(){if(h.clearAutoMarginIds(t),w.drawMarginPushers(t),p.allowAutoMargin(t),v._has("pie"))for(var e=t._fullData,r=0;r<e.length;r++){var n=e[r];"pie"===n.type&&n.automargin&&h.allowAutoMargin(t,"pie."+n.uid+".automargin")}return h.doAutoMargin(t),h.previousPromises(t)}function S(){t._transitioning||(w.doAutoRangeAndConstraints(t),f&&p.saveRangeInitial(t),c.getComponentMethod("rangeslider","calcAutorange")(t))}var E=[h.previousPromises,function(){if(s)return e.addFrames(t,s)},function e(){for(var r=v._basePlotModules,n=0;n<r.length;n++)r[n].drawFramework&&r[n].drawFramework(t);!v._glcanvas&&v._has("gl")&&(v._glcanvas=v._glcontainer.selectAll(".gl-canvas").data([{key:"contextLayer",context:!0,pick:!1},{key:"focusLayer",context:!1,pick:!1},{key:"pickLayer",context:!1,pick:!0}],(function(t){return t.key})),v._glcanvas.enter().append("canvas").attr("class",(function(t){return"gl-canvas gl-canvas-"+t.key.replace("Layer","")})).style({position:"absolute",top:0,left:0,overflow:"visible","pointer-events":"none"}));var i=t._context.plotGlPixelRatio;if(v._glcanvas){v._glcanvas.attr("width",v.width*i).attr("height",v.height*i).style("width",v.width+"px").style("height",v.height+"px");var a=v._glcanvas.data()[0].regl;if(a&&(Math.floor(v.width*i)!==a._gl.drawingBufferWidth||Math.floor(v.height*i)!==a._gl.drawingBufferHeight)){var s="WebGL context buffer and canvas dimensions do not match due to browser/WebGL bug.";if(!k)return o.log(s+" Clearing graph and plotting again."),h.cleanPlot([],{},t._fullData,v),h.supplyDefaults(t),v=t._fullLayout,h.doCalcdata(t),k++,e();o.error(s)}}return"h"===v.modebar.orientation?v._modebardiv.style("height",null).style("width","100%"):v._modebardiv.style("width",null).style("height",v.height+"px"),h.previousPromises(t)},A,function(){if(h.didMarginChange(T,v._size))return o.syncOrAsync([A,w.layoutStyles],t)}];m&&E.push((function(){if(x)return o.syncOrAsync([c.getComponentMethod("shapes","calcAutorange"),c.getComponentMethod("annotations","calcAutorange"),S],t);S()})),E.push(w.layoutStyles),m&&E.push((function(){return p.draw(t,f?"":"redraw")}),(function(t){t._fullLayout._insideTickLabelsAutorange&&U(t,t._fullLayout._insideTickLabelsAutorange).then((function(){t._fullLayout._insideTickLabelsAutorange=void 0}))})),E.push(w.drawData,w.finalDraw,g,h.addLinks,h.rehover,h.redrag,h.reselect,h.doAutoMargin,(function(t){t._fullLayout._insideTickLabelsAutorange&&f&&p.saveRangeInitial(t,!0)}),h.previousPromises);var C=o.syncOrAsync(E,t);return C&&C.then||(C=Promise.resolve()),C.then((function(){return M(t),t}))},e.purge=function(t){var e=(t=o.getGraphDiv(t))._fullLayout||{},r=t._fullData||[];return h.cleanPlot([],{},r,e),h.purge(t),l.purge(t),e._container&&e._container.remove(),delete t._context,t},e.react=function(t,r,n,i){var a,l;t=o.getGraphDiv(t),_.clearPromiseQueue(t);var u=t._fullData,p=t._fullLayout;if(o.isPlotDiv(t)&&u&&p){if(o.isPlainObject(r)){var d=r;r=d.data,n=d.layout,i=d.config,a=d.frames}var v=!1;if(i){var g=o.extendDeep({},t._context);t._context=void 0,L(t,i),v=at(g,t._context)}t.data=r||[],_.cleanData(t.data),t.layout=n||{},_.cleanLayout(t.layout),function(t,e,r,n){var i,a,l,u,c,f,h,p,d,v,g=n._preGUI,y=[],m={},x={};for(i in g){if(c=Q(i,K)){if(d=c.head,v=c.tail,a=c.attr||d+".uirevision",(u=(l=s(n,a).get())&&tt(a,e))&&u===l){if(null===(f=g[i])&&(f=void 0),nt(p=(h=s(e,i)).get(),f)){void 0===p&&"autorange"===v&&y.push(d),h.set(R(s(n,i).get()));continue}if("autorange"===v||"range["===v.substr(0,6)){var b=g[d+".range[0]"],_=g[d+".range[1]"],w=g[d+".autorange"];if(w||null===w&&null===b&&null===_){if(!(d in m)){var T=s(e,d).get();m[d]=T&&(T.autorange||!1!==T.autorange&&(!T.range||2!==T.range.length))}if(m[d]){h.set(R(s(n,i).get()));continue}}}}}else o.warn("unrecognized GUI edit: "+i);delete g[i],c&&"range["===c.tail.substr(0,6)&&(x[c.head]=1)}for(var k=0;k<y.length;k++){var A=y[k];if(x[A]){var M=s(e,A).get();M&&delete M.autorange}}var S=n._tracePreGUI;for(var E in S){var L,C=S[E],P=null;for(i in C){if(!P){var O=et(E,r);if(O<0){delete S[E];break}var I=rt(E,t,(L=r[O]._fullInput).index);if(I<0){delete S[E];break}P=t[I]}if(c=Q(i,$)){if(c.attr?u=(l=s(n,c.attr).get())&&tt(c.attr,e):(l=L.uirevision,void 0===(u=P.uirevision)&&(u=e.uirevision)),u&&u===l&&(null===(f=C[i])&&(f=void 0),nt(p=(h=s(P,i)).get(),f))){h.set(R(s(L,i).get()));continue}}else o.warn("unrecognized GUI edit: "+i+" in trace uid "+E);delete C[i]}}}(t.data,t.layout,u,p),h.supplyDefaults(t,{skipUpdateCalc:!0});var y=t._fullData,m=t._fullLayout,x=void 0===m.datarevision,b=m.transition,k=function(t,e,r,n,i){var a=T.layoutFlags();return a.arrays={},a.rangesAltered={},a.nChanges=0,a.nChangesAnim=0,it(e,r,[],{getValObject:function(t){return f.getLayoutValObject(r,t)},flags:a,immutable:n,transition:i,gd:t}),(a.plot||a.calc)&&(a.layoutReplot=!0),i&&a.nChanges&&a.nChangesAnim&&(a.anim=a.nChanges===a.nChangesAnim?"all":"some"),a}(t,p,m,x,b),A=k.newDataRevision,S=function(t,e,r,n,i,a){var o=e.length===r.length;if(!i&&!o)return{fullReplot:!0,calc:!0};var s,l,u=T.traceFlags();u.arrays={},u.nChanges=0,u.nChangesAnim=0;var c={getValObject:function(t){var e=f.getTraceValObject(l,t);return!l._module.animatable&&e.anim&&(e.anim=!1),e},flags:u,immutable:n,transition:i,newDataRevision:a,gd:t},p={};for(s=0;s<e.length;s++)if(r[s]){if(l=r[s]._fullInput,h.hasMakesDataTransform(l)&&(l=r[s]),p[l.uid])continue;p[l.uid]=1,it(e[s]._fullInput,l,[],c)}return(u.calc||u.plot)&&(u.fullReplot=!0),i&&u.nChanges&&u.nChangesAnim&&(u.anim=u.nChanges===u.nChangesAnim&&o?"all":"some"),u}(t,u,y,x,b,A);if(W(t)&&(k.layoutReplot=!0),S.calc||k.calc){t.calcdata=void 0;for(var E=Object.getOwnPropertyNames(m),C=0;C<E.length;C++){var P=E[C],O=P.substring(0,5);if("xaxis"===O||"yaxis"===O){var I=m[P]._emptyCategories;I&&I()}}}else h.supplyDefaultsUpdateCalc(t.calcdata,y);var D=[];if(a&&(t._transitionData={},h.createTransitionData(t),D.push((function(){return e.addFrames(t,a)}))),m.transition&&!v&&(S.anim||k.anim))k.ticks&&D.push(w.doTicksRelayout),h.doCalcdata(t),w.doAutoRangeAndConstraints(t),D.push((function(){return h.transitionFromReact(t,S,k,p)}));else if(S.fullReplot||k.layoutReplot||v)t._fullLayout._skipDefaults=!0,D.push(e._doPlot);else{for(var z in k.arrays){var F=k.arrays[z];if(F.length){var B=c.getComponentMethod(z,"drawOne");if(B!==o.noop)for(var N=0;N<F.length;N++)B(t,F[N]);else{var j=c.getComponentMethod(z,"draw");if(j===o.noop)throw new Error("cannot draw components: "+z);j(t)}}}D.push(h.previousPromises),S.style&&D.push(w.doTraceStyle),(S.colorbars||k.colorbars)&&D.push(w.doColorBars),k.legend&&D.push(w.doLegend),k.layoutstyle&&D.push(w.layoutStyles),k.axrange&&H(D),k.ticks&&D.push(w.doTicksRelayout),k.modebar&&D.push(w.doModeBar),k.camera&&D.push(w.doCamera),D.push(M)}D.push(h.rehover,h.redrag,h.reselect),(l=o.syncOrAsync(D,t))&&l.then||(l=Promise.resolve(t))}else l=e.newPlot(t,r,n,i);return l.then((function(){return t.emit("plotly_react",{data:r,layout:n}),t}))},e.redraw=function(t){if(t=o.getGraphDiv(t),!o.isPlotDiv(t))throw new Error("This element is not a Plotly plot: "+t);return _.cleanData(t.data),_.cleanLayout(t.layout),t.calcdata=void 0,e._doPlot(t).then((function(){return t.emit("plotly_redraw"),t}))},e.relayout=U,e.restyle=z,e.setPlotConfig=function(t){return o.extendFlat(x,t)},e.update=X,e._guiRelayout=J(U),e._guiRestyle=J(z),e._guiUpdate=J(X),e._storeDirectGUIEdit=function(t,e,r){for(var n in r)B(n,s(t,n).get(),r[n],e)}},72075:function(t){"use strict";var e={staticPlot:{valType:"boolean",dflt:!1},typesetMath:{valType:"boolean",dflt:!0},plotlyServerURL:{valType:"string",dflt:""},editable:{valType:"boolean",dflt:!1},edits:{annotationPosition:{valType:"boolean",dflt:!1},annotationTail:{valType:"boolean",dflt:!1},annotationText:{valType:"boolean",dflt:!1},axisTitleText:{valType:"boolean",dflt:!1},colorbarPosition:{valType:"boolean",dflt:!1},colorbarTitleText:{valType:"boolean",dflt:!1},legendPosition:{valType:"boolean",dflt:!1},legendText:{valType:"boolean",dflt:!1},shapePosition:{valType:"boolean",dflt:!1},titleText:{valType:"boolean",dflt:!1}},editSelection:{valType:"boolean",dflt:!0},autosizable:{valType:"boolean",dflt:!1},responsive:{valType:"boolean",dflt:!1},fillFrame:{valType:"boolean",dflt:!1},frameMargins:{valType:"number",dflt:0,min:0,max:.5},scrollZoom:{valType:"flaglist",flags:["cartesian","gl3d","geo","mapbox"],extras:[!0,!1],dflt:"gl3d+geo+mapbox"},doubleClick:{valType:"enumerated",values:[!1,"reset","autosize","reset+autosize"],dflt:"reset+autosize"},doubleClickDelay:{valType:"number",dflt:300,min:0},showAxisDragHandles:{valType:"boolean",dflt:!0},showAxisRangeEntryBoxes:{valType:"boolean",dflt:!0},showTips:{valType:"boolean",dflt:!0},showLink:{valType:"boolean",dflt:!1},linkText:{valType:"string",dflt:"Edit chart",noBlank:!0},sendData:{valType:"boolean",dflt:!0},showSources:{valType:"any",dflt:!1},displayModeBar:{valType:"enumerated",values:["hover",!0,!1],dflt:"hover"},showSendToCloud:{valType:"boolean",dflt:!1},showEditInChartStudio:{valType:"boolean",dflt:!1},modeBarButtonsToRemove:{valType:"any",dflt:[]},modeBarButtonsToAdd:{valType:"any",dflt:[]},modeBarButtons:{valType:"any",dflt:!1},toImageButtonOptions:{valType:"any",dflt:{}},displaylogo:{valType:"boolean",dflt:!0},watermark:{valType:"boolean",dflt:!1},plotGlPixelRatio:{valType:"number",dflt:2,min:1,max:4},setBackground:{valType:"any",dflt:"transparent"},topojsonURL:{valType:"string",noBlank:!0,dflt:"https://cdn.plot.ly/"},mapboxAccessToken:{valType:"string",dflt:null},logging:{valType:"integer",min:0,max:2,dflt:1},notifyOnLogging:{valType:"integer",min:0,max:2,dflt:0},queueLength:{valType:"integer",min:0,dflt:0},globalTransforms:{valType:"any",dflt:[]},locale:{valType:"string",dflt:"en-US"},locales:{valType:"any",dflt:{}}},r={};!function t(e,r){for(var n in e){var i=e[n];i.valType?r[n]=i.dflt:(r[n]||(r[n]={}),t(i,r[n]))}}(e,r),t.exports={configAttributes:e,dfltConfig:r}},86281:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(9012),o=r(10820),s=r(31391),l=r(85594),u=r(72075).configAttributes,c=r(30962),f=i.extendDeepAll,h=i.isPlainObject,p=i.isArrayOrTypedArray,d=i.nestedProperty,v=i.valObjectMeta,g="_isSubplotObj",y="_isLinkedToArray",m="_deprecated",x=[g,y,"_arrayAttrRegexps",m];function b(t,e,r){if(!t)return!1;if(t._isLinkedToArray)if(_(e[r]))r++;else if(r<e.length)return!1;for(;r<e.length;r++){var n=t[e[r]];if(!h(n))break;if(t=n,r===e.length-1)break;if(t._isLinkedToArray){if(!_(e[++r]))return!1}else if("info_array"===t.valType){var i=e[++r];if(!_(i))return!1;var a=t.items;if(Array.isArray(a)){if(i>=a.length)return!1;if(2===t.dimensions){if(r++,e.length===r)return t;var o=e[r];if(!_(o))return!1;t=a[i][o]}else t=a[i]}else t=a}}return t}function _(t){return t===Math.round(t)&&t>=0}function w(){var t,e,r={};for(t in f(r,o),n.subplotsRegistry)if((e=n.subplotsRegistry[t]).layoutAttributes)if(Array.isArray(e.attr))for(var i=0;i<e.attr.length;i++)k(r,e,e.attr[i]);else k(r,e,"subplot"===e.attr?e.name:e.attr);for(t in n.componentsRegistry){var a=(e=n.componentsRegistry[t]).schema;if(a&&(a.subplots||a.layout)){var s=a.subplots;if(s&&s.xaxis&&!s.yaxis)for(var l in s.xaxis)delete r.yaxis[l];delete r.xaxis.shift,delete r.xaxis.autoshift}else"colorscale"===e.name?f(r,e.layoutAttributes):e.layoutAttributes&&A(r,e.layoutAttributes,e.name)}return{layoutAttributes:T(r)}}function T(t){return function(t){e.crawl(t,(function(t,r,n){e.isValObject(t)?!0!==t.arrayOk&&"data_array"!==t.valType||(n[r+"src"]={valType:"string",editType:"none"}):h(t)&&(t.role="object")}))}(t),function(t){e.crawl(t,(function(t,e,r){if(t){var n=t._isLinkedToArray;n&&(delete t._isLinkedToArray,r[e]={items:{}},r[e].items[n]=t,r[e].role="object")}}))}(t),function(t){!function t(e){for(var r in e)if(h(e[r]))t(e[r]);else if(Array.isArray(e[r]))for(var n=0;n<e[r].length;n++)t(e[r][n]);else e[r]instanceof RegExp&&(e[r]=e[r].toString())}(t)}(t),t}function k(t,e,r){var n=d(t,r),i=f({},e.layoutAttributes);i._isSubplotObj=!0,n.set(i)}function A(t,e,r){var n=d(t,r);n.set(f(n.get()||{},e))}e.IS_SUBPLOT_OBJ=g,e.IS_LINKED_TO_ARRAY=y,e.DEPRECATED=m,e.UNDERSCORE_ATTRS=x,e.get=function(){var t={};n.allTypes.forEach((function(r){t[r]=function(t){var r,i;i=(r=n.modules[t]._module).basePlotModule;var o={type:null},s=f({},a),l=f({},r.attributes);e.crawl(l,(function(t,e,r,n,i){d(s,i).set(void 0),void 0===t&&d(l,i).set(void 0)})),f(o,s),n.traceIs(t,"noOpacity")&&delete o.opacity,n.traceIs(t,"showLegend")||(delete o.showlegend,delete o.legendgroup),n.traceIs(t,"noHover")&&(delete o.hoverinfo,delete o.hoverlabel),r.selectPoints||delete o.selectedpoints,f(o,l),i.attributes&&f(o,i.attributes),o.type=t;var u={meta:r.meta||{},categories:r.categories||{},animatable:Boolean(r.animatable),type:t,attributes:T(o)};if(r.layoutAttributes){var c={};f(c,r.layoutAttributes),u.layoutAttributes=T(c)}return r.animatable||e.crawl(u,(function(t){e.isValObject(t)&&"anim"in t&&delete t.anim})),u}(r)}));var r,i={};return Object.keys(n.transformsRegistry).forEach((function(t){i[t]=function(t){var e=n.transformsRegistry[t],r=f({},e.attributes);return Object.keys(n.componentsRegistry).forEach((function(e){var i=n.componentsRegistry[e];i.schema&&i.schema.transforms&&i.schema.transforms[t]&&Object.keys(i.schema.transforms[t]).forEach((function(e){A(r,i.schema.transforms[t][e],e)}))})),{attributes:T(r)}}(t)})),{defs:{valObjects:v,metaKeys:x.concat(["description","role","editType","impliedEdits"]),editType:{traces:c.traces,layout:c.layout},impliedEdits:{}},traces:t,layout:w(),transforms:i,frames:(r={frames:f({},s)},T(r),r.frames),animation:T(l),config:T(u)}},e.crawl=function(t,r,n,i){var a=n||0;i=i||"",Object.keys(t).forEach((function(n){var o=t[n];if(-1===x.indexOf(n)){var s=(i?i+".":"")+n;r(o,n,t,a,s),e.isValObject(o)||h(o)&&"impliedEdits"!==n&&e.crawl(o,r,a+1,s)}}))},e.isValObject=function(t){return t&&void 0!==t.valType},e.findArrayAttributes=function(t){var r,n,i=[],o=[],s=[];function l(t,e,n,i){o=o.slice(0,i).concat([e]),s=s.slice(0,i).concat([t&&t._isLinkedToArray]),t&&("data_array"===t.valType||!0===t.arrayOk)&&("colorbar"!==o[i-1]||"ticktext"!==e&&"tickvals"!==e)&&u(r,0,"")}function u(t,e,r){var a=t[o[e]],l=r+o[e];if(e===o.length-1)p(a)&&i.push(n+l);else if(s[e]){if(Array.isArray(a))for(var c=0;c<a.length;c++)h(a[c])&&u(a[c],e+1,l+"["+c+"].")}else h(a)&&u(a,e+1,l+".")}r=t,n="",e.crawl(a,l),t._module&&t._module.attributes&&e.crawl(t._module.attributes,l);var c=t.transforms;if(c)for(var f=0;f<c.length;f++){var d=c[f],v=d._module;v&&(n="transforms["+f+"].",r=d,e.crawl(v.attributes,l))}return i},e.getTraceValObject=function(t,e){var r,i,o=e[0],s=1;if("transforms"===o){if(1===e.length)return a.transforms;var l=t.transforms;if(!Array.isArray(l)||!l.length)return!1;var u=e[1];if(!_(u)||u>=l.length)return!1;i=(r=(n.transformsRegistry[l[u].type]||{}).attributes)&&r[e[2]],s=3}else{var c=t._module;if(c||(c=(n.modules[t.type||a.type.dflt]||{})._module),!c)return!1;if(!(i=(r=c.attributes)&&r[o])){var f=c.basePlotModule;f&&f.attributes&&(i=f.attributes[o])}i||(i=a[o])}return b(i,e,s)},e.getLayoutValObject=function(t,e){var r=function(t,e){var r,i,a,s,l=t._basePlotModules;if(l){var u;for(r=0;r<l.length;r++){if((a=l[r]).attrRegex&&a.attrRegex.test(e)){if(a.layoutAttrOverrides)return a.layoutAttrOverrides;!u&&a.layoutAttributes&&(u=a.layoutAttributes)}var c=a.baseLayoutAttrOverrides;if(c&&e in c)return c[e]}if(u)return u}var f=t._modules;if(f)for(r=0;r<f.length;r++)if((s=f[r].layoutAttributes)&&e in s)return s[e];for(i in n.componentsRegistry){if("colorscale"===(a=n.componentsRegistry[i]).name&&0===e.indexOf("coloraxis"))return a.layoutAttributes[e];if(!a.schema&&e===a.name)return a.layoutAttributes}return e in o&&o[e]}(t,e[0]);return b(r,e,1)}},44467:function(t,e,r){"use strict";var n=r(71828),i=r(9012),a={name:{valType:"string",editType:"none"}};function o(t){return t&&"string"==typeof t}function s(t){var e=t.length-1;return"s"!==t.charAt(e)&&n.warn("bad argument to arrayDefaultKey: "+t),t.substr(0,t.length-1)+"defaults"}a.templateitemname={valType:"string",editType:"calc"},e.templatedArray=function(t,e){return e._isLinkedToArray=t,e.name=a.name,e.templateitemname=a.templateitemname,e},e.traceTemplater=function(t){var e,r,a={};for(e in t)r=t[e],Array.isArray(r)&&r.length&&(a[e]=0);return{newTrace:function(o){var s={type:e=n.coerce(o,{},i,"type"),_template:null};if(e in a){r=t[e];var l=a[e]%r.length;a[e]++,s._template=r[l]}return s}}},e.newContainer=function(t,e,r){var i=t._template,a=i&&(i[e]||r&&i[r]);return n.isPlainObject(a)||(a=null),t[e]={_template:a}},e.arrayTemplater=function(t,e,r){var n=t._template,i=n&&n[s(e)],a=n&&n[e];Array.isArray(a)&&a.length||(a=[]);var l={};return{newItem:function(t){var e={name:t.name,_input:t},n=e.templateitemname=t.templateitemname;if(!o(n))return e._template=i,e;for(var s=0;s<a.length;s++){var u=a[s];if(u.name===n)return l[n]=1,e._template=u,e}return e[r]=t[r]||!1,e._template=!1,e},defaultItems:function(){for(var t=[],e=0;e<a.length;e++){var r=a[e],n=r.name;if(o(n)&&!l[n]){var i={_template:r,name:n,_input:{_templateitemname:n}};i.templateitemname=r.templateitemname,t.push(i),l[n]=1}}return t}}},e.arrayDefaultKey=s,e.arrayEditor=function(t,e,r){var i=(n.nestedProperty(t,e).get()||[]).length,a=r._index,o=a>=i&&(r._input||{})._templateitemname;o&&(a=i);var s,l=e+"["+a+"]";function u(){s={},o&&(s[l]={},s[l].templateitemname=o)}function c(t,e){o?n.nestedProperty(s[l],t).set(e):s[l+"."+t]=e}function f(){var t=s;return u(),t}return u(),{modifyBase:function(t,e){s[t]=e},modifyItem:c,getUpdateObj:f,applyUpdate:function(e,r){e&&c(e,r);var i=f();for(var a in i)n.nestedProperty(t,a).set(i[a])}}}},61549:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(74875),o=r(71828),s=r(33306),l=r(7901),u=r(91424),c=r(92998),f=r(64168),h=r(89298),p=r(18783),d=r(99082),v=d.enforce,g=d.clean,y=r(71739).doAutoRange,m="start";function x(t,e,r){for(var n=0;n<r.length;n++){var i=r[n][0],a=r[n][1];if(!(i[0]>=t[1]||i[1]<=t[0])&&a[0]<e[1]&&a[1]>e[0])return!0}return!1}function b(t){var r,i,s,c,d,v,g=t._fullLayout,y=g._size,m=y.p,b=h.list(t,"",!0);if(g._paperdiv.style({width:t._context.responsive&&g.autosize&&!t._context._hasZeroWidth&&!t.layout.width?"100%":g.width+"px",height:t._context.responsive&&g.autosize&&!t._context._hasZeroHeight&&!t.layout.height?"100%":g.height+"px"}).selectAll(".main-svg").call(u.setSize,g.width,g.height),t._context.setBackground(t,g.paper_bgcolor),e.drawMainTitle(t),f.manage(t),!g._has("cartesian"))return a.previousPromises(t);function w(t,e,r){var n=t._lw/2;return"x"===t._id.charAt(0)?e?"top"===r?e._offset-m-n:e._offset+e._length+m+n:y.t+y.h*(1-(t.position||0))+n%1:e?"right"===r?e._offset+e._length+m+n:e._offset-m-n:y.l+y.w*(t.position||0)+n%1}for(r=0;r<b.length;r++){var k=(c=b[r])._anchorAxis;c._linepositions={},c._lw=u.crispRound(t,c.linewidth,1),c._mainLinePosition=w(c,k,c.side),c._mainMirrorPosition=c.mirror&&k?w(c,k,p.OPPOSITE_SIDE[c.side]):null}var A=[],M=[],S=[],E=1===l.opacity(g.paper_bgcolor)&&1===l.opacity(g.plot_bgcolor)&&g.paper_bgcolor===g.plot_bgcolor;for(i in g._plots)if((s=g._plots[i]).mainplot)s.bg&&s.bg.remove(),s.bg=void 0;else{var L=s.xaxis.domain,C=s.yaxis.domain,P=s.plotgroup;if(x(L,C,S)){var O=P.node(),I=s.bg=o.ensureSingle(P,"rect","bg");O.insertBefore(I.node(),O.childNodes[0]),M.push(i)}else P.select("rect.bg").remove(),S.push([L,C]),E||(A.push(i),M.push(i))}var D,z,R,F,B,N,j,U,V,H,q,G,Z,Y=g._bgLayer.selectAll(".bg").data(A);for(Y.enter().append("rect").classed("bg",!0),Y.exit().remove(),Y.each((function(t){g._plots[t].bg=n.select(this)})),r=0;r<M.length;r++)s=g._plots[M[r]],d=s.xaxis,v=s.yaxis,s.bg&&void 0!==d._offset&&void 0!==v._offset&&s.bg.call(u.setRect,d._offset-m,v._offset-m,d._length+2*m,v._length+2*m).call(l.fill,g.plot_bgcolor).style("stroke-width",0);if(!g._hasOnlyLargeSploms)for(i in g._plots){s=g._plots[i],d=s.xaxis,v=s.yaxis;var W,X,J=s.clipId="clip"+g._uid+i+"plot",K=o.ensureSingleById(g._clips,"clipPath",J,(function(t){t.classed("plotclip",!0).append("rect")}));s.clipRect=K.select("rect").attr({width:d._length,height:v._length}),u.setTranslate(s.plot,d._offset,v._offset),s._hasClipOnAxisFalse?(W=null,X=J):(W=J,X=null),u.setClipUrl(s.plot,W,t),s.layerClipId=X}function $(t){return"M"+D+","+t+"H"+z}function Q(t){return"M"+d._offset+","+t+"h"+d._length}function tt(t){return"M"+t+","+U+"V"+j}function et(t){return void 0!==v._shift&&(t+=v._shift),"M"+t+","+v._offset+"v"+v._length}function rt(t,e,r){if(!t.showline||i!==t._mainSubplot)return"";if(!t._anchorAxis)return r(t._mainLinePosition);var n=e(t._mainLinePosition);return t.mirror&&(n+=e(t._mainMirrorPosition)),n}for(i in g._plots){s=g._plots[i],d=s.xaxis,v=s.yaxis;var nt="M0,0";_(d,i)&&(B=T(d,"left",v,b),D=d._offset-(B?m+B:0),N=T(d,"right",v,b),z=d._offset+d._length+(N?m+N:0),R=w(d,v,"bottom"),F=w(d,v,"top"),!(Z=!d._anchorAxis||i!==d._mainSubplot)||"allticks"!==d.mirror&&"all"!==d.mirror||(d._linepositions[i]=[R,F]),nt=rt(d,$,Q),Z&&d.showline&&("all"===d.mirror||"allticks"===d.mirror)&&(nt+=$(R)+$(F)),s.xlines.style("stroke-width",d._lw+"px").call(l.stroke,d.showline?d.linecolor:"rgba(0,0,0,0)")),s.xlines.attr("d",nt);var it="M0,0";_(v,i)&&(q=T(v,"bottom",d,b),j=v._offset+v._length+(q?m:0),G=T(v,"top",d,b),U=v._offset-(G?m:0),V=w(v,d,"left"),H=w(v,d,"right"),!(Z=!v._anchorAxis||i!==v._mainSubplot)||"allticks"!==v.mirror&&"all"!==v.mirror||(v._linepositions[i]=[V,H]),it=rt(v,tt,et),Z&&v.showline&&("all"===v.mirror||"allticks"===v.mirror)&&(it+=tt(V)+tt(H)),s.ylines.style("stroke-width",v._lw+"px").call(l.stroke,v.showline?v.linecolor:"rgba(0,0,0,0)")),s.ylines.attr("d",it)}return h.makeClipPaths(t),a.previousPromises(t)}function _(t,e){return(t.ticks||t.showline)&&(e===t._mainSubplot||"all"===t.mirror||"allticks"===t.mirror)}function w(t,e,r){if(!r.showline||!r._lw)return!1;if("all"===r.mirror||"allticks"===r.mirror)return!0;var n=r._anchorAxis;if(!n)return!1;var i=p.FROM_BL[e];return r.side===e?n.domain[i]===t.domain[i]:r.mirror&&n.domain[1-i]===t.domain[1-i]}function T(t,e,r,n){if(w(t,e,r))return r._lw;for(var i=0;i<n.length;i++){var a=n[i];if(a._mainAxis===r._mainAxis&&w(t,e,a))return a._lw}return 0}function k(t,e){var r=t.title,n=t._size,i=0;return e===m?i=r.pad.l:"end"===e&&(i=-r.pad.r),"paper"===r.xref?n.l+n.w*r.x+i:t.width*r.x+i}function A(t,e){var r=t.title,n=t._size,i=0;return"0em"!==e&&e?e===p.CAP_SHIFT+"em"&&(i=r.pad.t):i=-r.pad.b,"auto"===r.y?n.t/2:"paper"===r.yref?n.t+n.h-n.h*r.y+i:t.height-t.height*r.y+i}e.layoutStyles=function(t){return o.syncOrAsync([a.doAutoMargin,b],t)},e.drawMainTitle=function(t){var e=t._fullLayout,r=function(t){var e=t.title,r="middle";return o.isRightAnchor(e)?r="end":o.isLeftAnchor(e)&&(r=m),r}(e),n=function(t){var e=t.title,r="0em";return o.isTopAnchor(e)?r=p.CAP_SHIFT+"em":o.isMiddleAnchor(e)&&(r=p.MID_SHIFT+"em"),r}(e);c.draw(t,"gtitle",{propContainer:e,propName:"title.text",placeholder:e._dfltTitle.plot,attributes:{x:k(e,r),y:A(e,n),"text-anchor":r,dy:n}})},e.doTraceStyle=function(t){var r,n=t.calcdata,o=[];for(r=0;r<n.length;r++){var l=n[r],u=l[0]||{},c=u.trace||{},f=c._module||{},h=f.arraysToCalcdata;h&&h(l,c);var p=f.editStyle;p&&o.push({fn:p,cd0:u})}if(o.length){for(r=0;r<o.length;r++){var d=o[r];d.fn(t,d.cd0)}s(t),e.redrawReglTraces(t)}return a.style(t),i.getComponentMethod("legend","draw")(t),a.previousPromises(t)},e.doColorBars=function(t){return i.getComponentMethod("colorbar","draw")(t),a.previousPromises(t)},e.layoutReplot=function(t){var e=t.layout;return t.layout=void 0,i.call("_doPlot",t,"",e)},e.doLegend=function(t){return i.getComponentMethod("legend","draw")(t),a.previousPromises(t)},e.doTicksRelayout=function(t){return h.draw(t,"redraw"),t._fullLayout._hasOnlyLargeSploms&&(i.subplotsRegistry.splom.updateGrid(t),s(t),e.redrawReglTraces(t)),e.drawMainTitle(t),a.previousPromises(t)},e.doModeBar=function(t){var e=t._fullLayout;f.manage(t);for(var r=0;r<e._basePlotModules.length;r++){var n=e._basePlotModules[r].updateFx;n&&n(t)}return a.previousPromises(t)},e.doCamera=function(t){for(var e=t._fullLayout,r=e._subplots.gl3d,n=0;n<r.length;n++){var i=e[r[n]];i._scene.setViewport(i)}},e.drawData=function(t){var r=t._fullLayout;s(t);for(var n=r._basePlotModules,o=0;o<n.length;o++)n[o].plot(t);return e.redrawReglTraces(t),a.style(t),i.getComponentMethod("selections","draw")(t),i.getComponentMethod("shapes","draw")(t),i.getComponentMethod("annotations","draw")(t),i.getComponentMethod("images","draw")(t),r._replotting=!1,a.previousPromises(t)},e.redrawReglTraces=function(t){var e=t._fullLayout;if(e._has("regl")){var r,n,i=t._fullData,a=[],s=[];for(e._hasOnlyLargeSploms&&e._splomGrid.draw(),r=0;r<i.length;r++){var l=i[r];!0===l.visible&&0!==l._length&&("splom"===l.type?e._splomScenes[l.uid].draw():"scattergl"===l.type?o.pushUnique(a,l.xaxis+l.yaxis):"scatterpolargl"===l.type&&o.pushUnique(s,l.subplot))}for(r=0;r<a.length;r++)(n=e._plots[a[r]])._scene&&n._scene.draw();for(r=0;r<s.length;r++)(n=e[s[r]]._subplot)._scene&&n._scene.draw()}},e.doAutoRangeAndConstraints=function(t){for(var e,r=h.list(t,"",!0),n={},i=0;i<r.length;i++)if(!n[(e=r[i])._id]){n[e._id]=1,g(t,e),y(t,e);var a=e._matchGroup;if(a)for(var o in a){var s=h.getFromId(t,o);y(t,s,e.range),n[o]=1}}v(t)},e.finalDraw=function(t){i.getComponentMethod("rangeslider","draw")(t),i.getComponentMethod("rangeselector","draw")(t)},e.drawMarginPushers=function(t){i.getComponentMethod("legend","draw")(t),i.getComponentMethod("rangeselector","draw")(t),i.getComponentMethod("sliders","draw")(t),i.getComponentMethod("updatemenus","draw")(t),i.getComponentMethod("colorbar","draw")(t)}},96318:function(t,e,r){"use strict";var n=r(71828),i=n.isPlainObject,a=r(86281),o=r(74875),s=r(9012),l=r(44467),u=r(72075).dfltConfig;function c(t,e){t=n.extendDeep({},t);var r,a,o=Object.keys(t).sort();function s(e,r,n){if(i(r)&&i(e))c(e,r);else if(Array.isArray(r)&&Array.isArray(e)){var o=l.arrayTemplater({_template:t},n);for(a=0;a<r.length;a++){var s=r[a],u=o.newItem(s)._template;u&&c(u,s)}var f=o.defaultItems();for(a=0;a<f.length;a++)r.push(f[a]._template);for(a=0;a<r.length;a++)delete r[a].templateitemname}}for(r=0;r<o.length;r++){var u=o[r],h=t[u];if(u in e?s(h,e[u],u):e[u]=h,f(u)===u)for(var p in e){var d=f(p);p===d||d!==u||p in t||s(h,e[p],u)}}}function f(t){return t.replace(/[0-9]+$/,"")}function h(t,e,r,a,o){var s=o&&r(o);for(var u in t){var c=t[u],p=v(t,u,a),d=v(t,u,o),g=r(d);if(!g){var y=f(u);y!==u&&(g=r(d=v(t,y,o)))}if(!(s&&s===g||!g||g._noTemplating||"data_array"===g.valType||g.arrayOk&&Array.isArray(c)))if(!g.valType&&i(c))h(c,e,r,p,d);else if(g._isLinkedToArray&&Array.isArray(c))for(var m=!1,x=0,b={},_=0;_<c.length;_++){var w=c[_];if(i(w)){var T=w.name;if(T)b[T]||(h(w,e,r,v(c,x,p),v(c,x,d)),x++,b[T]=1);else if(!m){var k=v(t,l.arrayDefaultKey(u),a),A=v(c,x,p);h(w,e,r,A,v(c,x,d));var M=n.nestedProperty(e,A);n.nestedProperty(e,k).set(M.get()),M.set(null),m=!0}}}else n.nestedProperty(e,p).set(c)}}function p(t,e){return a.getLayoutValObject(t,n.nestedProperty({},e).parts)}function d(t,e){return a.getTraceValObject(t,n.nestedProperty({},e).parts)}function v(t,e,r){return r?Array.isArray(t)?r+"["+e+"]":r+"."+e:e}function g(t){for(var e=0;e<t.length;e++)if(i(t[e]))return!0}function y(t){var e;switch(t.code){case"data":e="The template has no key data.";break;case"layout":e="The template has no key layout.";break;case"missing":e=t.path?"There are no templates for item "+t.path+" with name "+t.templateitemname:"There are no templates for trace "+t.index+", of type "+t.traceType+".";break;case"unused":e=t.path?"The template item at "+t.path+" was not used in constructing the plot.":t.dataCount?"Some of the templates of type "+t.traceType+" were not used. The template has "+t.templateCount+" traces, the data only has "+t.dataCount+" of this type.":"The template has "+t.templateCount+" traces of type "+t.traceType+" but there are none in the data.";break;case"reused":e="Some of the templates of type "+t.traceType+" were used more than once. The template has "+t.templateCount+" traces, the data has "+t.dataCount+" of this type."}return t.msg=e,t}e.makeTemplate=function(t){t=n.isPlainObject(t)?t:n.getGraphDiv(t),t=n.extendDeep({_context:u},{data:t.data,layout:t.layout}),o.supplyDefaults(t);var e=t.data||[],r=t.layout||{};r._basePlotModules=t._fullLayout._basePlotModules,r._modules=t._fullLayout._modules;var a={data:{},layout:{}};e.forEach((function(t){var e={};h(t,e,d.bind(null,t));var r=n.coerce(t,{},s,"type"),i=a.data[r];i||(i=a.data[r]=[]),i.push(e)})),h(r,a.layout,p.bind(null,r)),delete a.layout.template;var l=r.template;if(i(l)){var f,v,g,y,m,x,b=l.layout;i(b)&&c(b,a.layout);var _=l.data;if(i(_)){for(v in a.data)if(g=_[v],Array.isArray(g)){for(x=(m=a.data[v]).length,y=g.length,f=0;f<x;f++)c(g[f%y],m[f]);for(f=x;f<y;f++)m.push(n.extendDeep({},g[f]))}for(v in _)v in a.data||(a.data[v]=n.extendDeep([],_[v]))}}return a},e.validateTemplate=function(t,e){var r=n.extendDeep({},{_context:u,data:t.data,layout:t.layout}),a=r.layout||{};i(e)||(e=a.template||{});var s=e.layout,l=e.data,c=[];r.layout=a,r.layout.template=e,o.supplyDefaults(r);var h=r._fullLayout,p=r._fullData,d={};if(i(s)?(function t(e,r){for(var n in e)if("_"!==n.charAt(0)&&i(e[n])){var a,o=f(n),s=[];for(a=0;a<r.length;a++)s.push(v(e,n,r[a])),o!==n&&s.push(v(e,o,r[a]));for(a=0;a<s.length;a++)d[s[a]]=1;t(e[n],s)}}(h,["layout"]),function t(e,r){for(var n in e)if(-1===n.indexOf("defaults")&&i(e[n])){var a=v(e,n,r);d[a]?t(e[n],a):c.push({code:"unused",path:a})}}(s,"layout")):c.push({code:"layout"}),i(l)){for(var m,x={},b=0;b<p.length;b++){var _=p[b];x[m=_.type]=(x[m]||0)+1,_._fullInput._template||c.push({code:"missing",index:_._fullInput.index,traceType:m})}for(m in l){var w=l[m].length,T=x[m]||0;w>T?c.push({code:"unused",traceType:m,templateCount:w,dataCount:T}):T>w&&c.push({code:"reused",traceType:m,templateCount:w,dataCount:T})}}else c.push({code:"data"});if(function t(e,r){for(var n in e)if("_"!==n.charAt(0)){var a=e[n],o=v(e,n,r);i(a)?(Array.isArray(e)&&!1===a._template&&a.templateitemname&&c.push({code:"missing",path:o,templateitemname:a.templateitemname}),t(a,o)):Array.isArray(a)&&g(a)&&t(a,o)}}({data:p,layout:h},""),c.length)return c.map(y)}},403:function(t,e,r){"use strict";var n=r(92770),i=r(72391),a=r(74875),o=r(71828),s=r(25095),l=r(5900),u=r(70942),c=r(11506).version,f={format:{valType:"enumerated",values:["png","jpeg","webp","svg","full-json"],dflt:"png"},width:{valType:"number",min:1},height:{valType:"number",min:1},scale:{valType:"number",min:0,dflt:1},setBackground:{valType:"any",dflt:!1},imageDataOnly:{valType:"boolean",dflt:!1}};t.exports=function(t,e){var r,h,p,d;function v(t){return!(t in e)||o.validate(e[t],f[t])}if(e=e||{},o.isPlainObject(t)?(r=t.data||[],h=t.layout||{},p=t.config||{},d={}):(t=o.getGraphDiv(t),r=o.extendDeep([],t.data),h=o.extendDeep({},t.layout),p=t._context,d=t._fullLayout||{}),!v("width")&&null!==e.width||!v("height")&&null!==e.height)throw new Error("Height and width should be pixel values.");if(!v("format"))throw new Error("Export format is not "+o.join2(f.format.values,", "," or ")+".");var g={};function y(t,r){return o.coerce(e,g,f,t,r)}var m=y("format"),x=y("width"),b=y("height"),_=y("scale"),w=y("setBackground"),T=y("imageDataOnly"),k=document.createElement("div");k.style.position="absolute",k.style.left="-5000px",document.body.appendChild(k);var A=o.extendFlat({},h);x?A.width=x:null===e.width&&n(d.width)&&(A.width=d.width),b?A.height=b:null===e.height&&n(d.height)&&(A.height=d.height);var M=o.extendFlat({},p,{_exportedPlot:!0,staticPlot:!0,setBackground:w}),S=s.getRedrawFunc(k);function E(){return new Promise((function(t){setTimeout(t,s.getDelay(k._fullLayout))}))}function L(){return new Promise((function(t,e){var r=l(k,m,_),n=k._fullLayout.width,f=k._fullLayout.height;function h(){i.purge(k),document.body.removeChild(k)}if("full-json"===m){var p=a.graphJson(k,!1,"keepdata","object",!0,!0);return p.version=c,p=JSON.stringify(p),h(),t(T?p:s.encodeJSON(p))}if(h(),"svg"===m)return t(T?r:s.encodeSVG(r));var d=document.createElement("canvas");d.id=o.randstr(),u({format:m,width:n,height:f,scale:_,canvas:d,svg:r,promise:!0}).then(t).catch(e)}))}return new Promise((function(t,e){i.newPlot(k,r,A,M).then(S).then(E).then(L).then((function(e){t(function(t){return T?t.replace(s.IMAGE_URL_PREFIX,""):t}(e))})).catch((function(t){e(t)}))}))}},84936:function(t,e,r){"use strict";var n=r(71828),i=r(74875),a=r(86281),o=r(72075).dfltConfig,s=n.isPlainObject,l=Array.isArray,u=n.isArrayOrTypedArray;function c(t,e,r,i,a,o){o=o||[];for(var f=Object.keys(t),h=0;h<f.length;h++){var p=f[h];if("transforms"!==p){var y=o.slice();y.push(p);var m=t[p],x=e[p],b=g(r,p),_=(b||{}).valType,w="info_array"===_,T="colorscale"===_,k=(b||{}).items;if(v(r,p))if(s(m)&&s(x)&&"any"!==_)c(m,x,b,i,a,y);else if(w&&l(m)){m.length>x.length&&i.push(d("unused",a,y.concat(x.length)));var A,M,S,E,L,C=x.length,P=Array.isArray(k);if(P&&(C=Math.min(C,k.length)),2===b.dimensions)for(M=0;M<C;M++)if(l(m[M])){m[M].length>x[M].length&&i.push(d("unused",a,y.concat(M,x[M].length)));var O=x[M].length;for(A=0;A<(P?Math.min(O,k[M].length):O);A++)S=P?k[M][A]:k,E=m[M][A],L=x[M][A],n.validate(E,S)?L!==E&&L!==+E&&i.push(d("dynamic",a,y.concat(M,A),E,L)):i.push(d("value",a,y.concat(M,A),E))}else i.push(d("array",a,y.concat(M),m[M]));else for(M=0;M<C;M++)S=P?k[M]:k,E=m[M],L=x[M],n.validate(E,S)?L!==E&&L!==+E&&i.push(d("dynamic",a,y.concat(M),E,L)):i.push(d("value",a,y.concat(M),E))}else if(b.items&&!w&&l(m)){var I,D,z=k[Object.keys(k)[0]],R=[];for(I=0;I<x.length;I++){var F=x[I]._index||I;if((D=y.slice()).push(F),s(m[F])&&s(x[I])){R.push(F);var B=m[F],N=x[I];s(B)&&!1!==B.visible&&!1===N.visible?i.push(d("invisible",a,D)):c(B,N,z,i,a,D)}}for(I=0;I<m.length;I++)(D=y.slice()).push(I),s(m[I])?-1===R.indexOf(I)&&i.push(d("unused",a,D)):i.push(d("object",a,D,m[I]))}else!s(m)&&s(x)?i.push(d("object",a,y,m)):u(m)||!u(x)||w||T?p in e?n.validate(m,b)?"enumerated"===b.valType&&(b.coerceNumber&&m!==+x||m!==x)&&i.push(d("dynamic",a,y,m,x)):i.push(d("value",a,y,m)):i.push(d("unused",a,y,m)):i.push(d("array",a,y,m));else i.push(d("schema",a,y))}}return i}function f(t,e){for(var r=t.layout.layoutAttributes,i=0;i<e.length;i++){var a=e[i],o=t.traces[a.type],s=o.layoutAttributes;s&&(a.subplot?n.extendFlat(r[o.attributes.subplot.dflt],s):n.extendFlat(r,s))}return r}t.exports=function(t,e){void 0===t&&(t=[]),void 0===e&&(e={});var r,u,h=a.get(),p=[],v={_context:n.extendFlat({},o)};l(t)?(v.data=n.extendDeep([],t),r=t):(v.data=[],r=[],p.push(d("array","data"))),s(e)?(v.layout=n.extendDeep({},e),u=e):(v.layout={},u={},arguments.length>1&&p.push(d("object","layout"))),i.supplyDefaults(v);for(var g=v._fullData,y=r.length,m=0;m<y;m++){var x=r[m],b=["data",m];if(s(x)){var _=g[m],w=_.type,T=h.traces[w].attributes;T.type={valType:"enumerated",values:[w]},!1===_.visible&&!1!==x.visible&&p.push(d("invisible",b)),c(x,_,T,p,b);var k=x.transforms,A=_.transforms;if(k){l(k)||p.push(d("array",b,["transforms"])),b.push("transforms");for(var M=0;M<k.length;M++){var S=["transforms",M],E=k[M].type;if(s(k[M])){var L=h.transforms[E]?h.transforms[E].attributes:{};L.type={valType:"enumerated",values:Object.keys(h.transforms)},c(k[M],A[M],L,p,b,S)}else p.push(d("object",b,S))}}}else p.push(d("object",b))}var C=v._fullLayout,P=f(h,g);return c(u,C,P,p,"layout"),0===p.length?void 0:p};var h={object:function(t,e){return("layout"===t&&""===e?"The layout argument":"data"===t[0]&&""===e?"Trace "+t[1]+" in the data argument":p(t)+"key "+e)+" must be linked to an object container"},array:function(t,e){return("data"===t?"The data argument":p(t)+"key "+e)+" must be linked to an array container"},schema:function(t,e){return p(t)+"key "+e+" is not part of the schema"},unused:function(t,e,r){var n=s(r)?"container":"key";return p(t)+n+" "+e+" did not get coerced"},dynamic:function(t,e,r,n){return[p(t)+"key",e,"(set to '"+r+"')","got reset to","'"+n+"'","during defaults."].join(" ")},invisible:function(t,e){return(e?p(t)+"item "+e:"Trace "+t[1])+" got defaulted to be not visible"},value:function(t,e,r){return[p(t)+"key "+e,"is set to an invalid value ("+r+")"].join(" ")}};function p(t){return l(t)?"In data trace "+t[1]+", ":"In "+t+", "}function d(t,e,r,i,a){var o,s;r=r||"",l(e)?(o=e[0],s=e[1]):(o=e,s=null);var u=function(t){if(!l(t))return String(t);for(var e="",r=0;r<t.length;r++){var n=t[r];"number"==typeof n?e=e.substr(0,e.length-1)+"["+n+"]":e+=n,r<t.length-1&&(e+=".")}return e}(r),c=h[t](e,u,i,a);return n.log(c),{code:t,container:o,trace:s,path:r,astr:u,msg:c}}function v(t,e){var r=m(e),n=r.keyMinusId,i=r.id;return!!(n in t&&t[n]._isSubplotObj&&i)||e in t}function g(t,e){return e in t?t[e]:t[m(e).keyMinusId]}var y=n.counterRegex("([a-z]+)");function m(t){var e=t.match(y);return{keyMinusId:e&&e[1],id:e&&e[2]}}},85594:function(t){"use strict";t.exports={mode:{valType:"enumerated",dflt:"afterall",values:["immediate","next","afterall"]},direction:{valType:"enumerated",values:["forward","reverse"],dflt:"forward"},fromcurrent:{valType:"boolean",dflt:!1},frame:{duration:{valType:"number",min:0,dflt:500},redraw:{valType:"boolean",dflt:!0}},transition:{duration:{valType:"number",min:0,dflt:500,editType:"none"},easing:{valType:"enumerated",dflt:"cubic-in-out",values:["linear","quad","cubic","sin","exp","circle","elastic","back","bounce","linear-in","quad-in","cubic-in","sin-in","exp-in","circle-in","elastic-in","back-in","bounce-in","linear-out","quad-out","cubic-out","sin-out","exp-out","circle-out","elastic-out","back-out","bounce-out","linear-in-out","quad-in-out","cubic-in-out","sin-in-out","exp-in-out","circle-in-out","elastic-in-out","back-in-out","bounce-in-out"],editType:"none"},ordering:{valType:"enumerated",values:["layout first","traces first"],dflt:"layout first",editType:"none"}}}},85501:function(t,e,r){"use strict";var n=r(71828),i=r(44467);t.exports=function(t,e,r){var a,o,s=r.name,l=r.inclusionAttr||"visible",u=e[s],c=n.isArrayOrTypedArray(t[s])?t[s]:[],f=e[s]=[],h=i.arrayTemplater(e,s,l);for(a=0;a<c.length;a++){var p=c[a];n.isPlainObject(p)?o=h.newItem(p):(o=h.newItem({}))[l]=!1,o._index=a,!1!==o[l]&&r.handleItemDefaults(p,o,e,r),f.push(o)}var d=h.defaultItems();for(a=0;a<d.length;a++)(o=d[a])._index=f.length,r.handleItemDefaults({},o,e,r,{}),f.push(o);if(n.isArrayOrTypedArray(u)){var v=Math.min(u.length,f.length);for(a=0;a<v;a++)n.relinkPrivateKeys(f[a],u[a])}return f}},9012:function(t,e,r){"use strict";var n=r(41940),i=r(77914);t.exports={type:{valType:"enumerated",values:[],dflt:"scatter",editType:"calc+clearAxisTypes",_noTemplating:!0},visible:{valType:"enumerated",values:[!0,!1,"legendonly"],dflt:!0,editType:"calc"},showlegend:{valType:"boolean",dflt:!0,editType:"style"},legendgroup:{valType:"string",dflt:"",editType:"style"},legendgrouptitle:{text:{valType:"string",dflt:"",editType:"style"},font:n({editType:"style"}),editType:"style"},legendrank:{valType:"number",dflt:1e3,editType:"style"},legendwidth:{valType:"number",min:0,editType:"style"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"style"},name:{valType:"string",editType:"style"},uid:{valType:"string",editType:"plot",anim:!0},ids:{valType:"data_array",editType:"calc",anim:!0},customdata:{valType:"data_array",editType:"calc"},meta:{valType:"any",arrayOk:!0,editType:"plot"},selectedpoints:{valType:"any",editType:"calc"},hoverinfo:{valType:"flaglist",flags:["x","y","z","text","name"],extras:["all","none","skip"],arrayOk:!0,dflt:"all",editType:"none"},hoverlabel:i.hoverlabel,stream:{token:{valType:"string",noBlank:!0,strict:!0,editType:"calc"},maxpoints:{valType:"number",min:0,max:1e4,dflt:500,editType:"calc"},editType:"calc"},transforms:{_isLinkedToArray:"transform",editType:"calc"},uirevision:{valType:"any",editType:"none"}}},42973:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=i.dateTime2ms,o=i.incrementMonth,s=r(50606).ONEAVGMONTH;t.exports=function(t,e,r,i){if("date"!==e.type)return{vals:i};var l=t[r+"periodalignment"];if(!l)return{vals:i};var u,c=t[r+"period"];if(n(c)){if((c=+c)<=0)return{vals:i}}else if("string"==typeof c&&"M"===c.charAt(0)){var f=+c.substring(1);if(!(f>0&&Math.round(f)===f))return{vals:i};u=f}for(var h=e.calendar,p="start"===l,d="end"===l,v=t[r+"period0"],g=a(v,h)||0,y=[],m=[],x=[],b=i.length,_=0;_<b;_++){var w,T,k,A=i[_];if(u){for(w=Math.round((A-g)/(u*s)),k=o(g,u*w,h);k>A;)k=o(k,-u,h);for(;k<=A;)k=o(k,u,h);T=o(k,-u,h)}else{for(k=g+(w=Math.round((A-g)/c))*c;k>A;)k-=c;for(;k<=A;)k+=c;T=k-c}y[_]=p?T:d?k:(T+k)/2,m[_]=T,x[_]=k}return{vals:y,starts:m,ends:x}}},89502:function(t){"use strict";t.exports={xaxis:{valType:"subplotid",dflt:"x",editType:"calc+clearAxisTypes"},yaxis:{valType:"subplotid",dflt:"y",editType:"calc+clearAxisTypes"}}},71739:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(71828),o=r(50606).FP_SAFE,s=r(73972),l=r(91424),u=r(41675),c=u.getFromId,f=u.isLinked;function h(t,e){var r,n,i=[],o=t._fullLayout,s=d(o,e,0),l=d(o,e,1),u=v(t,e),c=u.min,f=u.max;if(0===c.length||0===f.length)return a.simpleMap(e.range,e.r2l);var h=c[0].val,g=f[0].val;for(r=1;r<c.length&&h===g;r++)h=Math.min(h,c[r].val);for(r=1;r<f.length&&h===g;r++)g=Math.max(g,f[r].val);var y=!1;if(e.range){var m=a.simpleMap(e.range,e.r2l);y=m[1]<m[0]}"reversed"===e.autorange&&(y=!0,e.autorange=!0);var x,b,_,w,T,k,A=e.rangemode,M="tozero"===A,S="nonnegative"===A,E=e._length,L=E/10,C=0;for(r=0;r<c.length;r++)for(x=c[r],n=0;n<f.length;n++)(k=(b=f[n]).val-x.val-p(e,x.val,b.val))>0&&((T=E-s(x)-l(b))>L?k/T>C&&(_=x,w=b,C=k/T):k/E>C&&(_={val:x.val,nopad:1},w={val:b.val,nopad:1},C=k/E));if(h===g){var P=h-1,O=h+1;if(M)if(0===h)i=[0,1];else{var I=(h>0?f:c).reduce((function(t,e){return Math.max(t,l(e))}),0),D=h/(1-Math.min(.5,I/E));i=h>0?[0,D]:[D,0]}else i=S?[Math.max(0,P),Math.max(1,O)]:[P,O]}else M?(_.val>=0&&(_={val:0,nopad:1}),w.val<=0&&(w={val:0,nopad:1})):S&&(_.val-C*s(_)<0&&(_={val:0,nopad:1}),w.val<=0&&(w={val:1,nopad:1})),C=(w.val-_.val-p(e,x.val,b.val))/(E-s(_)-l(w)),i=[_.val-C*s(_),w.val+C*l(w)];return y&&i.reverse(),a.simpleMap(i,e.l2r||Number)}function p(t,e,r){var n=0;if(t.rangebreaks)for(var i=t.locateBreaks(e,r),a=0;a<i.length;a++){var o=i[a];n+=o.max-o.min}return n}function d(t,e,r){var i=.05*e._length,o=e._anchorAxis||{};if(-1!==(e.ticklabelposition||"").indexOf("inside")||-1!==(o.ticklabelposition||"").indexOf("inside")){var s="reversed"===e.autorange;if(!s){var u=a.simpleMap(e.range,e.r2l);s=u[1]<u[0]}s&&(r=!r)}var c=0;return f(t,e._id)||(c=function(t,e,r){var i=0,o="x"===e._id.charAt(0);for(var s in t._plots){var u=t._plots[s];if(e._id===u.xaxis._id||e._id===u.yaxis._id){var c=(o?u.yaxis:u.xaxis)||{};if(-1!==(c.ticklabelposition||"").indexOf("inside")&&(!r&&("left"===c.side||"bottom"===c.side)||r&&("top"===c.side||"right"===c.side))){if(c._vals){var f=a.deg2rad(c._tickAngles[c._id+"tick"]||0),h=Math.abs(Math.cos(f)),p=Math.abs(Math.sin(f));if(!c._vals[0].bb){var d=c._id+"tick";c._selections[d].each((function(t){var e=n.select(this);e.select(".text-math-group").empty()&&(t.bb=l.bBox(e.node()))}))}for(var v=0;v<c._vals.length;v++){var g=c._vals[v].bb;if(g){var y=6+g.width,m=6+g.height;i=Math.max(i,o?Math.max(y*h,m*p):Math.max(m*h,y*p))}}}"inside"===c.ticks&&"inside"===c.ticklabelposition&&(i+=c.ticklen||0)}}}return i}(t,e,r)),i=Math.max(c,i),"domain"===e.constrain&&e._inputDomain&&(i*=(e._inputDomain[1]-e._inputDomain[0])/(e.domain[1]-e.domain[0])),function(t){return t.nopad?0:t.pad+(t.extrapad?i:c)}}function v(t,e,r){var n,i,a,o=e._id,s=t._fullData,l=t._fullLayout,u=[],f=[];function h(t,e){for(n=0;n<e.length;n++){var r=t[e[n]],s=(r._extremes||{})[o];if(!0===r.visible&&s){for(i=0;i<s.min.length;i++)a=s.min[i],g(u,a.val,a.pad,{extrapad:a.extrapad});for(i=0;i<s.max.length;i++)a=s.max[i],y(f,a.val,a.pad,{extrapad:a.extrapad})}}}if(h(s,e._traceIndices),h(l.annotations||[],e._annIndices||[]),h(l.shapes||[],e._shapeIndices||[]),e._matchGroup&&!r)for(var p in e._matchGroup)if(p!==e._id){var d=c(t,p),m=v(t,d,!0),x=e._length/d._length;for(i=0;i<m.min.length;i++)a=m.min[i],g(u,a.val,a.pad*x,{extrapad:a.extrapad});for(i=0;i<m.max.length;i++)a=m.max[i],y(f,a.val,a.pad*x,{extrapad:a.extrapad})}return{min:u,max:f}}function g(t,e,r,n){m(t,e,r,n,b)}function y(t,e,r,n){m(t,e,r,n,_)}function m(t,e,r,n,i){for(var a=n.tozero,o=n.extrapad,s=!0,l=0;l<t.length&&s;l++){var u=t[l];if(i(u.val,e)&&u.pad>=r&&(u.extrapad||!o)){s=!1;break}i(e,u.val)&&u.pad<=r&&(o||!u.extrapad)&&(t.splice(l,1),l--)}if(s){var c=a&&0===e;t.push({val:e,pad:c?0:r,extrapad:!c&&o})}}function x(t){return i(t)&&Math.abs(t)<o}function b(t,e){return t<=e}function _(t,e){return t>=e}t.exports={getAutoRange:h,makePadFn:d,doAutoRange:function(t,e,r){if(e.setScale(),e.autorange){e.range=r?r.slice():h(t,e),e._r=e.range.slice(),e._rl=a.simpleMap(e._r,e.r2l);var n=e._input,i={};i[e._attr+".range"]=e.range,i[e._attr+".autorange"]=e.autorange,s.call("_storeDirectGUIEdit",t.layout,t._fullLayout._preGUI,i),n.range=e.range.slice(),n.autorange=e.autorange}var o=e._anchorAxis;if(o&&o.rangeslider){var l=o.rangeslider[e._name];l&&"auto"===l.rangemode&&(l.range=h(t,e)),o._input.rangeslider[e._name]=a.extendFlat({},l)}},findExtremes:function(t,e,r){r||(r={}),t._m||t.setScale();var n,a,s,l,u,c,f,h,p,d=[],v=[],m=e.length,b=r.padded||!1,_=r.tozero&&("linear"===t.type||"-"===t.type),w="log"===t.type,T=!1,k=r.vpadLinearized||!1;function A(t){if(Array.isArray(t))return T=!0,function(e){return Math.max(Number(t[e]||0),0)};var e=Math.max(Number(t||0),0);return function(){return e}}var M=A((t._m>0?r.ppadplus:r.ppadminus)||r.ppad||0),S=A((t._m>0?r.ppadminus:r.ppadplus)||r.ppad||0),E=A(r.vpadplus||r.vpad),L=A(r.vpadminus||r.vpad);if(!T){if(h=1/0,p=-1/0,w)for(n=0;n<m;n++)(a=e[n])<h&&a>0&&(h=a),a>p&&a<o&&(p=a);else for(n=0;n<m;n++)(a=e[n])<h&&a>-o&&(h=a),a>p&&a<o&&(p=a);e=[h,p],m=2}var C={tozero:_,extrapad:b};function P(r){s=e[r],i(s)&&(c=M(r),f=S(r),k?(l=t.c2l(s)-L(r),u=t.c2l(s)+E(r)):(h=s-L(r),p=s+E(r),w&&h<p/10&&(h=p/10),l=t.c2l(h),u=t.c2l(p)),_&&(l=Math.min(0,l),u=Math.max(0,u)),x(l)&&g(d,l,f,C),x(u)&&y(v,u,c,C))}var O=Math.min(6,m);for(n=0;n<O;n++)P(n);for(n=m-1;n>=O;n--)P(n);return{min:d,max:v,opts:r}},concatExtremes:v}},89298:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(74875),o=r(73972),s=r(71828),l=s.strTranslate,u=r(63893),c=r(92998),f=r(7901),h=r(91424),p=r(13838),d=r(66287),v=r(50606),g=v.ONEMAXYEAR,y=v.ONEAVGYEAR,m=v.ONEMINYEAR,x=v.ONEMAXQUARTER,b=v.ONEAVGQUARTER,_=v.ONEMINQUARTER,w=v.ONEMAXMONTH,T=v.ONEAVGMONTH,k=v.ONEMINMONTH,A=v.ONEWEEK,M=v.ONEDAY,S=M/2,E=v.ONEHOUR,L=v.ONEMIN,C=v.ONESEC,P=v.MINUS_SIGN,O=v.BADNUM,I={K:"zeroline"},D={K:"gridline",L:"path"},z={K:"minor-gridline",L:"path"},R={K:"tick",L:"path"},F={K:"tick",L:"text"},B={width:["x","r","l","xl","xr"],height:["y","t","b","yt","yb"],right:["r","xr"],left:["l","xl"],top:["t","yt"],bottom:["b","yb"]},N=r(18783),j=N.MID_SHIFT,U=N.CAP_SHIFT,V=N.LINE_SPACING,H=N.OPPOSITE_SIDE,q=t.exports={};q.setConvert=r(21994);var G=r(4322),Z=r(41675),Y=Z.idSort,W=Z.isLinked;q.id2name=Z.id2name,q.name2id=Z.name2id,q.cleanId=Z.cleanId,q.list=Z.list,q.listIds=Z.listIds,q.getFromId=Z.getFromId,q.getFromTrace=Z.getFromTrace;var X=r(71739);function J(t){var e=1e-4*(t[1]-t[0]);return[t[0]-e,t[1]+e]}q.getAutoRange=X.getAutoRange,q.findExtremes=X.findExtremes,q.coerceRef=function(t,e,r,n,i,a){var o=n.charAt(n.length-1),l=r._fullLayout._subplots[o+"axis"],u=n+"ref",c={};return i||(i=l[0]||("string"==typeof a?a:a[0])),a||(a=i),l=l.concat(l.map((function(t){return t+" domain"}))),c[u]={valType:"enumerated",values:l.concat(a?"string"==typeof a?[a]:a:[]),dflt:i},s.coerce(t,e,c,u)},q.getRefType=function(t){return void 0===t?t:"paper"===t?"paper":"pixel"===t?"pixel":/( domain)$/.test(t)?"domain":"range"},q.coercePosition=function(t,e,r,n,i,a){var o,l;if("range"!==q.getRefType(n))o=s.ensureNumber,l=r(i,a);else{var u=q.getFromId(e,n);l=r(i,a=u.fraction2r(a)),o=u.cleanPos}t[i]=o(l)},q.cleanPosition=function(t,e,r){return("paper"===r||"pixel"===r?s.ensureNumber:q.getFromId(e,r).cleanPos)(t)},q.redrawComponents=function(t,e){e=e||q.listIds(t);var r=t._fullLayout;function n(n,i,a,s){for(var l=o.getComponentMethod(n,i),u={},c=0;c<e.length;c++)for(var f=r[q.id2name(e[c])][a],h=0;h<f.length;h++){var p=f[h];if(!u[p]&&(l(t,p),u[p]=1,s))return}}n("annotations","drawOne","_annIndices"),n("shapes","drawOne","_shapeIndices"),n("images","draw","_imgIndices",!0),n("selections","drawOne","_selectionIndices")};var K=q.getDataConversions=function(t,e,r,n){var i,a="x"===r||"y"===r||"z"===r?r:n;if(Array.isArray(a)){if(i={type:G(n,void 0,{autotypenumbers:t._fullLayout.autotypenumbers}),_categories:[]},q.setConvert(i),"category"===i.type)for(var o=0;o<n.length;o++)i.d2c(n[o])}else i=q.getFromTrace(t,e,a);return i?{d2c:i.d2c,c2d:i.c2d}:"ids"===a?{d2c:Q,c2d:Q}:{d2c:$,c2d:$}};function $(t){return+t}function Q(t){return String(t)}function tt(t,e){return Math.abs((t/e+.5)%1-.5)<.001}function et(t,e){return Math.abs(t/e-1)<.001}function rt(t){return+t.substring(1)}function nt(t,e){return t.rangebreaks&&(e=e.filter((function(e){return t.maskBreaks(e.x)!==O}))),e}function it(t){var e=t._mainAxis,r=[];if(e._vals)for(var n=0;n<e._vals.length;n++)if(!e._vals[n].noTick){var i=e.l2p(e._vals[n].x),a=t.p2l(i),o=q.tickText(t,a);e._vals[n].minor&&(o.minor=!0,o.text=""),r.push(o)}return nt(t,r)}function at(t){var e=J(s.simpleMap(t.range,t.r2l)),r=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]),i="category"===t.type?t.d2l_noadd:t.d2l;"log"===t.type&&"L"!==String(t.dtick).charAt(0)&&(t.dtick="L"+Math.pow(10,Math.floor(Math.min(t.range[0],t.range[1]))-1));for(var a=[],o=0;o<=1;o++)if(!o||t.minor){var l=o?t.minor.tickvals:t.tickvals,u=o?[]:t.ticktext;if(l){Array.isArray(u)||(u=[]);for(var c=0;c<l.length;c++){var f=i(l[c]);if(f>r&&f<n){var h=void 0===u[c]?q.tickText(t,f):vt(t,f,String(u[c]));o&&(h.minor=!0,h.text=""),a.push(h)}}}}return nt(t,a)}q.getDataToCoordFunc=function(t,e,r,n){return K(t,e,r,n).d2c},q.counterLetter=function(t){var e=t.charAt(0);return"x"===e?"y":"y"===e?"x":void 0},q.minDtick=function(t,e,r,n){-1===["log","category","multicategory"].indexOf(t.type)&&n?void 0===t._minDtick?(t._minDtick=e,t._forceTick0=r):t._minDtick&&((t._minDtick/e+1e-6)%1<2e-6&&((r-t._forceTick0)/e%1+1.000001)%1<2e-6?(t._minDtick=e,t._forceTick0=r):((e/t._minDtick+1e-6)%1>2e-6||((r-t._forceTick0)/t._minDtick%1+1.000001)%1>2e-6)&&(t._minDtick=0)):t._minDtick=0},q.saveRangeInitial=function(t,e){for(var r=q.list(t,"",!0),n=!1,i=0;i<r.length;i++){var a=r[i],o=void 0===a._rangeInitial,s=o||!(a.range[0]===a._rangeInitial[0]&&a.range[1]===a._rangeInitial[1]);(o&&!1===a.autorange||e&&s)&&(a._rangeInitial=a.range.slice(),n=!0)}return n},q.saveShowSpikeInitial=function(t,e){for(var r=q.list(t,"",!0),n=!1,i="on",a=0;a<r.length;a++){var o=r[a],s=void 0===o._showSpikeInitial,l=s||!(o.showspikes===o._showspikes);(s||e&&l)&&(o._showSpikeInitial=o.showspikes,n=!0),"on"!==i||o.showspikes||(i="off")}return t._fullLayout._cartesianSpikesEnabled=i,n},q.autoBin=function(t,e,r,n,a,o){var l,u=s.aggNums(Math.min,null,t),c=s.aggNums(Math.max,null,t);if("category"===e.type||"multicategory"===e.type)return{start:u-.5,end:c+.5,size:Math.max(1,Math.round(o)||1),_dataSpan:c-u};if(a||(a=e.calendar),l="log"===e.type?{type:"linear",range:[u,c]}:{type:e.type,range:s.simpleMap([u,c],e.c2r,0,a),calendar:a},q.setConvert(l),o=o&&d.dtick(o,l.type))l.dtick=o,l.tick0=d.tick0(void 0,l.type,a);else{var f;if(r)f=(c-u)/r;else{var h=s.distinctVals(t),p=Math.pow(10,Math.floor(Math.log(h.minDiff)/Math.LN10)),v=p*s.roundUp(h.minDiff/p,[.9,1.9,4.9,9.9],!0);f=Math.max(v,2*s.stdev(t)/Math.pow(t.length,n?.25:.4)),i(f)||(f=1)}q.autoTicks(l,f)}var g,y=l.dtick,m=q.tickIncrement(q.tickFirst(l),y,"reverse",a);if("number"==typeof y)m=function(t,e,r,n,a){var o=0,s=0,l=0,u=0;function c(e){return(1+100*(e-t)/r.dtick)%100<2}for(var f=0;f<e.length;f++)e[f]%1==0?l++:i(e[f])||u++,c(e[f])&&o++,c(e[f]+r.dtick/2)&&s++;var h=e.length-u;if(l===h&&"date"!==r.type)r.dtick<1?t=n-.5*r.dtick:(t-=.5)+r.dtick<n&&(t+=r.dtick);else if(s<.1*h&&(o>.3*h||c(n)||c(a))){var p=r.dtick/2;t+=t+p<n?p:-p}return t}(m,t,l,u,c),g=m+(1+Math.floor((c-m)/y))*y;else for("M"===l.dtick.charAt(0)&&(m=function(t,e,r,n,i){var a=s.findExactDates(e,i);if(a.exactDays>.8){var o=Number(r.substr(1));a.exactYears>.8&&o%12==0?t=q.tickIncrement(t,"M6","reverse")+1.5*M:a.exactMonths>.8?t=q.tickIncrement(t,"M1","reverse")+15.5*M:t-=S;var l=q.tickIncrement(t,r);if(l<=n)return l}return t}(m,t,y,u,a)),g=m;g<=c;)g=q.tickIncrement(g,y,!1,a);return{start:e.c2r(m,0,a),end:e.c2r(g,0,a),size:y,_dataSpan:c-u}},q.prepMinorTicks=function(t,e,r){if(!e.minor.dtick){delete t.dtick;var n,a=e.dtick&&i(e._tmin);if(a){var o=q.tickIncrement(e._tmin,e.dtick,!0);n=[e._tmin,.99*o+.01*e._tmin]}else{var l=s.simpleMap(e.range,e.r2l);n=[l[0],.8*l[0]+.2*l[1]]}if(t.range=s.simpleMap(n,e.l2r),t._isMinor=!0,q.prepTicks(t,r),a){var u=i(e.dtick),c=i(t.dtick),f=u?e.dtick:+e.dtick.substring(1),h=c?t.dtick:+t.dtick.substring(1);u&&c?tt(f,h)?f===2*A&&h===2*M&&(t.dtick=A):f===2*A&&h===3*M?t.dtick=A:f!==A||(e._input.minor||{}).nticks?et(f/h,2.5)?t.dtick=f/2:t.dtick=f:t.dtick=M:"M"===String(e.dtick).charAt(0)?c?t.dtick="M1":tt(f,h)?f>=12&&2===h&&(t.dtick="M3"):t.dtick=e.dtick:"L"===String(t.dtick).charAt(0)?"L"===String(e.dtick).charAt(0)?tt(f,h)||(t.dtick=et(f/h,2.5)?e.dtick/2:e.dtick):t.dtick="D1":"D2"===t.dtick&&+e.dtick>1&&(t.dtick=1)}t.range=e.range}void 0===e.minor._tick0Init&&(t.tick0=e.tick0)},q.prepTicks=function(t,e){var r=s.simpleMap(t.range,t.r2l,void 0,void 0,e);if("auto"===t.tickmode||!t.dtick){var n,a=t.nticks;a||("category"===t.type||"multicategory"===t.type?(n=t.tickfont?s.bigFont(t.tickfont.size||12):15,a=t._length/n):(n="y"===t._id.charAt(0)?40:80,a=s.constrain(t._length/n,4,9)+1),"radialaxis"===t._name&&(a*=2)),t.minor&&"array"!==t.minor.tickmode||"array"===t.tickmode&&(a*=100),t._roughDTick=Math.abs(r[1]-r[0])/a,q.autoTicks(t,t._roughDTick),t._minDtick>0&&t.dtick<2*t._minDtick&&(t.dtick=t._minDtick,t.tick0=t.l2r(t._forceTick0))}"period"===t.ticklabelmode&&function(t){var e;function r(){return!(i(t.dtick)||"M"!==t.dtick.charAt(0))}var n=r(),a=q.getTickFormat(t);if(a){var o=t._dtickInit!==t.dtick;/%[fLQsSMX]/.test(a)||(/%[HI]/.test(a)?(e=E,o&&!n&&t.dtick<E&&(t.dtick=E)):/%p/.test(a)?(e=S,o&&!n&&t.dtick<S&&(t.dtick=S)):/%[Aadejuwx]/.test(a)?(e=M,o&&!n&&t.dtick<M&&(t.dtick=M)):/%[UVW]/.test(a)?(e=A,o&&!n&&t.dtick<A&&(t.dtick=A)):/%[Bbm]/.test(a)?(e=T,o&&(n?rt(t.dtick)<1:t.dtick<k)&&(t.dtick="M1")):/%[q]/.test(a)?(e=b,o&&(n?rt(t.dtick)<3:t.dtick<_)&&(t.dtick="M3")):/%[Yy]/.test(a)&&(e=y,o&&(n?rt(t.dtick)<12:t.dtick<m)&&(t.dtick="M12")))}(n=r())&&t.tick0===t._dowTick0&&(t.tick0=t._rawTick0),t._definedDelta=e}(t),t.tick0||(t.tick0="date"===t.type?"2000-01-01":0),"date"===t.type&&t.dtick<.1&&(t.dtick=.1),dt(t)},q.calcTicks=function(t,e){for(var r,n,a=t.type,o=t.calendar,l=t.ticklabelstep,u="period"===t.ticklabelmode,c=s.simpleMap(t.range,t.r2l,void 0,void 0,e),f=c[1]<c[0],h=Math.min(c[0],c[1]),p=Math.max(c[0],c[1]),d=Math.max(1e3,t._length||0),v=[],L=[],C=[],P=[],I=t.minor&&(t.minor.ticks||t.minor.showgrid),D=1;D>=(I?0:1);D--){var z=!D;D?(t._dtickInit=t.dtick,t._tick0Init=t.tick0):(t.minor._dtickInit=t.minor.dtick,t.minor._tick0Init=t.minor.tick0);var R=D?t:s.extendFlat({},t,t.minor);if(z?q.prepMinorTicks(R,t,e):q.prepTicks(R,e),"array"!==R.tickmode)if("sync"!==R.tickmode){var F=J(c),B=F[0],N=F[1],j=i(R.dtick),U="log"===a&&!(j||"L"===R.dtick.charAt(0)),V=q.tickFirst(R,e);if(D){if(t._tmin=V,V<B!==f)break;"category"!==a&&"multicategory"!==a||(N=f?Math.max(-.5,N):Math.min(t._categories.length-.5,N))}var H,G,Z=null,Y=V;D&&(j?G=t.dtick:"date"===a?"string"==typeof t.dtick&&"M"===t.dtick.charAt(0)&&(G=T*t.dtick.substring(1)):G=t._roughDTick,H=Math.round((t.r2l(Y)-t.r2l(t.tick0))/G)-1);var W=R.dtick;for(R.rangebreaks&&R._tick0Init!==R.tick0&&(Y=Dt(Y,t),f||(Y=q.tickIncrement(Y,W,!f,o))),D&&u&&(Y=q.tickIncrement(Y,W,!f,o),H--);f?Y>=N:Y<=N;Y=q.tickIncrement(Y,W,f,o)){if(D&&H++,R.rangebreaks&&!f){if(Y<B)continue;if(R.maskBreaks(Y)===O&&Dt(Y,R)>=p)break}if(C.length>d||Y===Z)break;Z=Y;var X={value:Y};D?(U&&Y!==(0|Y)&&(X.simpleLabel=!0),l>1&&H%l&&(X.skipLabel=!0),C.push(X)):(X.minor=!0,P.push(X))}}else C=[],v=it(t);else D?(C=[],v=at(t)):(P=[],L=at(t))}if(I&&!("inside"===t.minor.ticks&&"outside"===t.ticks||"outside"===t.minor.ticks&&"inside"===t.ticks)){for(var K=C.map((function(t){return t.value})),$=[],Q=0;Q<P.length;Q++){var tt=P[Q],et=tt.value;if(-1===K.indexOf(et)){for(var rt=!1,nt=0;!rt&&nt<C.length;nt++)1e7+C[nt].value===1e7+et&&(rt=!0);rt||$.push(tt)}}P=$}if(u&&function(t,e,r){for(var n=0;n<t.length;n++){var i=t[n].value,a=n,o=n+1;n<t.length-1?(a=n,o=n+1):n>0?(a=n-1,o=n):(a=n,o=n);var s,l=t[a].value,u=t[o].value,c=Math.abs(u-l),f=r||c,h=0;f>=m?h=c>=m&&c<=g?c:y:r===b&&f>=_?h=c>=_&&c<=x?c:b:f>=k?h=c>=k&&c<=w?c:T:r===A&&f>=A?h=A:f>=M?h=M:r===S&&f>=S?h=S:r===E&&f>=E&&(h=E),h>=c&&(h=c,s=!0);var p=i+h;if(e.rangebreaks&&h>0){for(var d=0,v=0;v<84;v++){var L=(v+.5)/84;e.maskBreaks(i*(1-L)+L*p)!==O&&d++}(h*=d/84)||(t[n].drop=!0),s&&c>A&&(h=c)}(h>0||0===n)&&(t[n].periodX=i+h/2)}}(C,t,t._definedDelta),t.rangebreaks){var ot="y"===t._id.charAt(0),st=1;"auto"===t.tickmode&&(st=t.tickfont?t.tickfont.size:12);var lt=NaN;for(r=C.length-1;r>-1;r--)if(C[r].drop)C.splice(r,1);else{C[r].value=Dt(C[r].value,t);var ut=t.c2p(C[r].value);(ot?lt>ut-st:lt<ut+st)?C.splice(f?r+1:r,1):lt=ut}}It(t)&&360===Math.abs(c[1]-c[0])&&C.pop(),t._tmax=(C[C.length-1]||{}).value,t._prevDateHead="",t._inCalcTicks=!0;var ct,ft,ht=function(e){e.text="",t._prevDateHead=n};for(C=C.concat(P),r=0;r<C.length;r++){var pt=C[r].minor,dt=C[r].value;pt?L.push({x:dt,minor:!0}):(n=t._prevDateHead,ct=q.tickText(t,dt,!1,C[r].simpleLabel),void 0!==(ft=C[r].periodX)&&(ct.periodX=ft,(ft>p||ft<h)&&(ft>p&&(ct.periodX=p),ft<h&&(ct.periodX=h),ht(ct))),C[r].skipLabel&&ht(ct),v.push(ct))}return v=v.concat(L),t._inCalcTicks=!1,u&&v.length&&(v[0].noTick=!0),v};var ot=[2,5,10],st=[1,2,3,6,12],lt=[1,2,5,10,15,30],ut=[1,2,3,7,14],ct=[-.046,0,.301,.477,.602,.699,.778,.845,.903,.954,1],ft=[-.301,0,.301,.699,1],ht=[15,30,45,90,180];function pt(t,e,r){return e*s.roundUp(t/e,r)}function dt(t){var e=t.dtick;if(t._tickexponent=0,i(e)||"string"==typeof e||(e=1),"category"!==t.type&&"multicategory"!==t.type||(t._tickround=null),"date"===t.type){var r=t.r2l(t.tick0),n=t.l2r(r).replace(/(^-|i)/g,""),a=n.length;if("M"===String(e).charAt(0))a>10||"01-01"!==n.substr(5)?t._tickround="d":t._tickround=+e.substr(1)%12==0?"y":"m";else if(e>=M&&a<=10||e>=15*M)t._tickround="d";else if(e>=L&&a<=16||e>=E)t._tickround="M";else if(e>=C&&a<=19||e>=L)t._tickround="S";else{var o=t.l2r(r+e).replace(/^-/,"").length;t._tickround=Math.max(a,o)-20,t._tickround<0&&(t._tickround=4)}}else if(i(e)||"L"===e.charAt(0)){var s=t.range.map(t.r2d||Number);i(e)||(e=Number(e.substr(1))),t._tickround=2-Math.floor(Math.log(e)/Math.LN10+.01);var l=Math.max(Math.abs(s[0]),Math.abs(s[1])),u=Math.floor(Math.log(l)/Math.LN10+.01),c=void 0===t.minexponent?3:t.minexponent;Math.abs(u)>c&&(yt(t.exponentformat)&&!mt(u)?t._tickexponent=3*Math.round((u-1)/3):t._tickexponent=u)}else t._tickround=null}function vt(t,e,r){var n=t.tickfont||{};return{x:e,dx:0,dy:0,text:r||"",fontSize:n.size,font:n.family,fontColor:n.color}}q.autoTicks=function(t,e,r){var n;function a(t){return Math.pow(t,Math.floor(Math.log(e)/Math.LN10))}if("date"===t.type){t.tick0=s.dateTick0(t.calendar,0);var o=2*e;if(o>y)e/=y,n=a(10),t.dtick="M"+12*pt(e,n,ot);else if(o>T)e/=T,t.dtick="M"+pt(e,1,st);else if(o>M){if(t.dtick=pt(e,M,t._hasDayOfWeekBreaks?[1,2,7,14]:ut),!r){var l=q.getTickFormat(t),u="period"===t.ticklabelmode;u&&(t._rawTick0=t.tick0),/%[uVW]/.test(l)?t.tick0=s.dateTick0(t.calendar,2):t.tick0=s.dateTick0(t.calendar,1),u&&(t._dowTick0=t.tick0)}}else o>E?t.dtick=pt(e,E,st):o>L?t.dtick=pt(e,L,lt):o>C?t.dtick=pt(e,C,lt):(n=a(10),t.dtick=pt(e,n,ot))}else if("log"===t.type){t.tick0=0;var c=s.simpleMap(t.range,t.r2l);if(t._isMinor&&(e*=1.5),e>.7)t.dtick=Math.ceil(e);else if(Math.abs(c[1]-c[0])<1){var f=1.5*Math.abs((c[1]-c[0])/e);e=Math.abs(Math.pow(10,c[1])-Math.pow(10,c[0]))/f,n=a(10),t.dtick="L"+pt(e,n,ot)}else t.dtick=e>.3?"D2":"D1"}else"category"===t.type||"multicategory"===t.type?(t.tick0=0,t.dtick=Math.ceil(Math.max(e,1))):It(t)?(t.tick0=0,n=1,t.dtick=pt(e,n,ht)):(t.tick0=0,n=a(10),t.dtick=pt(e,n,ot));if(0===t.dtick&&(t.dtick=1),!i(t.dtick)&&"string"!=typeof t.dtick){var h=t.dtick;throw t.dtick=1,"ax.dtick error: "+String(h)}},q.tickIncrement=function(t,e,r,a){var o=r?-1:1;if(i(e))return s.increment(t,o*e);var l=e.charAt(0),u=o*Number(e.substr(1));if("M"===l)return s.incrementMonth(t,u,a);if("L"===l)return Math.log(Math.pow(10,t)+u)/Math.LN10;if("D"===l){var c="D2"===e?ft:ct,f=t+.01*o,h=s.roundUp(s.mod(f,1),c,r);return Math.floor(f)+Math.log(n.round(Math.pow(10,h),1))/Math.LN10}throw"unrecognized dtick "+String(e)},q.tickFirst=function(t,e){var r=t.r2l||Number,a=s.simpleMap(t.range,r,void 0,void 0,e),o=a[1]<a[0],l=o?Math.floor:Math.ceil,u=J(a)[0],c=t.dtick,f=r(t.tick0);if(i(c)){var h=l((u-f)/c)*c+f;return"category"!==t.type&&"multicategory"!==t.type||(h=s.constrain(h,0,t._categories.length-1)),h}var p=c.charAt(0),d=Number(c.substr(1));if("M"===p){for(var v,g,y,m=0,x=f;m<10;){if(((v=q.tickIncrement(x,c,o,t.calendar))-u)*(x-u)<=0)return o?Math.min(x,v):Math.max(x,v);g=(u-(x+v)/2)/(v-x),y=p+(Math.abs(Math.round(g))||1)*d,x=q.tickIncrement(x,y,g<0?!o:o,t.calendar),m++}return s.error("tickFirst did not converge",t),x}if("L"===p)return Math.log(l((Math.pow(10,u)-f)/d)*d+f)/Math.LN10;if("D"===p){var b="D2"===c?ft:ct,_=s.roundUp(s.mod(u,1),b,o);return Math.floor(u)+Math.log(n.round(Math.pow(10,_),1))/Math.LN10}throw"unrecognized dtick "+String(c)},q.tickText=function(t,e,r,n){var a,o=vt(t,e),l="array"===t.tickmode,u=r||l,c=t.type,f="category"===c?t.d2l_noadd:t.d2l;if(l&&Array.isArray(t.ticktext)){var h=s.simpleMap(t.range,t.r2l),p=(Math.abs(h[1]-h[0])-(t._lBreaks||0))/1e4;for(a=0;a<t.ticktext.length&&!(Math.abs(e-f(t.tickvals[a]))<p);a++);if(a<t.ticktext.length)return o.text=String(t.ticktext[a]),o}function d(n){if(void 0===n)return!0;if(r)return"none"===n;var i={first:t._tmin,last:t._tmax}[n];return"all"!==n&&e!==i}var v=r?"never":"none"!==t.exponentformat&&d(t.showexponent)?"hide":"";if("date"===c?function(t,e,r,n){var a=t._tickround,o=r&&t.hoverformat||q.getTickFormat(t);n&&(a=i(a)?4:{y:"m",m:"d",d:"M",M:"S",S:4}[a]);var l,u=s.formatDate(e.x,o,a,t._dateFormat,t.calendar,t._extraFormat),c=u.indexOf("\n");if(-1!==c&&(l=u.substr(c+1),u=u.substr(0,c)),n&&("00:00:00"===u||"00:00"===u?(u=l,l=""):8===u.length&&(u=u.replace(/:00$/,""))),l)if(r)"d"===a?u+=", "+l:u=l+(u?", "+u:"");else if(t._inCalcTicks&&t._prevDateHead===l){var f=zt(t),h=t._trueSide||t.side;(!f&&"top"===h||f&&"bottom"===h)&&(u+="<br> ")}else t._prevDateHead=l,u+="<br>"+l;e.text=u}(t,o,r,u):"log"===c?function(t,e,r,n,a){var o=t.dtick,l=e.x,u=t.tickformat,c="string"==typeof o&&o.charAt(0);if("never"===a&&(a=""),n&&"L"!==c&&(o="L3",c="L"),u||"L"===c)e.text=xt(Math.pow(10,l),t,a,n);else if(i(o)||"D"===c&&s.mod(l+.01,1)<.1){var f=Math.round(l),h=Math.abs(f),p=t.exponentformat;"power"===p||yt(p)&&mt(f)?(e.text=0===f?1:1===f?"10":"10<sup>"+(f>1?"":P)+h+"</sup>",e.fontSize*=1.25):("e"===p||"E"===p)&&h>2?e.text="1"+p+(f>0?"+":P)+h:(e.text=xt(Math.pow(10,l),t,"","fakehover"),"D1"===o&&"y"===t._id.charAt(0)&&(e.dy-=e.fontSize/6))}else{if("D"!==c)throw"unrecognized dtick "+String(o);e.text=String(Math.round(Math.pow(10,s.mod(l,1)))),e.fontSize*=.75}if("D1"===t.dtick){var d=String(e.text).charAt(0);"0"!==d&&"1"!==d||("y"===t._id.charAt(0)?e.dx-=e.fontSize/4:(e.dy+=e.fontSize/2,e.dx+=(t.range[1]>t.range[0]?1:-1)*e.fontSize*(l<0?.5:.25)))}}(t,o,0,u,v):"category"===c?function(t,e){var r=t._categories[Math.round(e.x)];void 0===r&&(r=""),e.text=String(r)}(t,o):"multicategory"===c?function(t,e,r){var n=Math.round(e.x),i=t._categories[n]||[],a=void 0===i[1]?"":String(i[1]),o=void 0===i[0]?"":String(i[0]);r?e.text=o+" - "+a:(e.text=a,e.text2=o)}(t,o,r):It(t)?function(t,e,r,n,i){if("radians"!==t.thetaunit||r)e.text=xt(e.x,t,i,n);else{var a=e.x/180;if(0===a)e.text="0";else{var o=function(t){function e(t,e){return Math.abs(t-e)<=1e-6}var r=function(t){for(var r=1;!e(Math.round(t*r)/r,t);)r*=10;return r}(t),n=t*r,i=Math.abs(function t(r,n){return e(n,0)?r:t(n,r%n)}(n,r));return[Math.round(n/i),Math.round(r/i)]}(a);if(o[1]>=100)e.text=xt(s.deg2rad(e.x),t,i,n);else{var l=e.x<0;1===o[1]?1===o[0]?e.text="π":e.text=o[0]+"π":e.text=["<sup>",o[0],"</sup>","⁄","<sub>",o[1],"</sub>","π"].join(""),l&&(e.text=P+e.text)}}}}(t,o,r,u,v):function(t,e,r,n,i){"never"===i?i="":"all"===t.showexponent&&Math.abs(e.x/t.dtick)<1e-6&&(i="hide"),e.text=xt(e.x,t,i,n)}(t,o,0,u,v),n||(t.tickprefix&&!d(t.showtickprefix)&&(o.text=t.tickprefix+o.text),t.ticksuffix&&!d(t.showticksuffix)&&(o.text+=t.ticksuffix)),"boundaries"===t.tickson||t.showdividers){var g=function(e){var r=t.l2p(e);return r>=0&&r<=t._length?e:null};o.xbnd=[g(o.x-.5),g(o.x+t.dtick-.5)]}return o},q.hoverLabelText=function(t,e,r){r&&(t=s.extendFlat({},t,{hoverformat:r}));var n=Array.isArray(e)?e[0]:e,i=Array.isArray(e)?e[1]:void 0;if(void 0!==i&&i!==n)return q.hoverLabelText(t,n,r)+" - "+q.hoverLabelText(t,i,r);var a="log"===t.type&&n<=0,o=q.tickText(t,t.c2l(a?-n:n),"hover").text;return a?0===n?"0":P+o:o};var gt=["f","p","n","μ","m","","k","M","G","T"];function yt(t){return"SI"===t||"B"===t}function mt(t){return t>14||t<-15}function xt(t,e,r,n){var a=t<0,o=e._tickround,l=r||e.exponentformat||"B",u=e._tickexponent,c=q.getTickFormat(e),f=e.separatethousands;if(n){var h={exponentformat:l,minexponent:e.minexponent,dtick:"none"===e.showexponent?e.dtick:i(t)&&Math.abs(t)||1,range:"none"===e.showexponent?e.range.map(e.r2d):[0,t||1]};dt(h),o=(Number(h._tickround)||0)+4,u=h._tickexponent,e.hoverformat&&(c=e.hoverformat)}if(c)return e._numFormat(c)(t).replace(/-/g,P);var p,d=Math.pow(10,-o)/2;if("none"===l&&(u=0),(t=Math.abs(t))<d)t="0",a=!1;else{if(t+=d,u&&(t*=Math.pow(10,-u),o+=u),0===o)t=String(Math.floor(t));else if(o<0){t=(t=String(Math.round(t))).substr(0,t.length+o);for(var v=o;v<0;v++)t+="0"}else{var g=(t=String(t)).indexOf(".")+1;g&&(t=t.substr(0,g+o).replace(/\.?0+$/,""))}t=s.numSeparate(t,e._separators,f)}return u&&"hide"!==l&&(yt(l)&&mt(u)&&(l="power"),p=u<0?P+-u:"power"!==l?"+"+u:String(u),"e"===l||"E"===l?t+=l+p:"power"===l?t+="×10<sup>"+p+"</sup>":"B"===l&&9===u?t+="B":yt(l)&&(t+=gt[u/3+5])),a?P+t:t}function bt(t,e){if(t){var r=Object.keys(B).reduce((function(t,r){return-1!==e.indexOf(r)&&B[r].forEach((function(e){t[e]=1})),t}),{});Object.keys(t).forEach((function(e){r[e]||(1===e.length?t[e]=0:delete t[e])}))}}function _t(t,e){for(var r=[],n={},i=0;i<e.length;i++){var a=e[i];n[a.text2]?n[a.text2].push(a.x):n[a.text2]=[a.x]}for(var o in n)r.push(vt(t,s.interp(n[o],.5),o));return r}function wt(t){return void 0!==t.periodX?t.periodX:t.x}function Tt(t){return[t.text,t.x,t.axInfo,t.font,t.fontSize,t.fontColor].join("_")}function kt(t){var e=t.title.font.size,r=(t.title.text.match(u.BR_TAG_ALL)||[]).length;return t.title.hasOwnProperty("standoff")?r?e*(U+r*V):e*U:r?e*(r+1)*V:e}function At(t,e){var r=t.l2p(e);return r>1&&r<t._length-1}function Mt(t){var e=n.select(t),r=e.select(".text-math-group");return r.empty()?e.select("text"):r}function St(t){return t._id+".automargin"}function Et(t){return St(t)+".mirror"}function Lt(t){return t._id+".rangeslider"}function Ct(t,e){for(var r=0;r<e.length;r++)-1===t.indexOf(e[r])&&t.push(e[r])}function Pt(t,e,r){var n,i,a=[],o=[],l=t.layout;for(n=0;n<e.length;n++)a.push(q.getFromId(t,e[n]));for(n=0;n<r.length;n++)o.push(q.getFromId(t,r[n]));var u=Object.keys(p),c=["anchor","domain","overlaying","position","side","tickangle","editType"],f=["linear","log"];for(n=0;n<u.length;n++){var h=u[n],d=a[0][h],v=o[0][h],g=!0,y=!1,m=!1;if("_"!==h.charAt(0)&&"function"!=typeof d&&-1===c.indexOf(h)){for(i=1;i<a.length&&g;i++){var x=a[i][h];"type"===h&&-1!==f.indexOf(d)&&-1!==f.indexOf(x)&&d!==x?y=!0:x!==d&&(g=!1)}for(i=1;i<o.length&&g;i++){var b=o[i][h];"type"===h&&-1!==f.indexOf(v)&&-1!==f.indexOf(b)&&v!==b?m=!0:o[i][h]!==v&&(g=!1)}g&&(y&&(l[a[0]._name].type="linear"),m&&(l[o[0]._name].type="linear"),Ot(l,h,a,o,t._fullLayout._dfltTitle))}}for(n=0;n<t._fullLayout.annotations.length;n++){var _=t._fullLayout.annotations[n];-1!==e.indexOf(_.xref)&&-1!==r.indexOf(_.yref)&&s.swapAttrs(l.annotations[n],["?"])}}function Ot(t,e,r,n,i){var a,o=s.nestedProperty,l=o(t[r[0]._name],e).get(),u=o(t[n[0]._name],e).get();for("title"===e&&(l&&l.text===i.x&&(l.text=i.y),u&&u.text===i.y&&(u.text=i.x)),a=0;a<r.length;a++)o(t,r[a]._name+"."+e).set(u);for(a=0;a<n.length;a++)o(t,n[a]._name+"."+e).set(l)}function It(t){return"angularaxis"===t._id}function Dt(t,e){for(var r=e._rangebreaks.length,n=0;n<r;n++){var i=e._rangebreaks[n];if(t>=i.min&&t<i.max)return i.max}return t}function zt(t){return-1!==(t.ticklabelposition||"").indexOf("inside")}function Rt(t,e){zt(t._anchorAxis||{})&&t._hideCounterAxisInsideTickLabels&&t._hideCounterAxisInsideTickLabels(e)}function Ft(t,e,r,n){var i,a="free"===t.anchor||void 0!==t.overlaying&&!1!==t.overlaying?t.overlaying:t._id;i=n?"right"===t.side?e:-e:e,a in r||(r[a]={}),t.side in r[a]||(r[a][t.side]=0),r[a][t.side]+=i}q.getTickFormat=function(t){var e,r,n,i,a,o,s,l;function u(t){return"string"!=typeof t?t:Number(t.replace("M",""))*T}function c(t,e){var r=["L","D"];if(typeof t==typeof e){if("number"==typeof t)return t-e;var n=r.indexOf(t.charAt(0)),i=r.indexOf(e.charAt(0));return n===i?Number(t.replace(/(L|D)/g,""))-Number(e.replace(/(L|D)/g,"")):n-i}return"number"==typeof t?1:-1}function f(t,e){var r=null===e[0],n=null===e[1],i=c(t,e[0])>=0,a=c(t,e[1])<=0;return(r||i)&&(n||a)}if(t.tickformatstops&&t.tickformatstops.length>0)switch(t.type){case"date":case"linear":for(e=0;e<t.tickformatstops.length;e++)if((n=t.tickformatstops[e]).enabled&&(i=t.dtick,a=n.dtickrange,o=void 0,s=void 0,l=void 0,o=u||function(t){return t},s=a[0],l=a[1],(!s&&"number"!=typeof s||o(s)<=o(i))&&(!l&&"number"!=typeof l||o(l)>=o(i)))){r=n;break}break;case"log":for(e=0;e<t.tickformatstops.length;e++)if((n=t.tickformatstops[e]).enabled&&f(t.dtick,n.dtickrange)){r=n;break}}return r?r.value:t.tickformat},q.getSubplots=function(t,e){var r=t._fullLayout._subplots,n=r.cartesian.concat(r.gl2d||[]),i=e?q.findSubplotsWithAxis(n,e):n;return i.sort((function(t,e){var r=t.substr(1).split("y"),n=e.substr(1).split("y");return r[0]===n[0]?+r[1]-+n[1]:+r[0]-+n[0]})),i},q.findSubplotsWithAxis=function(t,e){for(var r=new RegExp("x"===e._id.charAt(0)?"^"+e._id+"y":e._id+"$"),n=[],i=0;i<t.length;i++){var a=t[i];r.test(a)&&n.push(a)}return n},q.makeClipPaths=function(t){var e=t._fullLayout;if(!e._hasOnlyLargeSploms){var r,i,a={_offset:0,_length:e.width,_id:""},o={_offset:0,_length:e.height,_id:""},s=q.list(t,"x",!0),l=q.list(t,"y",!0),u=[];for(r=0;r<s.length;r++)for(u.push({x:s[r],y:o}),i=0;i<l.length;i++)0===r&&u.push({x:a,y:l[i]}),u.push({x:s[r],y:l[i]});var c=e._clips.selectAll(".axesclip").data(u,(function(t){return t.x._id+t.y._id}));c.enter().append("clipPath").classed("axesclip",!0).attr("id",(function(t){return"clip"+e._uid+t.x._id+t.y._id})).append("rect"),c.exit().remove(),c.each((function(t){n.select(this).select("rect").attr({x:t.x._offset||0,y:t.y._offset||0,width:t.x._length||1,height:t.y._length||1})}))}},q.draw=function(t,e,r){var n=t._fullLayout;"redraw"===e&&n._paper.selectAll("g.subplot").each((function(t){var e=t[0],r=n._plots[e];if(r){var i=r.xaxis,a=r.yaxis;r.xaxislayer.selectAll("."+i._id+"tick").remove(),r.yaxislayer.selectAll("."+a._id+"tick").remove(),r.xaxislayer.selectAll("."+i._id+"tick2").remove(),r.yaxislayer.selectAll("."+a._id+"tick2").remove(),r.xaxislayer.selectAll("."+i._id+"divider").remove(),r.yaxislayer.selectAll("."+a._id+"divider").remove(),r.minorGridlayer&&r.minorGridlayer.selectAll("path").remove(),r.gridlayer&&r.gridlayer.selectAll("path").remove(),r.zerolinelayer&&r.zerolinelayer.selectAll("path").remove(),n._infolayer.select(".g-"+i._id+"title").remove(),n._infolayer.select(".g-"+a._id+"title").remove()}}));var i=e&&"redraw"!==e?e:q.listIds(t),a=q.list(t).filter((function(t){return t.autoshift})).map((function(t){return t.overlaying}));i.map((function(e){var r=q.getFromId(t,e);if("sync"===r.tickmode&&r.overlaying){var n=i.findIndex((function(t){return t===r.overlaying}));n>=0&&i.unshift(i.splice(n,1).shift())}}));var o={false:{left:0,right:0}};return s.syncOrAsync(i.map((function(e){return function(){if(e){var n=q.getFromId(t,e);r||(r={}),r.axShifts=o,r.overlayingShiftedAx=a;var i=q.drawOne(t,n,r);return n._shiftPusher&&Ft(n,n._fullDepth||0,o,!0),n._r=n.range.slice(),n._rl=s.simpleMap(n._r,n.r2l),i}}})))},q.drawOne=function(t,e,r){var n,i,l,u=(r=r||{}).axShifts||{},p=r.overlayingShiftedAx||[];e.setScale();var d=t._fullLayout,v=e._id,g=v.charAt(0),y=q.counterLetter(v),m=d._plots[e._mainSubplot];if(m){if(e._shiftPusher=e.autoshift||-1!==p.indexOf(e._id)||-1!==p.indexOf(e.overlaying),e._shiftPusher&"free"===e.anchor){var x=e.linewidth/2||0;"inside"===e.ticks&&(x+=e.ticklen),Ft(e,x,u,!0),Ft(e,e.shift||0,u,!1)}!0===r.skipTitle&&void 0!==e._shift||(e._shift=function(t,e){return t.autoshift?e[t.overlaying][t.side]:t.shift||0}(e,u));var b=m[g+"axislayer"],_=e._mainLinePosition,w=_+=e._shift,T=e._mainMirrorPosition,k=e._vals=q.calcTicks(e),A=[e.mirror,w,T].join("_");for(n=0;n<k.length;n++)k[n].axInfo=A;e._selections={},e._tickAngles&&(e._prevTickAngles=e._tickAngles),e._tickAngles={},e._depth=null;var M={};if(e.visible){var S,E,L=q.makeTransTickFn(e),C=q.makeTransTickLabelFn(e),P="inside"===e.ticks,O="outside"===e.ticks;if("boundaries"===e.tickson){var I=function(t,e){var r,n=[],i=function(t,e){var r=t.xbnd[e];null!==r&&n.push(s.extendFlat({},t,{x:r}))};if(e.length){for(r=0;r<e.length;r++)i(e[r],0);i(e[r-1],1)}return n}(0,k);E=q.clipEnds(e,I),S=P?E:I}else E=q.clipEnds(e,k),S=P&&"period"!==e.ticklabelmode?E:k;var D,z=e._gridVals=E,R=function(t,e){var r,n,i=[],a=e.length&&e[e.length-1].x<e[0].x,o=function(t,e){var r=t.xbnd[e];null!==r&&i.push(s.extendFlat({},t,{x:r}))};if(t.showdividers&&e.length){for(r=0;r<e.length;r++){var l=e[r];l.text2!==n&&o(l,a?1:0),n=l.text2}o(e[r-1],a?0:1)}return i}(e,k);if(!d._hasOnlyLargeSploms){var F=e._subplotsWith,B={};for(n=0;n<F.length;n++){i=F[n];var N=(l=d._plots[i])[y+"axis"],j=N._mainAxis._id;if(!B[j]){B[j]=1;var U="x"===g?"M0,"+N._offset+"v"+N._length:"M"+N._offset+",0h"+N._length;q.drawGrid(t,e,{vals:z,counterAxis:N,layer:l.gridlayer.select("."+v),minorLayer:l.minorGridlayer.select("."+v),path:U,transFn:L}),q.drawZeroLine(t,e,{counterAxis:N,layer:l.zerolinelayer,path:U,transFn:L})}}}var G=q.getTickSigns(e),Z=q.getTickSigns(e,"minor");if(e.ticks||e.minor&&e.minor.ticks){var Y,W,X,J,K=q.makeTickPath(e,w,G[2]),$=q.makeTickPath(e,w,Z[2],{minor:!0});if(e._anchorAxis&&e.mirror&&!0!==e.mirror?(Y=q.makeTickPath(e,T,G[3]),W=q.makeTickPath(e,T,Z[3],{minor:!0}),X=K+Y,J=$+W):(Y="",W="",X=K,J=$),e.showdividers&&O&&"boundaries"===e.tickson){var Q={};for(n=0;n<R.length;n++)Q[R[n].x]=1;D=function(t){return Q[t.x]?Y:X}}else D=function(t){return t.minor?J:X}}if(q.drawTicks(t,e,{vals:S,layer:b,path:D,transFn:L}),"allticks"===e.mirror){var tt=Object.keys(e._linepositions||{});for(n=0;n<tt.length;n++){i=tt[n],l=d._plots[i];var et=e._linepositions[i]||[],rt=et[0],nt=et[1],it=et[2],at=q.makeTickPath(e,rt,it?G[0]:Z[0],{minor:it})+q.makeTickPath(e,nt,it?G[1]:Z[1],{minor:it});q.drawTicks(t,e,{vals:S,layer:l[g+"axislayer"],path:at,transFn:L})}}var ot=[];if(ot.push((function(){return q.drawLabels(t,e,{vals:k,layer:b,plotinfo:l,transFn:C,labelFns:q.makeLabelFns(e,w)})})),"multicategory"===e.type){var st={x:2,y:10}[g];ot.push((function(){var r={x:"height",y:"width"}[g],n=ut()[r]+st+(e._tickAngles[v+"tick"]?e.tickfont.size*V:0);return q.drawLabels(t,e,{vals:_t(e,k),layer:b,cls:v+"tick2",repositionOnUpdate:!0,secondary:!0,transFn:L,labelFns:q.makeLabelFns(e,w+n*G[4])})})),ot.push((function(){return e._depth=G[4]*(ut("tick2")[e.side]-w),function(t,e,r){var n=e._id+"divider",i=r.vals,a=r.layer.selectAll("path."+n).data(i,Tt);a.exit().remove(),a.enter().insert("path",":first-child").classed(n,1).classed("crisp",1).call(f.stroke,e.dividercolor).style("stroke-width",h.crispRound(t,e.dividerwidth,1)+"px"),a.attr("transform",r.transFn).attr("d",r.path)}(t,e,{vals:R,layer:b,path:q.makeTickPath(e,w,G[4],{len:e._depth}),transFn:L})}))}else e.title.hasOwnProperty("standoff")&&ot.push((function(){e._depth=G[4]*(ut()[e.side]-w)}));var lt=o.getComponentMethod("rangeslider","isVisible")(e);return r.skipTitle||lt&&"bottom"===e.side||ot.push((function(){return function(t,e){var r,n=t._fullLayout,i=e._id,a=i.charAt(0),o=e.title.font.size;if(e.title.hasOwnProperty("standoff"))r=e._depth+e.title.standoff+kt(e);else{var s=zt(e);if("multicategory"===e.type)r=e._depth;else{var l=1.5*o;s&&(l=.5*o,"outside"===e.ticks&&(l+=e.ticklen)),r=10+l+(e.linewidth?e.linewidth-1:0)}s||(r+="x"===a?"top"===e.side?o*(e.showticklabels?1:0):o*(e.showticklabels?1.5:.5):"right"===e.side?o*(e.showticklabels?1:.5):o*(e.showticklabels?.5:0))}var u,f,p,d,v=q.getPxPosition(t,e);if("x"===a?(f=e._offset+e._length/2,p="top"===e.side?v-r:v+r):(p=e._offset+e._length/2,f="right"===e.side?v+r:v-r,u={rotate:"-90",offset:0}),"multicategory"!==e.type){var g=e._selections[e._id+"tick"];if(d={selection:g,side:e.side},g&&g.node()&&g.node().parentNode){var y=h.getTranslate(g.node().parentNode);d.offsetLeft=y.x,d.offsetTop=y.y}e.title.hasOwnProperty("standoff")&&(d.pad=0)}return e._titleStandoff=r,c.draw(t,i+"title",{propContainer:e,propName:e._name+".title.text",placeholder:n._dfltTitle[a],avoid:d,transform:u,attributes:{x:f,y:p,"text-anchor":"middle"}})}(t,e)})),ot.push((function(){var r,n,i,s,l=e.side.charAt(0),u=H[e.side].charAt(0),c=q.getPxPosition(t,e),f=O?e.ticklen:0;(e.automargin||lt||e._shiftPusher)&&("multicategory"===e.type?r=ut("tick2"):(r=ut(),"x"===g&&"b"===l&&(e._depth=Math.max(r.width>0?r.bottom-c:0,f))));var h=0,p=0;if(e._shiftPusher&&(h=Math.max(f,r.height>0?"l"===l?c-r.left:r.right-c:0),e.title.text!==d._dfltTitle[g]&&(p=(e._titleStandoff||0)+(e._titleScoot||0),"l"===l&&(p+=kt(e))),e._fullDepth=Math.max(h,p)),e.automargin){n={x:0,y:0,r:0,l:0,t:0,b:0};var v=[0,1],m="number"==typeof e._shift?e._shift:0;if("x"===g){if("b"===l?n[l]=e._depth:(n[l]=e._depth=Math.max(r.width>0?c-r.top:0,f),v.reverse()),r.width>0){var x=r.right-(e._offset+e._length);x>0&&(n.xr=1,n.r=x);var b=e._offset-r.left;b>0&&(n.xl=0,n.l=b)}}else if("l"===l?(e._depth=Math.max(r.height>0?c-r.left:0,f),n[l]=e._depth-m):(e._depth=Math.max(r.height>0?r.right-c:0,f),n[l]=e._depth+m,v.reverse()),r.height>0){var _=r.bottom-(e._offset+e._length);_>0&&(n.yb=0,n.b=_);var w=e._offset-r.top;w>0&&(n.yt=1,n.t=w)}n[y]="free"===e.anchor?e.position:e._anchorAxis.domain[v[0]],e.title.text!==d._dfltTitle[g]&&(n[l]+=kt(e)+(e.title.standoff||0)),e.mirror&&"free"!==e.anchor&&((i={x:0,y:0,r:0,l:0,t:0,b:0})[u]=e.linewidth,e.mirror&&!0!==e.mirror&&(i[u]+=f),!0===e.mirror||"ticks"===e.mirror?i[y]=e._anchorAxis.domain[v[1]]:"all"!==e.mirror&&"allticks"!==e.mirror||(i[y]=[e._counterDomainMin,e._counterDomainMax][v[1]]))}lt&&(s=o.getComponentMethod("rangeslider","autoMarginOpts")(t,e)),"string"==typeof e.automargin&&(bt(n,e.automargin),bt(i,e.automargin)),a.autoMargin(t,St(e),n),a.autoMargin(t,Et(e),i),a.autoMargin(t,Lt(e),s)})),s.syncOrAsync(ot)}}function ut(t){var r=v+(t||"tick");return M[r]||(M[r]=function(t,e){var r,n,i,a;return t._selections[e].size()?(r=1/0,n=-1/0,i=1/0,a=-1/0,t._selections[e].each((function(){var t=Mt(this),e=h.bBox(t.node().parentNode);r=Math.min(r,e.top),n=Math.max(n,e.bottom),i=Math.min(i,e.left),a=Math.max(a,e.right)}))):(r=0,n=0,i=0,a=0),{top:r,bottom:n,left:i,right:a,height:n-r,width:a-i}}(e,r)),M[r]}},q.getTickSigns=function(t,e){var r=t._id.charAt(0),n={x:"top",y:"right"}[r],i=t.side===n?1:-1,a=[-1,1,i,-i];return"inside"!==(e?(t.minor||{}).ticks:t.ticks)==("x"===r)&&(a=a.map((function(t){return-t}))),t.side&&a.push({l:-1,t:-1,r:1,b:1}[t.side.charAt(0)]),a},q.makeTransTickFn=function(t){return"x"===t._id.charAt(0)?function(e){return l(t._offset+t.l2p(e.x),0)}:function(e){return l(0,t._offset+t.l2p(e.x))}},q.makeTransTickLabelFn=function(t){var e=function(t){var e=t.ticklabelposition||"",r=function(t){return-1!==e.indexOf(t)},n=r("top"),i=r("left"),a=r("right"),o=r("bottom"),s=r("inside"),l=o||i||n||a;if(!l&&!s)return[0,0];var u=t.side,c=l?(t.tickwidth||0)/2:0,f=3,h=t.tickfont?t.tickfont.size:12;return(o||n)&&(c+=h*U,f+=(t.linewidth||0)/2),(i||a)&&(c+=(t.linewidth||0)/2,f+=3),s&&"top"===u&&(f-=h*(1-U)),(i||n)&&(c=-c),"bottom"!==u&&"right"!==u||(f=-f),[l?c:0,s?f:0]}(t),r=e[0],n=e[1];return"x"===t._id.charAt(0)?function(e){return l(r+t._offset+t.l2p(wt(e)),n)}:function(e){return l(n,r+t._offset+t.l2p(wt(e)))}},q.makeTickPath=function(t,e,r,n){n||(n={});var i=n.minor;if(i&&!t.minor)return"";var a=void 0!==n.len?n.len:i?t.minor.ticklen:t.ticklen,o=t._id.charAt(0),s=(t.linewidth||1)/2;return"x"===o?"M0,"+(e+s*r)+"v"+a*r:"M"+(e+s*r)+",0h"+a*r},q.makeLabelFns=function(t,e,r){var n=t.ticklabelposition||"",a=function(t){return-1!==n.indexOf(t)},o=a("top"),l=a("left"),u=a("right"),c=a("bottom")||l||o||u,f=a("inside"),h="inside"===n&&"inside"===t.ticks||!f&&"outside"===t.ticks&&"boundaries"!==t.tickson,p=0,d=0,v=h?t.ticklen:0;if(f?v*=-1:c&&(v=0),h&&(p+=v,r)){var g=s.deg2rad(r);p=v*Math.cos(g)+1,d=v*Math.sin(g)}t.showticklabels&&(h||t.showline)&&(p+=.2*t.tickfont.size);var y,m,x,b,_,w={labelStandoff:p+=(t.linewidth||1)/2*(f?-1:1),labelShift:d},T=0,k=t.side,A=t._id.charAt(0),M=t.tickangle;if("x"===A)b=(_=!f&&"bottom"===k||f&&"top"===k)?1:-1,f&&(b*=-1),y=d*b,m=e+p*b,x=_?1:-.2,90===Math.abs(M)&&(f?x+=j:x=-90===M&&"bottom"===k?U:90===M&&"top"===k?j:.5,T=j/2*(M/90)),w.xFn=function(t){return t.dx+y+T*t.fontSize},w.yFn=function(t){return t.dy+m+t.fontSize*x},w.anchorFn=function(t,e){if(c){if(l)return"end";if(u)return"start"}return i(e)&&0!==e&&180!==e?e*b<0!==f?"end":"start":"middle"},w.heightFn=function(e,r,n){return r<-60||r>60?-.5*n:"top"===t.side!==f?-n:0};else if("y"===A){if(b=(_=!f&&"left"===k||f&&"right"===k)?1:-1,f&&(b*=-1),y=p,m=d*b,x=0,f||90!==Math.abs(M)||(x=-90===M&&"left"===k||90===M&&"right"===k?U:.5),f){var S=i(M)?+M:0;if(0!==S){var E=s.deg2rad(S);T=Math.abs(Math.sin(E))*U*b,x=0}}w.xFn=function(t){return t.dx+e-(y+t.fontSize*x)*b+T*t.fontSize},w.yFn=function(t){return t.dy+m+t.fontSize*j},w.anchorFn=function(t,e){return i(e)&&90===Math.abs(e)?"middle":_?"end":"start"},w.heightFn=function(e,r,n){return"right"===t.side&&(r*=-1),r<-30?-n:r<30?-.5*n:0}}return w},q.drawTicks=function(t,e,r){r=r||{};var i=e._id+"tick",a=[].concat(e.minor&&e.minor.ticks?r.vals.filter((function(t){return t.minor&&!t.noTick})):[]).concat(e.ticks?r.vals.filter((function(t){return!t.minor&&!t.noTick})):[]),o=r.layer.selectAll("path."+i).data(a,Tt);o.exit().remove(),o.enter().append("path").classed(i,1).classed("ticks",1).classed("crisp",!1!==r.crisp).each((function(t){return f.stroke(n.select(this),t.minor?e.minor.tickcolor:e.tickcolor)})).style("stroke-width",(function(r){return h.crispRound(t,r.minor?e.minor.tickwidth:e.tickwidth,1)+"px"})).attr("d",r.path).style("display",null),Rt(e,[R]),o.attr("transform",r.transFn)},q.drawGrid=function(t,e,r){if(r=r||{},"sync"!==e.tickmode){var i=e._id+"grid",a=e.minor&&e.minor.showgrid,o=a?r.vals.filter((function(t){return t.minor})):[],s=e.showgrid?r.vals.filter((function(t){return!t.minor})):[],l=r.counterAxis;if(l&&q.shouldShowZeroLine(t,e,l))for(var u="array"===e.tickmode,c=0;c<s.length;c++){var p=s[c].x;if(u?!p:Math.abs(p)<e.dtick/100){if(s=s.slice(0,c).concat(s.slice(c+1)),!u)break;c--}}e._gw=h.crispRound(t,e.gridwidth,1);for(var d=a?h.crispRound(t,e.minor.gridwidth,1):0,v=r.layer,g=r.minorLayer,y=1;y>=0;y--){var m=y?v:g;if(m){var x=m.selectAll("path."+i).data(y?s:o,Tt);x.exit().remove(),x.enter().append("path").classed(i,1).classed("crisp",!1!==r.crisp),x.attr("transform",r.transFn).attr("d",r.path).each((function(t){return f.stroke(n.select(this),t.minor?e.minor.gridcolor:e.gridcolor||"#ddd")})).style("stroke-dasharray",(function(t){return h.dashStyle(t.minor?e.minor.griddash:e.griddash,t.minor?e.minor.gridwidth:e.gridwidth)})).style("stroke-width",(function(t){return(t.minor?d:e._gw)+"px"})).style("display",null),"function"==typeof r.path&&x.attr("d",r.path)}}Rt(e,[D,z])}},q.drawZeroLine=function(t,e,r){r=r||r;var n=e._id+"zl",i=q.shouldShowZeroLine(t,e,r.counterAxis),a=r.layer.selectAll("path."+n).data(i?[{x:0,id:e._id}]:[]);a.exit().remove(),a.enter().append("path").classed(n,1).classed("zl",1).classed("crisp",!1!==r.crisp).each((function(){r.layer.selectAll("path").sort((function(t,e){return Y(t.id,e.id)}))})),a.attr("transform",r.transFn).attr("d",r.path).call(f.stroke,e.zerolinecolor||f.defaultLine).style("stroke-width",h.crispRound(t,e.zerolinewidth,e._gw||1)+"px").style("display",null),Rt(e,[I])},q.drawLabels=function(t,e,r){r=r||{};var a=t._fullLayout,o=e._id,c=o.charAt(0),f=r.cls||o+"tick",p=r.vals.filter((function(t){return t.text})),d=r.labelFns,v=r.secondary?0:e.tickangle,g=(e._prevTickAngles||{})[f],y=r.layer.selectAll("g."+f).data(e.showticklabels?p:[],Tt),m=[];function x(t,a){t.each((function(t){var o=n.select(this),s=o.select(".text-math-group"),c=d.anchorFn(t,a),f=r.transFn.call(o.node(),t)+(i(a)&&0!=+a?" rotate("+a+","+d.xFn(t)+","+(d.yFn(t)-t.fontSize/2)+")":""),p=u.lineCount(o),v=V*t.fontSize,g=d.heightFn(t,i(a)?+a:0,(p-1)*v);if(g&&(f+=l(0,g)),s.empty()){var y=o.select("text");y.attr({transform:f,"text-anchor":c}),y.style("opacity",1),e._adjustTickLabelsOverflow&&e._adjustTickLabelsOverflow()}else{var m=h.bBox(s.node()).width*{end:-.5,start:.5}[c];s.attr("transform",f+l(m,0))}}))}y.enter().append("g").classed(f,1).append("text").attr("text-anchor","middle").each((function(e){var r=n.select(this),i=t._promises.length;r.call(u.positionText,d.xFn(e),d.yFn(e)).call(h.font,e.font,e.fontSize,e.fontColor).text(e.text).call(u.convertToTspans,t),t._promises[i]?m.push(t._promises.pop().then((function(){x(r,v)}))):x(r,v)})),Rt(e,[F]),y.exit().remove(),r.repositionOnUpdate&&y.each((function(t){n.select(this).select("text").call(u.positionText,d.xFn(t),d.yFn(t))})),e._adjustTickLabelsOverflow=function(){var r=e.ticklabeloverflow;if(r&&"allow"!==r){var i=-1!==r.indexOf("hide"),o="x"===e._id.charAt(0),l=0,u=o?t._fullLayout.width:t._fullLayout.height;if(-1!==r.indexOf("domain")){var c=s.simpleMap(e.range,e.r2l);l=e.l2p(c[0])+e._offset,u=e.l2p(c[1])+e._offset}var f=Math.min(l,u),p=Math.max(l,u),d=e.side,v=1/0,g=-1/0;for(var m in y.each((function(t){var r=n.select(this);if(r.select(".text-math-group").empty()){var a=h.bBox(r.node()),s=0;o?(a.right>p||a.left<f)&&(s=1):(a.bottom>p||a.top+(e.tickangle?0:t.fontSize/4)<f)&&(s=1);var l=r.select("text");s?i&&l.style("opacity",0):(l.style("opacity",1),v="bottom"===d||"right"===d?Math.min(v,o?a.top:a.left):-1/0,g="top"===d||"left"===d?Math.max(g,o?a.bottom:a.right):1/0)}})),a._plots){var x=a._plots[m];if(e._id===x.xaxis._id||e._id===x.yaxis._id){var b=o?x.yaxis:x.xaxis;b&&(b["_visibleLabelMin_"+e._id]=v,b["_visibleLabelMax_"+e._id]=g)}}}},e._hideCounterAxisInsideTickLabels=function(t){var r="x"===e._id.charAt(0),i=[];for(var o in a._plots){var s=a._plots[o];e._id!==s.xaxis._id&&e._id!==s.yaxis._id||i.push(r?s.yaxis:s.xaxis)}i.forEach((function(r,i){r&&zt(r)&&(t||[I,z,D,R,F]).forEach((function(t){var o="tick"===t.K&&"text"===t.L&&"period"===e.ticklabelmode,s=a._plots[e._mainSubplot];(t.K===I.K?s.zerolinelayer.selectAll("."+e._id+"zl"):t.K===z.K?s.minorGridlayer.selectAll("."+e._id):t.K===D.K?s.gridlayer.selectAll("."+e._id):s[e._id.charAt(0)+"axislayer"]).each((function(){var a=n.select(this);t.L&&(a=a.selectAll(t.L)),a.each((function(a){var s=e.l2p(o?wt(a):a.x)+e._offset,l=n.select(this);s<e["_visibleLabelMax_"+r._id]&&s>e["_visibleLabelMin_"+r._id]?l.style("display","none"):"tick"!==t.K||i||l.style("display",null)}))}))}))}))},x(y,g+1?g:v);var b=null;e._selections&&(e._selections[f]=y);var _=[function(){return m.length&&Promise.all(m)}];e.automargin&&a._redrawFromAutoMarginCount&&90===g?(b=90,_.push((function(){x(y,g)}))):_.push((function(){if(x(y,v),p.length&&"x"===c&&!i(v)&&("log"!==e.type||"D"!==String(e.dtick).charAt(0))){b=0;var t,n=0,a=[];if(y.each((function(t){n=Math.max(n,t.fontSize);var r=e.l2p(t.x),i=Mt(this),o=h.bBox(i.node());a.push({top:0,bottom:10,height:10,left:r-o.width/2,right:r+o.width/2+2,width:o.width+2})})),"boundaries"!==e.tickson&&!e.showdividers||r.secondary){var o=p.length,l=Math.abs((p[o-1].x-p[0].x)*e._m)/(o-1),u=e.ticklabelposition||"",f=function(t){return-1!==u.indexOf(t)},d=f("top"),g=f("left"),m=f("right"),_=f("bottom")||g||d||m?(e.tickwidth||0)+6:0,w=l<2.5*n||"multicategory"===e.type||"realaxis"===e._name;for(t=0;t<a.length-1;t++)if(s.bBoxIntersect(a[t],a[t+1],_)){b=w?90:30;break}}else{var T=2;for(e.ticks&&(T+=e.tickwidth/2),t=0;t<a.length;t++){var k=p[t].xbnd,A=a[t];if(null!==k[0]&&A.left-e.l2p(k[0])<T||null!==k[1]&&e.l2p(k[1])-A.right<T){b=90;break}}}b&&x(y,b)}})),e._tickAngles&&_.push((function(){e._tickAngles[f]=null===b?i(v)?v:0:b}));var w=e._anchorAxis;w&&w.autorange&&zt(e)&&!W(a,e._id)&&(a._insideTickLabelsAutorange||(a._insideTickLabelsAutorange={}),a._insideTickLabelsAutorange[w._name+".autorange"]=w.autorange,_.push((function(){y.each((function(t,r){var n=Mt(this);n.select(".text-math-group").empty()&&(e._vals[r].bb=h.bBox(n.node()))}))})));var T=s.syncOrAsync(_);return T&&T.then&&t._promises.push(T),T},q.getPxPosition=function(t,e){var r,n=t._fullLayout._size,i=e._id.charAt(0),a=e.side;return"free"!==e.anchor?r=e._anchorAxis:"x"===i?r={_offset:n.t+(1-(e.position||0))*n.h,_length:0}:"y"===i&&(r={_offset:n.l+(e.position||0)*n.w+e._shift,_length:0}),"top"===a||"left"===a?r._offset:"bottom"===a||"right"===a?r._offset+r._length:void 0},q.shouldShowZeroLine=function(t,e,r){var n=s.simpleMap(e.range,e.r2l);return n[0]*n[1]<=0&&e.zeroline&&("linear"===e.type||"-"===e.type)&&!(e.rangebreaks&&e.maskBreaks(0)===O)&&(At(e,0)||!function(t,e,r,n){var i=r._mainAxis;if(i){var a=t._fullLayout,o=e._id.charAt(0),s=q.counterLetter(e._id),l=e._offset+(Math.abs(n[0])<Math.abs(n[1])==("x"===o)?0:e._length),u=a._plots[r._mainSubplot];if(!(u.mainplotinfo||u).overlays.length)return p(r);for(var c=q.list(t,s),f=0;f<c.length;f++){var h=c[f];if(h._mainAxis===i&&p(h))return!0}}function p(t){if(!t.showline||!t.linewidth)return!1;var r=Math.max((t.linewidth+e.zerolinewidth)/2,1);function n(t){return"number"==typeof t&&Math.abs(t-l)<r}if(n(t._mainLinePosition)||n(t._mainMirrorPosition))return!0;var i=t._linepositions||{};for(var a in i)if(n(i[a][0])||n(i[a][1]))return!0}}(t,e,r,n)||function(t,e){for(var r=t._fullData,n=e._mainSubplot,i=e._id.charAt(0),a=0;a<r.length;a++){var s=r[a];if(!0===s.visible&&s.xaxis+s.yaxis===n){if(o.traceIs(s,"bar-like")&&s.orientation==={x:"h",y:"v"}[i])return!0;if(s.fill&&s.fill.charAt(s.fill.length-1)===i)return!0}}return!1}(t,e))},q.clipEnds=function(t,e){return e.filter((function(e){return At(t,e.x)}))},q.allowAutoMargin=function(t){for(var e=q.list(t,"",!0),r=0;r<e.length;r++){var n=e[r];n.automargin&&(a.allowAutoMargin(t,St(n)),n.mirror&&a.allowAutoMargin(t,Et(n))),o.getComponentMethod("rangeslider","isVisible")(n)&&a.allowAutoMargin(t,Lt(n))}},q.swap=function(t,e){for(var r=function(t,e){var r,n,i=[];for(r=0;r<e.length;r++){var a=[],o=t._fullData[e[r]].xaxis,s=t._fullData[e[r]].yaxis;if(o&&s){for(n=0;n<i.length;n++)-1===i[n].x.indexOf(o)&&-1===i[n].y.indexOf(s)||a.push(n);if(a.length){var l,u=i[a[0]];if(a.length>1)for(n=1;n<a.length;n++)l=i[a[n]],Ct(u.x,l.x),Ct(u.y,l.y);Ct(u.x,[o]),Ct(u.y,[s])}else i.push({x:[o],y:[s]})}}return i}(t,e),n=0;n<r.length;n++)Pt(t,r[n].x,r[n].y)}},4322:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(50606).BADNUM,o=i.isArrayOrTypedArray,s=i.isDateTime,l=i.cleanNumber,u=Math.round;function c(t,e){return e?n(t):"number"==typeof t}function f(t){return Math.max(1,(t-1)/1e3)}t.exports=function(t,e,r){var i=t,h=r.noMultiCategory;if(o(i)&&!i.length)return"-";if(!h&&function(t){return o(t[0])&&o(t[1])}(i))return"multicategory";if(h&&Array.isArray(i[0])){for(var p=[],d=0;d<i.length;d++)if(o(i[d]))for(var v=0;v<i[d].length;v++)p.push(i[d][v]);i=p}if(function(t,e){for(var r=t.length,i=f(r),a=0,o=0,l={},c=0;c<r;c+=i){var h=t[u(c)],p=String(h);l[p]||(l[p]=1,s(h,e)&&a++,n(h)&&o++)}return a>2*o}(i,e))return"date";var g="strict"!==r.autotypenumbers;return function(t,e){for(var r=t.length,n=f(r),i=0,o=0,s={},c=0;c<r;c+=n){var h=t[u(c)],p=String(h);if(!s[p]){s[p]=1;var d=typeof h;"boolean"===d?o++:(e?l(h)!==a:"number"===d)?i++:"string"===d&&o++}}return o>2*i}(i,g)?"category":function(t,e){for(var r=t.length,n=0;n<r;n++)if(c(t[n],e))return!0;return!1}(i,g)?"linear":"-"}},71453:function(t,e,r){"use strict";var n=r(92770),i=r(73972),a=r(71828),o=r(44467),s=r(85501),l=r(13838),u=r(26218),c=r(38701),f=r(96115),h=r(89426),p=r(15258),d=r(92128),v=r(21994),g=r(85555).WEEKDAY_PATTERN,y=r(85555).HOUR_PATTERN;function m(t,e,r){function i(r,n){return a.coerce(t,e,l.rangebreaks,r,n)}if(i("enabled")){var o=i("bounds");if(o&&o.length>=2){var s,u,c="";if(2===o.length)for(s=0;s<2;s++)if(u=b(o[s])){c=g;break}var f=i("pattern",c);if(f===g)for(s=0;s<2;s++)(u=b(o[s]))&&(e.bounds[s]=o[s]=u-1);if(f)for(s=0;s<2;s++)switch(u=o[s],f){case g:if(!n(u))return void(e.enabled=!1);if((u=+u)!==Math.floor(u)||u<0||u>=7)return void(e.enabled=!1);e.bounds[s]=o[s]=u;break;case y:if(!n(u))return void(e.enabled=!1);if((u=+u)<0||u>24)return void(e.enabled=!1);e.bounds[s]=o[s]=u}if(!1===r.autorange){var h=r.range;if(h[0]<h[1]){if(o[0]<h[0]&&o[1]>h[1])return void(e.enabled=!1)}else if(o[0]>h[0]&&o[1]<h[1])return void(e.enabled=!1)}}else{var p=i("values");if(!p||!p.length)return void(e.enabled=!1);i("dvalue")}}}t.exports=function(t,e,r,n,y){var x,b=n.letter,_=n.font||{},w=n.splomStash||{},T=r("visible",!n.visibleDflt),k=e._template||{},A=e.type||k.type||"-";"date"===A&&(i.getComponentMethod("calendars","handleDefaults")(t,e,"calendar",n.calendar),n.noTicklabelmode||(x=r("ticklabelmode")));var M="";n.noTicklabelposition&&"multicategory"!==A||(M=a.coerce(t,e,{ticklabelposition:{valType:"enumerated",dflt:"outside",values:"period"===x?["outside","inside"]:"x"===b?["outside","inside","outside left","inside left","outside right","inside right"]:["outside","inside","outside top","inside top","outside bottom","inside bottom"]}},"ticklabelposition")),n.noTicklabeloverflow||r("ticklabeloverflow",-1!==M.indexOf("inside")?"hide past domain":"category"===A||"multicategory"===A?"allow":"hide past div"),v(e,y);var S=!e.isValidRange(t.range);S&&n.reverseDflt&&(S="reversed"),!r("autorange",S)||"linear"!==A&&"-"!==A||r("rangemode"),r("range"),e.cleanRange(),p(t,e,r,n),"category"===A||n.noHover||r("hoverformat");var E=r("color"),L=E!==l.color.dflt?E:_.color,C=w.label||y._dfltTitle[b];if(h(t,e,r,A,n),!T)return e;r("title.text",C),a.coerceFont(r,"title.font",{family:_.family,size:a.bigFont(_.size),color:L}),u(t,e,r,A);var P=n.hasMinor;if(P&&(o.newContainer(e,"minor"),u(t,e,r,A,{isMinor:!0})),f(t,e,r,A,n),c(t,e,r,n),P){var O=n.isMinor;n.isMinor=!0,c(t,e,r,n),n.isMinor=O}d(t,e,r,{dfltColor:E,bgColor:n.bgColor,showGrid:n.showGrid,hasMinor:P,attributes:l}),!P||e.minor.ticks||e.minor.showgrid||delete e.minor,(e.showline||e.ticks)&&r("mirror");var I,D="multicategory"===A;if(n.noTickson||"category"!==A&&!D||!e.ticks&&!e.showgrid||(D&&(I="boundaries"),"boundaries"===r("tickson",I)&&delete e.ticklabelposition),D&&r("showdividers")&&(r("dividercolor"),r("dividerwidth")),"date"===A)if(s(t,e,{name:"rangebreaks",inclusionAttr:"enabled",handleItemDefaults:m}),e.rangebreaks.length){for(var z=0;z<e.rangebreaks.length;z++)if(e.rangebreaks[z].pattern===g){e._hasDayOfWeekBreaks=!0;break}if(v(e,y),y._has("scattergl")||y._has("splom"))for(var R=0;R<n.data.length;R++){var F=n.data[R];"scattergl"!==F.type&&"splom"!==F.type||(F.visible=!1,a.warn(F.type+" traces do not work on axes with rangebreaks. Setting trace "+F.index+" to `visible: false`."))}}else delete e.rangebreaks;return e};var x={sun:1,mon:2,tue:3,wed:4,thu:5,fri:6,sat:7};function b(t){if("string"==typeof t)return x[t.substr(0,3).toLowerCase()]}},12663:function(t,e,r){"use strict";var n=r(31562),i=n.FORMAT_LINK,a=n.DATE_FORMAT_LINK;function o(t,e){return["Sets the "+t+" formatting rule"+(e?"for `"+e+"` ":""),"using d3 formatting mini-languages","which are very similar to those in Python. For numbers, see: "+i+"."].join(" ")}function s(t,e){return o(t,e)+[" And for dates see: "+a+".","We add two items to d3's date formatter:","*%h* for half of the year as a decimal number as well as","*%{n}f* for fractional seconds","with n digits. For example, *2016-10-13 09:15:23.456* with tickformat","*%H~%M~%S.%2f* would display *09~15~23.46*"].join(" ")}t.exports={axisHoverFormat:function(t,e){return{valType:"string",dflt:"",editType:"none",description:(e?o:s)("hover text",t)+["By default the values are formatted using "+(e?"generic number format":"`"+t+"axis.hoverformat`")+"."].join(" ")}},descriptionOnlyNumbers:o,descriptionWithDates:s}},41675:function(t,e,r){"use strict";var n=r(73972),i=r(85555);function a(t,e){if(e&&e.length)for(var r=0;r<e.length;r++)if(e[r][t])return!0;return!1}e.id2name=function(t){if("string"==typeof t&&t.match(i.AX_ID_PATTERN)){var e=t.split(" ")[0].substr(1);return"1"===e&&(e=""),t.charAt(0)+"axis"+e}},e.name2id=function(t){if(t.match(i.AX_NAME_PATTERN)){var e=t.substr(5);return"1"===e&&(e=""),t.charAt(0)+e}},e.cleanId=function(t,e,r){var n=/( domain)$/.test(t);if("string"==typeof t&&t.match(i.AX_ID_PATTERN)&&(!e||t.charAt(0)===e)&&(!n||r)){var a=t.split(" ")[0].substr(1).replace(/^0+/,"");return"1"===a&&(a=""),t.charAt(0)+a+(n&&r?" domain":"")}},e.list=function(t,r,n){var i=t._fullLayout;if(!i)return[];var a,o=e.listIds(t,r),s=new Array(o.length);for(a=0;a<o.length;a++){var l=o[a];s[a]=i[l.charAt(0)+"axis"+l.substr(1)]}if(!n){var u=i._subplots.gl3d||[];for(a=0;a<u.length;a++){var c=i[u[a]];r?s.push(c[r+"axis"]):s.push(c.xaxis,c.yaxis,c.zaxis)}}return s},e.listIds=function(t,e){var r=t._fullLayout;if(!r)return[];var n=r._subplots;return e?n[e+"axis"]:n.xaxis.concat(n.yaxis)},e.getFromId=function(t,r,n){var i=t._fullLayout;return r=void 0===r||"string"!=typeof r?r:r.replace(" domain",""),"x"===n?r=r.replace(/y[0-9]*/,""):"y"===n&&(r=r.replace(/x[0-9]*/,"")),i[e.id2name(r)]},e.getFromTrace=function(t,r,i){var a=t._fullLayout,o=null;if(n.traceIs(r,"gl3d")){var s=r.scene;"scene"===s.substr(0,5)&&(o=a[s][i+"axis"])}else o=e.getFromId(t,r[i+"axis"]||i);return o},e.idSort=function(t,e){var r=t.charAt(0),n=e.charAt(0);return r!==n?r>n?1:-1:+(t.substr(1)||1)-+(e.substr(1)||1)},e.ref2id=function(t){return!!/^[xyz]/.test(t)&&t.split(" ")[0]},e.isLinked=function(t,e){return a(e,t._axisMatchGroups)||a(e,t._axisConstraintGroups)}},15258:function(t){"use strict";t.exports=function(t,e,r,n){if("category"===e.type){var i,a=t.categoryarray,o=Array.isArray(a)&&a.length>0;o&&(i="array");var s,l=r("categoryorder",i);"array"===l&&(s=r("categoryarray")),o||"array"!==l||(l=e.categoryorder="trace"),"trace"===l?e._initialCategories=[]:"array"===l?e._initialCategories=s.slice():(s=function(t,e){var r,n,i,a=e.dataAttr||t._id.charAt(0),o={};if(e.axData)r=e.axData;else for(r=[],n=0;n<e.data.length;n++){var s=e.data[n];s[a+"axis"]===t._id&&r.push(s)}for(n=0;n<r.length;n++){var l=r[n][a];for(i=0;i<l.length;i++){var u=l[i];null!=u&&(o[u]=1)}}return Object.keys(o)}(e,n).sort(),"category ascending"===l?e._initialCategories=s:"category descending"===l&&(e._initialCategories=s.reverse()))}}},66287:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(50606),o=a.ONEDAY,s=a.ONEWEEK;e.dtick=function(t,e){var r="log"===e,i="date"===e,a="category"===e,s=i?o:1;if(!t)return s;if(n(t))return(t=Number(t))<=0?s:a?Math.max(1,Math.round(t)):i?Math.max(.1,t):t;if("string"!=typeof t||!i&&!r)return s;var l=t.charAt(0),u=t.substr(1);return(u=n(u)?Number(u):0)<=0||!(i&&"M"===l&&u===Math.round(u)||r&&"L"===l||r&&"D"===l&&(1===u||2===u))?s:t},e.tick0=function(t,e,r,a){return"date"===e?i.cleanDate(t,i.dateTick0(r,a%s==0?1:0)):"D1"!==a&&"D2"!==a?n(t)?Number(t):0:void 0}},85555:function(t,e,r){"use strict";var n=r(30587).counter;t.exports={idRegex:{x:n("x","( domain)?"),y:n("y","( domain)?")},attrRegex:n("[xy]axis"),xAxisMatch:n("xaxis"),yAxisMatch:n("yaxis"),AX_ID_PATTERN:/^[xyz][0-9]*( domain)?$/,AX_NAME_PATTERN:/^[xyz]axis[0-9]*$/,SUBPLOT_PATTERN:/^x([0-9]*)y([0-9]*)$/,HOUR_PATTERN:"hour",WEEKDAY_PATTERN:"day of week",MINDRAG:8,MINZOOM:20,DRAGGERSIZE:20,REDRAWDELAY:50,DFLTRANGEX:[-1,6],DFLTRANGEY:[-1,4],traceLayerClasses:["imagelayer","heatmaplayer","contourcarpetlayer","contourlayer","funnellayer","waterfalllayer","barlayer","carpetlayer","violinlayer","boxlayer","ohlclayer","scattercarpetlayer","scatterlayer"],clipOnAxisFalseQuery:[".scatterlayer",".barlayer",".funnellayer",".waterfalllayer"],layerValue2layerClass:{"above traces":"above","below traces":"below"}}},99082:function(t,e,r){"use strict";var n=r(71828),i=r(71739),a=r(41675).id2name,o=r(13838),s=r(42449),l=r(21994),u=r(50606).ALMOST_EQUAL,c=r(18783).FROM_BL;function f(t,e,r){var i=r.axIds,s=r.layoutOut,l=r.hasImage,u=s._axisConstraintGroups,c=s._axisMatchGroups,f=e._id,v=f.charAt(0),g=((s._splomAxes||{})[v]||{})[f]||{},y=e._id,m="x"===y.charAt(0);function x(r,i){return n.coerce(t,e,o,r,i)}e._matchGroup=null,e._constraintGroup=null,x("constrain",l?"domain":"range"),n.coerce(t,e,{constraintoward:{valType:"enumerated",values:m?["left","center","right"]:["bottom","middle","top"],dflt:m?"center":"middle"}},"constraintoward");var b,_,w=e.type,T=[];for(b=0;b<i.length;b++)(_=i[b])!==y&&s[a(_)].type===w&&T.push(_);var k=p(u,y);if(k){var A=[];for(b=0;b<T.length;b++)k[_=T[b]]||A.push(_);T=A}var M,S,E=T.length;E&&(t.matches||g.matches)&&(M=n.coerce(t,e,{matches:{valType:"enumerated",values:T,dflt:-1!==T.indexOf(g.matches)?g.matches:void 0}},"matches"));var L=l&&!m?e.anchor:void 0;if(E&&!M&&(t.scaleanchor||L)&&(S=n.coerce(t,e,{scaleanchor:{valType:"enumerated",values:T}},"scaleanchor",L)),M){e._matchGroup=d(c,y,M,1);var C=s[a(M)],P=h(s,e)/h(s,C);m!==("x"===M.charAt(0))&&(P=(m?"x":"y")+P),d(u,y,M,P)}else t.matches&&-1!==i.indexOf(t.matches)&&n.warn("ignored "+e._name+'.matches: "'+t.matches+'" to avoid an infinite loop');if(S){var O=x("scaleratio");O||(O=e.scaleratio=1),d(u,y,S,O)}else t.scaleanchor&&-1!==i.indexOf(t.scaleanchor)&&n.warn("ignored "+e._name+'.scaleanchor: "'+t.scaleanchor+'" to avoid either an infinite loop and possibly inconsistent scaleratios, or because this axis declares a *matches* constraint.')}function h(t,e){var r=e.domain;return r||(r=t[a(e.overlaying)].domain),r[1]-r[0]}function p(t,e){for(var r=0;r<t.length;r++)if(t[r][e])return t[r];return null}function d(t,e,r,n){var i,a,o,s,l,u=p(t,e);null===u?((u={})[e]=1,l=t.length,t.push(u)):l=t.indexOf(u);var c=Object.keys(u);for(i=0;i<t.length;i++)if(o=t[i],i!==l&&o[r]){var f=o[r];for(a=0;a<c.length;a++)o[s=c[a]]=v(f,v(n,u[s]));return void t.splice(l,1)}if(1!==n)for(a=0;a<c.length;a++){var h=c[a];u[h]=v(n,u[h])}u[r]=1}function v(t,e){var r,n,i="",a="";"string"==typeof t&&(r=(i=t.match(/^[xy]*/)[0]).length,t=+t.substr(r)),"string"==typeof e&&(n=(a=e.match(/^[xy]*/)[0]).length,e=+e.substr(n));var o=t*e;return r||n?r&&n&&i.charAt(0)!==a.charAt(0)?r===n?o:(r>n?i.substr(n):a.substr(r))+o:i+a+t*e:o}function g(t,e){for(var r=e._size,n=r.h/r.w,i={},a=Object.keys(t),o=0;o<a.length;o++){var s=a[o],l=t[s];if("string"==typeof l){var u=l.match(/^[xy]*/)[0],c=u.length;l=+l.substr(c);for(var f="y"===u.charAt(0)?n:1/n,h=0;h<c;h++)l*=f}i[s]=l}return i}function y(t,e){var r=t._inputDomain,n=c[t.constraintoward],i=r[0]+(r[1]-r[0])*n;t.domain=t._input.domain=[i+(r[0]-i)/e,i+(r[1]-i)/e],t.setScale()}e.handleDefaults=function(t,e,r){var i,o,s,u,c,h,p,d,v=r.axIds,g=r.axHasImage,y=e._axisConstraintGroups=[],m=e._axisMatchGroups=[];for(i=0;i<v.length;i++)f(c=t[u=a(v[i])],h=e[u],{axIds:v,layoutOut:e,hasImage:g[u]});function x(t,r){for(i=0;i<t.length;i++)for(s in o=t[i])e[a(s)][r]=o}for(x(m,"_matchGroup"),i=0;i<y.length;i++)for(s in o=y[i])if((h=e[a(s)]).fixedrange){for(var b in o){var _=a(b);!1===(t[_]||{}).fixedrange&&n.warn("fixedrange was specified as false for axis "+_+" but was overridden because another axis in its constraint group has fixedrange true"),e[_].fixedrange=!0}break}for(i=0;i<y.length;){for(s in o=y[i]){(h=e[a(s)])._matchGroup&&Object.keys(h._matchGroup).length===Object.keys(o).length&&(y.splice(i,1),i--);break}i++}x(y,"_constraintGroup");var w=["constrain","range","autorange","rangemode","rangebreaks","categoryorder","categoryarray"],T=!1,k=!1;function A(){d=h[p],"rangebreaks"===p&&(k=h._hasDayOfWeekBreaks)}for(i=0;i<m.length;i++){o=m[i];for(var M=0;M<w.length;M++){var S;for(s in p=w[M],d=null,o)if(c=t[u=a(s)],h=e[u],p in h){if(!h.matches&&(S=h,p in c)){A();break}null===d&&p in c&&A()}if("range"===p&&d&&(T=!0),"autorange"===p&&null===d&&T&&(d=!1),null===d&&p in S&&(d=S[p]),null!==d)for(s in o)(h=e[a(s)])[p]="range"===p?d.slice():d,"rangebreaks"===p&&(h._hasDayOfWeekBreaks=k,l(h,e))}}},e.enforce=function(t){var e,r,n,o,l,c,f,h,p=t._fullLayout,d=p._axisConstraintGroups||[];for(e=0;e<d.length;e++){n=g(d[e],p);var v=Object.keys(n),m=1/0,x=0,b=1/0,_={},w={},T=!1;for(r=0;r<v.length;r++)w[o=v[r]]=l=p[a(o)],l._inputDomain?l.domain=l._inputDomain.slice():l._inputDomain=l.domain.slice(),l._inputRange||(l._inputRange=l.range.slice()),l.setScale(),_[o]=c=Math.abs(l._m)/n[o],m=Math.min(m,c),"domain"!==l.constrain&&l._constraintShrinkable||(b=Math.min(b,c)),delete l._constraintShrinkable,x=Math.max(x,c),"domain"===l.constrain&&(T=!0);if(!(m>u*x)||T)for(r=0;r<v.length;r++)if(c=_[o=v[r]],f=(l=w[o]).constrain,c!==b||"domain"===f)if(h=c/b,"range"===f)s(l,h);else{var k=l._inputDomain,A=(l.domain[1]-l.domain[0])/(k[1]-k[0]),M=(l.r2l(l.range[1])-l.r2l(l.range[0]))/(l.r2l(l._inputRange[1])-l.r2l(l._inputRange[0]));if((h/=A)*M<1){l.domain=l._input.domain=k.slice(),s(l,h);continue}if(M<1&&(l.range=l._input.range=l._inputRange.slice(),h*=M),l.autorange){var S=l.r2l(l.range[0]),E=l.r2l(l.range[1]),L=(S+E)/2,C=L,P=L,O=Math.abs(E-L),I=L-O*h*1.0001,D=L+O*h*1.0001,z=i.makePadFn(p,l,0),R=i.makePadFn(p,l,1);y(l,h);var F,B,N=Math.abs(l._m),j=i.concatExtremes(t,l),U=j.min,V=j.max;for(B=0;B<U.length;B++)(F=U[B].val-z(U[B])/N)>I&&F<C&&(C=F);for(B=0;B<V.length;B++)(F=V[B].val+R(V[B])/N)<D&&F>P&&(P=F);h/=(P-C)/(2*O),C=l.l2r(C),P=l.l2r(P),l.range=l._input.range=S<E?[C,P]:[P,C]}y(l,h)}}},e.getAxisGroup=function(t,e){for(var r=t._axisMatchGroups,n=0;n<r.length;n++)if(r[n][e])return"g"+n;return e},e.clean=function(t,e){if(e._inputDomain){for(var r=!1,n=e._id,i=t._fullLayout._axisConstraintGroups,a=0;a<i.length;a++)if(i[a][n]){r=!0;break}r&&"domain"===e.constrain||(e._input.domain=e.domain=e._inputDomain,delete e._inputDomain)}}},29323:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.numberFormat,o=r(84267),s=r(38520),l=r(73972),u=i.strTranslate,c=r(63893),f=r(7901),h=r(91424),p=r(30211),d=r(89298),v=r(6964),g=r(28569),y=r(64505),m=y.selectingOrDrawing,x=y.freeMode,b=r(18783).FROM_TL,_=r(33306),w=r(61549).redrawReglTraces,T=r(74875),k=r(41675).getFromId,A=r(47322).prepSelect,M=r(47322).clearOutline,S=r(47322).selectOnClick,E=r(42449),L=r(85555),C=L.MINDRAG,P=L.MINZOOM,O=!0;function I(t,e,r,n){var a=i.ensureSingle(t.draglayer,e,r,(function(e){e.classed("drag",!0).style({fill:"transparent","stroke-width":0}).attr("data-subplot",t.id)}));return a.call(v,n),a.node()}function D(t,e,r,i,a,o,s){var l=I(t,"rect",e,r);return n.select(l).call(h.setRect,i,a,o,s),l}function z(t,e){for(var r=0;r<t.length;r++)if(!t[r].fixedrange)return e;return""}function R(t,e,r,n,i){for(var a=0;a<t.length;a++){var o=t[a];if(!o.fixedrange)if(o.rangebreaks){var s="y"===o._id.charAt(0),l=s?1-e:e,u=s?1-r:r;n[o._name+".range[0]"]=o.l2r(o.p2l(l*o._length)),n[o._name+".range[1]"]=o.l2r(o.p2l(u*o._length))}else{var c=o._rl[0],f=o._rl[1]-c;n[o._name+".range[0]"]=o.l2r(c+f*e),n[o._name+".range[1]"]=o.l2r(c+f*r)}}if(i&&i.length){var h=(e+(1-r))/2;R(i,h,1-h,n,[])}}function F(t,e){for(var r=0;r<t.length;r++){var n=t[r];if(!n.fixedrange)if(n.rangebreaks){var i=n._length,a=(n.p2l(0+e)-n.p2l(0)+(n.p2l(i+e)-n.p2l(i)))/2;n.range=[n.l2r(n._rl[0]-a),n.l2r(n._rl[1]-a)]}else n.range=[n.l2r(n._rl[0]-e/n._m),n.l2r(n._rl[1]-e/n._m)]}}function B(t){return 1-(t>=0?Math.min(t,.9):1/(1/Math.max(t,-.3)+3.222))}function N(t,e,r,n,i){return t.append("path").attr("class","zoombox").style({fill:e>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("transform",u(r,n)).attr("d",i+"Z")}function j(t,e,r){return t.append("path").attr("class","zoombox-corners").style({fill:f.background,stroke:f.defaultLine,"stroke-width":1,opacity:0}).attr("transform",u(e,r)).attr("d","M0,0Z")}function U(t,e,r,n,i,a){t.attr("d",n+"M"+r.l+","+r.t+"v"+r.h+"h"+r.w+"v-"+r.h+"h-"+r.w+"Z"),V(t,e,i,a)}function V(t,e,r,n){r||(t.transition().style("fill",n>.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),e.transition().style("opacity",1).duration(200))}function H(t){n.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}function q(t){O&&t.data&&t._context.showTips&&(i.notifier(i._(t,"Double-click to zoom back out"),"long"),O=!1)}function G(t){var e=Math.floor(Math.min(t.b-t.t,t.r-t.l,P)/2);return"M"+(t.l-3.5)+","+(t.t-.5+e)+"h3v"+-e+"h"+e+"v-3h-"+(e+3)+"ZM"+(t.r+3.5)+","+(t.t-.5+e)+"h-3v"+-e+"h"+-e+"v-3h"+(e+3)+"ZM"+(t.r+3.5)+","+(t.b+.5-e)+"h-3v"+e+"h"+-e+"v3h"+(e+3)+"ZM"+(t.l-3.5)+","+(t.b+.5-e)+"h3v"+e+"h"+e+"v3h-"+(e+3)+"Z"}function Z(t,e,r,n,a){for(var o,s,l,u,c=!1,f={},h={},p=(a||{}).xaHash,d=(a||{}).yaHash,v=0;v<e.length;v++){var g=e[v];for(o in r)if(g[o]){for(l in g)a&&(p[l]||d[l])||("x"===l.charAt(0)?r:n)[l]||(f[l]=o);for(s in n)a&&(p[s]||d[s])||!g[s]||(c=!0)}for(s in n)if(g[s])for(u in g)a&&(p[u]||d[u])||("x"===u.charAt(0)?r:n)[u]||(h[u]=s)}c&&(i.extendFlat(f,h),h={});var y={},m=[];for(l in f){var x=k(t,l);m.push(x),y[x._id]=x}var b={},_=[];for(u in h){var w=k(t,u);_.push(w),b[w._id]=w}return{xaHash:y,yaHash:b,xaxes:m,yaxes:_,xLinks:f,yLinks:h,isSubplotConstrained:c}}function Y(t,e){if(s){var r=void 0!==t.onwheel?"wheel":"mousewheel";t._onwheel&&t.removeEventListener(r,t._onwheel),t._onwheel=e,t.addEventListener(r,e,{passive:!1})}else void 0!==t.onwheel?t.onwheel=e:void 0!==t.onmousewheel?t.onmousewheel=e:t.isAddedWheelEvent||(t.isAddedWheelEvent=!0,t.addEventListener("wheel",e,{passive:!1}))}function W(t){var e=[];for(var r in t)e.push(t[r]);return e}t.exports={makeDragBox:function(t,e,r,s,u,f,v,y){var O,I,V,X,J,K,$,Q,tt,et,rt,nt,it,at,ot,st,lt,ut,ct,ft,ht,pt,dt,vt=t._fullLayout._zoomlayer,gt=v+y==="nsew",yt=1===(v+y).length;function mt(){if(O=e.xaxis,I=e.yaxis,tt=O._length,et=I._length,$=O._offset,Q=I._offset,(V={})[O._id]=O,(X={})[I._id]=I,v&&y)for(var r=e.overlays,n=0;n<r.length;n++){var i=r[n].xaxis;V[i._id]=i;var a=r[n].yaxis;X[a._id]=a}J=W(V),K=W(X),it=z(J,y),at=z(K,v),ot=!at&&!it,nt=Z(t,t._fullLayout._axisMatchGroups,V,X);var o=(rt=Z(t,t._fullLayout._axisConstraintGroups,V,X,nt)).isSubplotConstrained||nt.isSubplotConstrained;st=y||o,lt=v||o;var s=t._fullLayout;ut=s._has("scattergl"),ct=s._has("splom"),ft=s._has("svg")}r+=e.yaxis._shift,mt();var xt=function(t,e,r){return t?"nsew"===t?r?"":"pan"===e?"move":"crosshair":t.toLowerCase()+"-resize":"pointer"}(at+it,t._fullLayout.dragmode,gt),bt=D(e,v+y+"drag",xt,r,s,u,f);if(ot&&!gt)return bt.onmousedown=null,bt.style.pointerEvents="none",bt;var _t,wt,Tt,kt,At,Mt,St,Et,Lt,Ct,Pt={element:bt,gd:t,plotinfo:e};function Ot(){Pt.plotinfo.selection=!1,M(t)}function It(t,r){var i=Pt.gd;if(i._fullLayout._activeShapeIndex>=0)i._fullLayout._deactivateShape(i);else{var o=i._fullLayout.clickmode;if(H(i),2!==t||yt||qt(),gt)o.indexOf("select")>-1&&S(r,i,J,K,e.id,Pt),o.indexOf("event")>-1&&p.click(i,r,e.id);else if(1===t&&yt){var s=v?I:O,u="s"===v||"w"===y?0:1,f=s._name+".range["+u+"]",h=function(t,e){var r,n=t.range[e],i=Math.abs(n-t.range[1-e]);return"date"===t.type?n:"log"===t.type?(r=Math.ceil(Math.max(0,-Math.log(i)/Math.LN10))+3,a("."+r+"g")(Math.pow(10,n))):(r=Math.floor(Math.log(Math.abs(n))/Math.LN10)-Math.floor(Math.log(i)/Math.LN10)+4,a("."+String(r)+"g")(n))}(s,u),d="left",g="middle";if(s.fixedrange)return;v?(g="n"===v?"top":"bottom","right"===s.side&&(d="right")):"e"===y&&(d="right"),i._context.showAxisRangeEntryBoxes&&n.select(bt).call(c.makeEditable,{gd:i,immediate:!0,background:i._fullLayout.paper_bgcolor,text:String(h),fill:s.tickfont?s.tickfont.color:"#444",horizontalAlign:d,verticalAlign:g}).on("edit",(function(t){var e=s.d2r(t);void 0!==e&&l.call("_guiRelayout",i,f,e)}))}}}function Dt(e,r){if(t._transitioningWithDuration)return!1;var n=Math.max(0,Math.min(tt,pt*e+_t)),i=Math.max(0,Math.min(et,dt*r+wt)),a=Math.abs(n-_t),o=Math.abs(i-wt);function s(){St="",Tt.r=Tt.l,Tt.t=Tt.b,Lt.attr("d","M0,0Z")}if(Tt.l=Math.min(_t,n),Tt.r=Math.max(_t,n),Tt.t=Math.min(wt,i),Tt.b=Math.max(wt,i),rt.isSubplotConstrained)a>P||o>P?(St="xy",a/tt>o/et?(o=a*et/tt,wt>i?Tt.t=wt-o:Tt.b=wt+o):(a=o*tt/et,_t>n?Tt.l=_t-a:Tt.r=_t+a),Lt.attr("d",G(Tt))):s();else if(nt.isSubplotConstrained)if(a>P||o>P){St="xy";var l=Math.min(Tt.l/tt,(et-Tt.b)/et),u=Math.max(Tt.r/tt,(et-Tt.t)/et);Tt.l=l*tt,Tt.r=u*tt,Tt.b=(1-l)*et,Tt.t=(1-u)*et,Lt.attr("d",G(Tt))}else s();else!at||o<Math.min(Math.max(.6*a,C),P)?a<C||!it?s():(Tt.t=0,Tt.b=et,St="x",Lt.attr("d",function(t,e){return"M"+(t.l-.5)+","+(e-P-.5)+"h-3v"+(2*P+1)+"h3ZM"+(t.r+.5)+","+(e-P-.5)+"h3v"+(2*P+1)+"h-3Z"}(Tt,wt))):!it||a<Math.min(.6*o,P)?(Tt.l=0,Tt.r=tt,St="y",Lt.attr("d",function(t,e){return"M"+(e-P-.5)+","+(t.t-.5)+"v-3h"+(2*P+1)+"v3ZM"+(e-P-.5)+","+(t.b+.5)+"v3h"+(2*P+1)+"v-3Z"}(Tt,_t))):(St="xy",Lt.attr("d",G(Tt)));Tt.w=Tt.r-Tt.l,Tt.h=Tt.b-Tt.t,St&&(Ct=!0),t._dragged=Ct,U(Et,Lt,Tt,At,Mt,kt),zt(),t.emit("plotly_relayouting",ht),Mt=!0}function zt(){ht={},"xy"!==St&&"x"!==St||(R(J,Tt.l/tt,Tt.r/tt,ht,rt.xaxes),Vt("x",ht)),"xy"!==St&&"y"!==St||(R(K,(et-Tt.b)/et,(et-Tt.t)/et,ht,rt.yaxes),Vt("y",ht))}function Rt(){zt(),H(t),Gt(),q(t)}Pt.prepFn=function(e,r,n){var a=Pt.dragmode,s=t._fullLayout.dragmode;s!==a&&(Pt.dragmode=s),mt(),pt=t._fullLayout._invScaleX,dt=t._fullLayout._invScaleY,ot||(gt?e.shiftKey?"pan"===s?s="zoom":m(s)||(s="pan"):e.ctrlKey&&(s="pan"):s="pan"),x(s)?Pt.minDrag=1:Pt.minDrag=void 0,m(s)?(Pt.xaxes=J,Pt.yaxes=K,A(e,r,n,Pt,s)):(Pt.clickFn=It,m(a)&&Ot(),ot||("zoom"===s?(Pt.moveFn=Dt,Pt.doneFn=Rt,Pt.minDrag=1,function(e,r,n){var a=bt.getBoundingClientRect();_t=r-a.left,wt=n-a.top,t._fullLayout._calcInverseTransform(t);var s=i.apply3DTransform(t._fullLayout._invTransform)(_t,wt);_t=s[0],wt=s[1],Tt={l:_t,r:_t,w:0,t:wt,b:wt,h:0},kt=t._hmpixcount?t._hmlumcount/t._hmpixcount:o(t._fullLayout.plot_bgcolor).getLuminance(),Mt=!1,St="xy",Ct=!1,Et=N(vt,kt,$,Q,At="M0,0H"+tt+"V"+et+"H0V0"),Lt=j(vt,$,Q)}(0,r,n)):"pan"===s&&(Pt.moveFn=Ut,Pt.doneFn=Gt))),t._fullLayout._redrag=function(){var e=t._dragdata;if(e&&e.element===bt){var r=t._fullLayout.dragmode;m(r)||(mt(),Zt([0,0,tt,et]),Pt.moveFn(e.dx,e.dy))}}},g.init(Pt);var Ft=[0,0,tt,et],Bt=null,Nt=L.REDRAWDELAY,jt=e.mainplot?t._fullLayout._plots[e.mainplot]:e;function Ut(e,r){if(e*=pt,r*=dt,!t._transitioningWithDuration){if(t._fullLayout._replotting=!0,"ew"===it||"ns"===at){var n=it?-e:0,i=at?-r:0;if(nt.isSubplotConstrained){if(it&&at){var a=(e/tt-r/et)/2;n=-(e=a*tt),i=-(r=-a*et)}at?n=-i*tt/et:i=-n*et/tt}return it&&(F(J,e),Vt("x")),at&&(F(K,r),Vt("y")),Zt([n,i,tt,et]),Ht(),void t.emit("plotly_relayouting",ht)}var o,s,l="w"===it==("n"===at)?1:-1;if(it&&at&&(rt.isSubplotConstrained||nt.isSubplotConstrained)){var u=(e/tt+l*r/et)/2;e=u*tt,r=l*u*et}if("w"===it?e=p(J,0,e):"e"===it?e=p(J,1,-e):it||(e=0),"n"===at?r=p(K,1,r):"s"===at?r=p(K,0,-r):at||(r=0),o="w"===it?e:0,s="n"===at?r:0,rt.isSubplotConstrained&&!nt.isSubplotConstrained||nt.isSubplotConstrained&&it&&at&&l>0){var c;if(nt.isSubplotConstrained||!it&&1===at.length){for(c=0;c<J.length;c++)J[c].range=J[c]._r.slice(),E(J[c],1-r/et);o=(e=r*tt/et)/2}if(nt.isSubplotConstrained||!at&&1===it.length){for(c=0;c<K.length;c++)K[c].range=K[c]._r.slice(),E(K[c],1-e/tt);s=(r=e*et/tt)/2}}nt.isSubplotConstrained&&at||Vt("x"),nt.isSubplotConstrained&&it||Vt("y");var f=tt-e,h=et-r;!nt.isSubplotConstrained||it&&at||(it?(s=o?0:e*et/tt,h=f*et/tt):(o=s?0:r*tt/et,f=h*tt/et)),Zt([o,s,f,h]),Ht(),t.emit("plotly_relayouting",ht)}function p(t,e,r){for(var n,i,a=1-e,o=0;o<t.length;o++){var s=t[o];if(!s.fixedrange){n=s,i=s._rl[a]+(s._rl[e]-s._rl[a])/B(r/s._length);var l=s.l2r(i);!1!==l&&void 0!==l&&(s.range[e]=l)}}return n._length*(n._rl[e]-i)/(n._rl[e]-n._rl[a])}}function Vt(t,e){for(var r=nt.isSubplotConstrained?{x:K,y:J}[t]:nt[t+"axes"],n=nt.isSubplotConstrained?{x:J,y:K}[t]:[],i=0;i<r.length;i++){var a=r[i],o=a._id,s=nt.xLinks[o]||nt.yLinks[o],l=n[0]||V[s]||X[s];l&&(e?(e[a._name+".range[0]"]=e[l._name+".range[0]"],e[a._name+".range[1]"]=e[l._name+".range[1]"]):a.range=l.range.slice())}}function Ht(){var r,n=[];function i(t){for(r=0;r<t.length;r++)t[r].fixedrange||n.push(t[r]._id)}function a(t,e){for(r=0;r<t.length;r++){var i=t[r],a=i[e];i.fixedrange||"sync"!==a.tickmode||n.push(a._id)}}for(st&&(i(J),i(rt.xaxes),i(nt.xaxes),a(e.overlays,"xaxis")),lt&&(i(K),i(rt.yaxes),i(nt.yaxes),a(e.overlays,"yaxis")),ht={},r=0;r<n.length;r++){var o=n[r],s=k(t,o);d.drawOne(t,s,{skipTitle:!0}),ht[s._name+".range[0]"]=s.range[0],ht[s._name+".range[1]"]=s.range[1]}d.redrawComponents(t,n)}function qt(){if(!t._transitioningWithDuration){var e=t._context.doubleClick,r=[];it&&(r=r.concat(J)),at&&(r=r.concat(K)),nt.xaxes&&(r=r.concat(nt.xaxes)),nt.yaxes&&(r=r.concat(nt.yaxes));var n,i,a,o={};if("reset+autosize"===e)for(e="autosize",i=0;i<r.length;i++)if((n=r[i])._rangeInitial&&(n.range[0]!==n._rangeInitial[0]||n.range[1]!==n._rangeInitial[1])||!n._rangeInitial&&!n.autorange){e="reset";break}if("autosize"===e)for(i=0;i<r.length;i++)(n=r[i]).fixedrange||(o[n._name+".autorange"]=!0);else if("reset"===e)for((it||rt.isSubplotConstrained)&&(r=r.concat(rt.xaxes)),at&&!rt.isSubplotConstrained&&(r=r.concat(rt.yaxes)),rt.isSubplotConstrained&&(it?at||(r=r.concat(K)):r=r.concat(J)),i=0;i<r.length;i++)(n=r[i]).fixedrange||(n._rangeInitial?(a=n._rangeInitial,o[n._name+".range[0]"]=a[0],o[n._name+".range[1]"]=a[1]):o[n._name+".autorange"]=!0);t.emit("plotly_doubleclick",null),l.call("_guiRelayout",t,o)}}function Gt(){Zt([0,0,tt,et]),i.syncOrAsync([T.previousPromises,function(){t._fullLayout._replotting=!1,l.call("_guiRelayout",t,ht)}],t)}function Zt(e){var r,n,a,o,s=t._fullLayout,u=s._plots,c=s._subplots.cartesian;if(ct&&l.subplotsRegistry.splom.drag(t),ut)for(r=0;r<c.length;r++)if(a=(n=u[c[r]]).xaxis,o=n.yaxis,n._scene){var f=i.simpleMap(a.range,a.r2l),p=i.simpleMap(o.range,o.r2l);n._scene.update({range:[f[0],p[0],f[1],p[1]]})}if((ct||ut)&&(_(t),w(t)),ft){var d=e[2]/O._length,g=e[3]/I._length;for(r=0;r<c.length;r++){a=(n=u[c[r]]).xaxis,o=n.yaxis;var m,x,b,T,k=(st||nt.isSubplotConstrained)&&!a.fixedrange&&V[a._id],A=(lt||nt.isSubplotConstrained)&&!o.fixedrange&&X[o._id];if(k?(m=d,b=y||nt.isSubplotConstrained?e[0]:Xt(a,m)):nt.xaHash[a._id]?(m=d,b=e[0]*a._length/O._length):nt.yaHash[a._id]?(m=g,b="ns"===at?-e[1]*a._length/I._length:Xt(a,m,{n:"top",s:"bottom"}[at])):b=Wt(a,m=Yt(a,d,g)),A?(x=g,T=v||nt.isSubplotConstrained?e[1]:Xt(o,x)):nt.yaHash[o._id]?(x=g,T=e[1]*o._length/I._length):nt.xaHash[o._id]?(x=d,T="ew"===it?-e[0]*o._length/O._length:Xt(o,x,{e:"right",w:"left"}[it])):T=Wt(o,x=Yt(o,d,g)),m||x){m||(m=1),x||(x=1);var M=a._offset-b/m,S=o._offset-T/x;n.clipRect.call(h.setTranslate,b,T).call(h.setScale,m,x),n.plot.call(h.setTranslate,M,S).call(h.setScale,1/m,1/x),m===n.xScaleFactor&&x===n.yScaleFactor||(h.setPointGroupScale(n.zoomScalePts,m,x),h.setTextPointsScale(n.zoomScaleTxt,m,x)),h.hideOutsideRangePoints(n.clipOnAxisFalseTraces,n),n.xScaleFactor=m,n.yScaleFactor=x}}}}function Yt(t,e,r){return t.fixedrange?0:st&&rt.xaHash[t._id]?e:lt&&(rt.isSubplotConstrained?rt.xaHash:rt.yaHash)[t._id]?r:0}function Wt(t,e){return e?(t.range=t._r.slice(),E(t,e),Xt(t,e)):0}function Xt(t,e,r){return t._length*(1-e)*b[r||t.constraintoward||"middle"]}return v.length*y.length!=1&&Y(bt,(function(e){if(t._context._scrollZoom.cartesian||t._fullLayout._enablescrollzoom){if(Ot(),t._transitioningWithDuration)return e.preventDefault(),void e.stopPropagation();mt(),clearTimeout(Bt);var r=-e.deltaY;if(isFinite(r)||(r=e.wheelDelta/10),isFinite(r)){var n,a=Math.exp(-Math.min(Math.max(r,-20),20)/200),o=jt.draglayer.select(".nsewdrag").node().getBoundingClientRect(),s=(e.clientX-o.left)/o.width,l=(o.bottom-e.clientY)/o.height;if(st){for(y||(s=.5),n=0;n<J.length;n++)u(J[n],s,a);Vt("x"),Ft[2]*=a,Ft[0]+=Ft[2]*s*(1/a-1)}if(lt){for(v||(l=.5),n=0;n<K.length;n++)u(K[n],l,a);Vt("y"),Ft[3]*=a,Ft[1]+=Ft[3]*(1-l)*(1/a-1)}Zt(Ft),Ht(),t.emit("plotly_relayouting",ht),Bt=setTimeout((function(){t._fullLayout&&(Ft=[0,0,tt,et],Gt())}),Nt),e.preventDefault()}else i.log("Did not find wheel motion attributes: ",e)}function u(t,e,r){if(!t.fixedrange){var n=i.simpleMap(t.range,t.r2l),a=n[0]+(n[1]-n[0])*e;t.range=n.map((function(e){return t.l2r(a+(e-a)*r)}))}}})),bt},makeDragger:I,makeRectDragger:D,makeZoombox:N,makeCorners:j,updateZoombox:U,xyCorners:G,transitionZoombox:V,removeZoombox:H,showDoubleClickNotifier:q,attachWheelEventHandler:Y}},4305:function(t,e,r){"use strict";var n=r(39898),i=r(30211),a=r(28569),o=r(6964),s=r(29323).makeDragBox,l=r(85555).DRAGGERSIZE;e.initInteractions=function(t){var r=t._fullLayout;if(t._context.staticPlot)n.select(t).selectAll(".drag").remove();else if(r._has("cartesian")||r._has("splom")){Object.keys(r._plots||{}).sort((function(t,e){if((r._plots[t].mainplot&&!0)===(r._plots[e].mainplot&&!0)){var n=t.split("y"),i=e.split("y");return n[0]===i[0]?Number(n[1]||1)-Number(i[1]||1):Number(n[0]||1)-Number(i[0]||1)}return r._plots[t].mainplot?1:-1})).forEach((function(e){var n=r._plots[e],o=n.xaxis,u=n.yaxis;if(!n.mainplot){var c=s(t,n,o._offset,u._offset,o._length,u._length,"ns","ew");c.onmousemove=function(r){t._fullLayout._rehover=function(){t._fullLayout._hoversubplot===e&&t._fullLayout._plots[e]&&i.hover(t,r,e)},i.hover(t,r,e),t._fullLayout._lasthover=c,t._fullLayout._hoversubplot=e},c.onmouseout=function(e){t._dragging||(t._fullLayout._hoversubplot=null,a.unhover(t,e))},t._context.showAxisDragHandles&&(s(t,n,o._offset-l,u._offset-l,l,l,"n","w"),s(t,n,o._offset+o._length,u._offset-l,l,l,"n","e"),s(t,n,o._offset-l,u._offset+u._length,l,l,"s","w"),s(t,n,o._offset+o._length,u._offset+u._length,l,l,"s","e"))}if(t._context.showAxisDragHandles){if(e===o._mainSubplot){var f=o._mainLinePosition;"top"===o.side&&(f-=l),s(t,n,o._offset+.1*o._length,f,.8*o._length,l,"","ew"),s(t,n,o._offset,f,.1*o._length,l,"","w"),s(t,n,o._offset+.9*o._length,f,.1*o._length,l,"","e")}if(e===u._mainSubplot){var h=u._mainLinePosition;"right"!==u.side&&(h-=l),s(t,n,h,u._offset+.1*u._length,l,.8*u._length,"ns",""),s(t,n,h,u._offset+.9*u._length,l,.1*u._length,"s",""),s(t,n,h,u._offset,l,.1*u._length,"n","")}}}));var o=r._hoverlayer.node();o.onmousemove=function(e){e.target=t._fullLayout._lasthover,i.hover(t,e,r._hoversubplot)},o.onclick=function(e){e.target=t._fullLayout._lasthover,i.click(t,e)},o.onmousedown=function(e){t._fullLayout._lasthover.onmousedown(e)},e.updateFx(t)}},e.updateFx=function(t){var e=t._fullLayout,r="pan"===e.dragmode?"move":"crosshair";o(e._draggers,r)}},76325:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(41675);t.exports=function(t){return function(e,r){var o=e[t];if(Array.isArray(o))for(var s=n.subplotsRegistry.cartesian,l=s.idRegex,u=r._subplots,c=u.xaxis,f=u.yaxis,h=u.cartesian,p=r._has("cartesian")||r._has("gl2d"),d=0;d<o.length;d++){var v=o[d];if(i.isPlainObject(v)){var g=a.cleanId(v.xref,"x",!1),y=a.cleanId(v.yref,"y",!1),m=l.x.test(g),x=l.y.test(y);if(m||x){p||i.pushUnique(r._basePlotModules,s);var b=!1;m&&-1===c.indexOf(g)&&(c.push(g),b=!0),x&&-1===f.indexOf(y)&&(f.push(y),b=!0),b&&m&&x&&h.push(g+y)}}}}}},93612:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(71828),o=r(74875),s=r(91424),l=r(27659).a0,u=r(41675),c=r(85555),f=r(77922),h=a.ensureSingle;function p(t,e,r){return a.ensureSingle(t,e,r,(function(t){t.datum(r)}))}function d(t,e,r,a,o){for(var u,f,h,p=c.traceLayerClasses,d=t._fullLayout,v=d._modules,g=[],y=[],m=0;m<v.length;m++){var x=(u=v[m]).name,b=i.modules[x].categories;if(b.svg){var _=u.layerName||x+"layer",w=u.plot;h=(f=l(r,w))[0],r=f[1],h.length&&g.push({i:p.indexOf(_),className:_,plotMethod:w,cdModule:h}),b.zoomScale&&y.push("."+_)}}g.sort((function(t,e){return t.i-e.i}));var T=e.plot.selectAll("g.mlayer").data(g,(function(t){return t.className}));if(T.enter().append("g").attr("class",(function(t){return t.className})).classed("mlayer",!0).classed("rangeplot",e.isRangePlot),T.exit().remove(),T.order(),T.each((function(r){var i=n.select(this),l=r.className;r.plotMethod(t,e,r.cdModule,i,a,o),-1===c.clipOnAxisFalseQuery.indexOf("."+l)&&s.setClipUrl(i,e.layerClipId,t)})),d._has("scattergl")&&(u=i.getModule("scattergl"),h=l(r,u)[0],u.plot(t,e,h)),!t._context.staticPlot&&(e._hasClipOnAxisFalse&&(e.clipOnAxisFalseTraces=e.plot.selectAll(c.clipOnAxisFalseQuery.join(",")).selectAll(".trace")),y.length)){var k=e.plot.selectAll(y.join(",")).selectAll(".trace");e.zoomScalePts=k.selectAll("path.point"),e.zoomScaleTxt=k.selectAll(".textpoint")}}function v(t,e){var r=e.plotgroup,n=e.id,i=c.layerValue2layerClass[e.xaxis.layer],a=c.layerValue2layerClass[e.yaxis.layer],o=t._fullLayout._hasOnlyLargeSploms;if(e.mainplot){var s=e.mainplotinfo,l=s.plotgroup,f=n+"-x",d=n+"-y";e.minorGridlayer=s.minorGridlayer,e.gridlayer=s.gridlayer,e.zerolinelayer=s.zerolinelayer,h(s.overlinesBelow,"path",f),h(s.overlinesBelow,"path",d),h(s.overaxesBelow,"g",f),h(s.overaxesBelow,"g",d),e.plot=h(s.overplot,"g",n),h(s.overlinesAbove,"path",f),h(s.overlinesAbove,"path",d),h(s.overaxesAbove,"g",f),h(s.overaxesAbove,"g",d),e.xlines=l.select(".overlines-"+i).select("."+f),e.ylines=l.select(".overlines-"+a).select("."+d),e.xaxislayer=l.select(".overaxes-"+i).select("."+f),e.yaxislayer=l.select(".overaxes-"+a).select("."+d)}else if(o)e.xlines=h(r,"path","xlines-above"),e.ylines=h(r,"path","ylines-above"),e.xaxislayer=h(r,"g","xaxislayer-above"),e.yaxislayer=h(r,"g","yaxislayer-above");else{var v=h(r,"g","layer-subplot");e.shapelayer=h(v,"g","shapelayer"),e.imagelayer=h(v,"g","imagelayer"),e.minorGridlayer=h(r,"g","minor-gridlayer"),e.gridlayer=h(r,"g","gridlayer"),e.zerolinelayer=h(r,"g","zerolinelayer"),h(r,"path","xlines-below"),h(r,"path","ylines-below"),e.overlinesBelow=h(r,"g","overlines-below"),h(r,"g","xaxislayer-below"),h(r,"g","yaxislayer-below"),e.overaxesBelow=h(r,"g","overaxes-below"),e.plot=h(r,"g","plot"),e.overplot=h(r,"g","overplot"),e.xlines=h(r,"path","xlines-above"),e.ylines=h(r,"path","ylines-above"),e.overlinesAbove=h(r,"g","overlines-above"),h(r,"g","xaxislayer-above"),h(r,"g","yaxislayer-above"),e.overaxesAbove=h(r,"g","overaxes-above"),e.xlines=r.select(".xlines-"+i),e.ylines=r.select(".ylines-"+a),e.xaxislayer=r.select(".xaxislayer-"+i),e.yaxislayer=r.select(".yaxislayer-"+a)}o||(p(e.minorGridlayer,"g",e.xaxis._id),p(e.minorGridlayer,"g",e.yaxis._id),e.minorGridlayer.selectAll("g").map((function(t){return t[0]})).sort(u.idSort),p(e.gridlayer,"g",e.xaxis._id),p(e.gridlayer,"g",e.yaxis._id),e.gridlayer.selectAll("g").map((function(t){return t[0]})).sort(u.idSort)),e.xlines.style("fill","none").classed("crisp",!0),e.ylines.style("fill","none").classed("crisp",!0)}function g(t,e){if(t){var r={};for(var i in t.each((function(t){var i=t[0];n.select(this).remove(),y(i,e),r[i]=!0})),e._plots)for(var a=e._plots[i].overlays||[],o=0;o<a.length;o++){var s=a[o];r[s.id]&&s.plot.selectAll(".trace").remove()}}}function y(t,e){e._draggers.selectAll("g."+t).remove(),e._defs.select("#clip"+e._uid+t+"plot").remove()}e.name="cartesian",e.attr=["xaxis","yaxis"],e.idRoot=["x","y"],e.idRegex=c.idRegex,e.attrRegex=c.attrRegex,e.attributes=r(89502),e.layoutAttributes=r(13838),e.supplyLayoutDefaults=r(86763),e.transitionAxes=r(66847),e.finalizeSubplots=function(t,e){var r,n,i,o=e._subplots,s=o.xaxis,l=o.yaxis,f=o.cartesian,h=f.concat(o.gl2d||[]),p={},d={};for(r=0;r<h.length;r++){var v=h[r].split("y");p[v[0]]=1,d["y"+v[1]]=1}for(r=0;r<s.length;r++)p[n=s[r]]||(i=(t[u.id2name(n)]||{}).anchor,c.idRegex.y.test(i)||(i="y"),f.push(n+i),h.push(n+i),d[i]||(d[i]=1,a.pushUnique(l,i)));for(r=0;r<l.length;r++)d[i=l[r]]||(n=(t[u.id2name(i)]||{}).anchor,c.idRegex.x.test(n)||(n="x"),f.push(n+i),h.push(n+i),p[n]||(p[n]=1,a.pushUnique(s,n)));if(!h.length){for(var g in n="",i="",t)c.attrRegex.test(g)&&("x"===g.charAt(0)?(!n||+g.substr(5)<+n.substr(5))&&(n=g):(!i||+g.substr(5)<+i.substr(5))&&(i=g));n=n?u.name2id(n):"x",i=i?u.name2id(i):"y",s.push(n),l.push(i),f.push(n+i)}},e.plot=function(t,e,r,n){var i,a=t._fullLayout,o=a._subplots.cartesian,s=t.calcdata;if(!Array.isArray(e))for(e=[],i=0;i<s.length;i++)e.push(i);for(i=0;i<o.length;i++){for(var l,u=o[i],c=a._plots[u],f=[],h=0;h<s.length;h++){var p=s[h],v=p[0].trace;v.xaxis+v.yaxis===u&&((-1!==e.indexOf(v.index)||v.carpet)&&(l&&l[0].trace.xaxis+l[0].trace.yaxis===u&&-1!==["tonextx","tonexty","tonext"].indexOf(v.fill)&&-1===f.indexOf(l)&&f.push(l),f.push(p)),l=p)}d(t,c,f,r,n)}},e.clean=function(t,e,r,n){var i,a,o,s=n._plots||{},l=e._plots||{},c=n._subplots||{};if(n._hasOnlyLargeSploms&&!e._hasOnlyLargeSploms)for(o in s)(i=s[o]).plotgroup&&i.plotgroup.remove();var f=n._has&&n._has("gl"),h=e._has&&e._has("gl");if(f&&!h)for(o in s)(i=s[o])._scene&&i._scene.destroy();if(c.xaxis&&c.yaxis){var p=u.listIds({_fullLayout:n});for(a=0;a<p.length;a++){var d=p[a];e[u.id2name(d)]||n._infolayer.selectAll(".g-"+d+"title").remove()}}var v=n._has&&n._has("cartesian"),m=e._has&&e._has("cartesian");if(v&&!m)g(n._cartesianlayer.selectAll(".subplot"),n),n._defs.selectAll(".axesclip").remove(),delete n._axisConstraintGroups,delete n._axisMatchGroups;else if(c.cartesian)for(a=0;a<c.cartesian.length;a++){var x=c.cartesian[a];if(!l[x]){var b="."+x+",."+x+"-x,."+x+"-y";n._cartesianlayer.selectAll(b).remove(),y(x,n)}}},e.drawFramework=function(t){var e=t._fullLayout,r=function(t){var e,r,n,i,a,o,s=t._fullLayout,l=s._subplots.cartesian,u=l.length,c=[],f=[];for(e=0;e<u;e++){n=l[e],a=(i=s._plots[n]).xaxis,o=i.yaxis;var h=a._mainAxis,p=o._mainAxis,d=h._id+p._id,v=s._plots[d];i.overlays=[],d!==n&&v?(i.mainplot=d,i.mainplotinfo=v,f.push(n)):(i.mainplot=void 0,i.mainplotinfo=void 0,c.push(n))}for(e=0;e<f.length;e++)n=f[e],(i=s._plots[n]).mainplotinfo.overlays.push(i);var g=c.concat(f),y=new Array(u);for(e=0;e<u;e++){n=g[e],a=(i=s._plots[n]).xaxis,o=i.yaxis;var m=[n,a.layer,o.layer,a.overlaying||"",o.overlaying||""];for(r=0;r<i.overlays.length;r++)m.push(i.overlays[r].id);y[e]=m}return y}(t),i=e._cartesianlayer.selectAll(".subplot").data(r,String);i.enter().append("g").attr("class",(function(t){return"subplot "+t[0]})),i.order(),i.exit().call(g,e),i.each((function(r){var i=r[0],a=e._plots[i];a.plotgroup=n.select(this),v(t,a),a.draglayer=h(e._draggers,"g",i)}))},e.rangePlot=function(t,e,r){v(t,e),d(t,e,r),o.style(t)},e.toSVG=function(t){var e=t._fullLayout._glimages,r=n.select(t).selectAll(".svg-container");r.filter((function(t,e){return e===r.size()-1})).selectAll(".gl-canvas-context, .gl-canvas-focus").each((function(){var t=this,r=t.toDataURL("image/png");e.append("svg:image").attr({xmlns:f.svg,"xlink:href":r,preserveAspectRatio:"none",x:0,y:0,width:t.style.width,height:t.style.height})}))},e.updateFx=r(4305).updateFx},13838:function(t,e,r){"use strict";var n=r(41940),i=r(22399),a=r(79952).P,o=r(1426).extendFlat,s=r(44467).templatedArray,l=r(12663).descriptionWithDates,u=r(50606).ONEDAY,c=r(85555),f=c.HOUR_PATTERN,h=c.WEEKDAY_PATTERN,p={valType:"enumerated",values:["auto","linear","array"],editType:"ticks",impliedEdits:{tick0:void 0,dtick:void 0}},d=o({},p,{values:p.values.slice().concat(["sync"])});function v(t){return{valType:"integer",min:0,dflt:t?5:0,editType:"ticks"}}var g={valType:"any",editType:"ticks",impliedEdits:{tickmode:"linear"}},y={valType:"any",editType:"ticks",impliedEdits:{tickmode:"linear"}},m={valType:"data_array",editType:"ticks"},x={valType:"enumerated",values:["outside","inside",""],editType:"ticks"};function b(t){var e={valType:"number",min:0,editType:"ticks"};return t||(e.dflt=5),e}function _(t){var e={valType:"number",min:0,editType:"ticks"};return t||(e.dflt=1),e}var w={valType:"color",dflt:i.defaultLine,editType:"ticks"},T={valType:"color",dflt:i.lightLine,editType:"ticks"};function k(t){var e={valType:"number",min:0,editType:"ticks"};return t||(e.dflt=1),e}var A=o({},a,{editType:"ticks"}),M={valType:"boolean",editType:"ticks"};t.exports={visible:{valType:"boolean",editType:"plot"},color:{valType:"color",dflt:i.defaultLine,editType:"ticks"},title:{text:{valType:"string",editType:"ticks"},font:n({editType:"ticks"}),standoff:{valType:"number",min:0,editType:"ticks"},editType:"ticks"},type:{valType:"enumerated",values:["-","linear","log","date","category","multicategory"],dflt:"-",editType:"calc",_noTemplating:!0},autotypenumbers:{valType:"enumerated",values:["convert types","strict"],dflt:"convert types",editType:"calc"},autorange:{valType:"enumerated",values:[!0,!1,"reversed"],dflt:!0,editType:"axrange",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},rangemode:{valType:"enumerated",values:["normal","tozero","nonnegative"],dflt:"normal",editType:"plot"},range:{valType:"info_array",items:[{valType:"any",editType:"axrange",impliedEdits:{"^autorange":!1},anim:!0},{valType:"any",editType:"axrange",impliedEdits:{"^autorange":!1},anim:!0}],editType:"axrange",impliedEdits:{autorange:!1},anim:!0},fixedrange:{valType:"boolean",dflt:!1,editType:"calc"},scaleanchor:{valType:"enumerated",values:[c.idRegex.x.toString(),c.idRegex.y.toString()],editType:"plot"},scaleratio:{valType:"number",min:0,dflt:1,editType:"plot"},constrain:{valType:"enumerated",values:["range","domain"],editType:"plot"},constraintoward:{valType:"enumerated",values:["left","center","right","top","middle","bottom"],editType:"plot"},matches:{valType:"enumerated",values:[c.idRegex.x.toString(),c.idRegex.y.toString()],editType:"calc"},rangebreaks:s("rangebreak",{enabled:{valType:"boolean",dflt:!0,editType:"calc"},bounds:{valType:"info_array",items:[{valType:"any",editType:"calc"},{valType:"any",editType:"calc"}],editType:"calc"},pattern:{valType:"enumerated",values:[h,f,""],editType:"calc"},values:{valType:"info_array",freeLength:!0,editType:"calc",items:{valType:"any",editType:"calc"}},dvalue:{valType:"number",editType:"calc",min:0,dflt:u},editType:"calc"}),tickmode:d,nticks:v(),tick0:g,dtick:y,ticklabelstep:{valType:"integer",min:1,dflt:1,editType:"ticks"},tickvals:m,ticktext:{valType:"data_array",editType:"ticks"},ticks:x,tickson:{valType:"enumerated",values:["labels","boundaries"],dflt:"labels",editType:"ticks"},ticklabelmode:{valType:"enumerated",values:["instant","period"],dflt:"instant",editType:"ticks"},ticklabelposition:{valType:"enumerated",values:["outside","inside","outside top","inside top","outside left","inside left","outside right","inside right","outside bottom","inside bottom"],dflt:"outside",editType:"calc"},ticklabeloverflow:{valType:"enumerated",values:["allow","hide past div","hide past domain"],editType:"calc"},mirror:{valType:"enumerated",values:[!0,"ticks",!1,"all","allticks"],dflt:!1,editType:"ticks+layoutstyle"},ticklen:b(),tickwidth:_(),tickcolor:w,showticklabels:{valType:"boolean",dflt:!0,editType:"ticks"},automargin:{valType:"flaglist",flags:["height","width","left","right","top","bottom"],extras:[!0,!1],dflt:!1,editType:"ticks"},showspikes:{valType:"boolean",dflt:!1,editType:"modebar"},spikecolor:{valType:"color",dflt:null,editType:"none"},spikethickness:{valType:"number",dflt:3,editType:"none"},spikedash:o({},a,{dflt:"dash",editType:"none"}),spikemode:{valType:"flaglist",flags:["toaxis","across","marker"],dflt:"toaxis",editType:"none"},spikesnap:{valType:"enumerated",values:["data","cursor","hovered data"],dflt:"hovered data",editType:"none"},tickfont:n({editType:"ticks"}),tickangle:{valType:"angle",dflt:"auto",editType:"ticks"},tickprefix:{valType:"string",dflt:"",editType:"ticks"},showtickprefix:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"ticks"},ticksuffix:{valType:"string",dflt:"",editType:"ticks"},showticksuffix:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"ticks"},showexponent:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"ticks"},exponentformat:{valType:"enumerated",values:["none","e","E","power","SI","B"],dflt:"B",editType:"ticks"},minexponent:{valType:"number",dflt:3,min:0,editType:"ticks"},separatethousands:{valType:"boolean",dflt:!1,editType:"ticks"},tickformat:{valType:"string",dflt:"",editType:"ticks",description:l("tick label")},tickformatstops:s("tickformatstop",{enabled:{valType:"boolean",dflt:!0,editType:"ticks"},dtickrange:{valType:"info_array",items:[{valType:"any",editType:"ticks"},{valType:"any",editType:"ticks"}],editType:"ticks"},value:{valType:"string",dflt:"",editType:"ticks"},editType:"ticks"}),hoverformat:{valType:"string",dflt:"",editType:"none",description:l("hover text")},showline:{valType:"boolean",dflt:!1,editType:"ticks+layoutstyle"},linecolor:{valType:"color",dflt:i.defaultLine,editType:"layoutstyle"},linewidth:{valType:"number",min:0,dflt:1,editType:"ticks+layoutstyle"},showgrid:M,gridcolor:T,gridwidth:k(),griddash:A,zeroline:{valType:"boolean",editType:"ticks"},zerolinecolor:{valType:"color",dflt:i.defaultLine,editType:"ticks"},zerolinewidth:{valType:"number",dflt:1,editType:"ticks"},showdividers:{valType:"boolean",dflt:!0,editType:"ticks"},dividercolor:{valType:"color",dflt:i.defaultLine,editType:"ticks"},dividerwidth:{valType:"number",dflt:1,editType:"ticks"},anchor:{valType:"enumerated",values:["free",c.idRegex.x.toString(),c.idRegex.y.toString()],editType:"plot"},side:{valType:"enumerated",values:["top","bottom","left","right"],editType:"plot"},overlaying:{valType:"enumerated",values:["free",c.idRegex.x.toString(),c.idRegex.y.toString()],editType:"plot"},minor:{tickmode:p,nticks:v("minor"),tick0:g,dtick:y,tickvals:m,ticks:x,ticklen:b("minor"),tickwidth:_("minor"),tickcolor:w,gridcolor:T,gridwidth:k("minor"),griddash:A,showgrid:M,editType:"ticks"},layer:{valType:"enumerated",values:["above traces","below traces"],dflt:"above traces",editType:"plot"},domain:{valType:"info_array",items:[{valType:"number",min:0,max:1,editType:"plot"},{valType:"number",min:0,max:1,editType:"plot"}],dflt:[0,1],editType:"plot"},position:{valType:"number",min:0,max:1,dflt:0,editType:"plot"},autoshift:{valType:"boolean",dflt:!1,editType:"plot"},shift:{valType:"number",editType:"plot"},categoryorder:{valType:"enumerated",values:["trace","category ascending","category descending","array","total ascending","total descending","min ascending","min descending","max ascending","max descending","sum ascending","sum descending","mean ascending","mean descending","median ascending","median descending"],dflt:"trace",editType:"calc"},categoryarray:{valType:"data_array",editType:"calc"},uirevision:{valType:"any",editType:"none"},editType:"calc",_deprecated:{autotick:{valType:"boolean",editType:"ticks"},title:{valType:"string",editType:"ticks"},titlefont:n({editType:"ticks"})}}},86763:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(23469).isUnifiedHover,o=r(98212),s=r(44467),l=r(10820),u=r(13838),c=r(951),f=r(71453),h=r(99082),p=r(52830),d=r(41675),v=d.id2name,g=d.name2id,y=r(85555).AX_ID_PATTERN,m=r(73972),x=m.traceIs,b=m.getComponentMethod;function _(t,e,r){Array.isArray(t[e])?t[e].push(r):t[e]=[r]}t.exports=function(t,e,r){var m,w,T=e.autotypenumbers,k={},A={},M={},S={},E={},L={},C={},P={},O={},I={};for(m=0;m<r.length;m++){var D=r[m];if(x(D,"cartesian")||x(D,"gl2d")){var z,R;if(D.xaxis)z=v(D.xaxis),_(k,z,D);else if(D.xaxes)for(w=0;w<D.xaxes.length;w++)_(k,v(D.xaxes[w]),D);if(D.yaxis)R=v(D.yaxis),_(k,R,D);else if(D.yaxes)for(w=0;w<D.yaxes.length;w++)_(k,v(D.yaxes[w]),D);"funnel"===D.type?"h"===D.orientation?(z&&(A[z]=!0),R&&(C[R]=!0)):R&&(M[R]=!0):"image"===D.type?(R&&(P[R]=!0),z&&(P[z]=!0)):(R&&(E[R]=!0,L[R]=!0),x(D,"carpet")&&("carpet"!==D.type||D._cheater)||z&&(S[z]=!0)),"carpet"===D.type&&D._cheater&&z&&(A[z]=!0),x(D,"2dMap")&&(O[z]=!0,O[R]=!0),x(D,"oriented")&&(I["h"===D.orientation?R:z]=!0)}}var F=e._subplots,B=F.xaxis,N=F.yaxis,j=n.simpleMap(B,v),U=n.simpleMap(N,v),V=j.concat(U),H=i.background;B.length&&N.length&&(H=n.coerce(t,e,l,"plot_bgcolor"));var q,G,Z,Y,W,X=i.combine(H,e.paper_bgcolor);function J(){var t=k[q]||[];W._traceIndices=t.map((function(t){return t._expandedIndex})),W._annIndices=[],W._shapeIndices=[],W._selectionIndices=[],W._imgIndices=[],W._subplotsWith=[],W._counterAxes=[],W._name=W._attr=q,W._id=G}function K(t,e){return n.coerce(Y,W,u,t,e)}function $(t,e){return n.coerce2(Y,W,u,t,e)}function Q(t){return"x"===t?N:B}function tt(e,r){for(var n="x"===e?j:U,i=[],a=0;a<n.length;a++){var o=n[a];o===r||(t[o]||{}).overlaying||i.push(g(o))}return i}var et={x:Q("x"),y:Q("y")},rt=et.x.concat(et.y),nt={},it=[];function at(){var t=Y.matches;y.test(t)&&-1===rt.indexOf(t)&&(nt[t]=Y.type,it=Object.keys(nt))}var ot=o(t,e),st=a(ot);for(m=0;m<V.length;m++){q=V[m],G=g(q),Z=q.charAt(0),n.isPlainObject(t[q])||(t[q]={}),Y=t[q],W=s.newContainer(e,q,Z+"axis"),J();var lt="x"===Z&&!S[q]&&A[q]||"y"===Z&&!E[q]&&M[q],ut="y"===Z&&(!L[q]&&C[q]||P[q]),ct={hasMinor:!0,letter:Z,font:e.font,outerTicks:O[q],showGrid:!I[q],data:k[q]||[],bgColor:X,calendar:e.calendar,automargin:!0,visibleDflt:lt,reverseDflt:ut,autotypenumbersDflt:T,splomStash:((e._splomAxes||{})[Z]||{})[G]};K("uirevision",e.uirevision),c(Y,W,K,ct),f(Y,W,K,ct,e);var ft=st&&Z===ot.charAt(0),ht=$("spikecolor",st?W.color:void 0),pt=$("spikethickness",st?1.5:void 0),dt=$("spikedash",st?"dot":void 0),vt=$("spikemode",st?"across":void 0),gt=$("spikesnap");K("showspikes",!!(ft||ht||pt||dt||vt||gt))||(delete W.spikecolor,delete W.spikethickness,delete W.spikedash,delete W.spikemode,delete W.spikesnap);var yt=v(Y.overlaying),mt=[0,1];if(void 0!==e[yt]){var xt=v(e[yt].anchor);void 0!==e[xt]&&(mt=e[xt].domain)}p(Y,W,K,{letter:Z,counterAxes:et[Z],overlayableAxes:tt(Z,q),grid:e.grid,overlayingDomain:mt}),K("title.standoff"),at(),W._input=Y}for(m=0;m<it.length;){G=it[m++],Z=(q=v(G)).charAt(0),n.isPlainObject(t[q])||(t[q]={}),Y=t[q],W=s.newContainer(e,q,Z+"axis"),J();var bt={letter:Z,font:e.font,outerTicks:O[q],showGrid:!I[q],data:[],bgColor:X,calendar:e.calendar,automargin:!0,visibleDflt:!1,reverseDflt:!1,autotypenumbersDflt:T,splomStash:((e._splomAxes||{})[Z]||{})[G]};K("uirevision",e.uirevision),W.type=nt[G]||"linear",f(Y,W,K,bt,e),p(Y,W,K,{letter:Z,counterAxes:et[Z],overlayableAxes:tt(Z,q),grid:e.grid}),K("fixedrange"),at(),W._input=Y}var _t=b("rangeslider","handleDefaults"),wt=b("rangeselector","handleDefaults");for(m=0;m<j.length;m++)q=j[m],Y=t[q],W=e[q],_t(t,e,q),"date"===W.type&&wt(Y,W,e,U,W.calendar),K("fixedrange");for(m=0;m<U.length;m++){q=U[m],Y=t[q],W=e[q];var Tt=e[v(W.anchor)];K("fixedrange",b("rangeslider","isVisible")(Tt))}h.handleDefaults(t,e,{axIds:rt.concat(it).sort(d.idSort),axHasImage:P})}},92128:function(t,e,r){"use strict";var n=r(84267).mix,i=r(22399),a=r(71828);t.exports=function(t,e,r,o){var s=(o=o||{}).dfltColor;function l(r,n){return a.coerce2(t,e,o.attributes,r,n)}var u=l("linecolor",s),c=l("linewidth");r("showline",o.showLine||!!u||!!c)||(delete e.linecolor,delete e.linewidth);var f=l("gridcolor",n(s,o.bgColor,o.blend||i.lightFraction).toRgbString()),h=l("gridwidth"),p=l("griddash");if(r("showgrid",o.showGrid||!!f||!!h||!!p)||(delete e.gridcolor,delete e.gridwidth,delete e.griddash),o.hasMinor){var d=l("minor.gridcolor",n(e.gridcolor,o.bgColor,67).toRgbString()),v=l("minor.gridwidth",e.gridwidth||1),g=l("minor.griddash",e.griddash||"solid");r("minor.showgrid",!!d||!!v||!!g)||(delete e.minor.gridcolor,delete e.minor.gridwidth,delete e.minor.griddash)}if(!o.noZeroLine){var y=l("zerolinecolor",s),m=l("zerolinewidth");r("zeroline",o.showGrid||!!y||!!m)||(delete e.zerolinecolor,delete e.zerolinewidth)}}},52830:function(t,e,r){"use strict";var n=r(92770),i=r(71828);t.exports=function(t,e,r,a){var o,s,l,u,c,f,h=a.counterAxes||[],p=a.overlayableAxes||[],d=a.letter,v=a.grid,g=a.overlayingDomain;v&&(s=v._domains[d][v._axisMap[e._id]],o=v._anchors[e._id],s&&(l=v[d+"side"].split(" ")[0],u=v.domain[d]["right"===l||"top"===l?1:0])),s=s||[0,1],o=o||(n(t.position)?"free":h[0]||"free"),l=l||("x"===d?"bottom":"left"),u=u||0,c=0,f=!1;var y=i.coerce(t,e,{anchor:{valType:"enumerated",values:["free"].concat(h),dflt:o}},"anchor"),m=i.coerce(t,e,{side:{valType:"enumerated",values:"x"===d?["bottom","top"]:["left","right"],dflt:l}},"side");"free"===y&&("y"===d&&(r("autoshift")&&(u="left"===m?g[0]:g[1],f=!e.automargin||e.automargin,c="left"===m?-3:3),r("shift",c)),r("position",u)),r("automargin",f);var x=!1;if(p.length&&(x=i.coerce(t,e,{overlaying:{valType:"enumerated",values:[!1].concat(p),dflt:!1}},"overlaying")),!x){var b=r("domain",s);b[0]>b[1]-1/4096&&(e.domain=s),i.noneOrAll(t.domain,e.domain,s),"sync"===e.tickmode&&(e.tickmode="auto")}return r("layer"),e}},89426:function(t,e,r){"use strict";var n=r(59652);t.exports=function(t,e,r,i,a){a||(a={});var o=a.tickSuffixDflt,s=n(t);r("tickprefix")&&r("showtickprefix",s),r("ticksuffix",o)&&r("showticksuffix",s)}},42449:function(t,e,r){"use strict";var n=r(18783).FROM_BL;t.exports=function(t,e,r){void 0===r&&(r=n[t.constraintoward||"center"]);var i=[t.r2l(t.range[0]),t.r2l(t.range[1])],a=i[0]+(i[1]-i[0])*r;t.range=t._input.range=[t.l2r(a+(i[0]-a)*e),t.l2r(a+(i[1]-a)*e)],t.setScale()}},21994:function(t,e,r){"use strict";var n=r(39898),i=r(84096).g0,a=r(71828),o=a.numberFormat,s=r(92770),l=a.cleanNumber,u=a.ms2DateTime,c=a.dateTime2ms,f=a.ensureNumber,h=a.isArrayOrTypedArray,p=r(50606),d=p.FP_SAFE,v=p.BADNUM,g=p.LOG_CLIP,y=p.ONEWEEK,m=p.ONEDAY,x=p.ONEHOUR,b=p.ONEMIN,_=p.ONESEC,w=r(41675),T=r(85555),k=T.HOUR_PATTERN,A=T.WEEKDAY_PATTERN;function M(t){return Math.pow(10,t)}function S(t){return null!=t}t.exports=function(t,e){e=e||{};var r=t._id||"x",p=r.charAt(0);function E(e,r){if(e>0)return Math.log(e)/Math.LN10;if(e<=0&&r&&t.range&&2===t.range.length){var n=t.range[0],i=t.range[1];return.5*(n+i-2*g*Math.abs(n-i))}return v}function L(e,r,n,i){if((i||{}).msUTC&&s(e))return+e;var o=c(e,n||t.calendar);if(o===v){if(!s(e))return v;e=+e;var l=Math.floor(10*a.mod(e+.05,1)),u=Math.round(e-l/10);o=c(new Date(u))+l/10}return o}function C(e,r,n){return u(e,r,n||t.calendar)}function P(e){return t._categories[Math.round(e)]}function O(e){if(S(e)){if(void 0===t._categoriesMap&&(t._categoriesMap={}),void 0!==t._categoriesMap[e])return t._categoriesMap[e];t._categories.push("number"==typeof e?String(e):e);var r=t._categories.length-1;return t._categoriesMap[e]=r,r}return v}function I(e){if(t._categoriesMap)return t._categoriesMap[e]}function D(t){var e=I(t);return void 0!==e?e:s(t)?+t:void 0}function z(t){return s(t)?+t:I(t)}function R(t,e,r){return n.round(r+e*t,2)}function F(t,e,r){return(t-r)/e}var B=function(e){return s(e)?R(e,t._m,t._b):v},N=function(e){return F(e,t._m,t._b)};if(t.rangebreaks){var j="y"===p;B=function(e){if(!s(e))return v;var r=t._rangebreaks.length;if(!r)return R(e,t._m,t._b);var n=j;t.range[0]>t.range[1]&&(n=!n);for(var i=n?-1:1,a=i*e,o=0,l=0;l<r;l++){var u=i*t._rangebreaks[l].min,c=i*t._rangebreaks[l].max;if(a<u)break;if(!(a>c)){o=a<(u+c)/2?l:l+1;break}o=l+1}var f=t._B[o]||0;return isFinite(f)?R(e,t._m2,f):0},N=function(e){var r=t._rangebreaks.length;if(!r)return F(e,t._m,t._b);for(var n=0,i=0;i<r&&!(e<t._rangebreaks[i].pmin);i++)e>t._rangebreaks[i].pmax&&(n=i+1);return F(e,t._m2,t._B[n])}}t.c2l="log"===t.type?E:f,t.l2c="log"===t.type?M:f,t.l2p=B,t.p2l=N,t.c2p="log"===t.type?function(t,e){return B(E(t,e))}:B,t.p2c="log"===t.type?function(t){return M(N(t))}:N,-1!==["linear","-"].indexOf(t.type)?(t.d2r=t.r2d=t.d2c=t.r2c=t.d2l=t.r2l=l,t.c2d=t.c2r=t.l2d=t.l2r=f,t.d2p=t.r2p=function(e){return t.l2p(l(e))},t.p2d=t.p2r=N,t.cleanPos=f):"log"===t.type?(t.d2r=t.d2l=function(t,e){return E(l(t),e)},t.r2d=t.r2c=function(t){return M(l(t))},t.d2c=t.r2l=l,t.c2d=t.l2r=f,t.c2r=E,t.l2d=M,t.d2p=function(e,r){return t.l2p(t.d2r(e,r))},t.p2d=function(t){return M(N(t))},t.r2p=function(e){return t.l2p(l(e))},t.p2r=N,t.cleanPos=f):"date"===t.type?(t.d2r=t.r2d=a.identity,t.d2c=t.r2c=t.d2l=t.r2l=L,t.c2d=t.c2r=t.l2d=t.l2r=C,t.d2p=t.r2p=function(e,r,n){return t.l2p(L(e,0,n))},t.p2d=t.p2r=function(t,e,r){return C(N(t),e,r)},t.cleanPos=function(e){return a.cleanDate(e,v,t.calendar)}):"category"===t.type?(t.d2c=t.d2l=O,t.r2d=t.c2d=t.l2d=P,t.d2r=t.d2l_noadd=D,t.r2c=function(e){var r=z(e);return void 0!==r?r:t.fraction2r(.5)},t.l2r=t.c2r=f,t.r2l=z,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return P(N(t))},t.r2p=t.d2p,t.p2r=N,t.cleanPos=function(t){return"string"==typeof t&&""!==t?t:f(t)}):"multicategory"===t.type&&(t.r2d=t.c2d=t.l2d=P,t.d2r=t.d2l_noadd=D,t.r2c=function(e){var r=D(e);return void 0!==r?r:t.fraction2r(.5)},t.r2c_just_indices=I,t.l2r=t.c2r=f,t.r2l=D,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return P(N(t))},t.r2p=t.d2p,t.p2r=N,t.cleanPos=function(t){return Array.isArray(t)||"string"==typeof t&&""!==t?t:f(t)},t.setupMultiCategory=function(n){var i,o,s=t._traceIndices,l=t._matchGroup;if(l&&0===t._categories.length)for(var u in l)if(u!==r){var c=e[w.id2name(u)];s=s.concat(c._traceIndices)}var f=[[0,{}],[0,{}]],d=[];for(i=0;i<s.length;i++){var v=n[s[i]];if(p in v){var g=v[p],y=v._length||a.minRowLength(g);if(h(g[0])&&h(g[1]))for(o=0;o<y;o++){var m=g[0][o],x=g[1][o];S(m)&&S(x)&&(d.push([m,x]),m in f[0][1]||(f[0][1][m]=f[0][0]++),x in f[1][1]||(f[1][1][x]=f[1][0]++))}}}for(d.sort((function(t,e){var r=f[0][1],n=r[t[0]]-r[e[0]];if(n)return n;var i=f[1][1];return i[t[1]]-i[e[1]]})),i=0;i<d.length;i++)O(d[i])}),t.fraction2r=function(e){var r=t.r2l(t.range[0]),n=t.r2l(t.range[1]);return t.l2r(r+e*(n-r))},t.r2fraction=function(e){var r=t.r2l(t.range[0]),n=t.r2l(t.range[1]);return(t.r2l(e)-r)/(n-r)},t.cleanRange=function(e,r){r||(r={}),e||(e="range");var n,i,o=a.nestedProperty(t,e).get();if(i=(i="date"===t.type?a.dfltRange(t.calendar):"y"===p?T.DFLTRANGEY:"realaxis"===t._name?[0,1]:r.dfltRange||T.DFLTRANGEX).slice(),"tozero"!==t.rangemode&&"nonnegative"!==t.rangemode||(i[0]=0),o&&2===o.length)for("date"!==t.type||t.autorange||(o[0]=a.cleanDate(o[0],v,t.calendar),o[1]=a.cleanDate(o[1],v,t.calendar)),n=0;n<2;n++)if("date"===t.type){if(!a.isDateTime(o[n],t.calendar)){t[e]=i;break}if(t.r2l(o[0])===t.r2l(o[1])){var l=a.constrain(t.r2l(o[0]),a.MIN_MS+1e3,a.MAX_MS-1e3);o[0]=t.l2r(l-1e3),o[1]=t.l2r(l+1e3);break}}else{if(!s(o[n])){if(!s(o[1-n])){t[e]=i;break}o[n]=o[1-n]*(n?10:.1)}if(o[n]<-d?o[n]=-d:o[n]>d&&(o[n]=d),o[0]===o[1]){var u=Math.max(1,Math.abs(1e-6*o[0]));o[0]-=u,o[1]+=u}}else a.nestedProperty(t,e).set(i)},t.setScale=function(r){var n=e._size;if(t.overlaying){var i=w.getFromId({_fullLayout:e},t.overlaying);t.domain=i.domain}var a=r&&t._r?"_r":"range",o=t.calendar;t.cleanRange(a);var s,l,u=t.r2l(t[a][0],o),c=t.r2l(t[a][1],o),f="y"===p;if(f?(t._offset=n.t+(1-t.domain[1])*n.h,t._length=n.h*(t.domain[1]-t.domain[0]),t._m=t._length/(u-c),t._b=-t._m*c):(t._offset=n.l+t.domain[0]*n.w,t._length=n.w*(t.domain[1]-t.domain[0]),t._m=t._length/(c-u),t._b=-t._m*u),t._rangebreaks=[],t._lBreaks=0,t._m2=0,t._B=[],t.rangebreaks&&(t._rangebreaks=t.locateBreaks(Math.min(u,c),Math.max(u,c)),t._rangebreaks.length)){for(s=0;s<t._rangebreaks.length;s++)l=t._rangebreaks[s],t._lBreaks+=Math.abs(l.max-l.min);var h=f;u>c&&(h=!h),h&&t._rangebreaks.reverse();var d=h?-1:1;for(t._m2=d*t._length/(Math.abs(c-u)-t._lBreaks),t._B.push(-t._m2*(f?c:u)),s=0;s<t._rangebreaks.length;s++)l=t._rangebreaks[s],t._B.push(t._B[t._B.length-1]-d*t._m2*(l.max-l.min));for(s=0;s<t._rangebreaks.length;s++)(l=t._rangebreaks[s]).pmin=B(l.min),l.pmax=B(l.max)}if(!isFinite(t._m)||!isFinite(t._b)||t._length<0)throw e._replotting=!1,new Error("Something went wrong with axis scaling")},t.maskBreaks=function(e){var r,n,i,o,s,u=t.rangebreaks||[];u._cachedPatterns||(u._cachedPatterns=u.map((function(e){return e.enabled&&e.bounds?a.simpleMap(e.bounds,e.pattern?l:t.d2c):null}))),u._cachedValues||(u._cachedValues=u.map((function(e){return e.enabled&&e.values?a.simpleMap(e.values,t.d2c).sort(a.sorterAsc):null})));for(var c=0;c<u.length;c++){var f=u[c];if(f.enabled)if(f.bounds){var h=f.pattern;switch(n=(r=u._cachedPatterns[c])[0],i=r[1],h){case A:o=(s=new Date(e)).getUTCDay(),n>i&&(i+=7,o<n&&(o+=7));break;case k:o=(s=new Date(e)).getUTCHours()+(s.getUTCMinutes()/60+s.getUTCSeconds()/3600+s.getUTCMilliseconds()/36e5),n>i&&(i+=24,o<n&&(o+=24));break;case"":o=e}if(o>=n&&o<i)return v}else for(var p=u._cachedValues[c],d=0;d<p.length;d++)if(i=(n=p[d])+f.dvalue,e>=n&&e<i)return v}return e},t.locateBreaks=function(e,r){var n,i,o,s,u=[];if(!t.rangebreaks)return u;var c=t.rangebreaks.slice().sort((function(t,e){return t.pattern===A&&e.pattern===k?-1:e.pattern===A&&t.pattern===k?1:0})),f=function(t,n){if((t=a.constrain(t,e,r))!==(n=a.constrain(n,e,r))){for(var i=!0,o=0;o<u.length;o++){var s=u[o];t<s.max&&n>=s.min&&(t<s.min&&(s.min=t),n>s.max&&(s.max=n),i=!1)}i&&u.push({min:t,max:n})}};for(n=0;n<c.length;n++){var h=c[n];if(h.enabled)if(h.bounds){var p=e,d=r;h.pattern&&(p=Math.floor(p)),o=(i=a.simpleMap(h.bounds,h.pattern?l:t.r2l))[0],s=i[1];var v,g,w=new Date(p);switch(h.pattern){case A:g=y,v=(s-o+(s<o?7:0))*m,p+=o*m-(w.getUTCDay()*m+w.getUTCHours()*x+w.getUTCMinutes()*b+w.getUTCSeconds()*_+w.getUTCMilliseconds());break;case k:g=m,v=(s-o+(s<o?24:0))*x,p+=o*x-(w.getUTCHours()*x+w.getUTCMinutes()*b+w.getUTCSeconds()*_+w.getUTCMilliseconds());break;default:p=Math.min(i[0],i[1]),v=g=(d=Math.max(i[0],i[1]))-p}for(var T=p;T<d;T+=g)f(T,T+v)}else for(var M=a.simpleMap(h.values,t.d2c),S=0;S<M.length;S++)f(o=M[S],s=o+h.dvalue)}return u.sort((function(t,e){return t.min-e.min})),u},t.makeCalcdata=function(e,r,n){var i,o,s,l,u=t.type,c="date"===u&&e[r+"calendar"];if(r in e){if(i=e[r],l=e._length||a.minRowLength(i),a.isTypedArray(i)&&("linear"===u||"log"===u)){if(l===i.length)return i;if(i.subarray)return i.subarray(0,l)}if("multicategory"===u)return function(t,e){for(var r=new Array(e),n=0;n<e;n++){var i=(t[0]||[])[n],a=(t[1]||[])[n];r[n]=I([i,a])}return r}(i,l);for(o=new Array(l),s=0;s<l;s++)o[s]=t.d2c(i[s],0,c,n)}else{var f=r+"0"in e?t.d2c(e[r+"0"],0,c):0,h=e["d"+r]?Number(e["d"+r]):1;for(i=e[{x:"y",y:"x"}[r]],l=e._length||i.length,o=new Array(l),s=0;s<l;s++)o[s]=f+s*h}if(t.rangebreaks)for(s=0;s<l;s++)o[s]=t.maskBreaks(o[s]);return o},t.isValidRange=function(e){return Array.isArray(e)&&2===e.length&&s(t.r2l(e[0]))&&s(t.r2l(e[1]))},t.isPtWithinRange=function(e,r){var n=t.c2l(e[p],null,r),i=t.r2l(t.range[0]),a=t.r2l(t.range[1]);return i<a?i<=n&&n<=a:a<=n&&n<=i},t._emptyCategories=function(){t._categories=[],t._categoriesMap={}},t.clearCalc=function(){var r=t._matchGroup;if(r){var n=null,i=null;for(var a in r){var o=e[w.id2name(a)];if(o._categories){n=o._categories,i=o._categoriesMap;break}}n&&i?(t._categories=n,t._categoriesMap=i):t._emptyCategories()}else t._emptyCategories();if(t._initialCategories)for(var s=0;s<t._initialCategories.length;s++)O(t._initialCategories[s])},t.sortByInitialCategories=function(){var n=[];if(t._emptyCategories(),t._initialCategories)for(var i=0;i<t._initialCategories.length;i++)O(t._initialCategories[i]);n=n.concat(t._traceIndices);var a=t._matchGroup;for(var o in a)if(r!==o){var s=e[w.id2name(o)];s._categories=t._categories,s._categoriesMap=t._categoriesMap,n=n.concat(s._traceIndices)}return n};var U=e._d3locale;"date"===t.type&&(t._dateFormat=U?U.timeFormat:i,t._extraFormat=e._extraFormat),t._separators=e.separators,t._numFormat=U?U.numberFormat:o,delete t._minDtick,delete t._forceTick0}},59652:function(t){"use strict";t.exports=function(t){var e=["showexponent","showtickprefix","showticksuffix"].filter((function(e){return void 0!==t[e]}));if(e.every((function(r){return t[r]===t[e[0]]}))||1===e.length)return t[e[0]]}},96115:function(t,e,r){"use strict";var n=r(71828),i=r(7901).contrast,a=r(13838),o=r(59652),s=r(85501);function l(t,e){function r(r,i){return n.coerce(t,e,a.tickformatstops,r,i)}r("enabled")&&(r("dtickrange"),r("value"))}t.exports=function(t,e,r,u,c){c||(c={});var f=o(t);if(r("showticklabels")){var h=c.font||{},p=e.color,d=-1!==(e.ticklabelposition||"").indexOf("inside")?i(c.bgColor):p&&p!==a.color.dflt?p:h.color;if(n.coerceFont(r,"tickfont",{family:h.family,size:h.size,color:d}),c.noTicklabelstep||"multicategory"===u||"log"===u||r("ticklabelstep"),c.noAng||r("tickangle"),"category"!==u){var v=r("tickformat");s(t,e,{name:"tickformatstops",inclusionAttr:"enabled",handleItemDefaults:l}),e.tickformatstops.length||delete e.tickformatstops,c.noExp||v||"date"===u||(r("showexponent",f),r("exponentformat"),r("minexponent"),r("separatethousands"))}}}},38701:function(t,e,r){"use strict";var n=r(71828),i=r(13838);t.exports=function(t,e,r,a){var o=a.isMinor,s=o?t.minor||{}:t,l=o?e.minor:e,u=o?i.minor:i,c=o?"minor.":"",f=n.coerce2(s,l,u,"ticklen",o?.6*(e.ticklen||5):void 0),h=n.coerce2(s,l,u,"tickwidth",o?e.tickwidth||1:void 0),p=n.coerce2(s,l,u,"tickcolor",(o?e.tickcolor:void 0)||l.color);r(c+"ticks",!o&&a.outerTicks||f||h||p?"outside":"")||(delete l.ticklen,delete l.tickwidth,delete l.tickcolor)}},26218:function(t,e,r){"use strict";var n=r(66287),i=r(71828).isArrayOrTypedArray;t.exports=function(t,e,r,a,o){o||(o={});var s=o.isMinor,l=s?t.minor||{}:t,u=s?e.minor:e,c=s?"minor.":"";function f(t){var e=l[t];return void 0!==e?e:(u._template||{})[t]}var h=f("tick0"),p=f("dtick"),d=f("tickvals"),v=r(c+"tickmode",i(d)?"array":p?"linear":"auto");if("auto"===v||"sync"===v)r(c+"nticks");else if("linear"===v){var g=u.dtick=n.dtick(p,a);u.tick0=n.tick0(h,a,e.calendar,g)}else"multicategory"!==a&&(void 0===r(c+"tickvals")?u.tickmode="auto":s||r("ticktext"))}},66847:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(71828),o=r(91424),s=r(89298);t.exports=function(t,e,r,l){var u=t._fullLayout;if(0!==e.length){var c,f,h,p;l&&(c=l());var d=n.ease(r.easing);return t._transitionData._interruptCallbacks.push((function(){return window.cancelAnimationFrame(p),p=null,function(){for(var r={},n=0;n<e.length;n++){var a=e[n],o=a.plotinfo.xaxis,s=a.plotinfo.yaxis;a.xr0&&(r[o._name+".range"]=a.xr0.slice()),a.yr0&&(r[s._name+".range"]=a.yr0.slice())}return i.call("relayout",t,r).then((function(){for(var t=0;t<e.length;t++)v(e[t].plotinfo)}))}()})),f=Date.now(),p=window.requestAnimationFrame((function n(){h=Date.now();for(var a=Math.min(1,(h-f)/r.duration),o=d(a),s=0;s<e.length;s++)g(e[s],o);h-f>r.duration?(function(){for(var r={},n=0;n<e.length;n++){var a=e[n],o=a.plotinfo.xaxis,s=a.plotinfo.yaxis;a.xr1&&(r[o._name+".range"]=a.xr1.slice()),a.yr1&&(r[s._name+".range"]=a.yr1.slice())}c&&c(),i.call("relayout",t,r).then((function(){for(var t=0;t<e.length;t++)v(e[t].plotinfo)}))}(),p=window.cancelAnimationFrame(n)):p=window.requestAnimationFrame(n)})),Promise.resolve()}function v(t){var e=t.xaxis,r=t.yaxis;u._defs.select("#"+t.clipId+"> rect").call(o.setTranslate,0,0).call(o.setScale,1,1),t.plot.call(o.setTranslate,e._offset,r._offset).call(o.setScale,1,1);var n=t.plot.selectAll(".scatterlayer .trace");n.selectAll(".point").call(o.setPointGroupScale,1,1),n.selectAll(".textpoint").call(o.setTextPointsScale,1,1),n.call(o.hideOutsideRangePoints,t)}function g(e,r){var n=e.plotinfo,i=n.xaxis,l=n.yaxis,u=i._length,c=l._length,f=!!e.xr1,h=!!e.yr1,p=[];if(f){var d=a.simpleMap(e.xr0,i.r2l),v=a.simpleMap(e.xr1,i.r2l),g=d[1]-d[0],y=v[1]-v[0];p[0]=(d[0]*(1-r)+r*v[0]-d[0])/(d[1]-d[0])*u,p[2]=u*(1-r+r*y/g),i.range[0]=i.l2r(d[0]*(1-r)+r*v[0]),i.range[1]=i.l2r(d[1]*(1-r)+r*v[1])}else p[0]=0,p[2]=u;if(h){var m=a.simpleMap(e.yr0,l.r2l),x=a.simpleMap(e.yr1,l.r2l),b=m[1]-m[0],_=x[1]-x[0];p[1]=(m[1]*(1-r)+r*x[1]-m[1])/(m[0]-m[1])*c,p[3]=c*(1-r+r*_/b),l.range[0]=i.l2r(m[0]*(1-r)+r*x[0]),l.range[1]=l.l2r(m[1]*(1-r)+r*x[1])}else p[1]=0,p[3]=c;s.drawOne(t,i,{skipTitle:!0}),s.drawOne(t,l,{skipTitle:!0}),s.redrawComponents(t,[i._id,l._id]);var w=f?u/p[2]:1,T=h?c/p[3]:1,k=f?p[0]:0,A=h?p[1]:0,M=f?p[0]/p[2]*u:0,S=h?p[1]/p[3]*c:0,E=i._offset-M,L=l._offset-S;n.clipRect.call(o.setTranslate,k,A).call(o.setScale,1/w,1/T),n.plot.call(o.setTranslate,E,L).call(o.setScale,w,T),o.setPointGroupScale(n.zoomScalePts,1/w,1/T),o.setTextPointsScale(n.zoomScaleTxt,1/w,1/T)}s.redrawComponents(t)}},951:function(t,e,r){"use strict";var n=r(73972).traceIs,i=r(4322);function a(t){return{v:"x",h:"y"}[t.orientation||"v"]}function o(t,e){var r=a(t),i=n(t,"box-violin"),o=n(t._fullInput||{},"candlestick");return i&&!o&&e===r&&void 0===t[r]&&void 0===t[r+"0"]}t.exports=function(t,e,r,s){r("autotypenumbers",s.autotypenumbersDflt),"-"===r("type",(s.splomStash||{}).type)&&(function(t,e){if("-"===t.type){var r,s=t._id,l=s.charAt(0);-1!==s.indexOf("scene")&&(s=l);var u=function(t,e,r){for(var n=0;n<t.length;n++){var i=t[n];if("splom"===i.type&&i._length>0&&(i["_"+r+"axes"]||{})[e])return i;if((i[r+"axis"]||r)===e){if(o(i,r))return i;if((i[r]||[]).length||i[r+"0"])return i}}}(e,s,l);if(u)if("histogram"!==u.type||l!=={v:"y",h:"x"}[u.orientation||"v"]){var c=l+"calendar",f=u[c],h={noMultiCategory:!n(u,"cartesian")||n(u,"noMultiCategory")};if("box"===u.type&&u._hasPreCompStats&&l==={h:"x",v:"y"}[u.orientation||"v"]&&(h.noMultiCategory=!0),h.autotypenumbers=t.autotypenumbers,o(u,l)){var p=a(u),d=[];for(r=0;r<e.length;r++){var v=e[r];n(v,"box-violin")&&(v[l+"axis"]||l)===s&&(void 0!==v[p]?d.push(v[p][0]):void 0!==v.name?d.push(v.name):d.push("text"),v[c]!==f&&(f=void 0))}t.type=i(d,f,h)}else if("splom"===u.type){var g=u.dimensions[u._axesDim[s]];g.visible&&(t.type=i(g.values,f,h))}else t.type=i(u[l]||[u[l+"0"]],f,h)}else t.type="linear"}}(e,s.data),"-"===e.type?e.type="linear":t.type=e.type)}},31137:function(t,e,r){"use strict";var n=r(73972),i=r(71828);function a(t,e,r){var n,a,o,s=!1;if("data"===e.type)n=t._fullData[null!==e.traces?e.traces[0]:0];else{if("layout"!==e.type)return!1;n=t._fullLayout}return a=i.nestedProperty(n,e.prop).get(),(o=r[e.type]=r[e.type]||{}).hasOwnProperty(e.prop)&&o[e.prop]!==a&&(s=!0),o[e.prop]=a,{changed:s,value:a}}function o(t,e){var r=[],n=e[0],a={};if("string"==typeof n)a[n]=e[1];else{if(!i.isPlainObject(n))return r;a=n}return l(a,(function(t,e,n){r.push({type:"layout",prop:t,value:n})}),"",0),r}function s(t,e){var r,n,a,o,s=[];if(n=e[0],a=e[1],r=e[2],o={},"string"==typeof n)o[n]=a;else{if(!i.isPlainObject(n))return s;o=n,void 0===r&&(r=a)}return void 0===r&&(r=null),l(o,(function(e,n,i){var a,o;if(Array.isArray(i)){o=i.slice();var l=Math.min(o.length,t.data.length);r&&(l=Math.min(l,r.length)),a=[];for(var u=0;u<l;u++)a[u]=r?r[u]:u}else o=i,a=r?r.slice():null;if(null===a)Array.isArray(o)&&(o=o[0]);else if(Array.isArray(a)){if(!Array.isArray(o)){var c=o;o=[];for(var f=0;f<a.length;f++)o[f]=c}o.length=Math.min(a.length,o.length)}s.push({type:"data",prop:e,traces:a,value:o})}),"",0),s}function l(t,e,r,n){Object.keys(t).forEach((function(a){var o=t[a];if("_"!==a[0]){var s=r+(n>0?".":"")+a;i.isPlainObject(o)?l(o,e,s,n+1):e(s,a,o)}}))}e.manageCommandObserver=function(t,r,n,o){var s={},l=!0;r&&r._commandObserver&&(s=r._commandObserver),s.cache||(s.cache={}),s.lookupTable={};var u=e.hasSimpleAPICommandBindings(t,n,s.lookupTable);if(r&&r._commandObserver){if(u)return s;if(r._commandObserver.remove)return r._commandObserver.remove(),r._commandObserver=null,s}if(u){a(t,u,s.cache),s.check=function(){if(l){var e=a(t,u,s.cache);return e.changed&&o&&void 0!==s.lookupTable[e.value]&&(s.disable(),Promise.resolve(o({value:e.value,type:u.type,prop:u.prop,traces:u.traces,index:s.lookupTable[e.value]})).then(s.enable,s.enable)),e.changed}};for(var c=["plotly_relayout","plotly_redraw","plotly_restyle","plotly_update","plotly_animatingframe","plotly_afterplot"],f=0;f<c.length;f++)t._internalOn(c[f],s.check);s.remove=function(){for(var e=0;e<c.length;e++)t._removeInternalListener(c[e],s.check)}}else i.log("Unable to automatically bind plot updates to API command"),s.lookupTable={},s.remove=function(){};return s.disable=function(){l=!1},s.enable=function(){l=!0},r&&(r._commandObserver=s),s},e.hasSimpleAPICommandBindings=function(t,r,n){var i,a,o=r.length;for(i=0;i<o;i++){var s,l=r[i],u=l.method,c=l.args;if(Array.isArray(c)||(c=[]),!u)return!1;var f=e.computeAPICommandBindings(t,u,c);if(1!==f.length)return!1;if(a){if((s=f[0]).type!==a.type)return!1;if(s.prop!==a.prop)return!1;if(Array.isArray(a.traces)){if(!Array.isArray(s.traces))return!1;s.traces.sort();for(var h=0;h<a.traces.length;h++)if(a.traces[h]!==s.traces[h])return!1}else if(s.prop!==a.prop)return!1}else a=f[0],Array.isArray(a.traces)&&a.traces.sort();var p=(s=f[0]).value;if(Array.isArray(p)){if(1!==p.length)return!1;p=p[0]}n&&(n[p]=i)}return a},e.executeAPICommand=function(t,e,r){if("skip"===e)return Promise.resolve();var a=n.apiMethodRegistry[e],o=[t];Array.isArray(r)||(r=[]);for(var s=0;s<r.length;s++)o.push(r[s]);return a.apply(null,o).catch((function(t){return i.warn("API call to Plotly."+e+" rejected.",t),Promise.reject(t)}))},e.computeAPICommandBindings=function(t,e,r){var n;switch(Array.isArray(r)||(r=[]),e){case"restyle":n=s(t,r);break;case"relayout":n=o(0,r);break;case"update":n=s(t,[r[0],r[2]]).concat(o(0,[r[1]]));break;case"animate":n=function(t,e){return Array.isArray(e[0])&&1===e[0].length&&-1!==["string","number"].indexOf(typeof e[0][0])?[{type:"layout",prop:"_currentFrame",value:e[0][0].toString()}]:[]}(0,r);break;default:n=[]}return n}},27670:function(t,e,r){"use strict";var n=r(1426).extendFlat;e.Y=function(t,e){e=e||{};var r={valType:"info_array",editType:(t=t||{}).editType,items:[{valType:"number",min:0,max:1,editType:t.editType},{valType:"number",min:0,max:1,editType:t.editType}],dflt:[0,1]},i=(t.name&&t.name,t.trace,e.description&&e.description,{x:n({},r,{}),y:n({},r,{}),editType:t.editType});return t.noGridCell||(i.row={valType:"integer",min:0,dflt:0,editType:t.editType},i.column={valType:"integer",min:0,dflt:0,editType:t.editType}),i},e.c=function(t,e,r,n){var i=n&&n.x||[0,1],a=n&&n.y||[0,1],o=e.grid;if(o){var s=r("domain.column");void 0!==s&&(s<o.columns?i=o._domains.x[s]:delete t.domain.column);var l=r("domain.row");void 0!==l&&(l<o.rows?a=o._domains.y[l]:delete t.domain.row)}var u=r("domain.x",i),c=r("domain.y",a);u[0]<u[1]||(t.domain.x=i.slice()),c[0]<c[1]||(t.domain.y=a.slice())}},41940:function(t){"use strict";t.exports=function(t){var e=t.editType,r=t.colorEditType;void 0===r&&(r=e);var n={family:{valType:"string",noBlank:!0,strict:!0,editType:e},size:{valType:"number",min:1,editType:e},color:{valType:"color",editType:r},editType:e};return t.autoSize&&(n.size.dflt="auto"),t.autoColor&&(n.color.dflt="auto"),t.arrayOk&&(n.family.arrayOk=!0,n.size.arrayOk=!0,n.color.arrayOk=!0),n}},31391:function(t){"use strict";t.exports={_isLinkedToArray:"frames_entry",group:{valType:"string"},name:{valType:"string"},traces:{valType:"any"},baseframe:{valType:"string"},data:{valType:"any"},layout:{valType:"any"}}},78776:function(t,e){"use strict";e.projNames={airy:"airy",aitoff:"aitoff","albers usa":"albersUsa",albers:"albers",august:"august","azimuthal equal area":"azimuthalEqualArea","azimuthal equidistant":"azimuthalEquidistant",baker:"baker",bertin1953:"bertin1953",boggs:"boggs",bonne:"bonne",bottomley:"bottomley",bromley:"bromley",collignon:"collignon","conic conformal":"conicConformal","conic equal area":"conicEqualArea","conic equidistant":"conicEquidistant",craig:"craig",craster:"craster","cylindrical equal area":"cylindricalEqualArea","cylindrical stereographic":"cylindricalStereographic",eckert1:"eckert1",eckert2:"eckert2",eckert3:"eckert3",eckert4:"eckert4",eckert5:"eckert5",eckert6:"eckert6",eisenlohr:"eisenlohr",equirectangular:"equirectangular",fahey:"fahey","foucaut sinusoidal":"foucautSinusoidal",foucaut:"foucaut",ginzburg4:"ginzburg4",ginzburg5:"ginzburg5",ginzburg6:"ginzburg6",ginzburg8:"ginzburg8",ginzburg9:"ginzburg9",gnomonic:"gnomonic","gringorten quincuncial":"gringortenQuincuncial",gringorten:"gringorten",guyou:"guyou",hammer:"hammer",hill:"hill",homolosine:"homolosine",hufnagel:"hufnagel",hyperelliptical:"hyperelliptical",kavrayskiy7:"kavrayskiy7",lagrange:"lagrange",larrivee:"larrivee",laskowski:"laskowski",loximuthal:"loximuthal",mercator:"mercator",miller:"miller",mollweide:"mollweide","mt flat polar parabolic":"mtFlatPolarParabolic","mt flat polar quartic":"mtFlatPolarQuartic","mt flat polar sinusoidal":"mtFlatPolarSinusoidal","natural earth":"naturalEarth","natural earth1":"naturalEarth1","natural earth2":"naturalEarth2","nell hammer":"nellHammer",nicolosi:"nicolosi",orthographic:"orthographic",patterson:"patterson","peirce quincuncial":"peirceQuincuncial",polyconic:"polyconic","rectangular polyconic":"rectangularPolyconic",robinson:"robinson",satellite:"satellite","sinu mollweide":"sinuMollweide",sinusoidal:"sinusoidal",stereographic:"stereographic",times:"times","transverse mercator":"transverseMercator","van der grinten":"vanDerGrinten","van der grinten2":"vanDerGrinten2","van der grinten3":"vanDerGrinten3","van der grinten4":"vanDerGrinten4",wagner4:"wagner4",wagner6:"wagner6",wiechel:"wiechel","winkel tripel":"winkel3",winkel3:"winkel3"},e.axesNames=["lonaxis","lataxis"],e.lonaxisSpan={orthographic:180,"azimuthal equal area":360,"azimuthal equidistant":360,"conic conformal":180,gnomonic:160,stereographic:180,"transverse mercator":180,"*":360},e.lataxisSpan={"conic conformal":150,stereographic:179.5,"*":180},e.scopeDefaults={world:{lonaxisRange:[-180,180],lataxisRange:[-90,90],projType:"equirectangular",projRotate:[0,0,0]},usa:{lonaxisRange:[-180,-50],lataxisRange:[15,80],projType:"albers usa"},europe:{lonaxisRange:[-30,60],lataxisRange:[30,85],projType:"conic conformal",projRotate:[15,0,0],projParallels:[0,60]},asia:{lonaxisRange:[22,160],lataxisRange:[-15,55],projType:"mercator",projRotate:[0,0,0]},africa:{lonaxisRange:[-30,60],lataxisRange:[-40,40],projType:"mercator",projRotate:[0,0,0]},"north america":{lonaxisRange:[-180,-45],lataxisRange:[5,85],projType:"conic conformal",projRotate:[-100,0,0],projParallels:[29.5,45.5]},"south america":{lonaxisRange:[-100,-30],lataxisRange:[-60,15],projType:"mercator",projRotate:[0,0,0]}},e.clipPad=.001,e.precision=.1,e.landColor="#F0DC82",e.waterColor="#3399FF",e.locationmodeToLayer={"ISO-3":"countries","USA-states":"subunits","country names":"countries"},e.sphereSVG={type:"Sphere"},e.fillLayers={ocean:1,land:1,lakes:1},e.lineLayers={subunits:1,countries:1,coastlines:1,rivers:1,frame:1},e.layers=["bg","ocean","land","lakes","subunits","countries","coastlines","rivers","lataxis","lonaxis","frame","backplot","frontplot"],e.layersForChoropleth=["bg","ocean","land","subunits","countries","coastlines","lataxis","lonaxis","frame","backplot","rivers","lakes","frontplot"],e.layerNameToAdjective={ocean:"ocean",land:"land",lakes:"lake",subunits:"subunit",countries:"country",coastlines:"coastline",rivers:"river",frame:"frame"}},69082:function(t,e,r){"use strict";var n=r(39898),i=r(27362),a=i.geoPath,o=i.geoDistance,s=r(65704),l=r(73972),u=r(71828),c=u.strTranslate,f=r(7901),h=r(91424),p=r(30211),d=r(74875),v=r(89298),g=r(71739).getAutoRange,y=r(28569),m=r(47322).prepSelect,x=r(47322).clearOutline,b=r(47322).selectOnClick,_=r(74455),w=r(78776),T=r(41327),k=r(90973),A=r(96892).zL;function M(t){this.id=t.id,this.graphDiv=t.graphDiv,this.container=t.container,this.topojsonURL=t.topojsonURL,this.isStatic=t.staticPlot,this.topojsonName=null,this.topojson=null,this.projection=null,this.scope=null,this.viewInitial=null,this.fitScale=null,this.bounds=null,this.midPt=null,this.hasChoropleth=!1,this.traceHash={},this.layers={},this.basePaths={},this.dataPaths={},this.dataPoints={},this.clipDef=null,this.clipRect=null,this.bgRect=null,this.makeFramework()}var S=M.prototype;function E(t,e){var r=w.clipPad,n=t[0]+r,i=t[1]-r,a=e[0]+r,o=e[1]-r;n>0&&i<0&&(i+=360);var s=(i-n)/4;return{type:"Polygon",coordinates:[[[n,a],[n,o],[n+s,o],[n+2*s,o],[n+3*s,o],[i,o],[i,a],[i-s,a],[i-2*s,a],[i-3*s,a],[n,a]]]}}t.exports=function(t){return new M(t)},S.plot=function(t,e,r,n){var i=this;if(n)return i.update(t,e,!0);i._geoCalcData=t,i._fullLayout=e;var a=e[this.id],o=[],s=!1;for(var l in w.layerNameToAdjective)if("frame"!==l&&a["show"+l]){s=!0;break}for(var u=!1,c=0;c<t.length;c++){var f=t[0][0].trace;f._geo=i,f.locationmode&&(s=!0);var h=f.marker;if(h){var p=h.angle,d=h.angleref;(p||"north"===d||"previous"===d)&&(u=!0)}}if(this._hasMarkerAngles=u,s){var v=k.getTopojsonName(a);null!==i.topojson&&v===i.topojsonName||(i.topojsonName=v,void 0===PlotlyGeoAssets.topojson[i.topojsonName]&&o.push(i.fetchTopojson()))}o=o.concat(T.fetchTraceGeoData(t)),r.push(new Promise((function(r,n){Promise.all(o).then((function(){i.topojson=PlotlyGeoAssets.topojson[i.topojsonName],i.update(t,e),r()})).catch(n)})))},S.fetchTopojson=function(){var t=this,e=k.getTopojsonPath(t.topojsonURL,t.topojsonName);return new Promise((function(r,i){n.json(e,(function(n,a){if(n)return 404===n.status?i(new Error(["plotly.js could not find topojson file at",e+".","Make sure the *topojsonURL* plot config option","is set properly."].join(" "))):i(new Error(["unexpected error while fetching topojson file at",e].join(" ")));PlotlyGeoAssets.topojson[t.topojsonName]=a,r()}))}))},S.update=function(t,e,r){var n=e[this.id];this.hasChoropleth=!1;for(var i=0;i<t.length;i++){var a=t[i],o=a[0].trace;"choropleth"===o.type&&(this.hasChoropleth=!0),!0===o.visible&&o._length>0&&o._module.calcGeoJSON(a,e)}if(!r){if(this.updateProjection(t,e))return;this.viewInitial&&this.scope===n.scope||this.saveViewInitial(n)}this.scope=n.scope,this.updateBaseLayers(e,n),this.updateDims(e,n),this.updateFx(e,n),d.generalUpdatePerTraceModule(this.graphDiv,this,t,n);var s=this.layers.frontplot.select(".scatterlayer");this.dataPoints.point=s.selectAll(".point"),this.dataPoints.text=s.selectAll("text"),this.dataPaths.line=s.selectAll(".js-line");var l=this.layers.backplot.select(".choroplethlayer");this.dataPaths.choropleth=l.selectAll("path"),this._render()},S.updateProjection=function(t,e){var r=this.graphDiv,n=e[this.id],l=e._size,c=n.domain,f=n.projection,h=n.lonaxis,p=n.lataxis,d=h._ax,v=p._ax,y=this.projection=function(t){var e=t.projection,r=e.type,n=w.projNames[r];n="geo"+u.titleCase(n);for(var l=(i[n]||s[n])(),c=t._isSatellite?180*Math.acos(1/e.distance)/Math.PI:t._isClipped?w.lonaxisSpan[r]/2:null,f=["center","rotate","parallels","clipExtent"],h=function(t){return t?l:[]},p=0;p<f.length;p++){var d=f[p];"function"!=typeof l[d]&&(l[d]=h)}return l.isLonLatOverEdges=function(t){if(null===l(t))return!0;if(c){var e=l.rotate();return o(t,[-e[0],-e[1]])>c*Math.PI/180}return!1},l.getPath=function(){return a().projection(l)},l.getBounds=function(t){return l.getPath().bounds(t)},l.precision(w.precision),t._isSatellite&&l.tilt(e.tilt).distance(e.distance),c&&l.clipAngle(c-w.clipPad),l}(n),m=[[l.l+l.w*c.x[0],l.t+l.h*(1-c.y[1])],[l.l+l.w*c.x[1],l.t+l.h*(1-c.y[0])]],x=n.center||{},b=f.rotation||{},_=h.range||[],T=p.range||[];if(n.fitbounds){d._length=m[1][0]-m[0][0],v._length=m[1][1]-m[0][1],d.range=g(r,d),v.range=g(r,v);var k=(d.range[0]+d.range[1])/2,A=(v.range[0]+v.range[1])/2;if(n._isScoped)x={lon:k,lat:A};else if(n._isClipped){x={lon:k,lat:A},b={lon:k,lat:A,roll:b.roll};var M=f.type,S=w.lonaxisSpan[M]/2||180,L=w.lataxisSpan[M]/2||90;_=[k-S,k+S],T=[A-L,A+L]}else x={lon:k,lat:A},b={lon:k,lat:b.lat,roll:b.roll}}y.center([x.lon-b.lon,x.lat-b.lat]).rotate([-b.lon,-b.lat,b.roll]).parallels(f.parallels);var C=E(_,T);y.fitExtent(m,C);var P=this.bounds=y.getBounds(C),O=this.fitScale=y.scale(),I=y.translate();if(n.fitbounds){var D=y.getBounds(E(d.range,v.range)),z=Math.min((P[1][0]-P[0][0])/(D[1][0]-D[0][0]),(P[1][1]-P[0][1])/(D[1][1]-D[0][1]));isFinite(z)?y.scale(z*O):u.warn("Something went wrong during"+this.id+"fitbounds computations.")}else y.scale(f.scale*O);var R=this.midPt=[(P[0][0]+P[1][0])/2,(P[0][1]+P[1][1])/2];if(y.translate([I[0]+(R[0]-I[0]),I[1]+(R[1]-I[1])]).clipExtent(P),n._isAlbersUsa){var F=y([x.lon,x.lat]),B=y.translate();y.translate([B[0]-(F[0]-B[0]),B[1]-(F[1]-B[1])])}},S.updateBaseLayers=function(t,e){var r=this,i=r.topojson,a=r.layers,o=r.basePaths;function s(t){return"lonaxis"===t||"lataxis"===t}function l(t){return Boolean(w.lineLayers[t])}function u(t){return Boolean(w.fillLayers[t])}var c=(this.hasChoropleth?w.layersForChoropleth:w.layers).filter((function(t){return l(t)||u(t)?e["show"+t]:!s(t)||e[t].showgrid})),p=r.framework.selectAll(".layer").data(c,String);p.exit().each((function(t){delete a[t],delete o[t],n.select(this).remove()})),p.enter().append("g").attr("class",(function(t){return"layer "+t})).each((function(t){var e=a[t]=n.select(this);"bg"===t?r.bgRect=e.append("rect").style("pointer-events","all"):s(t)?o[t]=e.append("path").style("fill","none"):"backplot"===t?e.append("g").classed("choroplethlayer",!0):"frontplot"===t?e.append("g").classed("scatterlayer",!0):l(t)?o[t]=e.append("path").style("fill","none").style("stroke-miterlimit",2):u(t)&&(o[t]=e.append("path").style("stroke","none"))})),p.order(),p.each((function(r){var n=o[r],a=w.layerNameToAdjective[r];"frame"===r?n.datum(w.sphereSVG):l(r)||u(r)?n.datum(A(i,i.objects[r])):s(r)&&n.datum(function(t,e,r){var n,i,a,o=e[t],s=w.scopeDefaults[e.scope];"lonaxis"===t?(n=s.lonaxisRange,i=s.lataxisRange,a=function(t,e){return[t,e]}):"lataxis"===t&&(n=s.lataxisRange,i=s.lonaxisRange,a=function(t,e){return[e,t]});var l={type:"linear",range:[n[0],n[1]-1e-6],tick0:o.tick0,dtick:o.dtick};v.setConvert(l,r);var u=v.calcTicks(l);e.isScoped||"lonaxis"!==t||u.pop();for(var c=u.length,f=new Array(c),h=0;h<c;h++)for(var p=u[h].x,d=f[h]=[],g=i[0];g<i[1]+2.5;g+=2.5)d.push(a(p,g));return{type:"MultiLineString",coordinates:f}}(r,e,t)).call(f.stroke,e[r].gridcolor).call(h.dashLine,e[r].griddash,e[r].gridwidth),l(r)?n.call(f.stroke,e[a+"color"]).call(h.dashLine,"",e[a+"width"]):u(r)&&n.call(f.fill,e[a+"color"])}))},S.updateDims=function(t,e){var r=this.bounds,n=(e.framewidth||0)/2,i=r[0][0]-n,a=r[0][1]-n,o=r[1][0]-i+n,s=r[1][1]-a+n;h.setRect(this.clipRect,i,a,o,s),this.bgRect.call(h.setRect,i,a,o,s).call(f.fill,e.bgcolor),this.xaxis._offset=i,this.xaxis._length=o,this.yaxis._offset=a,this.yaxis._length=s},S.updateFx=function(t,e){var r=this,i=r.graphDiv,a=r.bgRect,o=t.dragmode,s=t.clickmode;if(!r.isStatic){var c={element:r.bgRect.node(),gd:i,plotinfo:{id:r.id,xaxis:r.xaxis,yaxis:r.yaxis,fillRangeItems:function(t,e){e.isRect?(t.range={})[r.id]=[f([e.xmin,e.ymin]),f([e.xmax,e.ymax])]:(t.lassoPoints={})[r.id]=e.map(f)}},xaxes:[r.xaxis],yaxes:[r.yaxis],subplot:r.id,clickFn:function(t){2===t&&x(i)}};"pan"===o?(a.node().onmousedown=null,a.call(_(r,e)),a.on("dblclick.zoom",(function(){var t=r.viewInitial,e={};for(var n in t)e[r.id+"."+n]=t[n];l.call("_guiRelayout",i,e),i.emit("plotly_doubleclick",null)})),i._context._scrollZoom.geo||a.on("wheel.zoom",null)):"select"!==o&&"lasso"!==o||(a.on(".zoom",null),c.prepFn=function(t,e,r){m(t,e,r,c,o)},y.init(c)),a.on("mousemove",(function(){var t=r.projection.invert(u.getPositionFromD3Event());if(!t)return y.unhover(i,n.event);r.xaxis.p2c=function(){return t[0]},r.yaxis.p2c=function(){return t[1]},p.hover(i,n.event,r.id)})),a.on("mouseout",(function(){i._dragging||y.unhover(i,n.event)})),a.on("click",(function(){"select"!==o&&"lasso"!==o&&(s.indexOf("select")>-1&&b(n.event,i,[r.xaxis],[r.yaxis],r.id,c),s.indexOf("event")>-1&&p.click(i,n.event))}))}function f(t){return r.projection.invert([t[0]+r.xaxis._offset,t[1]+r.yaxis._offset])}},S.makeFramework=function(){var t=this,e=t.graphDiv,r=e._fullLayout,i="clip"+r._uid+t.id;t.clipDef=r._clips.append("clipPath").attr("id",i),t.clipRect=t.clipDef.append("rect"),t.framework=n.select(t.container).append("g").attr("class","geo "+t.id).call(h.setClipUrl,i,e),t.project=function(e){var r=t.projection(e);return r?[r[0]-t.xaxis._offset,r[1]-t.yaxis._offset]:[null,null]},t.xaxis={_id:"x",c2p:function(e){return t.project(e)[0]}},t.yaxis={_id:"y",c2p:function(e){return t.project(e)[1]}},t.mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},v.setConvert(t.mockAxis,r)},S.saveViewInitial=function(t){var e,r=t.center||{},n=t.projection,i=n.rotation||{};this.viewInitial={fitbounds:t.fitbounds,"projection.scale":n.scale},e=t._isScoped?{"center.lon":r.lon,"center.lat":r.lat}:t._isClipped?{"projection.rotation.lon":i.lon,"projection.rotation.lat":i.lat}:{"center.lon":r.lon,"center.lat":r.lat,"projection.rotation.lon":i.lon},u.extendFlat(this.viewInitial,e)},S.render=function(t){this._hasMarkerAngles&&t?this.plot(this._geoCalcData,this._fullLayout,[],!0):this._render()},S._render=function(){var t,e=this.projection,r=e.getPath();function n(t){var r=e(t.lonlat);return r?c(r[0],r[1]):null}function i(t){return e.isLonLatOverEdges(t.lonlat)?"none":null}for(t in this.basePaths)this.basePaths[t].attr("d",r);for(t in this.dataPaths)this.dataPaths[t].attr("d",(function(t){return r(t.geojson)}));for(t in this.dataPoints)this.dataPoints[t].attr("display",i).attr("transform",n)}},44622:function(t,e,r){"use strict";var n=r(27659).AU,i=r(71828).counterRegex,a=r(69082),o="geo",s=i(o),l={};l.geo={valType:"subplotid",dflt:o,editType:"calc"},t.exports={attr:o,name:o,idRoot:o,idRegex:s,attrRegex:s,attributes:l,layoutAttributes:r(77519),supplyLayoutDefaults:r(82161),plot:function(t){for(var e=t._fullLayout,r=t.calcdata,i=e._subplots.geo,s=0;s<i.length;s++){var l=i[s],u=n(r,o,l),c=e[l]._subplot;c||(c=a({id:l,graphDiv:t,container:e._geolayer.node(),topojsonURL:t._context.topojsonURL,staticPlot:t._context.staticPlot}),e[l]._subplot=c),c.plot(u,e,t._promises)}},updateFx:function(t){for(var e=t._fullLayout,r=e._subplots.geo,n=0;n<r.length;n++){var i=e[r[n]];i._subplot.updateFx(e,i)}},clean:function(t,e,r,n){for(var i=n._subplots.geo||[],a=0;a<i.length;a++){var o=i[a],s=n[o]._subplot;!e[o]&&s&&(s.framework.remove(),s.clipDef.remove())}}}},77519:function(t,e,r){"use strict";var n=r(22399),i=r(27670).Y,a=r(79952).P,o=r(78776),s=r(30962).overrideAll,l=r(78607),u={range:{valType:"info_array",items:[{valType:"number"},{valType:"number"}]},showgrid:{valType:"boolean",dflt:!1},tick0:{valType:"number",dflt:0},dtick:{valType:"number"},gridcolor:{valType:"color",dflt:n.lightLine},gridwidth:{valType:"number",min:0,dflt:1},griddash:a};(t.exports=s({domain:i({name:"geo"},{}),fitbounds:{valType:"enumerated",values:[!1,"locations","geojson"],dflt:!1,editType:"plot"},resolution:{valType:"enumerated",values:[110,50],dflt:110,coerceNumber:!0},scope:{valType:"enumerated",values:l(o.scopeDefaults),dflt:"world"},projection:{type:{valType:"enumerated",values:l(o.projNames)},rotation:{lon:{valType:"number"},lat:{valType:"number"},roll:{valType:"number"}},tilt:{valType:"number",dflt:0},distance:{valType:"number",min:1.001,dflt:2},parallels:{valType:"info_array",items:[{valType:"number"},{valType:"number"}]},scale:{valType:"number",min:0,dflt:1}},center:{lon:{valType:"number"},lat:{valType:"number"}},visible:{valType:"boolean",dflt:!0},showcoastlines:{valType:"boolean"},coastlinecolor:{valType:"color",dflt:n.defaultLine},coastlinewidth:{valType:"number",min:0,dflt:1},showland:{valType:"boolean",dflt:!1},landcolor:{valType:"color",dflt:o.landColor},showocean:{valType:"boolean",dflt:!1},oceancolor:{valType:"color",dflt:o.waterColor},showlakes:{valType:"boolean",dflt:!1},lakecolor:{valType:"color",dflt:o.waterColor},showrivers:{valType:"boolean",dflt:!1},rivercolor:{valType:"color",dflt:o.waterColor},riverwidth:{valType:"number",min:0,dflt:1},showcountries:{valType:"boolean"},countrycolor:{valType:"color",dflt:n.defaultLine},countrywidth:{valType:"number",min:0,dflt:1},showsubunits:{valType:"boolean"},subunitcolor:{valType:"color",dflt:n.defaultLine},subunitwidth:{valType:"number",min:0,dflt:1},showframe:{valType:"boolean"},framecolor:{valType:"color",dflt:n.defaultLine},framewidth:{valType:"number",min:0,dflt:1},bgcolor:{valType:"color",dflt:n.background},lonaxis:u,lataxis:u},"plot","from-root")).uirevision={valType:"any",editType:"none"}},82161:function(t,e,r){"use strict";var n=r(71828),i=r(49119),a=r(27659).NG,o=r(78776),s=r(77519),l=o.axesNames;function u(t,e,r,i){var s=a(i.fullData,"geo",i.id).map((function(t){return t._expandedIndex})),u=r("resolution"),c=r("scope"),f=o.scopeDefaults[c],h=r("projection.type",f.projType),p=e._isAlbersUsa="albers usa"===h;p&&(c=e.scope="usa");var d=e._isScoped="world"!==c,v=e._isSatellite="satellite"===h,g=e._isConic=-1!==h.indexOf("conic")||"albers"===h,y=e._isClipped=!!o.lonaxisSpan[h];if(!1===t.visible){var m=n.extendDeep({},e._template);m.showcoastlines=!1,m.showcountries=!1,m.showframe=!1,m.showlakes=!1,m.showland=!1,m.showocean=!1,m.showrivers=!1,m.showsubunits=!1,m.lonaxis&&(m.lonaxis.showgrid=!1),m.lataxis&&(m.lataxis.showgrid=!1),e._template=m}for(var x=r("visible"),b=0;b<l.length;b++){var _,w=l[b],T=[30,10][b];if(d)_=f[w+"Range"];else{var k=o[w+"Span"],A=(k[h]||k["*"])/2,M=r("projection.rotation."+w.substr(0,3),f.projRotate[b]);_=[M-A,M+A]}var S=r(w+".range",_);r(w+".tick0"),r(w+".dtick",T),r(w+".showgrid",!!x&&void 0)&&(r(w+".gridcolor"),r(w+".gridwidth"),r(w+".griddash")),e[w]._ax={type:"linear",_id:w.slice(0,3),_traceIndices:s,setScale:n.identity,c2l:n.identity,r2l:n.identity,autorange:!0,range:S.slice(),_m:1,_input:{}}}var E=e.lonaxis.range,L=e.lataxis.range,C=E[0],P=E[1];C>0&&P<0&&(P+=360);var O,I,D,z=(C+P)/2;if(!p){var R=d?f.projRotate:[z,0,0];O=r("projection.rotation.lon",R[0]),r("projection.rotation.lat",R[1]),r("projection.rotation.roll",R[2]),r("showcoastlines",!d&&x)&&(r("coastlinecolor"),r("coastlinewidth")),r("showocean",!!x&&void 0)&&r("oceancolor")}p?(I=-96.6,D=38.7):(I=d?z:O,D=(L[0]+L[1])/2),r("center.lon",I),r("center.lat",D),v&&(r("projection.tilt"),r("projection.distance")),g&&r("projection.parallels",f.projParallels||[0,60]),r("projection.scale"),r("showland",!!x&&void 0)&&r("landcolor"),r("showlakes",!!x&&void 0)&&r("lakecolor"),r("showrivers",!!x&&void 0)&&(r("rivercolor"),r("riverwidth")),r("showcountries",d&&"usa"!==c&&x)&&(r("countrycolor"),r("countrywidth")),("usa"===c||"north america"===c&&50===u)&&(r("showsubunits",x),r("subunitcolor"),r("subunitwidth")),d||r("showframe",x)&&(r("framecolor"),r("framewidth")),r("bgcolor"),r("fitbounds")&&(delete e.projection.scale,d?(delete e.center.lon,delete e.center.lat):y?(delete e.center.lon,delete e.center.lat,delete e.projection.rotation.lon,delete e.projection.rotation.lat,delete e.lonaxis.range,delete e.lataxis.range):(delete e.center.lon,delete e.center.lat,delete e.projection.rotation.lon))}t.exports=function(t,e,r){i(t,e,r,{type:"geo",attributes:s,handleDefaults:u,fullData:r,partition:"y"})}},74455:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(73972),o=Math.PI/180,s=180/Math.PI,l={cursor:"pointer"},u={cursor:"auto"};function c(t,e){return n.behavior.zoom().translate(e.translate()).scale(e.scale())}function f(t,e,r){var n=t.id,o=t.graphDiv,s=o.layout,l=s[n],u=o._fullLayout,c=u[n],f={},h={};function p(t,e){f[n+"."+t]=i.nestedProperty(l,t).get(),a.call("_storeDirectGUIEdit",s,u._preGUI,f);var r=i.nestedProperty(c,t);r.get()!==e&&(r.set(e),i.nestedProperty(l,t).set(e),h[n+"."+t]=e)}r(p),p("projection.scale",e.scale()/t.fitScale),p("fitbounds",!1),o.emit("plotly_relayout",h)}function h(t,e){var r=c(0,e);function i(r){var n=e.invert(t.midPt);r("center.lon",n[0]),r("center.lat",n[1])}return r.on("zoomstart",(function(){n.select(this).style(l)})).on("zoom",(function(){e.scale(n.event.scale).translate(n.event.translate),t.render(!0);var r=e.invert(t.midPt);t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.center.lon":r[0],"geo.center.lat":r[1]})})).on("zoomend",(function(){n.select(this).style(u),f(t,e,i)})),r}function p(t,e){var r,i,a,o,s,h,p,d,v,g=c(0,e);function y(t){return e.invert(t)}function m(r){var n=e.rotate(),i=e.invert(t.midPt);r("projection.rotation.lon",-n[0]),r("center.lon",i[0]),r("center.lat",i[1])}return g.on("zoomstart",(function(){n.select(this).style(l),r=n.mouse(this),i=e.rotate(),a=e.translate(),o=i,s=y(r)})).on("zoom",(function(){if(h=n.mouse(this),function(t){var r=y(t);if(!r)return!0;var n=e(r);return Math.abs(n[0]-t[0])>2||Math.abs(n[1]-t[1])>2}(r))return g.scale(e.scale()),void g.translate(e.translate());e.scale(n.event.scale),e.translate([a[0],n.event.translate[1]]),s?y(h)&&(d=y(h),p=[o[0]+(d[0]-s[0]),i[1],i[2]],e.rotate(p),o=p):s=y(r=h),v=!0,t.render(!0);var l=e.rotate(),u=e.invert(t.midPt);t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.center.lon":u[0],"geo.center.lat":u[1],"geo.projection.rotation.lon":-l[0]})})).on("zoomend",(function(){n.select(this).style(u),v&&f(t,e,m)})),g}function d(t,e){var r,i={r:e.rotate(),k:e.scale()},a=c(0,e),o=function(t){for(var e=0,r=arguments.length,i=[];++e<r;)i.push(arguments[e]);var a=n.dispatch.apply(null,i);return a.of=function(e,r){return function(i){var o;try{o=i.sourceEvent=n.event,i.target=t,n.event=i,a[i.type].apply(e,r)}finally{n.event=o}}},a}(a,"zoomstart","zoom","zoomend"),s=0,h=a.on;function p(t){s++||t({type:"zoomstart"})}function d(t){t({type:"zoom"})}function b(t){--s||t({type:"zoomend"})}function _(t){var r=e.rotate();t("projection.rotation.lon",-r[0]),t("projection.rotation.lat",-r[1])}return a.on("zoomstart",(function(){n.select(this).style(l);var t=n.mouse(this),s=e.rotate(),u=s,c=e.translate(),f=g(s);r=v(e,t),h.call(a,"zoom",(function(){var a=n.mouse(this);if(e.scale(i.k=n.event.scale),r){if(v(e,a)){e.rotate(s).translate(c);var l=v(e,a),h=m(r,l),p=T(y(f,h)),g=i.r=x(p,r,u);isFinite(g[0])&&isFinite(g[1])&&isFinite(g[2])||(g=u),e.rotate(g),u=g}}else r=v(e,t=a);d(o.of(this,arguments))})),p(o.of(this,arguments))})).on("zoomend",(function(){n.select(this).style(u),h.call(a,"zoom",null),b(o.of(this,arguments)),f(t,e,_)})).on("zoom.redraw",(function(){t.render(!0);var r=e.rotate();t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.projection.rotation.lon":-r[0],"geo.projection.rotation.lat":-r[1]})})),n.rebind(a,o,"on")}function v(t,e){var r=t.invert(e);return r&&isFinite(r[0])&&isFinite(r[1])&&function(t){var e=t[0]*o,r=t[1]*o,n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}(r)}function g(t){var e=.5*t[0]*o,r=.5*t[1]*o,n=.5*t[2]*o,i=Math.sin(e),a=Math.cos(e),s=Math.sin(r),l=Math.cos(r),u=Math.sin(n),c=Math.cos(n);return[a*l*c+i*s*u,i*l*c-a*s*u,a*s*c+i*l*u,a*l*u-i*s*c]}function y(t,e){var r=t[0],n=t[1],i=t[2],a=t[3],o=e[0],s=e[1],l=e[2],u=e[3];return[r*o-n*s-i*l-a*u,r*s+n*o+i*u-a*l,r*l-n*u+i*o+a*s,r*u+n*l-i*s+a*o]}function m(t,e){if(t&&e){var r=function(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}(t,e),n=Math.sqrt(k(r,r)),i=.5*Math.acos(Math.max(-1,Math.min(1,k(t,e)))),a=Math.sin(i)/n;return n&&[Math.cos(i),r[2]*a,-r[1]*a,r[0]*a]}}function x(t,e,r){var n=w(e,2,t[0]);n=w(n,1,t[1]),n=w(n,0,t[2]-r[2]);var i,a,o=e[0],l=e[1],u=e[2],c=n[0],f=n[1],h=n[2],p=Math.atan2(l,o)*s,d=Math.sqrt(o*o+l*l);Math.abs(f)>d?(a=(f>0?90:-90)-p,i=0):(a=Math.asin(f/d)*s-p,i=Math.sqrt(d*d-f*f));var v=180-a-2*p,g=(Math.atan2(h,c)-Math.atan2(u,i))*s,y=(Math.atan2(h,c)-Math.atan2(u,-i))*s;return b(r[0],r[1],a,g)<=b(r[0],r[1],v,y)?[a,g,r[2]]:[v,y,r[2]]}function b(t,e,r,n){var i=_(r-t),a=_(n-e);return Math.sqrt(i*i+a*a)}function _(t){return(t%360+540)%360-180}function w(t,e,r){var n=r*o,i=t.slice(),a=0===e?1:0,s=2===e?1:2,l=Math.cos(n),u=Math.sin(n);return i[a]=t[a]*l-t[s]*u,i[s]=t[s]*l+t[a]*u,i}function T(t){return[Math.atan2(2*(t[0]*t[1]+t[2]*t[3]),1-2*(t[1]*t[1]+t[2]*t[2]))*s,Math.asin(Math.max(-1,Math.min(1,2*(t[0]*t[2]-t[3]*t[1]))))*s,Math.atan2(2*(t[0]*t[3]+t[1]*t[2]),1-2*(t[2]*t[2]+t[3]*t[3]))*s]}function k(t,e){for(var r=0,n=0,i=t.length;n<i;++n)r+=t[n]*e[n];return r}t.exports=function(t,e){var r=t.projection;return(e._isScoped?h:e._isClipped?d:p)(t,r)}},27659:function(t,e,r){"use strict";var n=r(73972),i=r(85555).SUBPLOT_PATTERN;e.AU=function(t,e,r){var i=n.subplotsRegistry[e];if(!i)return[];for(var a=i.attr,o=[],s=0;s<t.length;s++){var l=t[s];l[0].trace[a]===r&&o.push(l)}return o},e.a0=function(t,e){var r,i=[],a=[];if(!(r="string"==typeof e?n.getModule(e).plot:"function"==typeof e?e:e.plot))return[i,t];for(var o=0;o<t.length;o++){var s=t[o],l=s[0].trace;!0===l.visible&&0!==l._length&&(l._module.plot===r?i.push(s):a.push(s))}return[i,a]},e.NG=function(t,e,r){if(!n.subplotsRegistry[e])return[];var a,o,s,l=n.subplotsRegistry[e].attr,u=[];if("gl2d"===e){var c=r.match(i);o="x"+c[1],s="y"+c[2]}for(var f=0;f<t.length;f++)a=t[f],"gl2d"===e&&n.traceIs(a,"gl2d")?a[l[0]]===o&&a[l[1]]===s&&u.push(a):a[l]===r&&u.push(a);return u}},75071:function(t,e,r){"use strict";var n=r(16825),i=r(1195),a=r(48956),o=r(85555),s=r(38520);function l(t,e){this.element=t,this.plot=e,this.mouseListener=null,this.wheelListener=null,this.lastInputTime=Date.now(),this.lastPos=[0,0],this.boxEnabled=!1,this.boxInited=!1,this.boxStart=[0,0],this.boxEnd=[0,0],this.dragStart=[0,0]}t.exports=function(t){var e=t.mouseContainer,r=t.glplot,u=new l(e,r);function c(){t.xaxis.autorange=!1,t.yaxis.autorange=!1}function f(e,n,i){var a,s,l=t.calcDataBox(),f=r.viewBox,h=u.lastPos[0],p=u.lastPos[1],d=o.MINDRAG*r.pixelRatio,v=o.MINZOOM*r.pixelRatio;function g(e,r,n){var i=Math.min(r,n),a=Math.max(r,n);i!==a?(l[e]=i,l[e+2]=a,u.dataBox=l,t.setRanges(l)):(t.selectBox.selectBox=[0,0,1,1],t.glplot.setDirty())}switch(n*=r.pixelRatio,i*=r.pixelRatio,i=f[3]-f[1]-i,t.fullLayout.dragmode){case"zoom":if(e){var y=n/(f[2]-f[0])*(l[2]-l[0])+l[0],m=i/(f[3]-f[1])*(l[3]-l[1])+l[1];u.boxInited||(u.boxStart[0]=y,u.boxStart[1]=m,u.dragStart[0]=n,u.dragStart[1]=i),u.boxEnd[0]=y,u.boxEnd[1]=m,u.boxInited=!0,u.boxEnabled||u.boxStart[0]===u.boxEnd[0]&&u.boxStart[1]===u.boxEnd[1]||(u.boxEnabled=!0);var x=Math.abs(u.dragStart[0]-n)<v,b=Math.abs(u.dragStart[1]-i)<v;if(!function(){for(var e=t.graphDiv._fullLayout._axisConstraintGroups,r=t.xaxis._id,n=t.yaxis._id,i=0;i<e.length;i++)if(-1!==e[i][r]){if(-1!==e[i][n])return!0;break}return!1}()||x&&b)x&&(u.boxEnd[0]=u.boxStart[0]),b&&(u.boxEnd[1]=u.boxStart[1]);else{a=u.boxEnd[0]-u.boxStart[0],s=u.boxEnd[1]-u.boxStart[1];var _=(l[3]-l[1])/(l[2]-l[0]);Math.abs(a*_)>Math.abs(s)?(u.boxEnd[1]=u.boxStart[1]+Math.abs(a)*_*(s>=0?1:-1),u.boxEnd[1]<l[1]?(u.boxEnd[1]=l[1],u.boxEnd[0]=u.boxStart[0]+(l[1]-u.boxStart[1])/Math.abs(_)):u.boxEnd[1]>l[3]&&(u.boxEnd[1]=l[3],u.boxEnd[0]=u.boxStart[0]+(l[3]-u.boxStart[1])/Math.abs(_))):(u.boxEnd[0]=u.boxStart[0]+Math.abs(s)/_*(a>=0?1:-1),u.boxEnd[0]<l[0]?(u.boxEnd[0]=l[0],u.boxEnd[1]=u.boxStart[1]+(l[0]-u.boxStart[0])*Math.abs(_)):u.boxEnd[0]>l[2]&&(u.boxEnd[0]=l[2],u.boxEnd[1]=u.boxStart[1]+(l[2]-u.boxStart[0])*Math.abs(_)))}}else u.boxEnabled?(a=u.boxStart[0]!==u.boxEnd[0],s=u.boxStart[1]!==u.boxEnd[1],a||s?(a&&(g(0,u.boxStart[0],u.boxEnd[0]),t.xaxis.autorange=!1),s&&(g(1,u.boxStart[1],u.boxEnd[1]),t.yaxis.autorange=!1),t.relayoutCallback()):t.glplot.setDirty(),u.boxEnabled=!1,u.boxInited=!1):u.boxInited&&(u.boxInited=!1);break;case"pan":u.boxEnabled=!1,u.boxInited=!1,e?(u.panning||(u.dragStart[0]=n,u.dragStart[1]=i),Math.abs(u.dragStart[0]-n)<d&&(n=u.dragStart[0]),Math.abs(u.dragStart[1]-i)<d&&(i=u.dragStart[1]),a=(h-n)*(l[2]-l[0])/(r.viewBox[2]-r.viewBox[0]),s=(p-i)*(l[3]-l[1])/(r.viewBox[3]-r.viewBox[1]),l[0]+=a,l[2]+=a,l[1]+=s,l[3]+=s,t.setRanges(l),u.panning=!0,u.lastInputTime=Date.now(),c(),t.cameraChanged(),t.handleAnnotations()):u.panning&&(u.panning=!1,t.relayoutCallback())}u.lastPos[0]=n,u.lastPos[1]=i}return u.mouseListener=n(e,f),e.addEventListener("touchstart",(function(t){var r=a(t.changedTouches[0],e);f(0,r[0],r[1]),f(1,r[0],r[1]),t.preventDefault()}),!!s&&{passive:!1}),e.addEventListener("touchmove",(function(t){t.preventDefault();var r=a(t.changedTouches[0],e);f(1,r[0],r[1]),t.preventDefault()}),!!s&&{passive:!1}),e.addEventListener("touchend",(function(t){f(0,u.lastPos[0],u.lastPos[1]),t.preventDefault()}),!!s&&{passive:!1}),u.wheelListener=i(e,(function(e,n){if(!t.scrollZoom)return!1;var i=t.calcDataBox(),a=r.viewBox,o=u.lastPos[0],s=u.lastPos[1],l=Math.exp(5*n/(a[3]-a[1])),f=o/(a[2]-a[0])*(i[2]-i[0])+i[0],h=s/(a[3]-a[1])*(i[3]-i[1])+i[1];return i[0]=(i[0]-f)*l+f,i[2]=(i[2]-f)*l+f,i[1]=(i[1]-h)*l+h,i[3]=(i[3]-h)*l+h,t.setRanges(i),u.lastInputTime=Date.now(),c(),t.cameraChanged(),t.handleAnnotations(),t.relayoutCallback(),!0}),!0),u}},82961:function(t,e,r){"use strict";var n=r(89298),i=r(78614);function a(t){this.scene=t,this.gl=t.gl,this.pixelRatio=t.pixelRatio,this.screenBox=[0,0,1,1],this.viewBox=[0,0,1,1],this.dataBox=[-1,-1,1,1],this.borderLineEnable=[!1,!1,!1,!1],this.borderLineWidth=[1,1,1,1],this.borderLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.ticks=[[],[]],this.tickEnable=[!0,!0,!1,!1],this.tickPad=[15,15,15,15],this.tickAngle=[0,0,0,0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickMarkLength=[0,0,0,0],this.tickMarkWidth=[0,0,0,0],this.tickMarkColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labels=["x","y"],this.labelEnable=[!0,!0,!1,!1],this.labelAngle=[0,Math.PI/2,0,3*Math.PI/2],this.labelPad=[15,15,15,15],this.labelSize=[12,12],this.labelFont=["sans-serif","sans-serif"],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.title="",this.titleEnable=!0,this.titleCenter=[0,0,0,0],this.titleAngle=0,this.titleColor=[0,0,0,1],this.titleFont="sans-serif",this.titleSize=18,this.gridLineEnable=[!0,!0],this.gridLineColor=[[0,0,0,.5],[0,0,0,.5]],this.gridLineWidth=[1,1],this.zeroLineEnable=[!0,!0],this.zeroLineWidth=[1,1],this.zeroLineColor=[[0,0,0,1],[0,0,0,1]],this.borderColor=[0,0,0,0],this.backgroundColor=[0,0,0,0],this.static=this.scene.staticPlot}var o=a.prototype,s=["xaxis","yaxis"];o.merge=function(t){var e,r,n,a,o,l,u,c,f,h,p;for(this.titleEnable=!1,this.backgroundColor=i(t.plot_bgcolor),h=0;h<2;++h){var d=(e=s[h]).charAt(0);for(n=(r=t[this.scene[e]._name]).title.text===this.scene.fullLayout._dfltTitle[d]?"":r.title.text,p=0;p<=2;p+=2)this.labelEnable[h+p]=!1,this.labels[h+p]=n,this.labelColor[h+p]=i(r.title.font.color),this.labelFont[h+p]=r.title.font.family,this.labelSize[h+p]=r.title.font.size,this.labelPad[h+p]=this.getLabelPad(e,r),this.tickEnable[h+p]=!1,this.tickColor[h+p]=i((r.tickfont||{}).color),this.tickAngle[h+p]="auto"===r.tickangle?0:Math.PI*-r.tickangle/180,this.tickPad[h+p]=this.getTickPad(r),this.tickMarkLength[h+p]=0,this.tickMarkWidth[h+p]=r.tickwidth||0,this.tickMarkColor[h+p]=i(r.tickcolor),this.borderLineEnable[h+p]=!1,this.borderLineColor[h+p]=i(r.linecolor),this.borderLineWidth[h+p]=r.linewidth||0;u=this.hasSharedAxis(r),o=this.hasAxisInDfltPos(e,r)&&!u,l=this.hasAxisInAltrPos(e,r)&&!u,a=r.mirror||!1,c=u?-1!==String(a).indexOf("all"):!!a,f=u?"allticks"===a:-1!==String(a).indexOf("ticks"),o?this.labelEnable[h]=!0:l&&(this.labelEnable[h+2]=!0),o?this.tickEnable[h]=r.showticklabels:l&&(this.tickEnable[h+2]=r.showticklabels),(o||c)&&(this.borderLineEnable[h]=r.showline),(l||c)&&(this.borderLineEnable[h+2]=r.showline),(o||f)&&(this.tickMarkLength[h]=this.getTickMarkLength(r)),(l||f)&&(this.tickMarkLength[h+2]=this.getTickMarkLength(r)),this.gridLineEnable[h]=r.showgrid,this.gridLineColor[h]=i(r.gridcolor),this.gridLineWidth[h]=r.gridwidth,this.zeroLineEnable[h]=r.zeroline,this.zeroLineColor[h]=i(r.zerolinecolor),this.zeroLineWidth[h]=r.zerolinewidth}},o.hasSharedAxis=function(t){var e=this.scene,r=e.fullLayout._subplots.gl2d;return 0!==n.findSubplotsWithAxis(r,t).indexOf(e.id)},o.hasAxisInDfltPos=function(t,e){var r=e.side;return"xaxis"===t?"bottom"===r:"yaxis"===t?"left"===r:void 0},o.hasAxisInAltrPos=function(t,e){var r=e.side;return"xaxis"===t?"top"===r:"yaxis"===t?"right"===r:void 0},o.getLabelPad=function(t,e){var r=1.5,n=e.title.font.size,i=e.showticklabels;return"xaxis"===t?"top"===e.side?n*(r+(i?1:0))-10:n*(r+(i?.5:0))-10:"yaxis"===t?"right"===e.side?10+n*(r+(i?1:.5)):10+n*(r+(i?.5:0)):void 0},o.getTickPad=function(t){return"outside"===t.ticks?10+t.ticklen:15},o.getTickMarkLength=function(t){if(!t.ticks)return 0;var e=t.ticklen;return"inside"===t.ticks?-e:e},t.exports=function(t){return new a(t)}},4796:function(t,e,r){"use strict";var n=r(30962).overrideAll,i=r(92918),a=r(10820),o=r(77922),s=r(85555),l=r(93612),u=r(528),c=r(27659).NG;e.name="gl2d",e.attr=["xaxis","yaxis"],e.idRoot=["x","y"],e.idRegex=s.idRegex,e.attrRegex=s.attrRegex,e.attributes=r(89502),e.supplyLayoutDefaults=function(t,e,r){e._has("cartesian")||l.supplyLayoutDefaults(t,e,r)},e.layoutAttrOverrides=n(l.layoutAttributes,"plot","from-root"),e.baseLayoutAttrOverrides=n({plot_bgcolor:a.plot_bgcolor,hoverlabel:u.hoverlabel},"plot","nested"),e.plot=function(t){for(var e=t._fullLayout,r=t._fullData,n=e._subplots.gl2d,a=0;a<n.length;a++){var o=n[a],s=e._plots[o],l=c(r,"gl2d",o),u=s._scene2d;void 0===u&&(u=new i({id:o,graphDiv:t,container:t.querySelector(".gl-container"),staticPlot:t._context.staticPlot,plotGlPixelRatio:t._context.plotGlPixelRatio},e),s._scene2d=u),u.plot(l,t.calcdata,e,t.layout)}},e.clean=function(t,e,r,n){for(var i=n._subplots.gl2d||[],a=0;a<i.length;a++){var o=i[a],s=n._plots[o];if(s._scene2d){var u=c(t,"gl2d",o);0===u.length&&(s._scene2d.destroy(),delete n._plots[o])}}l.clean.apply(this,arguments)},e.drawFramework=function(t){t._context.staticPlot||l.drawFramework(t)},e.toSVG=function(t){for(var e=t._fullLayout,r=e._subplots.gl2d,n=0;n<r.length;n++){var i=e._plots[r[n]]._scene2d,a=i.toImage("png");e._glimages.append("svg:image").attr({xmlns:o.svg,"xlink:href":a,x:0,y:0,width:"100%",height:"100%",preserveAspectRatio:"none"}),i.destroy()}},e.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.gl2d,n=0;n<r.length;n++)e._plots[r[n]]._scene2d.updateFx(e.dragmode)}},92918:function(t,e,r){"use strict";var n,i,a=r(73972),o=r(89298),s=r(30211),l=r(9330).gl_plot2d,u=r(9330).gl_spikes2d,c=r(9330).gl_select_box,f=r(40372),h=r(82961),p=r(75071),d=r(58617),v=r(99082),g=v.enforce,y=v.clean,m=r(71739).doAutoRange,x=r(64505),b=x.drawMode,_=x.selectMode,w=["xaxis","yaxis"],T=r(85555).SUBPLOT_PATTERN;function k(t,e){this.container=t.container,this.graphDiv=t.graphDiv,this.pixelRatio=t.plotGlPixelRatio||window.devicePixelRatio,this.id=t.id,this.staticPlot=!!t.staticPlot,this.scrollZoom=this.graphDiv._context._scrollZoom.cartesian,this.fullData=null,this.updateRefs(e),this.makeFramework(),this.stopped||(this.glplotOptions=h(this),this.glplotOptions.merge(e),this.glplot=l(this.glplotOptions),this.camera=p(this),this.traces={},this.spikes=u(this.glplot),this.selectBox=c(this.glplot,{innerFill:!1,outerFill:!0}),this.lastButtonState=0,this.pickResult=null,this.isMouseOver=!0,this.stopped=!1,this.redraw=this.draw.bind(this),this.redraw())}t.exports=k;var A=k.prototype;A.makeFramework=function(){if(this.staticPlot){if(!(i||(n=document.createElement("canvas"),i=f({canvas:n,preserveDrawingBuffer:!1,premultipliedAlpha:!0,antialias:!0}))))throw new Error("Error creating static canvas/context for image server");this.canvas=n,this.gl=i}else{var t=this.container.querySelector(".gl-canvas-focus"),e=f({canvas:t,preserveDrawingBuffer:!0,premultipliedAlpha:!0});if(!e)return d(this),void(this.stopped=!0);this.canvas=t,this.gl=e}var r=this.canvas;r.style.width="100%",r.style.height="100%",r.style.position="absolute",r.style.top="0px",r.style.left="0px",r.style["pointer-events"]="none",this.updateSize(r);var a=this.svgContainer=document.createElementNS("http://www.w3.org/2000/svg","svg");a.style.position="absolute",a.style.top=a.style.left="0px",a.style.width=a.style.height="100%",a.style["z-index"]=20,a.style["pointer-events"]="none";var o=this.mouseContainer=document.createElement("div");o.style.position="absolute",o.style["pointer-events"]="auto",this.pickCanvas=this.container.querySelector(".gl-canvas-pick");var s=this.container;s.appendChild(a),s.appendChild(o);var l=this;o.addEventListener("mouseout",(function(){l.isMouseOver=!1,l.unhover()})),o.addEventListener("mouseover",(function(){l.isMouseOver=!0}))},A.toImage=function(t){t||(t="png"),this.stopped=!0,this.staticPlot&&this.container.appendChild(n),this.updateSize(this.canvas);var e=this.glplot.gl,r=e.drawingBufferWidth,i=e.drawingBufferHeight;e.clearColor(1,1,1,0),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT),this.glplot.setDirty(),this.glplot.draw(),e.bindFramebuffer(e.FRAMEBUFFER,null);var a=new Uint8Array(r*i*4);e.readPixels(0,0,r,i,e.RGBA,e.UNSIGNED_BYTE,a);for(var o=0,s=i-1;o<s;++o,--s)for(var l=0;l<r;++l)for(var u=0;u<4;++u){var c=a[4*(r*o+l)+u];a[4*(r*o+l)+u]=a[4*(r*s+l)+u],a[4*(r*s+l)+u]=c}var f=document.createElement("canvas");f.width=r,f.height=i;var h,p=f.getContext("2d",{willReadFrequently:!0}),d=p.createImageData(r,i);switch(d.data.set(a),p.putImageData(d,0,0),t){case"jpeg":h=f.toDataURL("image/jpeg");break;case"webp":h=f.toDataURL("image/webp");break;default:h=f.toDataURL("image/png")}return this.staticPlot&&this.container.removeChild(n),h},A.updateSize=function(t){t||(t=this.canvas);var e=this.pixelRatio,r=this.fullLayout,n=r.width,i=r.height,a=0|Math.ceil(e*n),o=0|Math.ceil(e*i);return t.width===a&&t.height===o||(t.width=a,t.height=o),t},A.computeTickMarks=function(){this.xaxis.setScale(),this.yaxis.setScale();for(var t=[o.calcTicks(this.xaxis),o.calcTicks(this.yaxis)],e=0;e<2;++e)for(var r=0;r<t[e].length;++r)t[e][r].text=t[e][r].text+"";return t},A.updateRefs=function(t){this.fullLayout=t;var e=this.id.match(T),r="xaxis"+e[1],n="yaxis"+e[2];this.xaxis=this.fullLayout[r],this.yaxis=this.fullLayout[n]},A.relayoutCallback=function(){var t=this.graphDiv,e=this.xaxis,r=this.yaxis,n=t.layout,i={},o=i[e._name+".range"]=e.range.slice(),s=i[r._name+".range"]=r.range.slice();i[e._name+".autorange"]=e.autorange,i[r._name+".autorange"]=r.autorange,a.call("_storeDirectGUIEdit",t.layout,t._fullLayout._preGUI,i);var l=n[e._name];l.range=o,l.autorange=e.autorange;var u=n[r._name];u.range=s,u.autorange=r.autorange,i.lastInputTime=this.camera.lastInputTime,t.emit("plotly_relayout",i)},A.cameraChanged=function(){var t=this.camera;this.glplot.setDataBox(this.calcDataBox());var e=this.computeTickMarks();(function(t,e){for(var r=0;r<2;++r){var n=t[r],i=e[r];if(n.length!==i.length)return!0;for(var a=0;a<n.length;++a)if(n[a].x!==i[a].x)return!0}return!1})(e,this.glplotOptions.ticks)&&(this.glplotOptions.ticks=e,this.glplotOptions.dataBox=t.dataBox,this.glplot.update(this.glplotOptions),this.handleAnnotations())},A.handleAnnotations=function(){for(var t=this.graphDiv,e=this.fullLayout.annotations,r=0;r<e.length;r++){var n=e[r];n.xref===this.xaxis._id&&n.yref===this.yaxis._id&&a.getComponentMethod("annotations","drawOne")(t,r)}},A.destroy=function(){if(this.glplot){var t=this.traces;t&&Object.keys(t).map((function(e){t[e].dispose(),delete t[e]})),this.glplot.dispose(),this.container.removeChild(this.svgContainer),this.container.removeChild(this.mouseContainer),this.fullData=null,this.glplot=null,this.stopped=!0,this.camera.mouseListener.enabled=!1,this.mouseContainer.removeEventListener("wheel",this.camera.wheelListener),this.camera=null}},A.plot=function(t,e,r){var n=this.glplot;this.updateRefs(r),this.xaxis.clearCalc(),this.yaxis.clearCalc(),this.updateTraces(t,e),this.updateFx(r.dragmode);var i=r.width,a=r.height;this.updateSize(this.canvas);var o=this.glplotOptions;o.merge(r),o.screenBox=[0,0,i,a];var s={_fullLayout:{_axisConstraintGroups:r._axisConstraintGroups,xaxis:this.xaxis,yaxis:this.yaxis,_size:r._size}};y(s,this.xaxis),y(s,this.yaxis);var l,u,c=r._size,f=this.xaxis.domain,h=this.yaxis.domain;for(o.viewBox=[c.l+f[0]*c.w,c.b+h[0]*c.h,i-c.r-(1-f[1])*c.w,a-c.t-(1-h[1])*c.h],this.mouseContainer.style.width=c.w*(f[1]-f[0])+"px",this.mouseContainer.style.height=c.h*(h[1]-h[0])+"px",this.mouseContainer.height=c.h*(h[1]-h[0]),this.mouseContainer.style.left=c.l+f[0]*c.w+"px",this.mouseContainer.style.top=c.t+(1-h[1])*c.h+"px",u=0;u<2;++u)(l=this[w[u]])._length=o.viewBox[u+2]-o.viewBox[u],m(this.graphDiv,l),l.setScale();g(s),o.ticks=this.computeTickMarks(),o.dataBox=this.calcDataBox(),o.merge(r),n.update(o),this.glplot.draw()},A.calcDataBox=function(){var t=this.xaxis,e=this.yaxis,r=t.range,n=e.range,i=t.r2l,a=e.r2l;return[i(r[0]),a(n[0]),i(r[1]),a(n[1])]},A.setRanges=function(t){var e=this.xaxis,r=this.yaxis,n=e.l2r,i=r.l2r;e.range=[n(t[0]),n(t[2])],r.range=[i(t[1]),i(t[3])]},A.updateTraces=function(t,e){var r,n,i,a=Object.keys(this.traces);this.fullData=t;t:for(r=0;r<a.length;r++){var o=a[r],s=this.traces[o];for(n=0;n<t.length;n++)if((i=t[n]).uid===o&&i.type===s.type)continue t;s.dispose(),delete this.traces[o]}for(r=0;r<t.length;r++){i=t[r];var l=e[r],u=this.traces[i.uid];u?u.update(i,l):(u=i._module.plot(this,i,l),this.traces[i.uid]=u)}this.glplot.objects.sort((function(t,e){return t._trace.index-e._trace.index}))},A.updateFx=function(t){_(t)||b(t)?(this.pickCanvas.style["pointer-events"]="none",this.mouseContainer.style["pointer-events"]="none"):(this.pickCanvas.style["pointer-events"]="auto",this.mouseContainer.style["pointer-events"]="auto"),this.mouseContainer.style.cursor="pan"===t?"move":"zoom"===t?"crosshair":null},A.emitPointAction=function(t,e){for(var r,n=t.trace.uid,i=t.pointIndex,a=0;a<this.fullData.length;a++)this.fullData[a].uid===n&&(r=this.fullData[a]);var o={x:t.traceCoord[0],y:t.traceCoord[1],curveNumber:r.index,pointNumber:i,data:r._input,fullData:this.fullData,xaxis:this.xaxis,yaxis:this.yaxis};s.appendArrayPointValue(o,r,i),this.graphDiv.emit(e,{points:[o]})},A.draw=function(){if(!this.stopped){requestAnimationFrame(this.redraw);var t=this.glplot,e=this.camera,r=e.mouseListener,n=1===this.lastButtonState&&0===r.buttons,i=this.fullLayout;this.lastButtonState=r.buttons,this.cameraChanged();var a,o=r.x*t.pixelRatio,l=this.canvas.height-t.pixelRatio*r.y;if(e.boxEnabled&&"zoom"===i.dragmode){this.selectBox.enabled=!0;for(var u=this.selectBox.selectBox=[Math.min(e.boxStart[0],e.boxEnd[0]),Math.min(e.boxStart[1],e.boxEnd[1]),Math.max(e.boxStart[0],e.boxEnd[0]),Math.max(e.boxStart[1],e.boxEnd[1])],c=0;c<2;c++)e.boxStart[c]===e.boxEnd[c]&&(u[c]=t.dataBox[c],u[c+2]=t.dataBox[c+2]);t.setDirty()}else if(!e.panning&&this.isMouseOver){this.selectBox.enabled=!1;var f=i._size,h=this.xaxis.domain,p=this.yaxis.domain,d=(a=t.pick(o/t.pixelRatio+f.l+h[0]*f.w,l/t.pixelRatio-(f.t+(1-p[1])*f.h)))&&a.object._trace.handlePick(a);if(d&&n&&this.emitPointAction(d,"plotly_click"),a&&"skip"!==a.object._trace.hoverinfo&&i.hovermode&&d&&(!this.lastPickResult||this.lastPickResult.traceUid!==d.trace.uid||this.lastPickResult.dataCoord[0]!==d.dataCoord[0]||this.lastPickResult.dataCoord[1]!==d.dataCoord[1])){var v=d;this.lastPickResult={traceUid:d.trace?d.trace.uid:null,dataCoord:d.dataCoord.slice()},this.spikes.update({center:a.dataCoord}),v.screenCoord=[((t.viewBox[2]-t.viewBox[0])*(a.dataCoord[0]-t.dataBox[0])/(t.dataBox[2]-t.dataBox[0])+t.viewBox[0])/t.pixelRatio,(this.canvas.height-(t.viewBox[3]-t.viewBox[1])*(a.dataCoord[1]-t.dataBox[1])/(t.dataBox[3]-t.dataBox[1])-t.viewBox[1])/t.pixelRatio],this.emitPointAction(d,"plotly_hover");var g=this.fullData[v.trace.index]||{},y=v.pointIndex,m=s.castHoverinfo(g,i,y);if(m&&"all"!==m){var x=m.split("+");-1===x.indexOf("x")&&(v.traceCoord[0]=void 0),-1===x.indexOf("y")&&(v.traceCoord[1]=void 0),-1===x.indexOf("z")&&(v.traceCoord[2]=void 0),-1===x.indexOf("text")&&(v.textLabel=void 0),-1===x.indexOf("name")&&(v.name=void 0)}s.loneHover({x:v.screenCoord[0],y:v.screenCoord[1],xLabel:this.hoverFormatter("xaxis",v.traceCoord[0]),yLabel:this.hoverFormatter("yaxis",v.traceCoord[1]),zLabel:v.traceCoord[2],text:v.textLabel,name:v.name,color:s.castHoverOption(g,y,"bgcolor")||v.color,borderColor:s.castHoverOption(g,y,"bordercolor"),fontFamily:s.castHoverOption(g,y,"font.family"),fontSize:s.castHoverOption(g,y,"font.size"),fontColor:s.castHoverOption(g,y,"font.color"),nameLength:s.castHoverOption(g,y,"namelength"),textAlign:s.castHoverOption(g,y,"align")},{container:this.svgContainer,gd:this.graphDiv})}}a||this.unhover(),t.draw()}},A.unhover=function(){this.lastPickResult&&(this.spikes.update({}),this.lastPickResult=null,this.graphDiv.emit("plotly_unhover"),s.loneUnhover(this.svgContainer))},A.hoverFormatter=function(t,e){if(void 0!==e){var r=this[t];return o.tickText(r,r.c2l(e),"hover").text}}},58547:function(t,e,r){"use strict";var n=r(30962).overrideAll,i=r(528),a=r(33539),o=r(27659).NG,s=r(71828),l=r(77922),u="gl3d",c="scene";e.name=u,e.attr=c,e.idRoot=c,e.idRegex=e.attrRegex=s.counterRegex("scene"),e.attributes=r(59084),e.layoutAttributes=r(65500),e.baseLayoutAttrOverrides=n({hoverlabel:i.hoverlabel},"plot","nested"),e.supplyLayoutDefaults=r(24682),e.plot=function(t){for(var e=t._fullLayout,r=t._fullData,n=e._subplots.gl3d,i=0;i<n.length;i++){var s=n[i],l=o(r,u,s),c=e[s],f=c.camera,h=c._scene;h||(h=new a({id:s,graphDiv:t,container:t.querySelector(".gl-container"),staticPlot:t._context.staticPlot,plotGlPixelRatio:t._context.plotGlPixelRatio,camera:f},e),c._scene=h),h.viewInitial||(h.viewInitial={up:{x:f.up.x,y:f.up.y,z:f.up.z},eye:{x:f.eye.x,y:f.eye.y,z:f.eye.z},center:{x:f.center.x,y:f.center.y,z:f.center.z}}),h.plot(l,e,t.layout)}},e.clean=function(t,e,r,n){for(var i=n._subplots.gl3d||[],a=0;a<i.length;a++){var o=i[a];!e[o]&&n[o]._scene&&(n[o]._scene.destroy(),n._infolayer&&n._infolayer.selectAll(".annotation-"+o).remove())}},e.toSVG=function(t){for(var e=t._fullLayout,r=e._subplots.gl3d,n=e._size,i=0;i<r.length;i++){var a=e[r[i]],o=a.domain,s=a._scene,u=s.toImage("png");e._glimages.append("svg:image").attr({xmlns:l.svg,"xlink:href":u,x:n.l+n.w*o.x[0],y:n.t+n.h*(1-o.y[1]),width:n.w*(o.x[1]-o.x[0]),height:n.h*(o.y[1]-o.y[0]),preserveAspectRatio:"none"}),s.destroy()}},e.cleanId=function(t){if(t.match(/^scene[0-9]*$/)){var e=t.substr(5);return"1"===e&&(e=""),c+e}},e.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.gl3d,n=0;n<r.length;n++)e[r[n]]._scene.updateFx(e.dragmode,e.hovermode)}},59084:function(t){"use strict";t.exports={scene:{valType:"subplotid",dflt:"scene",editType:"calc+clearAxisTypes"}}},77894:function(t,e,r){"use strict";var n=r(7901),i=r(13838),a=r(1426).extendFlat,o=r(30962).overrideAll;t.exports=o({visible:i.visible,showspikes:{valType:"boolean",dflt:!0},spikesides:{valType:"boolean",dflt:!0},spikethickness:{valType:"number",min:0,dflt:2},spikecolor:{valType:"color",dflt:n.defaultLine},showbackground:{valType:"boolean",dflt:!1},backgroundcolor:{valType:"color",dflt:"rgba(204, 204, 204, 0.5)"},showaxeslabels:{valType:"boolean",dflt:!0},color:i.color,categoryorder:i.categoryorder,categoryarray:i.categoryarray,title:{text:i.title.text,font:i.title.font},type:a({},i.type,{values:["-","linear","log","date","category"]}),autotypenumbers:i.autotypenumbers,autorange:i.autorange,rangemode:i.rangemode,range:a({},i.range,{items:[{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1}},{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1}}],anim:!1}),tickmode:i.minor.tickmode,nticks:i.nticks,tick0:i.tick0,dtick:i.dtick,tickvals:i.tickvals,ticktext:i.ticktext,ticks:i.ticks,mirror:i.mirror,ticklen:i.ticklen,tickwidth:i.tickwidth,tickcolor:i.tickcolor,showticklabels:i.showticklabels,tickfont:i.tickfont,tickangle:i.tickangle,tickprefix:i.tickprefix,showtickprefix:i.showtickprefix,ticksuffix:i.ticksuffix,showticksuffix:i.showticksuffix,showexponent:i.showexponent,exponentformat:i.exponentformat,minexponent:i.minexponent,separatethousands:i.separatethousands,tickformat:i.tickformat,tickformatstops:i.tickformatstops,hoverformat:i.hoverformat,showline:i.showline,linecolor:i.linecolor,linewidth:i.linewidth,showgrid:i.showgrid,gridcolor:a({},i.gridcolor,{dflt:"rgb(204, 204, 204)"}),gridwidth:i.gridwidth,zeroline:i.zeroline,zerolinecolor:i.zerolinecolor,zerolinewidth:i.zerolinewidth,_deprecated:{title:i._deprecated.title,titlefont:i._deprecated.titlefont}},"plot","from-root")},3277:function(t,e,r){"use strict";var n=r(84267).mix,i=r(71828),a=r(44467),o=r(77894),s=r(951),l=r(71453),u=["xaxis","yaxis","zaxis"];t.exports=function(t,e,r){var c,f;function h(t,e){return i.coerce(c,f,o,t,e)}for(var p=0;p<u.length;p++){var d=u[p];c=t[d]||{},(f=a.newContainer(e,d))._id=d[0]+r.scene,f._name=d,s(c,f,h,r),l(c,f,h,{font:r.font,letter:d[0],data:r.data,showGrid:!0,noTickson:!0,noTicklabelmode:!0,noTicklabelstep:!0,noTicklabelposition:!0,noTicklabeloverflow:!0,bgColor:r.bgColor,calendar:r.calendar},r.fullLayout),h("gridcolor",n(f.color,r.bgColor,72.72727272727273).toRgbString()),h("title.text",d[0]),f.setScale=i.noop,h("showspikes")&&(h("spikesides"),h("spikethickness"),h("spikecolor",f.color)),h("showaxeslabels"),h("showbackground")&&h("backgroundcolor")}}},30422:function(t,e,r){"use strict";var n=r(78614),i=r(71828),a=["xaxis","yaxis","zaxis"];function o(){this.bounds=[[-10,-10,-10],[10,10,10]],this.ticks=[[],[],[]],this.tickEnable=[!0,!0,!0],this.tickFont=["sans-serif","sans-serif","sans-serif"],this.tickSize=[12,12,12],this.tickAngle=[0,0,0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[18,18,18],this.labels=["x","y","z"],this.labelEnable=[!0,!0,!0],this.labelFont=["Open Sans","Open Sans","Open Sans"],this.labelSize=[20,20,20],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[30,30,30],this.lineEnable=[!0,!0,!0],this.lineMirror=[!1,!1,!1],this.lineWidth=[1,1,1],this.lineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.lineTickEnable=[!0,!0,!0],this.lineTickMirror=[!1,!1,!1],this.lineTickLength=[10,10,10],this.lineTickWidth=[1,1,1],this.lineTickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.gridEnable=[!0,!0,!0],this.gridWidth=[1,1,1],this.gridColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroEnable=[!0,!0,!0],this.zeroLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroLineWidth=[2,2,2],this.backgroundEnable=[!0,!0,!0],this.backgroundColor=[[.8,.8,.8,.5],[.8,.8,.8,.5],[.8,.8,.8,.5]],this._defaultTickPad=this.tickPad.slice(),this._defaultLabelPad=this.labelPad.slice(),this._defaultLineTickLength=this.lineTickLength.slice()}o.prototype.merge=function(t,e){for(var r=this,o=0;o<3;++o){var s=e[a[o]];s.visible?(r.labels[o]=t._meta?i.templateString(s.title.text,t._meta):s.title.text,"font"in s.title&&(s.title.font.color&&(r.labelColor[o]=n(s.title.font.color)),s.title.font.family&&(r.labelFont[o]=s.title.font.family),s.title.font.size&&(r.labelSize[o]=s.title.font.size)),"showline"in s&&(r.lineEnable[o]=s.showline),"linecolor"in s&&(r.lineColor[o]=n(s.linecolor)),"linewidth"in s&&(r.lineWidth[o]=s.linewidth),"showgrid"in s&&(r.gridEnable[o]=s.showgrid),"gridcolor"in s&&(r.gridColor[o]=n(s.gridcolor)),"gridwidth"in s&&(r.gridWidth[o]=s.gridwidth),"log"===s.type?r.zeroEnable[o]=!1:"zeroline"in s&&(r.zeroEnable[o]=s.zeroline),"zerolinecolor"in s&&(r.zeroLineColor[o]=n(s.zerolinecolor)),"zerolinewidth"in s&&(r.zeroLineWidth[o]=s.zerolinewidth),"ticks"in s&&s.ticks?r.lineTickEnable[o]=!0:r.lineTickEnable[o]=!1,"ticklen"in s&&(r.lineTickLength[o]=r._defaultLineTickLength[o]=s.ticklen),"tickcolor"in s&&(r.lineTickColor[o]=n(s.tickcolor)),"tickwidth"in s&&(r.lineTickWidth[o]=s.tickwidth),"tickangle"in s&&(r.tickAngle[o]="auto"===s.tickangle?-3600:Math.PI*-s.tickangle/180),"showticklabels"in s&&(r.tickEnable[o]=s.showticklabels),"tickfont"in s&&(s.tickfont.color&&(r.tickColor[o]=n(s.tickfont.color)),s.tickfont.family&&(r.tickFont[o]=s.tickfont.family),s.tickfont.size&&(r.tickSize[o]=s.tickfont.size)),"mirror"in s?-1!==["ticks","all","allticks"].indexOf(s.mirror)?(r.lineTickMirror[o]=!0,r.lineMirror[o]=!0):!0===s.mirror?(r.lineTickMirror[o]=!1,r.lineMirror[o]=!0):(r.lineTickMirror[o]=!1,r.lineMirror[o]=!1):r.lineMirror[o]=!1,"showbackground"in s&&!1!==s.showbackground?(r.backgroundEnable[o]=!0,r.backgroundColor[o]=n(s.backgroundcolor)):r.backgroundEnable[o]=!1):(r.tickEnable[o]=!1,r.labelEnable[o]=!1,r.lineEnable[o]=!1,r.lineTickEnable[o]=!1,r.gridEnable[o]=!1,r.zeroEnable[o]=!1,r.backgroundEnable[o]=!1)}},t.exports=function(t,e){var r=new o;return r.merge(t,e),r}},24682:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(73972),o=r(49119),s=r(3277),l=r(65500),u=r(27659).NG,c="gl3d";function f(t,e,r,n){for(var o=r("bgcolor"),l=i.combine(o,n.paper_bgcolor),f=["up","center","eye"],h=0;h<f.length;h++)r("camera."+f[h]+".x"),r("camera."+f[h]+".y"),r("camera."+f[h]+".z");r("camera.projection.type");var p=!!r("aspectratio.x")&&!!r("aspectratio.y")&&!!r("aspectratio.z"),d=r("aspectmode",p?"manual":"auto");p||(t.aspectratio=e.aspectratio={x:1,y:1,z:1},"manual"===d&&(e.aspectmode="auto"),t.aspectmode=e.aspectmode);var v=u(n.fullData,c,n.id);s(t,e,{font:n.font,scene:n.id,data:v,bgColor:l,calendar:n.calendar,autotypenumbersDflt:n.autotypenumbersDflt,fullLayout:n.fullLayout}),a.getComponentMethod("annotations3d","handleDefaults")(t,e,n);var g=n.getDfltFromLayout("dragmode");if(!1!==g&&!g)if(g="orbit",t.camera&&t.camera.up){var y=t.camera.up.x,m=t.camera.up.y,x=t.camera.up.z;0!==x&&(y&&m&&x?x/Math.sqrt(y*y+m*m+x*x)>.999&&(g="turntable"):g="turntable")}else g="turntable";r("dragmode",g),r("hovermode",n.getDfltFromLayout("hovermode"))}t.exports=function(t,e,r){var i=e._basePlotModules.length>1;o(t,e,r,{type:c,attributes:l,handleDefaults:f,fullLayout:e,font:e.font,fullData:r,getDfltFromLayout:function(e){if(!i)return n.validate(t[e],l[e])?t[e]:void 0},autotypenumbersDflt:e.autotypenumbers,paper_bgcolor:e.paper_bgcolor,calendar:e.calendar})}},65500:function(t,e,r){"use strict";var n=r(77894),i=r(27670).Y,a=r(1426).extendFlat,o=r(71828).counterRegex;function s(t,e,r){return{x:{valType:"number",dflt:t,editType:"camera"},y:{valType:"number",dflt:e,editType:"camera"},z:{valType:"number",dflt:r,editType:"camera"},editType:"camera"}}t.exports={_arrayAttrRegexps:[o("scene",".annotations",!0)],bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"plot"},camera:{up:a(s(0,0,1),{}),center:a(s(0,0,0),{}),eye:a(s(1.25,1.25,1.25),{}),projection:{type:{valType:"enumerated",values:["perspective","orthographic"],dflt:"perspective",editType:"calc"},editType:"calc"},editType:"camera"},domain:i({name:"scene",editType:"plot"}),aspectmode:{valType:"enumerated",values:["auto","cube","data","manual"],dflt:"auto",editType:"plot",impliedEdits:{"aspectratio.x":void 0,"aspectratio.y":void 0,"aspectratio.z":void 0}},aspectratio:{x:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},y:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},z:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},editType:"plot",impliedEdits:{aspectmode:"manual"}},xaxis:n,yaxis:n,zaxis:n,dragmode:{valType:"enumerated",values:["orbit","turntable","zoom","pan",!1],editType:"plot"},hovermode:{valType:"enumerated",values:["closest",!1],dflt:"closest",editType:"modebar"},uirevision:{valType:"any",editType:"none"},editType:"plot",_deprecated:{cameraposition:{valType:"info_array",editType:"camera"}}}},13133:function(t,e,r){"use strict";var n=r(78614),i=["xaxis","yaxis","zaxis"];function a(){this.enabled=[!0,!0,!0],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.drawSides=[!0,!0,!0],this.lineWidth=[1,1,1]}a.prototype.merge=function(t){for(var e=0;e<3;++e){var r=t[i[e]];r.visible?(this.enabled[e]=r.showspikes,this.colors[e]=n(r.spikecolor),this.drawSides[e]=r.spikesides,this.lineWidth[e]=r.spikethickness):(this.enabled[e]=!1,this.drawSides[e]=!1)}},t.exports=function(t){var e=new a;return e.merge(t),e}},96085:function(t,e,r){"use strict";t.exports=function(t){for(var e=t.axesOptions,r=t.glplot.axesPixels,s=t.fullSceneLayout,l=[[],[],[]],u=0;u<3;++u){var c=s[a[u]];if(c._length=(r[u].hi-r[u].lo)*r[u].pixelsPerDataUnit/t.dataScale[u],Math.abs(c._length)===1/0||isNaN(c._length))l[u]=[];else{c._input_range=c.range.slice(),c.range[0]=r[u].lo/t.dataScale[u],c.range[1]=r[u].hi/t.dataScale[u],c._m=1/(t.dataScale[u]*r[u].pixelsPerDataUnit),c.range[0]===c.range[1]&&(c.range[0]-=1,c.range[1]+=1);var f=c.tickmode;if("auto"===c.tickmode){c.tickmode="linear";var h=c.nticks||i.constrain(c._length/40,4,9);n.autoTicks(c,Math.abs(c.range[1]-c.range[0])/h)}for(var p=n.calcTicks(c,{msUTC:!0}),d=0;d<p.length;++d)p[d].x=p[d].x*t.dataScale[u],"date"===c.type&&(p[d].text=p[d].text.replace(/\<br\>/g," "));l[u]=p,c.tickmode=f}}for(e.ticks=l,u=0;u<3;++u)for(o[u]=.5*(t.glplot.bounds[0][u]+t.glplot.bounds[1][u]),d=0;d<2;++d)e.bounds[d][u]=t.glplot.bounds[d][u];t.contourLevels=function(t){for(var e=new Array(3),r=0;r<3;++r){for(var n=t[r],i=new Array(n.length),a=0;a<n.length;++a)i[a]=n[a].x;e[r]=i}return e}(l)};var n=r(89298),i=r(71828),a=["xaxis","yaxis","zaxis"],o=[0,0,0]},63538:function(t){"use strict";function e(t,e){var r,n,i=[0,0,0,0];for(r=0;r<4;++r)for(n=0;n<4;++n)i[n]+=t[4*r+n]*e[r];return i}t.exports=function(t,r){return e(t.projection,e(t.view,e(t.model,[r[0],r[1],r[2],1])))}},33539:function(t,e,r){"use strict";var n,i,a=r(9330).gl_plot3d,o=a.createCamera,s=a.createScene,l=r(40372),u=r(38520),c=r(73972),f=r(71828),h=f.preserveDrawingBuffer(),p=r(89298),d=r(30211),v=r(78614),g=r(58617),y=r(63538),m=r(30422),x=r(13133),b=r(96085);function _(t,e){var r=document.createElement("div"),n=t.container;this.graphDiv=t.graphDiv;var i=document.createElementNS("http://www.w3.org/2000/svg","svg");i.style.position="absolute",i.style.top=i.style.left="0px",i.style.width=i.style.height="100%",i.style["z-index"]=20,i.style["pointer-events"]="none",r.appendChild(i),this.svgContainer=i,r.id=t.id,r.style.position="absolute",r.style.top=r.style.left="0px",r.style.width=r.style.height="100%",n.appendChild(r),this.fullLayout=e,this.id=t.id||"scene",this.fullSceneLayout=e[this.id],this.plotArgs=[[],{},{}],this.axesOptions=m(e,e[this.id]),this.spikeOptions=x(e[this.id]),this.container=r,this.staticMode=!!t.staticPlot,this.pixelRatio=this.pixelRatio||t.plotGlPixelRatio||2,this.dataScale=[1,1,1],this.contourLevels=[[],[],[]],this.convertAnnotations=c.getComponentMethod("annotations3d","convert"),this.drawAnnotations=c.getComponentMethod("annotations3d","draw"),this.initializeGLPlot()}var w=_.prototype;w.prepareOptions=function(){var t=this,e={canvas:t.canvas,gl:t.gl,glOptions:{preserveDrawingBuffer:h,premultipliedAlpha:!0,antialias:!0},container:t.container,axes:t.axesOptions,spikes:t.spikeOptions,pickRadius:10,snapToData:!0,autoScale:!0,autoBounds:!1,cameraObject:t.camera,pixelRatio:t.pixelRatio};if(t.staticMode){if(!(i||(n=document.createElement("canvas"),i=l({canvas:n,preserveDrawingBuffer:!0,premultipliedAlpha:!0,antialias:!0}))))throw new Error("error creating static canvas/context for image server");e.gl=i,e.canvas=n}return e};var T=!0;w.tryCreatePlot=function(){var t=this,e=t.prepareOptions(),r=!0;try{t.glplot=s(e)}catch(n){if(t.staticMode||!T||h)r=!1;else{f.warn(["webgl setup failed possibly due to","false preserveDrawingBuffer config.","The mobile/tablet device may not be detected by is-mobile module.","Enabling preserveDrawingBuffer in second attempt to create webgl scene..."].join(" "));try{h=e.glOptions.preserveDrawingBuffer=!0,t.glplot=s(e)}catch(t){h=e.glOptions.preserveDrawingBuffer=!1,r=!1}}}return T=!1,r},w.initializeGLCamera=function(){var t=this,e=t.fullSceneLayout.camera,r="orthographic"===e.projection.type;t.camera=o(t.container,{center:[e.center.x,e.center.y,e.center.z],eye:[e.eye.x,e.eye.y,e.eye.z],up:[e.up.x,e.up.y,e.up.z],_ortho:r,zoomMin:.01,zoomMax:100,mode:"orbit"})},w.initializeGLPlot=function(){var t=this;if(t.initializeGLCamera(),!t.tryCreatePlot())return g(t);t.traces={},t.make4thDimension();var e=t.graphDiv,r=e.layout,n=function(){var e={};return t.isCameraChanged(r)&&(e[t.id+".camera"]=t.getCamera()),t.isAspectChanged(r)&&(e[t.id+".aspectratio"]=t.glplot.getAspectratio(),"manual"!==r[t.id].aspectmode&&(t.fullSceneLayout.aspectmode=r[t.id].aspectmode=e[t.id+".aspectmode"]="manual")),e},i=function(t){if(!1!==t.fullSceneLayout.dragmode){var e=n();t.saveLayout(r),t.graphDiv.emit("plotly_relayout",e)}};return t.glplot.canvas&&(t.glplot.canvas.addEventListener("mouseup",(function(){i(t)})),t.glplot.canvas.addEventListener("wheel",(function(r){if(e._context._scrollZoom.gl3d){if(t.camera._ortho){var n=r.deltaX>r.deltaY?1.1:1/1.1,a=t.glplot.getAspectratio();t.glplot.setAspectratio({x:n*a.x,y:n*a.y,z:n*a.z})}i(t)}}),!!u&&{passive:!1}),t.glplot.canvas.addEventListener("mousemove",(function(){if(!1!==t.fullSceneLayout.dragmode&&0!==t.camera.mouseListener.buttons){var e=n();t.graphDiv.emit("plotly_relayouting",e)}})),t.staticMode||t.glplot.canvas.addEventListener("webglcontextlost",(function(r){e&&e.emit&&e.emit("plotly_webglcontextlost",{event:r,layer:t.id})}),!1)),t.glplot.oncontextloss=function(){t.recoverContext()},t.glplot.onrender=function(){t.render()},!0},w.render=function(){var t,e=this,r=e.graphDiv,n=e.svgContainer,i=e.container.getBoundingClientRect();r._fullLayout._calcInverseTransform(r);var a=r._fullLayout._invScaleX,o=r._fullLayout._invScaleY,s=i.width*a,l=i.height*o;n.setAttributeNS(null,"viewBox","0 0 "+s+" "+l),n.setAttributeNS(null,"width",s),n.setAttributeNS(null,"height",l),b(e),e.glplot.axes.update(e.axesOptions);for(var u=Object.keys(e.traces),c=null,h=e.glplot.selection,v=0;v<u.length;++v)"skip"!==(t=e.traces[u[v]]).data.hoverinfo&&t.handlePick(h)&&(c=t),t.setContourLevels&&t.setContourLevels();function g(t,r,n){var i=e.fullSceneLayout[t+"axis"];return"log"!==i.type&&(r=i.d2l(r)),p.hoverLabelText(i,r,n)}if(null!==c){var m=y(e.glplot.cameraParams,h.dataCoordinate);t=c.data;var x,_=r._fullData[t.index],w=h.index,T={xLabel:g("x",h.traceCoordinate[0],t.xhoverformat),yLabel:g("y",h.traceCoordinate[1],t.yhoverformat),zLabel:g("z",h.traceCoordinate[2],t.zhoverformat)},k=d.castHoverinfo(_,e.fullLayout,w),A=(k||"").split("+"),M=k&&"all"===k;_.hovertemplate||M||(-1===A.indexOf("x")&&(T.xLabel=void 0),-1===A.indexOf("y")&&(T.yLabel=void 0),-1===A.indexOf("z")&&(T.zLabel=void 0),-1===A.indexOf("text")&&(h.textLabel=void 0),-1===A.indexOf("name")&&(c.name=void 0));var S=[];"cone"===t.type||"streamtube"===t.type?(T.uLabel=g("x",h.traceCoordinate[3],t.uhoverformat),(M||-1!==A.indexOf("u"))&&S.push("u: "+T.uLabel),T.vLabel=g("y",h.traceCoordinate[4],t.vhoverformat),(M||-1!==A.indexOf("v"))&&S.push("v: "+T.vLabel),T.wLabel=g("z",h.traceCoordinate[5],t.whoverformat),(M||-1!==A.indexOf("w"))&&S.push("w: "+T.wLabel),T.normLabel=h.traceCoordinate[6].toPrecision(3),(M||-1!==A.indexOf("norm"))&&S.push("norm: "+T.normLabel),"streamtube"===t.type&&(T.divergenceLabel=h.traceCoordinate[7].toPrecision(3),(M||-1!==A.indexOf("divergence"))&&S.push("divergence: "+T.divergenceLabel)),h.textLabel&&S.push(h.textLabel),x=S.join("<br>")):"isosurface"===t.type||"volume"===t.type?(T.valueLabel=p.hoverLabelText(e._mockAxis,e._mockAxis.d2l(h.traceCoordinate[3]),t.valuehoverformat),S.push("value: "+T.valueLabel),h.textLabel&&S.push(h.textLabel),x=S.join("<br>")):x=h.textLabel;var E={x:h.traceCoordinate[0],y:h.traceCoordinate[1],z:h.traceCoordinate[2],data:_._input,fullData:_,curveNumber:_.index,pointNumber:w};d.appendArrayPointValue(E,_,w),t._module.eventData&&(E=_._module.eventData(E,h,_,{},w));var L={points:[E]};if(e.fullSceneLayout.hovermode){var C=[];d.loneHover({trace:_,x:(.5+.5*m[0]/m[3])*s,y:(.5-.5*m[1]/m[3])*l,xLabel:T.xLabel,yLabel:T.yLabel,zLabel:T.zLabel,text:x,name:c.name,color:d.castHoverOption(_,w,"bgcolor")||c.color,borderColor:d.castHoverOption(_,w,"bordercolor"),fontFamily:d.castHoverOption(_,w,"font.family"),fontSize:d.castHoverOption(_,w,"font.size"),fontColor:d.castHoverOption(_,w,"font.color"),nameLength:d.castHoverOption(_,w,"namelength"),textAlign:d.castHoverOption(_,w,"align"),hovertemplate:f.castOption(_,w,"hovertemplate"),hovertemplateLabels:f.extendFlat({},E,T),eventData:[E]},{container:n,gd:r,inOut_bbox:C}),E.bbox=C[0]}h.buttons&&h.distance<5?r.emit("plotly_click",L):r.emit("plotly_hover",L),this.oldEventData=L}else d.loneUnhover(n),this.oldEventData&&r.emit("plotly_unhover",this.oldEventData),this.oldEventData=void 0;e.drawAnnotations(e)},w.recoverContext=function(){var t=this;t.glplot.dispose();var e=function(){t.glplot.gl.isContextLost()?requestAnimationFrame(e):t.initializeGLPlot()?t.plot.apply(t,t.plotArgs):f.error("Catastrophic and unrecoverable WebGL error. Context lost.")};requestAnimationFrame(e)};var k=["xaxis","yaxis","zaxis"];function A(t,e,r){for(var n=t.fullSceneLayout,i=0;i<3;i++){var a=k[i],o=a.charAt(0),s=n[a],l=e[o],u=e[o+"calendar"],c=e["_"+o+"length"];if(f.isArrayOrTypedArray(l))for(var h,p=0;p<(c||l.length);p++)if(f.isArrayOrTypedArray(l[p]))for(var d=0;d<l[p].length;++d)h=s.d2l(l[p][d],0,u),!isNaN(h)&&isFinite(h)&&(r[0][i]=Math.min(r[0][i],h),r[1][i]=Math.max(r[1][i],h));else h=s.d2l(l[p],0,u),!isNaN(h)&&isFinite(h)&&(r[0][i]=Math.min(r[0][i],h),r[1][i]=Math.max(r[1][i],h));else r[0][i]=Math.min(r[0][i],0),r[1][i]=Math.max(r[1][i],c-1)}}w.plot=function(t,e,r){var n=this;if(n.plotArgs=[t,e,r],!n.glplot.contextLost){var i,a,o,s,l,u,c=e[n.id],f=r[n.id];n.fullLayout=e,n.fullSceneLayout=c,n.axesOptions.merge(e,c),n.spikeOptions.merge(c),n.setViewport(c),n.updateFx(c.dragmode,c.hovermode),n.camera.enableWheel=n.graphDiv._context._scrollZoom.gl3d,n.glplot.setClearColor(v(c.bgcolor)),n.setConvert(l),t?Array.isArray(t)||(t=[t]):t=[];var h=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];for(o=0;o<t.length;++o)!0===(i=t[o]).visible&&0!==i._length&&A(this,i,h);!function(t,e){for(var r=t.fullSceneLayout,n=r.annotations||[],i=0;i<3;i++)for(var a=k[i],o=a.charAt(0),s=r[a],l=0;l<n.length;l++){var u=n[l];if(u.visible){var c=s.r2l(u[o]);!isNaN(c)&&isFinite(c)&&(e[0][i]=Math.min(e[0][i],c),e[1][i]=Math.max(e[1][i],c))}}}(this,h);var p=[1,1,1];for(s=0;s<3;++s)h[1][s]===h[0][s]?p[s]=1:p[s]=1/(h[1][s]-h[0][s]);for(n.dataScale=p,n.convertAnnotations(this),o=0;o<t.length;++o)!0===(i=t[o]).visible&&0!==i._length&&((a=n.traces[i.uid])?a.data.type===i.type?a.update(i):(a.dispose(),a=i._module.plot(this,i),n.traces[i.uid]=a):(a=i._module.plot(this,i),n.traces[i.uid]=a),a.name=i.name);var d=Object.keys(n.traces);t:for(o=0;o<d.length;++o){for(s=0;s<t.length;++s)if(t[s].uid===d[o]&&!0===t[s].visible&&0!==t[s]._length)continue t;(a=n.traces[d[o]]).dispose(),delete n.traces[d[o]]}n.glplot.objects.sort((function(t,e){return t._trace.data.index-e._trace.data.index}));var g,y=[[0,0,0],[0,0,0]],m=[],x={};for(o=0;o<3;++o){if((u=(l=c[k[o]]).type)in x?(x[u].acc*=p[o],x[u].count+=1):x[u]={acc:p[o],count:1},l.autorange){y[0][o]=1/0,y[1][o]=-1/0;var b=n.glplot.objects,_=n.fullSceneLayout.annotations||[],w=l._name.charAt(0);for(s=0;s<b.length;s++){var T=b[s],M=T.bounds,S=T._trace.data._pad||0;"ErrorBars"===T.constructor.name&&l._lowerLogErrorBound?y[0][o]=Math.min(y[0][o],l._lowerLogErrorBound):y[0][o]=Math.min(y[0][o],M[0][o]/p[o]-S),y[1][o]=Math.max(y[1][o],M[1][o]/p[o]+S)}for(s=0;s<_.length;s++){var E=_[s];if(E.visible){var L=l.r2l(E[w]);y[0][o]=Math.min(y[0][o],L),y[1][o]=Math.max(y[1][o],L)}}if("rangemode"in l&&"tozero"===l.rangemode&&(y[0][o]=Math.min(y[0][o],0),y[1][o]=Math.max(y[1][o],0)),y[0][o]>y[1][o])y[0][o]=-1,y[1][o]=1;else{var C=y[1][o]-y[0][o];y[0][o]-=C/32,y[1][o]+=C/32}if("reversed"===l.autorange){var P=y[0][o];y[0][o]=y[1][o],y[1][o]=P}}else{var O=l.range;y[0][o]=l.r2l(O[0]),y[1][o]=l.r2l(O[1])}y[0][o]===y[1][o]&&(y[0][o]-=1,y[1][o]+=1),m[o]=y[1][o]-y[0][o],n.glplot.setBounds(o,{min:y[0][o]*p[o],max:y[1][o]*p[o]})}var I=c.aspectmode;if("cube"===I)g=[1,1,1];else if("manual"===I){var D=c.aspectratio;g=[D.x,D.y,D.z]}else{if("auto"!==I&&"data"!==I)throw new Error("scene.js aspectRatio was not one of the enumerated types");var z=[1,1,1];for(o=0;o<3;++o){var R=x[u=(l=c[k[o]]).type];z[o]=Math.pow(R.acc,1/R.count)/p[o]}g="data"===I||Math.max.apply(null,z)/Math.min.apply(null,z)<=4?z:[1,1,1]}c.aspectratio.x=f.aspectratio.x=g[0],c.aspectratio.y=f.aspectratio.y=g[1],c.aspectratio.z=f.aspectratio.z=g[2],n.glplot.setAspectratio(c.aspectratio),n.viewInitial.aspectratio||(n.viewInitial.aspectratio={x:c.aspectratio.x,y:c.aspectratio.y,z:c.aspectratio.z}),n.viewInitial.aspectmode||(n.viewInitial.aspectmode=c.aspectmode);var F=c.domain||null,B=e._size||null;if(F&&B){var N=n.container.style;N.position="absolute",N.left=B.l+F.x[0]*B.w+"px",N.top=B.t+(1-F.y[1])*B.h+"px",N.width=B.w*(F.x[1]-F.x[0])+"px",N.height=B.h*(F.y[1]-F.y[0])+"px"}n.glplot.redraw()}},w.destroy=function(){var t=this;t.glplot&&(t.camera.mouseListener.enabled=!1,t.container.removeEventListener("wheel",t.camera.wheelListener),t.camera=null,t.glplot.dispose(),t.container.parentNode.removeChild(t.container),t.glplot=null)},w.getCamera=function(){var t,e=this;return e.camera.view.recalcMatrix(e.camera.view.lastT()),{up:{x:(t=e.camera).up[0],y:t.up[1],z:t.up[2]},center:{x:t.center[0],y:t.center[1],z:t.center[2]},eye:{x:t.eye[0],y:t.eye[1],z:t.eye[2]},projection:{type:!0===t._ortho?"orthographic":"perspective"}}},w.setViewport=function(t){var e,r=this,n=t.camera;r.camera.lookAt.apply(this,[[(e=n).eye.x,e.eye.y,e.eye.z],[e.center.x,e.center.y,e.center.z],[e.up.x,e.up.y,e.up.z]]),r.glplot.setAspectratio(t.aspectratio),"orthographic"===n.projection.type!==r.camera._ortho&&(r.glplot.redraw(),r.glplot.clearRGBA(),r.glplot.dispose(),r.initializeGLPlot())},w.isCameraChanged=function(t){var e=this.getCamera(),r=f.nestedProperty(t,this.id+".camera").get();function n(t,e,r,n){var i=["up","center","eye"],a=["x","y","z"];return e[i[r]]&&t[i[r]][a[n]]===e[i[r]][a[n]]}var i=!1;if(void 0===r)i=!0;else{for(var a=0;a<3;a++)for(var o=0;o<3;o++)if(!n(e,r,a,o)){i=!0;break}(!r.projection||e.projection&&e.projection.type!==r.projection.type)&&(i=!0)}return i},w.isAspectChanged=function(t){var e=this.glplot.getAspectratio(),r=f.nestedProperty(t,this.id+".aspectratio").get();return void 0===r||r.x!==e.x||r.y!==e.y||r.z!==e.z},w.saveLayout=function(t){var e,r,n,i,a,o,s=this,l=s.fullLayout,u=s.isCameraChanged(t),h=s.isAspectChanged(t),p=u||h;if(p){var d={};u&&(e=s.getCamera(),n=(r=f.nestedProperty(t,s.id+".camera")).get(),d[s.id+".camera"]=n),h&&(i=s.glplot.getAspectratio(),o=(a=f.nestedProperty(t,s.id+".aspectratio")).get(),d[s.id+".aspectratio"]=o),c.call("_storeDirectGUIEdit",t,l._preGUI,d),u&&(r.set(e),f.nestedProperty(l,s.id+".camera").set(e)),h&&(a.set(i),f.nestedProperty(l,s.id+".aspectratio").set(i),s.glplot.redraw())}return p},w.updateFx=function(t,e){var r=this,n=r.camera;if(n)if("orbit"===t)n.mode="orbit",n.keyBindingMode="rotate";else if("turntable"===t){n.up=[0,0,1],n.mode="turntable",n.keyBindingMode="rotate";var i=r.graphDiv,a=i._fullLayout,o=r.fullSceneLayout.camera,s=o.up.x,l=o.up.y,u=o.up.z;if(u/Math.sqrt(s*s+l*l+u*u)<.999){var h=r.id+".camera.up",p={x:0,y:0,z:1},d={};d[h]=p;var v=i.layout;c.call("_storeDirectGUIEdit",v,a._preGUI,d),o.up=p,f.nestedProperty(v,h).set(p)}}else n.keyBindingMode=t;r.fullSceneLayout.hovermode=e},w.toImage=function(t){var e=this;t||(t="png"),e.staticMode&&e.container.appendChild(n),e.glplot.redraw();var r=e.glplot.gl,i=r.drawingBufferWidth,a=r.drawingBufferHeight;r.bindFramebuffer(r.FRAMEBUFFER,null);var o=new Uint8Array(i*a*4);r.readPixels(0,0,i,a,r.RGBA,r.UNSIGNED_BYTE,o),function(t,e,r){for(var n=0,i=r-1;n<i;++n,--i)for(var a=0;a<e;++a)for(var o=0;o<4;++o){var s=4*(e*n+a)+o,l=4*(e*i+a)+o,u=t[s];t[s]=t[l],t[l]=u}}(o,i,a),function(t,e,r){for(var n=0;n<r;++n)for(var i=0;i<e;++i){var a=4*(e*n+i),o=t[a+3];if(o>0)for(var s=255/o,l=0;l<3;++l)t[a+l]=Math.min(s*t[a+l],255)}}(o,i,a);var s=document.createElement("canvas");s.width=i,s.height=a;var l,u=s.getContext("2d",{willReadFrequently:!0}),c=u.createImageData(i,a);switch(c.data.set(o),u.putImageData(c,0,0),t){case"jpeg":l=s.toDataURL("image/jpeg");break;case"webp":l=s.toDataURL("image/webp");break;default:l=s.toDataURL("image/png")}return e.staticMode&&e.container.removeChild(n),l},w.setConvert=function(){for(var t=0;t<3;t++){var e=this.fullSceneLayout[k[t]];p.setConvert(e,this.fullLayout),e.setScale=f.noop}},w.make4thDimension=function(){var t=this,e=t.graphDiv._fullLayout;t._mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},p.setConvert(t._mockAxis,e)},t.exports=_},90060:function(t){"use strict";t.exports=function(t,e,r,n){n=n||t.length;for(var i=new Array(n),a=0;a<n;a++)i[a]=[t[a],e[a],r[a]];return i}},10820:function(t,e,r){"use strict";var n=r(41940),i=r(85594),a=r(22399),o=r(29241),s=r(53777),l=r(35025),u=r(1426).extendFlat,c=n({editType:"calc"});c.family.dflt='"Open Sans", verdana, arial, sans-serif',c.size.dflt=12,c.color.dflt=a.defaultLine,t.exports={font:c,title:{text:{valType:"string",editType:"layoutstyle"},font:n({editType:"layoutstyle"}),xref:{valType:"enumerated",dflt:"container",values:["container","paper"],editType:"layoutstyle"},yref:{valType:"enumerated",dflt:"container",values:["container","paper"],editType:"layoutstyle"},x:{valType:"number",min:0,max:1,dflt:.5,editType:"layoutstyle"},y:{valType:"number",min:0,max:1,dflt:"auto",editType:"layoutstyle"},xanchor:{valType:"enumerated",dflt:"auto",values:["auto","left","center","right"],editType:"layoutstyle"},yanchor:{valType:"enumerated",dflt:"auto",values:["auto","top","middle","bottom"],editType:"layoutstyle"},pad:u(l({editType:"layoutstyle"}),{}),editType:"layoutstyle"},uniformtext:{mode:{valType:"enumerated",values:[!1,"hide","show"],dflt:!1,editType:"plot"},minsize:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"plot"},autosize:{valType:"boolean",dflt:!1,editType:"none"},width:{valType:"number",min:10,dflt:700,editType:"plot"},height:{valType:"number",min:10,dflt:450,editType:"plot"},minreducedwidth:{valType:"number",min:2,dflt:64,editType:"plot"},minreducedheight:{valType:"number",min:2,dflt:64,editType:"plot"},margin:{l:{valType:"number",min:0,dflt:80,editType:"plot"},r:{valType:"number",min:0,dflt:80,editType:"plot"},t:{valType:"number",min:0,dflt:100,editType:"plot"},b:{valType:"number",min:0,dflt:80,editType:"plot"},pad:{valType:"number",min:0,dflt:0,editType:"plot"},autoexpand:{valType:"boolean",dflt:!0,editType:"plot"},editType:"plot"},computed:{valType:"any",editType:"none"},paper_bgcolor:{valType:"color",dflt:a.background,editType:"plot"},plot_bgcolor:{valType:"color",dflt:a.background,editType:"layoutstyle"},autotypenumbers:{valType:"enumerated",values:["convert types","strict"],dflt:"convert types",editType:"calc"},separators:{valType:"string",editType:"plot"},hidesources:{valType:"boolean",dflt:!1,editType:"plot"},showlegend:{valType:"boolean",editType:"legend"},colorway:{valType:"colorlist",dflt:a.defaults,editType:"calc"},datarevision:{valType:"any",editType:"calc"},uirevision:{valType:"any",editType:"none"},editrevision:{valType:"any",editType:"none"},selectionrevision:{valType:"any",editType:"none"},template:{valType:"any",editType:"calc"},newshape:o.newshape,activeshape:o.activeshape,newselection:s.newselection,activeselection:s.activeselection,meta:{valType:"any",arrayOk:!0,editType:"plot"},transition:u({},i.transition,{editType:"none"}),_deprecated:{title:{valType:"string",editType:"layoutstyle"},titlefont:n({editType:"layoutstyle"})}}},77734:function(t,e,r){"use strict";var n=r(78607),i='© <a target="_blank" href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',a=['© <a target="_blank" href="https://carto.com/">Carto</a>',i].join(" "),o=['Map tiles by <a target="_blank" href="https://stamen.com">Stamen Design</a>','under <a target="_blank" href="https://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>',"|",'Data by <a target="_blank" href="https://openstreetmap.org">OpenStreetMap</a> contributors','under <a target="_blank" href="https://www.openstreetmap.org/copyright">ODbL</a>'].join(" "),s={"open-street-map":{id:"osm",version:8,sources:{"plotly-osm-tiles":{type:"raster",attribution:i,tiles:["https://a.tile.openstreetmap.org/{z}/{x}/{y}.png","https://b.tile.openstreetmap.org/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-osm-tiles",type:"raster",source:"plotly-osm-tiles",minzoom:0,maxzoom:22}]},"white-bg":{id:"white-bg",version:8,sources:{},layers:[{id:"white-bg",type:"background",paint:{"background-color":"#FFFFFF"},minzoom:0,maxzoom:22}]},"carto-positron":{id:"carto-positron",version:8,sources:{"plotly-carto-positron":{type:"raster",attribution:a,tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-carto-positron",type:"raster",source:"plotly-carto-positron",minzoom:0,maxzoom:22}]},"carto-darkmatter":{id:"carto-darkmatter",version:8,sources:{"plotly-carto-darkmatter":{type:"raster",attribution:a,tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/dark_all/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-carto-darkmatter",type:"raster",source:"plotly-carto-darkmatter",minzoom:0,maxzoom:22}]},"stamen-terrain":{id:"stamen-terrain",version:8,sources:{"plotly-stamen-terrain":{type:"raster",attribution:o,tiles:["https://stamen-tiles.a.ssl.fastly.net/terrain/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-terrain",type:"raster",source:"plotly-stamen-terrain",minzoom:0,maxzoom:22}]},"stamen-toner":{id:"stamen-toner",version:8,sources:{"plotly-stamen-toner":{type:"raster",attribution:o,tiles:["https://stamen-tiles.a.ssl.fastly.net/toner/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-toner",type:"raster",source:"plotly-stamen-toner",minzoom:0,maxzoom:22}]},"stamen-watercolor":{id:"stamen-watercolor",version:8,sources:{"plotly-stamen-watercolor":{type:"raster",attribution:['Map tiles by <a target="_blank" href="https://stamen.com">Stamen Design</a>','under <a target="_blank" href="https://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>',"|",'Data by <a target="_blank" href="https://openstreetmap.org">OpenStreetMap</a> contributors','under <a target="_blank" href="https://creativecommons.org/licenses/by-sa/3.0">CC BY SA</a>'].join(" "),tiles:["https://stamen-tiles.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-watercolor",type:"raster",source:"plotly-stamen-watercolor",minzoom:0,maxzoom:22}]}},l=n(s);t.exports={requiredVersion:"1.10.1",styleUrlPrefix:"mapbox://styles/mapbox/",styleUrlSuffix:"v9",styleValuesMapbox:["basic","streets","outdoors","light","dark","satellite","satellite-streets"],styleValueDflt:"basic",stylesNonMapbox:s,styleValuesNonMapbox:l,traceLayerPrefix:"plotly-trace-layer-",layoutLayerPrefix:"plotly-layout-layer-",wrongVersionErrorMsg:["Your custom plotly.js bundle is not using the correct mapbox-gl version","Please install mapbox-gl@1.10.1."].join("\n"),noAccessTokenErrorMsg:["Missing Mapbox access token.","Mapbox trace type require a Mapbox access token to be registered.","For example:","  Plotly.newPlot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });","More info here: https://www.mapbox.com/help/define-access-token/"].join("\n"),missingStyleErrorMsg:["No valid mapbox style found, please set `mapbox.style` to one of:",l.join(", "),"or register a Mapbox access token to use a Mapbox-served style."].join("\n"),multipleTokensErrorMsg:["Set multiple mapbox access token across different mapbox subplot,","using first token found as mapbox-gl does not allow multipleaccess tokens on the same page."].join("\n"),mapOnErrorMsg:"Mapbox error.",mapboxLogo:{path0:"m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z",path1:"M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z",path2:"M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z",polygon:"11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34"},styleRules:{map:"overflow:hidden;position:relative;","missing-css":"display:none;",canary:"background-color:salmon;","ctrl-bottom-left":"position: absolute; pointer-events: none; z-index: 2; bottom: 0; left: 0;","ctrl-bottom-right":"position: absolute; pointer-events: none; z-index: 2; right: 0; bottom: 0;",ctrl:"clear: both; pointer-events: auto; transform: translate(0, 0);","ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner":"display: none;","ctrl-attrib.mapboxgl-compact:hover .mapboxgl-ctrl-attrib-inner":"display: block; margin-top:2px","ctrl-attrib.mapboxgl-compact:hover":"padding: 2px 24px 2px 4px; visibility: visible; margin-top: 6px;","ctrl-attrib.mapboxgl-compact::after":'content: ""; cursor: pointer; position: absolute; background-image: url(\'data:image/svg+xml;charset=utf-8,%3Csvg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"%3E %3Cpath fill="%23333333" fill-rule="evenodd" d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0 M9,7a1,1 0 1,0 2,0a1,1 0 1,0 -2,0 M9,10a1,1 0 1,1 2,0l0,3a1,1 0 1,1 -2,0"/%3E %3C/svg%3E\'); background-color: rgba(255, 255, 255, 0.5); width: 24px; height: 24px; box-sizing: border-box; border-radius: 12px;',"ctrl-attrib.mapboxgl-compact":"min-height: 20px; padding: 0; margin: 10px; position: relative; background-color: #fff; border-radius: 3px 12px 12px 3px;","ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; right: 0","ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; left: 0","ctrl-bottom-left .mapboxgl-ctrl":"margin: 0 0 10px 10px; float: left;","ctrl-bottom-right .mapboxgl-ctrl":"margin: 0 10px 10px 0; float: right;","ctrl-attrib":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a:hover":"color: inherit; text-decoration: underline;","ctrl-attrib .mapbox-improve-map":"font-weight: bold; margin-left: 2px;","attrib-empty":"display: none;","ctrl-logo":'display:block; width: 21px; height: 21px; background-image: url(\'data:image/svg+xml;charset=utf-8,%3C?xml version="1.0" encoding="utf-8"?%3E %3Csvg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 21 21" style="enable-background:new 0 0 21 21;" xml:space="preserve"%3E%3Cg transform="translate(0,0.01)"%3E%3Cpath d="m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z" style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3Cpath d="M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpath d="M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpolygon points="11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34 " style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3C/g%3E%3C/svg%3E\')'}}},13056:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){var r=t.split(" "),i=r[0],a=r[1],o=n.isArrayOrTypedArray(e)?n.mean(e):e,s=.5+o/100,l=1.5+o/100,u=["",""],c=[0,0];switch(i){case"top":u[0]="top",c[1]=-l;break;case"bottom":u[0]="bottom",c[1]=l}switch(a){case"left":u[1]="right",c[0]=-s;break;case"right":u[1]="left",c[0]=s}return{anchor:u[0]&&u[1]?u.join("-"):u[0]?u[0]:u[1]?u[1]:"center",offset:c}}},50101:function(t,e,r){"use strict";var n=r(44517),i=r(71828),a=i.strTranslate,o=i.strScale,s=r(27659).AU,l=r(77922),u=r(39898),c=r(91424),f=r(63893),h=r(10481),p="mapbox",d=e.constants=r(77734);function v(t){return"string"==typeof t&&(-1!==d.styleValuesMapbox.indexOf(t)||0===t.indexOf("mapbox://"))}e.name=p,e.attr="subplot",e.idRoot=p,e.idRegex=e.attrRegex=i.counterRegex(p),e.attributes={subplot:{valType:"subplotid",dflt:"mapbox",editType:"calc"}},e.layoutAttributes=r(23585),e.supplyLayoutDefaults=r(77882),e.plot=function(t){var e=t._fullLayout,r=t.calcdata,a=e._subplots.mapbox;if(n.version!==d.requiredVersion)throw new Error(d.wrongVersionErrorMsg);var o=function(t,e){var r=t._fullLayout;if(""===t._context.mapboxAccessToken)return"";for(var n=[],a=[],o=!1,s=!1,l=0;l<e.length;l++){var u=r[e[l]],c=u.accesstoken;v(u.style)&&(c?i.pushUnique(n,c):(v(u._input.style)&&(i.error("Uses Mapbox map style, but did not set an access token."),o=!0),s=!0)),c&&i.pushUnique(a,c)}if(s){var f=o?d.noAccessTokenErrorMsg:d.missingStyleErrorMsg;throw i.error(f),new Error(f)}return n.length?(n.length>1&&i.warn(d.multipleTokensErrorMsg),n[0]):(a.length&&i.log(["Listed mapbox access token(s)",a.join(","),"but did not use a Mapbox map style, ignoring token(s)."].join(" ")),"")}(t,a);n.accessToken=o;for(var l=0;l<a.length;l++){var u=a[l],c=s(r,p,u),f=e[u],g=f._subplot;g||(g=new h(t,u),e[u]._subplot=g),g.viewInitial||(g.viewInitial={center:i.extendFlat({},f.center),zoom:f.zoom,bearing:f.bearing,pitch:f.pitch}),g.plot(c,e,t._promises)}},e.clean=function(t,e,r,n){for(var i=n._subplots.mapbox||[],a=0;a<i.length;a++){var o=i[a];!e[o]&&n[o]._subplot&&n[o]._subplot.destroy()}},e.toSVG=function(t){for(var e=t._fullLayout,r=e._subplots.mapbox,n=e._size,i=0;i<r.length;i++){var s=e[r[i]],h=s.domain,p=s._subplot.toImage("png");e._glimages.append("svg:image").attr({xmlns:l.svg,"xlink:href":p,x:n.l+n.w*h.x[0],y:n.t+n.h*(1-h.y[1]),width:n.w*(h.x[1]-h.x[0]),height:n.h*(h.y[1]-h.y[0]),preserveAspectRatio:"none"});var v=u.select(s._subplot.div);if(null!==v.select(".mapboxgl-ctrl-logo").node().offsetParent){var g=e._glimages.append("g");g.attr("transform",a(n.l+n.w*h.x[0]+10,n.t+n.h*(1-h.y[0])-31)),g.append("path").attr("d",d.mapboxLogo.path0).style({opacity:.9,fill:"#ffffff","enable-background":"new"}),g.append("path").attr("d",d.mapboxLogo.path1).style("opacity",.35).style("enable-background","new"),g.append("path").attr("d",d.mapboxLogo.path2).style("opacity",.35).style("enable-background","new"),g.append("polygon").attr("points",d.mapboxLogo.polygon).style({opacity:.9,fill:"#ffffff","enable-background":"new"})}var y=v.select(".mapboxgl-ctrl-attrib").text().replace("Improve this map",""),m=e._glimages.append("g"),x=m.append("text");x.text(y).classed("static-attribution",!0).attr({"font-size":12,"font-family":"Arial",color:"rgba(0, 0, 0, 0.75)","text-anchor":"end","data-unformatted":y});var b=c.bBox(x.node()),_=n.w*(h.x[1]-h.x[0]);if(b.width>_/2){var w=y.split("|").join("<br>");x.text(w).attr("data-unformatted",w).call(f.convertToTspans,t),b=c.bBox(x.node())}x.attr("transform",a(-3,8-b.height)),m.insert("rect",".static-attribution").attr({x:-b.width-6,y:-b.height-3,width:b.width+6,height:b.height+3,fill:"rgba(255, 255, 255, 0.75)"});var T=1;b.width+6>_&&(T=_/(b.width+6));var k=[n.l+n.w*h.x[1],n.t+n.h*(1-h.y[0])];m.attr("transform",a(k[0],k[1])+o(T))}},e.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.mapbox,n=0;n<r.length;n++)e[r[n]]._subplot.updateFx(e)}},67911:function(t,e,r){"use strict";var n=r(71828),i=r(63893).sanitizeHTML,a=r(13056),o=r(77734);function s(t,e){this.subplot=t,this.uid=t.uid+"-"+e,this.index=e,this.idSource="source-"+this.uid,this.idLayer=o.layoutLayerPrefix+this.uid,this.sourceType=null,this.source=null,this.layerType=null,this.below=null,this.visible=!1}var l=s.prototype;function u(t){if(!t.visible)return!1;var e=t.source;if(Array.isArray(e)&&e.length>0){for(var r=0;r<e.length;r++)if("string"!=typeof e[r]||0===e[r].length)return!1;return!0}return n.isPlainObject(e)||"string"==typeof e&&e.length>0}function c(t){var e={},r={};switch(t.type){case"circle":n.extendFlat(r,{"circle-radius":t.circle.radius,"circle-color":t.color,"circle-opacity":t.opacity});break;case"line":n.extendFlat(r,{"line-width":t.line.width,"line-color":t.color,"line-opacity":t.opacity,"line-dasharray":t.line.dash});break;case"fill":n.extendFlat(r,{"fill-color":t.color,"fill-outline-color":t.fill.outlinecolor,"fill-opacity":t.opacity});break;case"symbol":var i=t.symbol,o=a(i.textposition,i.iconsize);n.extendFlat(e,{"icon-image":i.icon+"-15","icon-size":i.iconsize/10,"text-field":i.text,"text-size":i.textfont.size,"text-anchor":o.anchor,"text-offset":o.offset,"symbol-placement":i.placement}),n.extendFlat(r,{"icon-color":t.color,"text-color":i.textfont.color,"text-opacity":t.opacity});break;case"raster":n.extendFlat(r,{"raster-fade-duration":0,"raster-opacity":t.opacity})}return{layout:e,paint:r}}l.update=function(t){this.visible?this.needsNewImage(t)?this.updateImage(t):this.needsNewSource(t)?(this.removeLayer(),this.updateSource(t),this.updateLayer(t)):this.needsNewLayer(t)?this.updateLayer(t):this.updateStyle(t):(this.updateSource(t),this.updateLayer(t)),this.visible=u(t)},l.needsNewImage=function(t){return this.subplot.map.getSource(this.idSource)&&"image"===this.sourceType&&"image"===t.sourcetype&&(this.source!==t.source||JSON.stringify(this.coordinates)!==JSON.stringify(t.coordinates))},l.needsNewSource=function(t){return this.sourceType!==t.sourcetype||JSON.stringify(this.source)!==JSON.stringify(t.source)||this.layerType!==t.type},l.needsNewLayer=function(t){return this.layerType!==t.type||this.below!==this.subplot.belowLookup["layout-"+this.index]},l.lookupBelow=function(){return this.subplot.belowLookup["layout-"+this.index]},l.updateImage=function(t){this.subplot.map.getSource(this.idSource).updateImage({url:t.source,coordinates:t.coordinates});var e=this.findFollowingMapboxLayerId(this.lookupBelow());null!==e&&this.subplot.map.moveLayer(this.idLayer,e)},l.updateSource=function(t){var e=this.subplot.map;if(e.getSource(this.idSource)&&e.removeSource(this.idSource),this.sourceType=t.sourcetype,this.source=t.source,u(t)){var r=function(t){var e,r=t.sourcetype,n=t.source,a={type:r};return"geojson"===r?e="data":"vector"===r?e="string"==typeof n?"url":"tiles":"raster"===r?(e="tiles",a.tileSize=256):"image"===r&&(e="url",a.coordinates=t.coordinates),a[e]=n,t.sourceattribution&&(a.attribution=i(t.sourceattribution)),a}(t);e.addSource(this.idSource,r)}},l.findFollowingMapboxLayerId=function(t){if("traces"===t)for(var e=this.subplot.getMapLayers(),r=0;r<e.length;r++){var n=e[r].id;if("string"==typeof n&&0===n.indexOf(o.traceLayerPrefix)){t=n;break}}return t},l.updateLayer=function(t){var e=this.subplot,r=c(t),n=this.lookupBelow(),i=this.findFollowingMapboxLayerId(n);this.removeLayer(),u(t)&&e.addLayer({id:this.idLayer,source:this.idSource,"source-layer":t.sourcelayer||"",type:t.type,minzoom:t.minzoom,maxzoom:t.maxzoom,layout:r.layout,paint:r.paint},i),this.layerType=t.type,this.below=n},l.updateStyle=function(t){if(u(t)){var e=c(t);this.subplot.setOptions(this.idLayer,"setLayoutProperty",e.layout),this.subplot.setOptions(this.idLayer,"setPaintProperty",e.paint)}},l.removeLayer=function(){var t=this.subplot.map;t.getLayer(this.idLayer)&&t.removeLayer(this.idLayer)},l.dispose=function(){var t=this.subplot.map;t.getLayer(this.idLayer)&&t.removeLayer(this.idLayer),t.getSource(this.idSource)&&t.removeSource(this.idSource)},t.exports=function(t,e,r){var n=new s(t,e);return n.update(r),n}},23585:function(t,e,r){"use strict";var n=r(71828),i=r(7901).defaultLine,a=r(27670).Y,o=r(41940),s=r(82196).textposition,l=r(30962).overrideAll,u=r(44467).templatedArray,c=r(77734),f=o({});f.family.dflt="Open Sans Regular, Arial Unicode MS Regular",(t.exports=l({_arrayAttrRegexps:[n.counterRegex("mapbox",".layers",!0)],domain:a({name:"mapbox"}),accesstoken:{valType:"string",noBlank:!0,strict:!0},style:{valType:"any",values:c.styleValuesMapbox.concat(c.styleValuesNonMapbox),dflt:c.styleValueDflt},center:{lon:{valType:"number",dflt:0},lat:{valType:"number",dflt:0}},zoom:{valType:"number",dflt:1},bearing:{valType:"number",dflt:0},pitch:{valType:"number",dflt:0},bounds:{west:{valType:"number"},east:{valType:"number"},south:{valType:"number"},north:{valType:"number"}},layers:u("layer",{visible:{valType:"boolean",dflt:!0},sourcetype:{valType:"enumerated",values:["geojson","vector","raster","image"],dflt:"geojson"},source:{valType:"any"},sourcelayer:{valType:"string",dflt:""},sourceattribution:{valType:"string"},type:{valType:"enumerated",values:["circle","line","fill","symbol","raster"],dflt:"circle"},coordinates:{valType:"any"},below:{valType:"string"},color:{valType:"color",dflt:i},opacity:{valType:"number",min:0,max:1,dflt:1},minzoom:{valType:"number",min:0,max:24,dflt:0},maxzoom:{valType:"number",min:0,max:24,dflt:24},circle:{radius:{valType:"number",dflt:15}},line:{width:{valType:"number",dflt:2},dash:{valType:"data_array"}},fill:{outlinecolor:{valType:"color",dflt:i}},symbol:{icon:{valType:"string",dflt:"marker"},iconsize:{valType:"number",dflt:10},text:{valType:"string",dflt:""},placement:{valType:"enumerated",values:["point","line","line-center"],dflt:"point"},textfont:f,textposition:n.extendFlat({},s,{arrayOk:!1})}})},"plot","from-root")).uirevision={valType:"any",editType:"none"}},77882:function(t,e,r){"use strict";var n=r(71828),i=r(49119),a=r(85501),o=r(23585);function s(t,e,r,n){r("accesstoken",n.accessToken),r("style"),r("center.lon"),r("center.lat"),r("zoom"),r("bearing"),r("pitch");var i=r("bounds.west"),o=r("bounds.east"),s=r("bounds.south"),u=r("bounds.north");void 0!==i&&void 0!==o&&void 0!==s&&void 0!==u||delete e.bounds,a(t,e,{name:"layers",handleItemDefaults:l}),e._input=t}function l(t,e){function r(r,i){return n.coerce(t,e,o.layers,r,i)}if(r("visible")){var i,a=r("sourcetype"),s="raster"===a||"image"===a;r("source"),r("sourceattribution"),"vector"===a&&r("sourcelayer"),"image"===a&&r("coordinates"),s&&(i="raster");var l=r("type",i);s&&"raster"!==l&&(l=e.type="raster",n.log("Source types *raster* and *image* must drawn *raster* layer type.")),r("below"),r("color"),r("opacity"),r("minzoom"),r("maxzoom"),"circle"===l&&r("circle.radius"),"line"===l&&(r("line.width"),r("line.dash")),"fill"===l&&r("fill.outlinecolor"),"symbol"===l&&(r("symbol.icon"),r("symbol.iconsize"),r("symbol.text"),n.coerceFont(r,"symbol.textfont"),r("symbol.textposition"),r("symbol.placement"))}}t.exports=function(t,e,r){i(t,e,r,{type:"mapbox",attributes:o,handleDefaults:s,partition:"y",accessToken:e._mapboxAccessToken})}},10481:function(t,e,r){"use strict";var n=r(44517),i=r(71828),a=r(41327),o=r(73972),s=r(89298),l=r(28569),u=r(30211),c=r(64505),f=c.drawMode,h=c.selectMode,p=r(47322).prepSelect,d=r(47322).clearOutline,v=r(47322).clearSelectionsCache,g=r(47322).selectOnClick,y=r(77734),m=r(67911);function x(t,e){this.id=e,this.gd=t;var r=t._fullLayout,n=t._context;this.container=r._glcontainer.node(),this.isStatic=n.staticPlot,this.uid=r._uid+"-"+this.id,this.div=null,this.xaxis=null,this.yaxis=null,this.createFramework(r),this.map=null,this.accessToken=null,this.styleObj=null,this.traceHash={},this.layerList=[],this.belowLookup={},this.dragging=!1,this.wheeling=!1}var b=x.prototype;b.plot=function(t,e,r){var n,i=this,a=e[i.id];i.map&&a.accesstoken!==i.accessToken&&(i.map.remove(),i.map=null,i.styleObj=null,i.traceHash={},i.layerList=[]),n=i.map?new Promise((function(r,n){i.updateMap(t,e,r,n)})):new Promise((function(r,n){i.createMap(t,e,r,n)})),r.push(n)},b.createMap=function(t,e,r,i){var o=this,s=e[o.id],l=o.styleObj=w(s.style);o.accessToken=s.accesstoken;var u=s.bounds,c=u?[[u.west,u.south],[u.east,u.north]]:null,f=o.map=new n.Map({container:o.div,style:l.style,center:k(s.center),zoom:s.zoom,bearing:s.bearing,pitch:s.pitch,maxBounds:c,interactive:!o.isStatic,preserveDrawingBuffer:o.isStatic,doubleClickZoom:!1,boxZoom:!1,attributionControl:!1}).addControl(new n.AttributionControl({compact:!0}));f._canvas.style.left="0px",f._canvas.style.top="0px",o.rejectOnError(i),o.isStatic||o.initFx(t,e);var h=[];h.push(new Promise((function(t){f.once("load",t)}))),h=h.concat(a.fetchTraceGeoData(t)),Promise.all(h).then((function(){o.fillBelowLookup(t,e),o.updateData(t),o.updateLayout(e),o.resolveOnRender(r)})).catch(i)},b.updateMap=function(t,e,r,n){var i=this,o=i.map,s=e[this.id];i.rejectOnError(n);var l=[],u=w(s.style);JSON.stringify(i.styleObj)!==JSON.stringify(u)&&(i.styleObj=u,o.setStyle(u.style),i.traceHash={},l.push(new Promise((function(t){o.once("styledata",t)})))),l=l.concat(a.fetchTraceGeoData(t)),Promise.all(l).then((function(){i.fillBelowLookup(t,e),i.updateData(t),i.updateLayout(e),i.resolveOnRender(r)})).catch(n)},b.fillBelowLookup=function(t,e){var r,n,i=e[this.id].layers,a=this.belowLookup={},o=!1;for(r=0;r<t.length;r++){var s=t[r][0].trace,l=s._module;"string"==typeof s.below?n=s.below:l.getBelow&&(n=l.getBelow(s,this)),""===n&&(o=!0),a["trace-"+s.uid]=n||""}for(r=0;r<i.length;r++){var u=i[r];n="string"==typeof u.below?u.below:o?"traces":"",a["layout-"+r]=n}var c,f,h={};for(c in a)h[n=a[c]]?h[n].push(c):h[n]=[c];for(n in h){var p=h[n];if(p.length>1)for(r=0;r<p.length;r++)0===(c=p[r]).indexOf("trace-")?(f=c.split("trace-")[1],this.traceHash[f]&&(this.traceHash[f].below=null)):0===c.indexOf("layout-")&&(f=c.split("layout-")[1],this.layerList[f]&&(this.layerList[f].below=null))}};var _={choroplethmapbox:0,densitymapbox:1,scattermapbox:2};function w(t){var e={};return i.isPlainObject(t)?(e.id=t.id,e.style=t):"string"==typeof t?(e.id=t,-1!==y.styleValuesMapbox.indexOf(t)?e.style=T(t):y.stylesNonMapbox[t]?e.style=y.stylesNonMapbox[t]:e.style=t):(e.id=y.styleValueDflt,e.style=T(y.styleValueDflt)),e.transition={duration:0,delay:0},e}function T(t){return y.styleUrlPrefix+t+"-"+y.styleUrlSuffix}function k(t){return[t.lon,t.lat]}b.updateData=function(t){var e,r,n,i,a=this.traceHash,o=t.slice().sort((function(t,e){return _[t[0].trace.type]-_[e[0].trace.type]}));for(n=0;n<o.length;n++){var s=o[n],l=!1;(e=a[(r=s[0].trace).uid])&&(e.type===r.type?(e.update(s),l=!0):e.dispose()),!l&&r._module&&(a[r.uid]=r._module.plot(this,s))}var u=Object.keys(a);t:for(n=0;n<u.length;n++){var c=u[n];for(i=0;i<t.length;i++)if(c===(r=t[i][0].trace).uid)continue t;(e=a[c]).dispose(),delete a[c]}},b.updateLayout=function(t){var e=this.map,r=t[this.id];this.dragging||this.wheeling||(e.setCenter(k(r.center)),e.setZoom(r.zoom),e.setBearing(r.bearing),e.setPitch(r.pitch)),this.updateLayers(t),this.updateFramework(t),this.updateFx(t),this.map.resize(),this.gd._context._scrollZoom.mapbox?e.scrollZoom.enable():e.scrollZoom.disable()},b.resolveOnRender=function(t){var e=this.map;e.on("render",(function r(){e.loaded()&&(e.off("render",r),setTimeout(t,10))}))},b.rejectOnError=function(t){var e=this.map;function r(){t(new Error(y.mapOnErrorMsg))}e.once("error",r),e.once("style.error",r),e.once("source.error",r),e.once("tile.error",r),e.once("layer.error",r)},b.createFramework=function(t){var e=this,r=e.div=document.createElement("div");r.id=e.uid,r.style.position="absolute",e.container.appendChild(r),e.xaxis={_id:"x",c2p:function(t){return e.project(t).x}},e.yaxis={_id:"y",c2p:function(t){return e.project(t).y}},e.updateFramework(t),e.mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},s.setConvert(e.mockAxis,t)},b.initFx=function(t,e){var r=this,n=r.gd,i=r.map;function a(){u.loneUnhover(e._hoverlayer)}function s(){var t=r.getView();n.emit("plotly_relayouting",r.getViewEditsWithDerived(t))}i.on("moveend",(function(t){if(r.map){var e=n._fullLayout;if(t.originalEvent||r.wheeling){var i=e[r.id];o.call("_storeDirectGUIEdit",n.layout,e._preGUI,r.getViewEdits(i));var a=r.getView();i._input.center=i.center=a.center,i._input.zoom=i.zoom=a.zoom,i._input.bearing=i.bearing=a.bearing,i._input.pitch=i.pitch=a.pitch,n.emit("plotly_relayout",r.getViewEditsWithDerived(a))}t.originalEvent&&"mouseup"===t.originalEvent.type?r.dragging=!1:r.wheeling&&(r.wheeling=!1),e._rehover&&e._rehover()}})),i.on("wheel",(function(){r.wheeling=!0})),i.on("mousemove",(function(t){var e=r.div.getBoundingClientRect(),a=[t.originalEvent.offsetX,t.originalEvent.offsetY];t.target.getBoundingClientRect=function(){return e},r.xaxis.p2c=function(){return i.unproject(a).lng},r.yaxis.p2c=function(){return i.unproject(a).lat},n._fullLayout._rehover=function(){n._fullLayout._hoversubplot===r.id&&n._fullLayout[r.id]&&u.hover(n,t,r.id)},u.hover(n,t,r.id),n._fullLayout._hoversubplot=r.id})),i.on("dragstart",(function(){r.dragging=!0,a()})),i.on("zoomstart",a),i.on("mouseout",(function(){n._fullLayout._hoversubplot=null})),i.on("drag",s),i.on("zoom",s),i.on("dblclick",(function(){var t=n._fullLayout[r.id];o.call("_storeDirectGUIEdit",n.layout,n._fullLayout._preGUI,r.getViewEdits(t));var e=r.viewInitial;i.setCenter(k(e.center)),i.setZoom(e.zoom),i.setBearing(e.bearing),i.setPitch(e.pitch);var a=r.getView();t._input.center=t.center=a.center,t._input.zoom=t.zoom=a.zoom,t._input.bearing=t.bearing=a.bearing,t._input.pitch=t.pitch=a.pitch,n.emit("plotly_doubleclick",null),n.emit("plotly_relayout",r.getViewEditsWithDerived(a))})),r.clearOutline=function(){v(r.dragOptions),d(r.dragOptions.gd)},r.onClickInPanFn=function(t){return function(e){var i=n._fullLayout.clickmode;i.indexOf("select")>-1&&g(e.originalEvent,n,[r.xaxis],[r.yaxis],r.id,t),i.indexOf("event")>-1&&u.click(n,e.originalEvent)}}},b.updateFx=function(t){var e=this,r=e.map,n=e.gd;if(!e.isStatic){var a,o=t.dragmode;a=function(t,r){r.isRect?(t.range={})[e.id]=[u([r.xmin,r.ymin]),u([r.xmax,r.ymax])]:(t.lassoPoints={})[e.id]=r.map(u)};var s=e.dragOptions;e.dragOptions=i.extendDeep(s||{},{dragmode:t.dragmode,element:e.div,gd:n,plotinfo:{id:e.id,domain:t[e.id].domain,xaxis:e.xaxis,yaxis:e.yaxis,fillRangeItems:a},xaxes:[e.xaxis],yaxes:[e.yaxis],subplot:e.id}),r.off("click",e.onClickInPanHandler),h(o)||f(o)?(r.dragPan.disable(),r.on("zoomstart",e.clearOutline),e.dragOptions.prepFn=function(t,r,n){p(t,r,n,e.dragOptions,o)},l.init(e.dragOptions)):(r.dragPan.enable(),r.off("zoomstart",e.clearOutline),e.div.onmousedown=null,e.div.ontouchstart=null,e.div.removeEventListener("touchstart",e.div._ontouchstart),e.onClickInPanHandler=e.onClickInPanFn(e.dragOptions),r.on("click",e.onClickInPanHandler))}function u(t){var r=e.map.unproject(t);return[r.lng,r.lat]}},b.updateFramework=function(t){var e=t[this.id].domain,r=t._size,n=this.div.style;n.width=r.w*(e.x[1]-e.x[0])+"px",n.height=r.h*(e.y[1]-e.y[0])+"px",n.left=r.l+e.x[0]*r.w+"px",n.top=r.t+(1-e.y[1])*r.h+"px",this.xaxis._offset=r.l+e.x[0]*r.w,this.xaxis._length=r.w*(e.x[1]-e.x[0]),this.yaxis._offset=r.t+(1-e.y[1])*r.h,this.yaxis._length=r.h*(e.y[1]-e.y[0])},b.updateLayers=function(t){var e,r=t[this.id].layers,n=this.layerList;if(r.length!==n.length){for(e=0;e<n.length;e++)n[e].dispose();for(n=this.layerList=[],e=0;e<r.length;e++)n.push(m(this,e,r[e]))}else for(e=0;e<r.length;e++)n[e].update(r[e])},b.destroy=function(){this.map&&(this.map.remove(),this.map=null,this.container.removeChild(this.div))},b.toImage=function(){return this.map.stop(),this.map.getCanvas().toDataURL()},b.setOptions=function(t,e,r){for(var n in r)this.map[e](t,n,r[n])},b.getMapLayers=function(){return this.map.getStyle().layers},b.addLayer=function(t,e){var r=this.map;if("string"==typeof e){if(""===e)return void r.addLayer(t,e);for(var n=this.getMapLayers(),a=0;a<n.length;a++)if(e===n[a].id)return void r.addLayer(t,e);i.warn(["Trying to add layer with *below* value",e,"referencing a layer that does not exist","or that does not yet exist."].join(" "))}r.addLayer(t)},b.project=function(t){return this.map.project(new n.LngLat(t[0],t[1]))},b.getView=function(){var t=this.map,e=t.getCenter(),r={lon:e.lng,lat:e.lat},n=t.getCanvas(),i=parseInt(n.style.width),a=parseInt(n.style.height);return{center:r,zoom:t.getZoom(),bearing:t.getBearing(),pitch:t.getPitch(),_derived:{coordinates:[t.unproject([0,0]).toArray(),t.unproject([i,0]).toArray(),t.unproject([i,a]).toArray(),t.unproject([0,a]).toArray()]}}},b.getViewEdits=function(t){for(var e=this.id,r=["center","zoom","bearing","pitch"],n={},i=0;i<r.length;i++){var a=r[i];n[e+"."+a]=t[a]}return n},b.getViewEditsWithDerived=function(t){var e=this.id,r=this.getViewEdits(t);return r[e+"._derived"]=t._derived,r},t.exports=x},35025:function(t){"use strict";t.exports=function(t){var e=t.editType;return{t:{valType:"number",dflt:0,editType:e},r:{valType:"number",dflt:0,editType:e},b:{valType:"number",dflt:0,editType:e},l:{valType:"number",dflt:0,editType:e},editType:e}}},74875:function(t,e,r){"use strict";var n=r(39898),i=r(84096).Dq,a=r(60721).FF,o=r(92770),s=r(73972),l=r(86281),u=r(44467),c=r(71828),f=r(7901),h=r(50606).BADNUM,p=r(41675),d=r(51873).clearOutline,v=r(21479),g=r(85594),y=r(31391),m=r(27659).a0,x=c.relinkPrivateKeys,b=c._,_=t.exports={};c.extendFlat(_,s),_.attributes=r(9012),_.attributes.type.values=_.allTypes,_.fontAttrs=r(41940),_.layoutAttributes=r(10820),_.fontWeight="normal";var w=_.transformsRegistry,T=r(31137);_.executeAPICommand=T.executeAPICommand,_.computeAPICommandBindings=T.computeAPICommandBindings,_.manageCommandObserver=T.manageCommandObserver,_.hasSimpleAPICommandBindings=T.hasSimpleAPICommandBindings,_.redrawText=function(t){return t=c.getGraphDiv(t),new Promise((function(e){setTimeout((function(){t._fullLayout&&(s.getComponentMethod("annotations","draw")(t),s.getComponentMethod("legend","draw")(t),s.getComponentMethod("colorbar","draw")(t),e(_.previousPromises(t)))}),300)}))},_.resize=function(t){var e;t=c.getGraphDiv(t);var r=new Promise((function(r,n){t&&!c.isHidden(t)||n(new Error("Resize must be passed a displayed plot div element.")),t._redrawTimer&&clearTimeout(t._redrawTimer),t._resolveResize&&(e=t._resolveResize),t._resolveResize=r,t._redrawTimer=setTimeout((function(){if(!t.layout||t.layout.width&&t.layout.height||c.isHidden(t))r(t);else{delete t.layout.width,delete t.layout.height;var e=t.changed;t.autoplay=!0,s.call("relayout",t,{autosize:!0}).then((function(){t.changed=e,t._resolveResize===r&&(delete t._resolveResize,r(t))}))}}),100)}));return e&&e(r),r},_.previousPromises=function(t){if((t._promises||[]).length)return Promise.all(t._promises).then((function(){t._promises=[]}))},_.addLinks=function(t){if(t._context.showLink||t._context.showSources){var e=t._fullLayout,r=c.ensureSingle(e._paper,"text","js-plot-link-container",(function(t){t.style({"font-family":'"Open Sans", Arial, sans-serif',"font-size":"12px",fill:f.defaultLine,"pointer-events":"all"}).each((function(){var t=n.select(this);t.append("tspan").classed("js-link-to-tool",!0),t.append("tspan").classed("js-link-spacer",!0),t.append("tspan").classed("js-sourcelinks",!0)}))})),i=r.node(),a={y:e._paper.attr("height")-9};document.body.contains(i)&&i.getComputedTextLength()>=e.width-20?(a["text-anchor"]="start",a.x=5):(a["text-anchor"]="end",a.x=e._paper.attr("width")-7),r.attr(a);var o=r.select(".js-link-to-tool"),s=r.select(".js-link-spacer"),l=r.select(".js-sourcelinks");t._context.showSources&&t._context.showSources(t),t._context.showLink&&function(t,e){e.text("");var r=e.append("a").attr({"xlink:xlink:href":"#",class:"link--impt link--embedview","font-weight":"bold"}).text(t._context.linkText+" "+String.fromCharCode(187));if(t._context.sendData)r.on("click",(function(){_.sendDataToCloud(t)}));else{var n=window.location.pathname.split("/"),i=window.location.search;r.attr({"xlink:xlink:show":"new","xlink:xlink:href":"/"+n[2].split(".")[0]+"/"+n[1]+i})}}(t,o),s.text(o.text()&&l.text()?" - ":"")}},_.sendDataToCloud=function(t){var e=(window.PLOTLYENV||{}).BASE_URL||t._context.plotlyServerURL;if(e){t.emit("plotly_beforeexport");var r=n.select(t).append("div").attr("id","hiddenform").style("display","none"),i=r.append("form").attr({action:e+"/external",method:"post",target:"_blank"});return i.append("input").attr({type:"text",name:"data"}).node().value=_.graphJson(t,!1,"keepdata"),i.node().submit(),r.remove(),t.emit("plotly_afterexport"),!1}};var k=["days","shortDays","months","shortMonths","periods","dateTime","date","time","decimal","thousands","grouping","currency"],A=["year","month","dayMonth","dayMonthYear"];function M(t,e){var r=t._context.locale;r||(r="en-US");var n=!1,i={};function a(t){for(var r=!0,a=0;a<e.length;a++){var o=e[a];i[o]||(t[o]?i[o]=t[o]:r=!1)}r&&(n=!0)}for(var o=0;o<2;o++){for(var l=t._context.locales,u=0;u<2;u++){var c=(l[r]||{}).format;if(c&&(a(c),n))break;l=s.localeRegistry}var f=r.split("-")[0];if(n||f===r)break;r=f}return n||a(s.localeRegistry.en.format),i}function S(t,e){var r={_fullLayout:e},n="x"===t._id.charAt(0),i=t._mainAxis._anchorAxis,a="",o="",s="";if(i&&(s=i._mainAxis._id,a=n?t._id+s:s+t._id),!a||!e._plots[a]){a="";for(var l=t._counterAxes,u=0;u<l.length;u++){var c=l[u],f=n?t._id+c:c+t._id;o||(o=f);var h=p.getFromId(r,c);if(s&&h.overlaying===s){a=f;break}}}return a||o}function E(t){var e=t.transforms;if(Array.isArray(e)&&e.length)for(var r=0;r<e.length;r++){var n=e[r],i=n._module||w[n.type];if(i&&i.makesData)return!0}return!1}function L(t,e,r,n){for(var i=t.transforms,a=[t],o=0;o<i.length;o++){var s=i[o],l=w[s.type];l&&l.transform&&(a=l.transform(a,{transform:s,fullTrace:t,fullData:e,layout:r,fullLayout:n,transformIndex:o}))}return a}function C(t){return"string"==typeof t&&"px"===t.substr(t.length-2)&&parseFloat(t)}function P(t){var e=t.margin;if(!t._size){var r=t._size={l:Math.round(e.l),r:Math.round(e.r),t:Math.round(e.t),b:Math.round(e.b),p:Math.round(e.pad)};r.w=Math.round(t.width)-r.l-r.r,r.h=Math.round(t.height)-r.t-r.b}t._pushmargin||(t._pushmargin={}),t._pushmarginIds||(t._pushmarginIds={})}_.supplyDefaults=function(t,e){var r=e&&e.skipUpdateCalc,n=t._fullLayout||{};if(n._skipDefaults)delete n._skipDefaults;else{var o,l=t._fullLayout={},u=t.layout||{},f=t._fullData||[],h=t._fullData=[],p=t.data||[],v=t.calcdata||[],g=t._context||{};t._transitionData||_.createTransitionData(t),l._dfltTitle={plot:b(t,"Click to enter Plot title"),x:b(t,"Click to enter X axis title"),y:b(t,"Click to enter Y axis title"),colorbar:b(t,"Click to enter Colorscale title"),annotation:b(t,"new text")},l._traceWord=b(t,"trace");var y=M(t,k);if(l._mapboxAccessToken=g.mapboxAccessToken,n._initialAutoSizeIsDone){var m=n.width,w=n.height;_.supplyLayoutGlobalDefaults(u,l,y),u.width||(l.width=m),u.height||(l.height=w),_.sanitizeMargins(l)}else{_.supplyLayoutGlobalDefaults(u,l,y);var T=!u.width||!u.height,S=l.autosize,E=g.autosizable;T&&(S||E)?_.plotAutoSize(t,u,l):T&&_.sanitizeMargins(l),!S&&T&&(u.width=l.width,u.height=l.height)}l._d3locale=function(t,e){return t.decimal=e.charAt(0),t.thousands=e.charAt(1),{numberFormat:function(e){try{e=a(t).format(c.adjustFormat(e))}catch(t){return c.warnBadFormat(e),c.noFormat}return e},timeFormat:i(t).utcFormat}}(y,l.separators),l._extraFormat=M(t,A),l._initialAutoSizeIsDone=!0,l._dataLength=p.length,l._modules=[],l._visibleModules=[],l._basePlotModules=[];var L=l._subplots=function(){var t,e,r=s.collectableSubplotTypes,n={};if(!r){r=[];var i=s.subplotsRegistry;for(var a in i){var o=i[a].attr;if(o&&(r.push(a),Array.isArray(o)))for(e=0;e<o.length;e++)c.pushUnique(r,o[e])}}for(t=0;t<r.length;t++)n[r[t]]=[];return n}(),C=l._splomAxes={x:{},y:{}},O=l._splomSubplots={};l._splomGridDflt={},l._scatterStackOpts={},l._firstScatter={},l._alignmentOpts={},l._colorAxes={},l._requestRangeslider={},l._traceUids=function(t,e){var r,n,i=e.length,a=[];for(r=0;r<t.length;r++){var o=t[r]._fullInput;o!==n&&a.push(o),n=o}var s=a.length,l=new Array(i),u={};function f(t,e){l[e]=t,u[t]=1}function h(t,e){if(t&&"string"==typeof t&&!u[t])return f(t,e),!0}for(r=0;r<i;r++){var p=e[r].uid;"number"==typeof p&&(p=String(p)),h(p,r)||r<s&&h(a[r].uid,r)||f(c.randstr(u),r)}return l}(f,p),l._globalTransforms=(t._context||{}).globalTransforms,_.supplyDataDefaults(p,h,u,l);var I=Object.keys(C.x),D=Object.keys(C.y);if(I.length>1&&D.length>1){for(s.getComponentMethod("grid","sizeDefaults")(u,l),o=0;o<I.length;o++)c.pushUnique(L.xaxis,I[o]);for(o=0;o<D.length;o++)c.pushUnique(L.yaxis,D[o]);for(var z in O)c.pushUnique(L.cartesian,z)}if(l._has=_._hasPlotType.bind(l),f.length===h.length)for(o=0;o<h.length;o++)x(h[o],f[o]);_.supplyLayoutModuleDefaults(u,l,h,t._transitionData);var R=l._visibleModules,F=[];for(o=0;o<R.length;o++){var B=R[o].crossTraceDefaults;B&&c.pushUnique(F,B)}for(o=0;o<F.length;o++)F[o](h,l);l._hasOnlyLargeSploms=1===l._basePlotModules.length&&"splom"===l._basePlotModules[0].name&&I.length>15&&D.length>15&&0===l.shapes.length&&0===l.images.length,_.linkSubplots(h,l,f,n),_.cleanPlot(h,l,f,n);var N=!(!n._has||!n._has("gl2d")),j=!(!l._has||!l._has("gl2d")),U=!(!n._has||!n._has("cartesian"))||N,V=!(!l._has||!l._has("cartesian"))||j;U&&!V?n._bgLayer.remove():V&&!U&&(l._shouldCreateBgLayer=!0),n._zoomlayer&&!t._dragging&&d({_fullLayout:n}),function(t,e){var r,n=[];e.meta&&(r=e._meta={meta:e.meta,layout:{meta:e.meta}});for(var i=0;i<t.length;i++){var a=t[i];a.meta?n[a.index]=a._meta={meta:a.meta}:e.meta&&(a._meta={meta:e.meta}),e.meta&&(a._meta.layout={meta:e.meta})}n.length&&(r||(r=e._meta={}),r.data=n)}(h,l),x(l,n),s.getComponentMethod("colorscale","crossTraceDefaults")(h,l),l._preGUI||(l._preGUI={}),l._tracePreGUI||(l._tracePreGUI={});var H,q=l._tracePreGUI,G={};for(H in q)G[H]="old";for(o=0;o<h.length;o++)G[H=h[o]._fullInput.uid]||(q[H]={}),G[H]="new";for(H in G)"old"===G[H]&&delete q[H];P(l),s.getComponentMethod("rangeslider","makeData")(l),r||v.length!==h.length||_.supplyDefaultsUpdateCalc(v,h)}},_.supplyDefaultsUpdateCalc=function(t,e){for(var r=0;r<e.length;r++){var n=e[r],i=(t[r]||[])[0];if(i&&i.trace){var a=i.trace;if(a._hasCalcTransform){var o,s,l,u=a._arrayAttrs;for(o=0;o<u.length;o++)s=u[o],l=c.nestedProperty(a,s).get().slice(),c.nestedProperty(n,s).set(l)}i.trace=n}}},_.createTransitionData=function(t){t._transitionData||(t._transitionData={}),t._transitionData._frames||(t._transitionData._frames=[]),t._transitionData._frameHash||(t._transitionData._frameHash={}),t._transitionData._counter||(t._transitionData._counter=0),t._transitionData._interruptCallbacks||(t._transitionData._interruptCallbacks=[])},_._hasPlotType=function(t){var e,r=this._basePlotModules||[];for(e=0;e<r.length;e++)if(r[e].name===t)return!0;var n=this._modules||[];for(e=0;e<n.length;e++){var i=n[e].name;if(i===t)return!0;var a=s.modules[i];if(a&&a.categories[t])return!0}return!1},_.cleanPlot=function(t,e,r,n){var i,a,o=n._basePlotModules||[];for(i=0;i<o.length;i++){var s=o[i];s.clean&&s.clean(t,e,r,n)}var l=n._has&&n._has("gl"),u=e._has&&e._has("gl");l&&!u&&void 0!==n._glcontainer&&(n._glcontainer.selectAll(".gl-canvas").remove(),n._glcontainer.selectAll(".no-webgl").remove(),n._glcanvas=null);var c=!!n._infolayer;t:for(i=0;i<r.length;i++){var f=r[i].uid;for(a=0;a<t.length;a++)if(f===t[a].uid)continue t;c&&n._infolayer.select(".cb"+f).remove()}},_.linkSubplots=function(t,e,r,n){var i,a,o=n._plots||{},l=e._plots={},u=e._subplots,f={_fullData:t,_fullLayout:e},h=u.cartesian.concat(u.gl2d||[]);for(i=0;i<h.length;i++){var d,v=h[i],g=o[v],y=p.getFromId(f,v,"x"),m=p.getFromId(f,v,"y");for(g?d=l[v]=g:(d=l[v]={}).id=v,y._counterAxes.push(m._id),m._counterAxes.push(y._id),y._subplotsWith.push(v),m._subplotsWith.push(v),d.xaxis=y,d.yaxis=m,d._hasClipOnAxisFalse=!1,a=0;a<t.length;a++){var x=t[a];if(x.xaxis===d.xaxis._id&&x.yaxis===d.yaxis._id&&!1===x.cliponaxis){d._hasClipOnAxisFalse=!0;break}}}var b,_=p.list(f,null,!0);for(i=0;i<_.length;i++){var w=null;(b=_[i]).overlaying&&(w=p.getFromId(f,b.overlaying))&&w.overlaying&&(b.overlaying=!1,w=null),b._mainAxis=w||b,w&&(b.domain=w.domain.slice()),b._anchorAxis="free"===b.anchor?null:p.getFromId(f,b.anchor)}for(i=0;i<_.length;i++)if((b=_[i])._counterAxes.sort(p.idSort),b._subplotsWith.sort(c.subplotSort),b._mainSubplot=S(b,e),b._counterAxes.length&&(b.spikemode&&-1!==b.spikemode.indexOf("across")||b.automargin&&b.mirror&&"free"!==b.anchor||s.getComponentMethod("rangeslider","isVisible")(b))){var T=1,k=0;for(a=0;a<b._counterAxes.length;a++){var A=p.getFromId(f,b._counterAxes[a]);T=Math.min(T,A.domain[0]),k=Math.max(k,A.domain[1])}T<k&&(b._counterDomainMin=T,b._counterDomainMax=k)}},_.clearExpandedTraceDefaultColors=function(t){var e,r,n;for(r=[],(e=t._module._colorAttrs)||(t._module._colorAttrs=e=[],l.crawl(t._module.attributes,(function(t,n,i,a){r[a]=n,r.length=a+1,"color"===t.valType&&void 0===t.dflt&&e.push(r.join("."))}))),n=0;n<e.length;n++)c.nestedProperty(t,"_input."+e[n]).get()||c.nestedProperty(t,e[n]).set(null)},_.supplyDataDefaults=function(t,e,r,n){var i,a,o,l=n._modules,f=n._visibleModules,h=n._basePlotModules,p=0,d=0;function v(t){e.push(t);var r=t._module;r&&(c.pushUnique(l,r),!0===t.visible&&c.pushUnique(f,r),c.pushUnique(h,t._module.basePlotModule),p++,!1!==t._input.visible&&d++)}n._transformModules=[];var g={},y=[],m=(r.template||{}).data||{},b=u.traceTemplater(m);for(i=0;i<t.length;i++){if(o=t[i],(a=b.newTrace(o)).uid=n._traceUids[i],_.supplyTraceDefaults(o,a,d,n,i),a.index=i,a._input=o,a._expandedIndex=p,a.transforms&&a.transforms.length)for(var w=!1!==o.visible&&!1===a.visible,T=L(a,e,r,n),k=0;k<T.length;k++){var A=T[k],M={_template:a._template,type:a.type,uid:a.uid+k};w&&!1===A.visible&&delete A.visible,_.supplyTraceDefaults(A,M,p,n,i),x(M,A),M.index=i,M._input=o,M._fullInput=a,M._expandedIndex=p,M._expandedInput=A,v(M)}else a._fullInput=a,a._expandedInput=a,v(a);s.traceIs(a,"carpetAxis")&&(g[a.carpet]=a),s.traceIs(a,"carpetDependent")&&y.push(i)}for(i=0;i<y.length;i++)if((a=e[y[i]]).visible){var S=g[a.carpet];a._carpet=S,S&&S.visible?(a.xaxis=S.xaxis,a.yaxis=S.yaxis):a.visible=!1}},_.supplyAnimationDefaults=function(t){var e;t=t||{};var r={};function n(e,n){return c.coerce(t||{},r,g,e,n)}if(n("mode"),n("direction"),n("fromcurrent"),Array.isArray(t.frame))for(r.frame=[],e=0;e<t.frame.length;e++)r.frame[e]=_.supplyAnimationFrameDefaults(t.frame[e]||{});else r.frame=_.supplyAnimationFrameDefaults(t.frame||{});if(Array.isArray(t.transition))for(r.transition=[],e=0;e<t.transition.length;e++)r.transition[e]=_.supplyAnimationTransitionDefaults(t.transition[e]||{});else r.transition=_.supplyAnimationTransitionDefaults(t.transition||{});return r},_.supplyAnimationFrameDefaults=function(t){var e={};function r(r,n){return c.coerce(t||{},e,g.frame,r,n)}return r("duration"),r("redraw"),e},_.supplyAnimationTransitionDefaults=function(t){var e={};function r(r,n){return c.coerce(t||{},e,g.transition,r,n)}return r("duration"),r("easing"),e},_.supplyFrameDefaults=function(t){var e={};function r(r,n){return c.coerce(t,e,y,r,n)}return r("group"),r("name"),r("traces"),r("baseframe"),r("data"),r("layout"),e},_.supplyTraceDefaults=function(t,e,r,n,i){var a,o=n.colorway||f.defaults,l=o[r%o.length];function u(r,n){return c.coerce(t,e,_.attributes,r,n)}var h=u("visible");u("type"),u("name",n._traceWord+" "+i),u("uirevision",n.uirevision);var p=_.getModule(e);if(e._module=p,p){var d=p.basePlotModule,v=d.attr,g=d.attributes;if(v&&g){var y=n._subplots,m="";if(h||"gl2d"!==d.name){if(Array.isArray(v))for(a=0;a<v.length;a++){var x=v[a],b=c.coerce(t,e,g,x);y[x]&&c.pushUnique(y[x],b),m+=b}else m=c.coerce(t,e,g,v);y[d.name]&&c.pushUnique(y[d.name],m)}}}return h&&(u("customdata"),u("ids"),u("meta"),s.traceIs(e,"showLegend")?(c.coerce(t,e,p.attributes.showlegend?p.attributes:_.attributes,"showlegend"),u("legendwidth"),u("legendgroup"),u("legendgrouptitle.text"),u("legendrank"),e._dfltShowLegend=!0):e._dfltShowLegend=!1,p&&p.supplyDefaults(t,e,l,n),s.traceIs(e,"noOpacity")||u("opacity"),s.traceIs(e,"notLegendIsolatable")&&(e.visible=!!e.visible),s.traceIs(e,"noHover")||(e.hovertemplate||c.coerceHoverinfo(t,e,n),"parcats"!==e.type&&s.getComponentMethod("fx","supplyDefaults")(t,e,l,n)),p&&p.selectPoints&&u("selectedpoints"),_.supplyTransformDefaults(t,e,n)),e},_.hasMakesDataTransform=E,_.supplyTransformDefaults=function(t,e,r){if(e._length||E(t)){var n=r._globalTransforms||[],i=r._transformModules||[];if(Array.isArray(t.transforms)||0!==n.length)for(var a=t.transforms||[],o=n.concat(a),s=e.transforms=[],l=0;l<o.length;l++){var u,f=o[l],h=f.type,p=w[h],d=!(f._module&&f._module===p),v=p&&"function"==typeof p.transform;p||c.warn("Unrecognized transform type "+h+"."),p&&p.supplyDefaults&&(d||v)?((u=p.supplyDefaults(f,e,r,t)).type=h,u._module=p,c.pushUnique(i,p)):u=c.extendFlat({},f),s.push(u)}}},_.supplyLayoutGlobalDefaults=function(t,e,r){function n(r,n){return c.coerce(t,e,_.layoutAttributes,r,n)}var i=t.template;c.isPlainObject(i)&&(e.template=i,e._template=i.layout,e._dataTemplate=i.data),n("autotypenumbers");var a=c.coerceFont(n,"font"),o=a.size;c.coerceFont(n,"title.font",c.extendFlat({},a,{size:Math.round(1.4*o)})),n("title.text",e._dfltTitle.plot),n("title.xref"),n("title.yref"),n("title.x"),n("title.y"),n("title.xanchor"),n("title.yanchor"),n("title.pad.t"),n("title.pad.r"),n("title.pad.b"),n("title.pad.l"),n("uniformtext.mode")&&n("uniformtext.minsize"),n("autosize",!(t.width&&t.height)),n("width"),n("height"),n("minreducedwidth"),n("minreducedheight"),n("margin.l"),n("margin.r"),n("margin.t"),n("margin.b"),n("margin.pad"),n("margin.autoexpand"),t.width&&t.height&&_.sanitizeMargins(e),s.getComponentMethod("grid","sizeDefaults")(t,e),n("paper_bgcolor"),n("separators",r.decimal+r.thousands),n("hidesources"),n("colorway"),n("datarevision");var l=n("uirevision");n("editrevision",l),n("selectionrevision",l),s.getComponentMethod("modebar","supplyLayoutDefaults")(t,e),s.getComponentMethod("shapes","supplyDrawNewShapeDefaults")(t,e,n),s.getComponentMethod("selections","supplyDrawNewSelectionDefaults")(t,e,n),n("meta"),c.isPlainObject(t.transition)&&(n("transition.duration"),n("transition.easing"),n("transition.ordering")),s.getComponentMethod("calendars","handleDefaults")(t,e,"calendar"),s.getComponentMethod("fx","supplyLayoutGlobalDefaults")(t,e,n),c.coerce(t,e,v,"scattermode")},_.plotAutoSize=function(t,e,r){var n,i,a=t._context||{},s=a.frameMargins,l=c.isPlotDiv(t);if(l&&t.emit("plotly_autosize"),a.fillFrame)n=window.innerWidth,i=window.innerHeight,document.body.style.overflow="hidden";else{var u=l?window.getComputedStyle(t):{};if(n=C(u.width)||C(u.maxWidth)||r.width,i=C(u.height)||C(u.maxHeight)||r.height,o(s)&&s>0){var f=1-2*s;n=Math.round(f*n),i=Math.round(f*i)}}var h=_.layoutAttributes.width.min,p=_.layoutAttributes.height.min;n<h&&(n=h),i<p&&(i=p);var d=!e.width&&Math.abs(r.width-n)>1,v=!e.height&&Math.abs(r.height-i)>1;(v||d)&&(d&&(r.width=n),v&&(r.height=i)),t._initialAutoSize||(t._initialAutoSize={width:n,height:i}),_.sanitizeMargins(r)},_.supplyLayoutModuleDefaults=function(t,e,r,n){var i,a,o,l=s.componentsRegistry,u=e._basePlotModules,f=s.subplotsRegistry.cartesian;for(i in l)(o=l[i]).includeBasePlot&&o.includeBasePlot(t,e);for(var h in u.length||u.push(f),e._has("cartesian")&&(s.getComponentMethod("grid","contentDefaults")(t,e),f.finalizeSubplots(t,e)),e._subplots)e._subplots[h].sort(c.subplotSort);for(a=0;a<u.length;a++)(o=u[a]).supplyLayoutDefaults&&o.supplyLayoutDefaults(t,e,r);var p=e._modules;for(a=0;a<p.length;a++)(o=p[a]).supplyLayoutDefaults&&o.supplyLayoutDefaults(t,e,r);var d=e._transformModules;for(a=0;a<d.length;a++)(o=d[a]).supplyLayoutDefaults&&o.supplyLayoutDefaults(t,e,r,n);for(i in l)(o=l[i]).supplyLayoutDefaults&&o.supplyLayoutDefaults(t,e,r)},_.purge=function(t){var e=t._fullLayout||{};void 0!==e._glcontainer&&(e._glcontainer.selectAll(".gl-canvas").remove(),e._glcontainer.remove(),e._glcanvas=null),e._modeBar&&e._modeBar.destroy(),t._transitionData&&(t._transitionData._interruptCallbacks&&(t._transitionData._interruptCallbacks.length=0),t._transitionData._animationRaf&&window.cancelAnimationFrame(t._transitionData._animationRaf)),c.clearThrottle(),c.clearResponsive(t),delete t.data,delete t.layout,delete t._fullData,delete t._fullLayout,delete t.calcdata,delete t.empty,delete t.fid,delete t.undoqueue,delete t.undonum,delete t.autoplay,delete t.changed,delete t._promises,delete t._redrawTimer,delete t._hmlumcount,delete t._hmpixcount,delete t._transitionData,delete t._transitioning,delete t._initialAutoSize,delete t._transitioningWithDuration,delete t._dragging,delete t._dragged,delete t._dragdata,delete t._hoverdata,delete t._snapshotInProgress,delete t._editing,delete t._mouseDownTime,delete t._legendMouseDownTime,t.removeAllListeners&&t.removeAllListeners()},_.style=function(t){var e,r=t._fullLayout._visibleModules,n=[];for(e=0;e<r.length;e++){var i=r[e];i.style&&c.pushUnique(n,i.style)}for(e=0;e<n.length;e++)n[e](t)},_.sanitizeMargins=function(t){if(t&&t.margin){var e,r=t.width,n=t.height,i=t.margin,a=r-(i.l+i.r),o=n-(i.t+i.b);a<0&&(e=(r-1)/(i.l+i.r),i.l=Math.floor(e*i.l),i.r=Math.floor(e*i.r)),o<0&&(e=(n-1)/(i.t+i.b),i.t=Math.floor(e*i.t),i.b=Math.floor(e*i.b))}},_.clearAutoMarginIds=function(t){t._fullLayout._pushmarginIds={}},_.allowAutoMargin=function(t,e){t._fullLayout._pushmarginIds[e]=1},_.autoMargin=function(t,e,r){var n=t._fullLayout,i=n.width,a=n.height,o=n.margin,s=n.minreducedwidth,l=n.minreducedheight,u=c.constrain(i-o.l-o.r,2,s),f=c.constrain(a-o.t-o.b,2,l),h=Math.max(0,i-u),p=Math.max(0,a-f),d=n._pushmargin,v=n._pushmarginIds;if(!1!==o.autoexpand){if(r){var g=r.pad;if(void 0===g&&(g=Math.min(12,o.l,o.r,o.t,o.b)),h){var y=(r.l+r.r)/h;y>1&&(r.l/=y,r.r/=y)}if(p){var m=(r.t+r.b)/p;m>1&&(r.t/=m,r.b/=m)}var x=void 0!==r.xl?r.xl:r.x,b=void 0!==r.xr?r.xr:r.x,w=void 0!==r.yt?r.yt:r.y,T=void 0!==r.yb?r.yb:r.y;d[e]={l:{val:x,size:r.l+g},r:{val:b,size:r.r+g},b:{val:T,size:r.b+g},t:{val:w,size:r.t+g}},v[e]=1}else delete d[e],delete v[e];if(!n._replotting)return _.doAutoMargin(t)}},_.doAutoMargin=function(t){var e=t._fullLayout,r=e.width,n=e.height;e._size||(e._size={}),P(e);var i=e._size,a=e.margin,l=c.extendFlat({},i),u=a.l,f=a.r,h=a.t,d=a.b,v=e._pushmargin,g=e._pushmarginIds,y=e.minreducedwidth,m=e.minreducedheight;if(!1!==e.margin.autoexpand){for(var x in v)g[x]||delete v[x];for(var b in v.base={l:{val:0,size:u},r:{val:1,size:f},t:{val:1,size:h},b:{val:0,size:d}},v){var w=v[b].l||{},T=v[b].b||{},k=w.val,A=w.size,M=T.val,S=T.size;for(var E in v){if(o(A)&&v[E].r){var L=v[E].r.val,C=v[E].r.size;if(L>k){var O=(A*L+(C-r)*k)/(L-k),I=(C*(1-k)+(A-r)*(1-L))/(L-k);O+I>u+f&&(u=O,f=I)}}if(o(S)&&v[E].t){var D=v[E].t.val,z=v[E].t.size;if(D>M){var R=(S*D+(z-n)*M)/(D-M),F=(z*(1-M)+(S-n)*(1-D))/(D-M);R+F>d+h&&(d=R,h=F)}}}}}var B=c.constrain(r-a.l-a.r,2,y),N=c.constrain(n-a.t-a.b,2,m),j=Math.max(0,r-B),U=Math.max(0,n-N);if(j){var V=(u+f)/j;V>1&&(u/=V,f/=V)}if(U){var H=(d+h)/U;H>1&&(d/=H,h/=H)}if(i.l=Math.round(u),i.r=Math.round(f),i.t=Math.round(h),i.b=Math.round(d),i.p=Math.round(a.pad),i.w=Math.round(r)-i.l-i.r,i.h=Math.round(n)-i.t-i.b,!e._replotting&&(_.didMarginChange(l,i)||function(t){if("_redrawFromAutoMarginCount"in t._fullLayout)return!1;var e=p.list(t,"",!0);for(var r in e)if(e[r].autoshift||e[r].shift)return!0;return!1}(t))){"_redrawFromAutoMarginCount"in e?e._redrawFromAutoMarginCount++:e._redrawFromAutoMarginCount=1;var q=3*(1+Object.keys(g).length);if(e._redrawFromAutoMarginCount<q)return s.call("_doPlot",t);e._size=l,c.warn("Too many auto-margin redraws.")}!function(t){var e=p.list(t,"",!0);["_adjustTickLabelsOverflow","_hideCounterAxisInsideTickLabels"].forEach((function(t){for(var r=0;r<e.length;r++){var n=e[r][t];n&&n()}}))}(t)};var O=["l","r","t","b","p","w","h"];function I(t,e,r){var n=!1,i=[_.previousPromises,function(){if(t._transitionData)return t._transitioning=!1,function(t){var e=Promise.resolve();if(!t)return e;for(;t.length;)e=e.then(t.shift());return e}(t._transitionData._interruptCallbacks)},r.prepareFn,_.rehover,_.reselect,function(){return t.emit("plotly_transitioning",[]),new Promise((function(i){t._transitioning=!0,e.duration>0&&(t._transitioningWithDuration=!0),t._transitionData._interruptCallbacks.push((function(){n=!0})),r.redraw&&t._transitionData._interruptCallbacks.push((function(){return s.call("redraw",t)})),t._transitionData._interruptCallbacks.push((function(){t.emit("plotly_transitioninterrupted",[])}));var a=0,o=0;function l(){return a++,function(){var e;o++,n||o!==a||(e=i,t._transitionData&&(function(t){if(t)for(;t.length;)t.shift()}(t._transitionData._interruptCallbacks),Promise.resolve().then((function(){if(r.redraw)return s.call("redraw",t)})).then((function(){t._transitioning=!1,t._transitioningWithDuration=!1,t.emit("plotly_transitioned",[])})).then(e)))}}r.runFn(l),setTimeout(l())}))}],a=c.syncOrAsync(i,t);return a&&a.then||(a=Promise.resolve()),a.then((function(){return t}))}_.didMarginChange=function(t,e){for(var r=0;r<O.length;r++){var n=O[r],i=t[n],a=e[n];if(!o(i)||Math.abs(a-i)>1)return!0}return!1},_.graphJson=function(t,e,r,n,i,a){(i&&e&&!t._fullData||i&&!e&&!t._fullLayout)&&_.supplyDefaults(t);var o=i?t._fullData:t.data,s=i?t._fullLayout:t.layout,l=(t._transitionData||{})._frames;function u(t,e){if("function"==typeof t)return e?"_function_":null;if(c.isPlainObject(t)){var n,i={};return Object.keys(t).sort().forEach((function(a){if(-1===["_","["].indexOf(a.charAt(0)))if("function"!=typeof t[a]){if("keepdata"===r){if("src"===a.substr(a.length-3))return}else if("keepstream"===r){if("string"==typeof(n=t[a+"src"])&&n.indexOf(":")>0&&!c.isPlainObject(t.stream))return}else if("keepall"!==r&&"string"==typeof(n=t[a+"src"])&&n.indexOf(":")>0)return;i[a]=u(t[a],e)}else e&&(i[a]="_function")})),i}return Array.isArray(t)?t.map((function(t){return u(t,e)})):c.isTypedArray(t)?c.simpleMap(t,c.identity):c.isJSDate(t)?c.ms2DateTimeLocal(+t):t}var f={data:(o||[]).map((function(t){var r=u(t);return e&&delete r.fit,r}))};if(!e&&(f.layout=u(s),i)){var h=s._size;f.layout.computed={margin:{b:h.b,l:h.l,r:h.r,t:h.t}}}return l&&(f.frames=u(l)),a&&(f.config=u(t._context,!0)),"object"===n?f:JSON.stringify(f)},_.modifyFrames=function(t,e){var r,n,i,a=t._transitionData._frames,o=t._transitionData._frameHash;for(r=0;r<e.length;r++)switch((n=e[r]).type){case"replace":i=n.value;var s=(a[n.index]||{}).name,l=i.name;a[n.index]=o[l]=i,l!==s&&(delete o[s],o[l]=i);break;case"insert":o[(i=n.value).name]=i,a.splice(n.index,0,i);break;case"delete":delete o[(i=a[n.index]).name],a.splice(n.index,1)}return Promise.resolve()},_.computeFrame=function(t,e){var r,n,i,a,o=t._transitionData._frameHash;if(!e)throw new Error("computeFrame must be given a string frame name");var s=o[e.toString()];if(!s)return!1;for(var l=[s],u=[s.name];s.baseframe&&(s=o[s.baseframe.toString()])&&-1===u.indexOf(s.name);)l.push(s),u.push(s.name);for(var c={};s=l.pop();)if(s.layout&&(c.layout=_.extendLayout(c.layout,s.layout)),s.data){if(c.data||(c.data=[]),!(n=s.traces))for(n=[],r=0;r<s.data.length;r++)n[r]=r;for(c.traces||(c.traces=[]),r=0;r<s.data.length;r++)null!=(i=n[r])&&(-1===(a=c.traces.indexOf(i))&&(a=c.data.length,c.traces[a]=i),c.data[a]=_.extendTrace(c.data[a],s.data[r]))}return c},_.recomputeFrameHash=function(t){for(var e=t._transitionData._frameHash={},r=t._transitionData._frames,n=0;n<r.length;n++){var i=r[n];i&&i.name&&(e[i.name]=i)}},_.extendObjectWithContainers=function(t,e,r){var n,i,a,o,s,l,u,f=c.extendDeepNoArrays({},e||{}),h=c.expandObjectPaths(f),p={};if(r&&r.length)for(a=0;a<r.length;a++)void 0===(i=(n=c.nestedProperty(h,r[a])).get())?c.nestedProperty(p,r[a]).set(null):(n.set(null),c.nestedProperty(p,r[a]).set(i));if(t=c.extendDeepNoArrays(t||{},h),r&&r.length)for(a=0;a<r.length;a++)if(l=c.nestedProperty(p,r[a]).get()){for(u=(s=c.nestedProperty(t,r[a])).get(),Array.isArray(u)||(u=[],s.set(u)),o=0;o<l.length;o++){var d=l[o];u[o]=null===d?null:_.extendObjectWithContainers(u[o],d)}s.set(u)}return t},_.dataArrayContainers=["transforms","dimensions"],_.layoutArrayContainers=s.layoutArrayContainers,_.extendTrace=function(t,e){return _.extendObjectWithContainers(t,e,_.dataArrayContainers)},_.extendLayout=function(t,e){return _.extendObjectWithContainers(t,e,_.layoutArrayContainers)},_.transition=function(t,e,r,n,i,a){var o={redraw:i.redraw},s={},l=[];return o.prepareFn=function(){for(var i=Array.isArray(e)?e.length:0,a=n.slice(0,i),o=0;o<a.length;o++){var u=a[o],f=t._fullData[u]._module;if(f){if(f.animatable){var h=f.basePlotModule.name;s[h]||(s[h]=[]),s[h].push(u)}t.data[a[o]]=_.extendTrace(t.data[a[o]],e[o])}}var p=c.expandObjectPaths(c.extendDeepNoArrays({},r)),d=/^[xy]axis[0-9]*$/;for(var v in p)d.test(v)&&delete p[v].range;_.extendLayout(t.layout,p),delete t.calcdata,_.supplyDefaults(t),_.doCalcdata(t);var g=c.expandObjectPaths(r);if(g){var y=t._fullLayout._plots;for(var m in y){var x=y[m],b=x.xaxis,w=x.yaxis,T=b.range.slice(),k=w.range.slice(),A=null,M=null,S=null,E=null;Array.isArray(g[b._name+".range"])?A=g[b._name+".range"].slice():Array.isArray((g[b._name]||{}).range)&&(A=g[b._name].range.slice()),Array.isArray(g[w._name+".range"])?M=g[w._name+".range"].slice():Array.isArray((g[w._name]||{}).range)&&(M=g[w._name].range.slice()),T&&A&&(b.r2l(T[0])!==b.r2l(A[0])||b.r2l(T[1])!==b.r2l(A[1]))&&(S={xr0:T,xr1:A}),k&&M&&(w.r2l(k[0])!==w.r2l(M[0])||w.r2l(k[1])!==w.r2l(M[1]))&&(E={yr0:k,yr1:M}),(S||E)&&l.push(c.extendFlat({plotinfo:x},S,E))}}return Promise.resolve()},o.runFn=function(e){var n,i,o=t._fullLayout._basePlotModules,u=l.length;if(r)for(i=0;i<o.length;i++)o[i].transitionAxes&&o[i].transitionAxes(t,l,a,e);for(var f in u?((n=c.extendFlat({},a)).duration=0,delete s.cartesian):n=a,s){var h=s[f];t._fullData[h[0]]._module.basePlotModule.plot(t,h,n,e)}},I(t,a,o)},_.transitionFromReact=function(t,e,r,n){var i=t._fullLayout,a=i.transition,o={},s=[];return o.prepareFn=function(){var t=i._plots;for(var a in o.redraw=!1,"some"===e.anim&&(o.redraw=!0),"some"===r.anim&&(o.redraw=!0),t){var l=t[a],u=l.xaxis,f=l.yaxis,h=n[u._name].range.slice(),p=n[f._name].range.slice(),d=u.range.slice(),v=f.range.slice();u.setScale(),f.setScale();var g=null,y=null;u.r2l(h[0])===u.r2l(d[0])&&u.r2l(h[1])===u.r2l(d[1])||(g={xr0:h,xr1:d}),f.r2l(p[0])===f.r2l(v[0])&&f.r2l(p[1])===f.r2l(v[1])||(y={yr0:p,yr1:v}),(g||y)&&s.push(c.extendFlat({plotinfo:l},g,y))}return Promise.resolve()},o.runFn=function(r){for(var n,i,o,l=t._fullData,u=t._fullLayout._basePlotModules,f=[],h=0;h<l.length;h++)f.push(h);function p(){if(t._fullLayout)for(var e=0;e<u.length;e++)u[e].transitionAxes&&u[e].transitionAxes(t,s,n,r)}function d(){if(t._fullLayout)for(var e=0;e<u.length;e++)u[e].plot(t,o,i,r)}s.length&&e.anim?"traces first"===a.ordering?(n=c.extendFlat({},a,{duration:0}),o=f,i=a,setTimeout(p,a.duration),d()):(n=a,o=null,i=c.extendFlat({},a,{duration:0}),setTimeout(d,n.duration),p()):s.length?(n=a,p()):e.anim&&(o=f,i=a,d())},I(t,a,o)},_.doCalcdata=function(t,e){var r,n,i,a,o=p.list(t),u=t._fullData,f=t._fullLayout,d=new Array(u.length),v=(t.calcdata||[]).slice();for(t.calcdata=d,f._numBoxes=0,f._numViolins=0,f._violinScaleGroupStats={},t._hmpixcount=0,t._hmlumcount=0,f._piecolormap={},f._sunburstcolormap={},f._treemapcolormap={},f._iciclecolormap={},f._funnelareacolormap={},i=0;i<u.length;i++)Array.isArray(e)&&-1===e.indexOf(i)&&(d[i]=v[i]);for(i=0;i<u.length;i++)(r=u[i])._arrayAttrs=l.findArrayAttributes(r),r._extremes={};var g=f._subplots.polar||[];for(i=0;i<g.length;i++)o.push(f[g[i]].radialaxis,f[g[i]].angularaxis);for(var y in f._colorAxes){var m=f[y];!1!==m.cauto&&(delete m.cmin,delete m.cmax)}var x=!1;function b(e){if(r=u[e],n=r._module,!0===r.visible&&r.transforms){if(n&&n.calc){var i=n.calc(t,r);i[0]&&i[0].t&&i[0].t._scene&&delete i[0].t._scene.dirty}for(a=0;a<r.transforms.length;a++){var o=r.transforms[a];(n=w[o.type])&&n.calcTransform&&(r._hasCalcTransform=!0,x=!0,n.calcTransform(t,r,o))}}}function _(e,i){if(r=u[e],!!(n=r._module).isContainer===i){var o=[];if(!0===r.visible&&0!==r._length){delete r._indexToPoints;var s=r.transforms||[];for(a=s.length-1;a>=0;a--)if(s[a].enabled){r._indexToPoints=s[a]._indexToPoints;break}n&&n.calc&&(o=n.calc(t,r))}Array.isArray(o)&&o[0]||(o=[{x:h,y:h}]),o[0].t||(o[0].t={}),o[0].trace=r,d[e]=o}}for(z(o,u,f),i=0;i<u.length;i++)_(i,!0);for(i=0;i<u.length;i++)b(i);for(x&&z(o,u,f),i=0;i<u.length;i++)_(i,!0);for(i=0;i<u.length;i++)_(i,!1);R(t);var T=function(t,e){var r,n,i,a,o,l=[];function u(t,r,n){var i=r._id.charAt(0);if("histogram2dcontour"===t){var a=r._counterAxes[0],o=p.getFromId(e,a),s="x"===i||"x"===a&&"category"===o.type,l="y"===i||"y"===a&&"category"===o.type;return function(t,e){return 0===t||0===e||s&&t===n[e].length-1||l&&e===n.length-1?-1:("y"===i?e:t)-1}}return function(t,e){return"y"===i?e:t}}var f={min:function(t){return c.aggNums(Math.min,null,t)},max:function(t){return c.aggNums(Math.max,null,t)},sum:function(t){return c.aggNums((function(t,e){return t+e}),null,t)},total:function(t){return c.aggNums((function(t,e){return t+e}),null,t)},mean:function(t){return c.mean(t)},median:function(t){return c.median(t)}};for(r=0;r<t.length;r++){var h=t[r];if("category"===h.type){var d=h.categoryorder.match(D);if(d){var v=d[1],g=d[2],y=h._id.charAt(0),m="x"===y,x=[];for(n=0;n<h._categories.length;n++)x.push([h._categories[n],[]]);for(n=0;n<h._traceIndices.length;n++){var b=h._traceIndices[n],_=e._fullData[b];if(!0===_.visible){var w=_.type;s.traceIs(_,"histogram")&&(delete _._xautoBinFinished,delete _._yautoBinFinished);var T="splom"===w,k="scattergl"===w,A=e.calcdata[b];for(i=0;i<A.length;i++){var M,S,E=A[i];if(T){var L=_._axesDim[h._id];if(!m){var C=_._diag[L][0];C&&(h=e._fullLayout[p.id2name(C)])}var P=E.trace.dimensions[L].values;for(a=0;a<P.length;a++)for(M=h._categoriesMap[P[a]],o=0;o<E.trace.dimensions.length;o++)if(o!==L){var O=E.trace.dimensions[o];x[M][1].push(O.values[a])}}else if(k){for(a=0;a<E.t.x.length;a++)m?(M=E.t.x[a],S=E.t.y[a]):(M=E.t.y[a],S=E.t.x[a]),x[M][1].push(S);E.t&&E.t._scene&&delete E.t._scene.dirty}else if(E.hasOwnProperty("z")){S=E.z;var I=u(_.type,h,S);for(a=0;a<S.length;a++)for(o=0;o<S[a].length;o++)(M=I(o,a))+1&&x[M][1].push(S[a][o])}else for(void 0===(M=E.p)&&(M=E[y]),void 0===(S=E.s)&&(S=E.v),void 0===S&&(S=m?E.y:E.x),Array.isArray(S)||(S=void 0===S?[]:[S]),a=0;a<S.length;a++)x[M][1].push(S[a])}}}h._categoriesValue=x;var z=[];for(n=0;n<x.length;n++)z.push([x[n][0],f[v](x[n][1])]);z.sort((function(t,e){return t[1]-e[1]})),h._categoriesAggregatedValue=z,h._initialCategories=z.map((function(t){return t[0]})),"descending"===g&&h._initialCategories.reverse(),l=l.concat(h.sortByInitialCategories())}}}return l}(o,t);if(T.length){for(f._numBoxes=0,f._numViolins=0,i=0;i<T.length;i++)_(T[i],!0);for(i=0;i<T.length;i++)_(T[i],!1);R(t)}s.getComponentMethod("fx","calc")(t),s.getComponentMethod("errorbars","calc")(t)};var D=/(total|sum|min|max|mean|median) (ascending|descending)/;function z(t,e,r){var n={};function i(t){t.clearCalc(),"multicategory"===t.type&&t.setupMultiCategory(e),n[t._id]=1}c.simpleMap(t,i);for(var a=r._axisMatchGroups||[],o=0;o<a.length;o++)for(var s in a[o])n[s]||i(r[p.id2name(s)])}function R(t){var e,r,n,i=t._fullLayout,a=i._visibleModules,o={};for(r=0;r<a.length;r++){var s=a[r],l=s.crossTraceCalc;if(l){var u=s.basePlotModule.name;o[u]?c.pushUnique(o[u],l):o[u]=[l]}}for(n in o){var f=o[n],h=i._subplots[n];if(Array.isArray(h))for(e=0;e<h.length;e++){var p=h[e],d="cartesian"===n?i._plots[p]:i[p];for(r=0;r<f.length;r++)f[r](t,d,p)}else for(r=0;r<f.length;r++)f[r](t)}}_.rehover=function(t){t._fullLayout._rehover&&t._fullLayout._rehover()},_.redrag=function(t){t._fullLayout._redrag&&t._fullLayout._redrag()},_.reselect=function(t){var e=t._fullLayout,r=(t.layout||{}).selections,n=e._previousSelections;e._previousSelections=r;var i=e._reselect||JSON.stringify(r)!==JSON.stringify(n);s.getComponentMethod("selections","reselect")(t,i)},_.generalUpdatePerTraceModule=function(t,e,r,n){var i,a=e.traceHash,o={};for(i=0;i<r.length;i++){var s=r[i],l=s[0].trace;l.visible&&(o[l.type]=o[l.type]||[],o[l.type].push(s))}for(var u in a)if(!o[u]){var f=a[u][0];f[0].trace.visible=!1,o[u]=[f]}for(var h in o){var p=o[h];p[0][0].trace._module.plot(t,e,c.filterVisible(p),n)}e.traceHash=o},_.plotBasePlot=function(t,e,r,n,i){var a=s.getModule(t),o=m(e.calcdata,a)[0];a.plot(e,o,n,i)},_.cleanBasePlot=function(t,e,r,n,i){var a=i._has&&i._has(t),o=r._has&&r._has(t);a&&!o&&i["_"+t+"layer"].selectAll("g.trace").remove()}},9813:function(t){"use strict";t.exports={attr:"subplot",name:"polar",axisNames:["angularaxis","radialaxis"],axisName2dataArray:{angularaxis:"theta",radialaxis:"r"},layerNames:["draglayer","plotbg","backplot","angular-grid","radial-grid","frontplot","angular-line","radial-line","angular-axis","radial-axis"],radialDragBoxSize:50,angularDragBoxSize:30,cornerLen:25,cornerHalfWidth:2,MINDRAG:8,MINZOOM:20,OFFEDGE:20}},10869:function(t,e,r){"use strict";var n=r(71828),i=r(61082).tester,a=n.findIndexOfMin,o=n.isAngleInsideSector,s=n.angleDelta,l=n.angleDist;function u(t,e,r,n){var i,a,o=n[0],s=n[1],l=f(Math.sin(e)-Math.sin(t)),u=f(Math.cos(e)-Math.cos(t)),c=Math.tan(r),h=f(1/c),p=l/u,d=s-p*o;return h?l&&u?a=c*(i=d/(c-p)):u?(i=s*h,a=s):(i=o,a=o*c):l&&u?(i=0,a=d):u?(i=0,a=s):i=a=NaN,[i,a]}function c(t,e,r,i){return n.isFullCircle([e,r])?function(t,e){var r,n=e.length,i=new Array(n+1);for(r=0;r<n;r++){var a=e[r];i[r]=[t*Math.cos(a),t*Math.sin(a)]}return i[r]=i[0].slice(),i}(t,i):function(t,e,r,i){var s,c,f=i.length,h=[];function p(e){return[t*Math.cos(e),t*Math.sin(e)]}function d(t,e,r){return u(t,e,r,p(t))}function v(t){return n.mod(t,f)}function g(t){return o(t,[e,r])}var y=a(i,(function(t){return g(t)?l(t,e):1/0})),m=d(i[y],i[v(y-1)],e);for(h.push(m),s=y,c=0;c<f;s++,c++){var x=i[v(s)];if(!g(x))break;h.push(p(x))}var b=a(i,(function(t){return g(t)?l(t,r):1/0})),_=d(i[b],i[v(b+1)],r);return h.push(_),h.push([0,0]),h.push(h[0].slice()),h}(t,e,r,i)}function f(t){return Math.abs(t)>1e-10?t:0}function h(t,e,r){e=e||0,r=r||0;for(var n=t.length,i=new Array(n),a=0;a<n;a++){var o=t[a];i[a]=[e+o[0],r-o[1]]}return i}t.exports={isPtInsidePolygon:function(t,e,r,n,a){if(!o(e,n))return!1;var s,l;r[0]<r[1]?(s=r[0],l=r[1]):(s=r[1],l=r[0]);var u=i(c(s,n[0],n[1],a)),f=i(c(l,n[0],n[1],a)),h=[t*Math.cos(e),t*Math.sin(e)];return f.contains(h)&&!u.contains(h)},findPolygonOffset:function(t,e,r,n){for(var i=1/0,a=1/0,o=c(t,e,r,n),s=0;s<o.length;s++){var l=o[s];i=Math.min(i,l[0]),a=Math.min(a,-l[1])}return[i,a]},findEnclosingVertexAngles:function(t,e){var r=a(e,(function(e){var r=s(e,t);return r>0?r:1/0})),i=n.mod(r+1,e.length);return[e[r],e[i]]},findIntersectionXY:u,findXYatLength:function(t,e,r,n){var i=-e*r,a=e*e+1,o=2*(e*i-r),s=i*i+r*r-t*t,l=Math.sqrt(o*o-4*a*s),u=(-o+l)/(2*a),c=(-o-l)/(2*a);return[[u,e*u+i+n],[c,e*c+i+n]]},clampTiny:f,pathPolygon:function(t,e,r,n,i,a){return"M"+h(c(t,e,r,n),i,a).join("L")},pathPolygonAnnulus:function(t,e,r,n,i,a,o){var s,l;t<e?(s=t,l=e):(s=e,l=t);var u=h(c(s,r,n,i),a,o);return"M"+h(c(l,r,n,i),a,o).reverse().join("L")+"M"+u.join("L")}}},23580:function(t,e,r){"use strict";var n=r(27659).AU,i=r(71828).counterRegex,a=r(77997),o=r(9813),s=o.attr,l=o.name,u=i(l),c={};c[s]={valType:"subplotid",dflt:l,editType:"calc"},t.exports={attr:s,name:l,idRoot:l,idRegex:u,attrRegex:u,attributes:c,layoutAttributes:r(73812),supplyLayoutDefaults:r(68993),plot:function(t){for(var e=t._fullLayout,r=t.calcdata,i=e._subplots[l],o=0;o<i.length;o++){var s=i[o],u=n(r,l,s),c=e[s]._subplot;c||(c=a(t,s),e[s]._subplot=c),c.plot(u,e,t._promises)}},clean:function(t,e,r,n){for(var i=n._subplots[l]||[],a=n._has&&n._has("gl"),o=e._has&&e._has("gl"),s=a&&!o,u=0;u<i.length;u++){var c=i[u],f=n[c]._subplot;if(!e[c]&&f)for(var h in f.framework.remove(),f.layers["radial-axis-title"].remove(),f.clipPaths)f.clipPaths[h].remove();s&&f._scene&&(f._scene.destroy(),f._scene=null)}},toSVG:r(93612).toSVG}},73812:function(t,e,r){"use strict";var n=r(22399),i=r(13838),a=r(27670).Y,o=r(71828).extendFlat,s=r(30962).overrideAll,l=s({color:i.color,showline:o({},i.showline,{dflt:!0}),linecolor:i.linecolor,linewidth:i.linewidth,showgrid:o({},i.showgrid,{dflt:!0}),gridcolor:i.gridcolor,gridwidth:i.gridwidth,griddash:i.griddash},"plot","from-root"),u=s({tickmode:i.minor.tickmode,nticks:i.nticks,tick0:i.tick0,dtick:i.dtick,tickvals:i.tickvals,ticktext:i.ticktext,ticks:i.ticks,ticklen:i.ticklen,tickwidth:i.tickwidth,tickcolor:i.tickcolor,ticklabelstep:i.ticklabelstep,showticklabels:i.showticklabels,showtickprefix:i.showtickprefix,tickprefix:i.tickprefix,showticksuffix:i.showticksuffix,ticksuffix:i.ticksuffix,showexponent:i.showexponent,exponentformat:i.exponentformat,minexponent:i.minexponent,separatethousands:i.separatethousands,tickfont:i.tickfont,tickangle:i.tickangle,tickformat:i.tickformat,tickformatstops:i.tickformatstops,layer:i.layer},"plot","from-root"),c={visible:o({},i.visible,{dflt:!0}),type:o({},i.type,{values:["-","linear","log","date","category"]}),autotypenumbers:i.autotypenumbers,autorange:o({},i.autorange,{editType:"plot"}),rangemode:{valType:"enumerated",values:["tozero","nonnegative","normal"],dflt:"tozero",editType:"calc"},range:o({},i.range,{items:[{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1}},{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1}}],editType:"plot"}),categoryorder:i.categoryorder,categoryarray:i.categoryarray,angle:{valType:"angle",editType:"plot"},side:{valType:"enumerated",values:["clockwise","counterclockwise"],dflt:"clockwise",editType:"plot"},title:{text:o({},i.title.text,{editType:"plot",dflt:""}),font:o({},i.title.font,{editType:"plot"}),editType:"plot"},hoverformat:i.hoverformat,uirevision:{valType:"any",editType:"none"},editType:"calc",_deprecated:{title:i._deprecated.title,titlefont:i._deprecated.titlefont}};o(c,l,u);var f={visible:o({},i.visible,{dflt:!0}),type:{valType:"enumerated",values:["-","linear","category"],dflt:"-",editType:"calc",_noTemplating:!0},autotypenumbers:i.autotypenumbers,categoryorder:i.categoryorder,categoryarray:i.categoryarray,thetaunit:{valType:"enumerated",values:["radians","degrees"],dflt:"degrees",editType:"calc"},period:{valType:"number",editType:"calc",min:0},direction:{valType:"enumerated",values:["counterclockwise","clockwise"],dflt:"counterclockwise",editType:"calc"},rotation:{valType:"angle",editType:"calc"},hoverformat:i.hoverformat,uirevision:{valType:"any",editType:"none"},editType:"calc"};o(f,l,u),t.exports={domain:a({name:"polar",editType:"plot"}),sector:{valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],dflt:[0,360],editType:"plot"},hole:{valType:"number",min:0,max:1,dflt:0,editType:"plot"},bgcolor:{valType:"color",editType:"plot",dflt:n.background},radialaxis:c,angularaxis:f,gridshape:{valType:"enumerated",values:["circular","linear"],dflt:"circular",editType:"plot"},uirevision:{valType:"any",editType:"none"},editType:"calc"}},68993:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(44467),o=r(49119),s=r(27659).NG,l=r(26218),u=r(38701),c=r(96115),f=r(89426),h=r(15258),p=r(92128),d=r(4322),v=r(73812),g=r(12101),y=r(9813),m=y.axisNames;function x(t,e,r,o){var d=r("bgcolor");o.bgColor=i.combine(d,o.paper_bgcolor);var x=r("sector");r("hole");var _,w=s(o.fullData,y.name,o.id),T=o.layoutOut;function k(t,e){return r(_+"."+t,e)}for(var A=0;A<m.length;A++){_=m[A],n.isPlainObject(t[_])||(t[_]={});var M=t[_],S=a.newContainer(e,_);S._id=S._name=_,S._attr=o.id+"."+_,S._traceIndices=w.map((function(t){return t._expandedIndex}));var E=y.axisName2dataArray[_],L=b(M,S,k,w,E,o);h(M,S,k,{axData:w,dataAttr:E});var C=k("visible");switch(g(S,e,T),k("uirevision",e.uirevision),S._m=1,_){case"radialaxis":var P=k("autorange",!S.isValidRange(M.range));M.autorange=P,!P||"linear"!==L&&"-"!==L||k("rangemode"),"reversed"===P&&(S._m=-1),k("range"),S.cleanRange("range",{dfltRange:[0,1]});break;case"angularaxis":if("date"===L){n.log("Polar plots do not support date angular axes yet.");for(var O=0;O<w.length;O++)w[O].visible=!1;L=M.type=S.type="linear"}k("linear"===L?"thetaunit":"period");var I=k("direction");k("rotation",{counterclockwise:0,clockwise:90}[I])}if(f(M,S,k,S.type,{tickSuffixDflt:"degrees"===S.thetaunit?"°":void 0}),C){var D,z,R,F,B=o.font||{};z=(D=k("color"))===M.color?D:B.color,R=B.size,F=B.family,l(M,S,k,S.type),c(M,S,k,S.type,{font:{color:z,size:R,family:F}}),u(M,S,k,{outerTicks:!0}),p(M,S,k,{dfltColor:D,bgColor:o.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:v[_]}),k("layer"),"radialaxis"===_&&(k("side"),k("angle",x[0]),k("title.text"),n.coerceFont(k,"title.font",{color:z,size:n.bigFont(R),family:F}))}"category"!==L&&k("hoverformat"),S._input=M}"category"===e.angularaxis.type&&r("gridshape")}function b(t,e,r,n,i,a){var o=r("autotypenumbers",a.autotypenumbersDflt);if("-"===r("type")){for(var s,l=0;l<n.length;l++)if(n[l].visible){s=n[l];break}s&&s[i]&&(e.type=d(s[i],"gregorian",{noMultiCategory:!0,autotypenumbers:o})),"-"===e.type?e.type="linear":t.type=e.type}return e.type}t.exports=function(t,e,r){o(t,e,r,{type:y.name,attributes:v,handleDefaults:x,font:e.font,autotypenumbersDflt:e.autotypenumbers,paper_bgcolor:e.paper_bgcolor,fullData:r,layoutOut:e})}},77997:function(t,e,r){"use strict";var n=r(39898),i=r(84267),a=r(73972),o=r(71828),s=o.strRotate,l=o.strTranslate,u=r(7901),c=r(91424),f=r(74875),h=r(89298),p=r(21994),d=r(12101),v=r(71739).doAutoRange,g=r(29323),y=r(28569),m=r(30211),x=r(92998),b=r(47322).prepSelect,_=r(47322).selectOnClick,w=r(47322).clearOutline,T=r(6964),k=r(33306),A=r(61549).redrawReglTraces,M=r(18783).MID_SHIFT,S=r(9813),E=r(10869),L=r(23893),C=L.smith,P=L.reactanceArc,O=L.resistanceArc,I=L.smithTransform,D=o._,z=o.mod,R=o.deg2rad,F=o.rad2deg;function B(t,e,r){this.isSmith=r||!1,this.id=e,this.gd=t,this._hasClipOnAxisFalse=null,this.vangles=null,this.radialAxisAngle=null,this.traceHash={},this.layers={},this.clipPaths={},this.clipIds={},this.viewInitial={};var n=t._fullLayout,i="clip"+n._uid+e;this.clipIds.forTraces=i+"-for-traces",this.clipPaths.forTraces=n._clips.append("clipPath").attr("id",this.clipIds.forTraces),this.clipPaths.forTraces.append("path"),this.framework=n["_"+(r?"smith":"polar")+"layer"].append("g").attr("class",e),this.getHole=function(t){return this.isSmith?0:t.hole},this.getSector=function(t){return this.isSmith?[0,360]:t.sector},this.getRadial=function(t){return this.isSmith?t.realaxis:t.radialaxis},this.getAngular=function(t){return this.isSmith?t.imaginaryaxis:t.angularaxis},r||(this.radialTickLayout=null,this.angularTickLayout=null)}var N=B.prototype;function j(t){var e=t.ticks+String(t.ticklen)+String(t.showticklabels);return"side"in t&&(e+=t.side),e}function U(t,e){return e[o.findIndexOfMin(e,(function(e){return o.angleDist(t,e)}))]}function V(t,e,r){return e?(t.attr("display",null),t.attr(r)):t&&t.attr("display","none"),t}t.exports=function(t,e,r){return new B(t,e,r)},N.plot=function(t,e){for(var r=this,n=e[r.id],i=!1,a=0;a<t.length;a++)if(!1===t[a][0].trace.cliponaxis){i=!0;break}r._hasClipOnAxisFalse=i,r.updateLayers(e,n),r.updateLayout(e,n),f.generalUpdatePerTraceModule(r.gd,r,t,n),r.updateFx(e,n),r.isSmith&&(delete n.realaxis.range,delete n.imaginaryaxis.range)},N.updateLayers=function(t,e){var r=this,i=r.isSmith,a=r.layers,o=r.getRadial(e),s=r.getAngular(e),l=S.layerNames,u=l.indexOf("frontplot"),c=l.slice(0,u),f="below traces"===s.layer,h="below traces"===o.layer;f&&c.push("angular-line"),h&&c.push("radial-line"),f&&c.push("angular-axis"),h&&c.push("radial-axis"),c.push("frontplot"),f||c.push("angular-line"),h||c.push("radial-line"),f||c.push("angular-axis"),h||c.push("radial-axis");var p=(i?"smith":"polar")+"sublayer",d=r.framework.selectAll("."+p).data(c,String);d.enter().append("g").attr("class",(function(t){return p+" "+t})).each((function(t){var e=a[t]=n.select(this);switch(t){case"frontplot":i||e.append("g").classed("barlayer",!0),e.append("g").classed("scatterlayer",!0);break;case"backplot":e.append("g").classed("maplayer",!0);break;case"plotbg":a.bg=e.append("path");break;case"radial-grid":case"angular-grid":e.style("fill","none");break;case"radial-line":e.append("line").style("fill","none");break;case"angular-line":e.append("path").style("fill","none")}})),d.order()},N.updateLayout=function(t,e){var r=this,n=r.layers,i=t._size,a=r.getRadial(e),o=r.getAngular(e),s=e.domain.x,f=e.domain.y;r.xOffset=i.l+i.w*s[0],r.yOffset=i.t+i.h*(1-f[1]);var h=r.xLength=i.w*(s[1]-s[0]),p=r.yLength=i.h*(f[1]-f[0]),d=r.getSector(e);r.sectorInRad=d.map(R);var v,g,y,m,x,b=r.sectorBBox=function(t){var e,r=t[0],n=t[1]-r,i=z(r,360),a=i+n,o=Math.cos(R(i)),s=Math.sin(R(i)),l=Math.cos(R(a)),u=Math.sin(R(a));return e=i<=90&&a>=90||i>90&&a>=450?1:s<=0&&u<=0?0:Math.max(s,u),[i<=180&&a>=180||i>180&&a>=540?-1:o>=0&&l>=0?0:Math.min(o,l),i<=270&&a>=270||i>270&&a>=630?-1:s>=0&&u>=0?0:Math.min(s,u),a>=360?1:o<=0&&l<=0?0:Math.max(o,l),e]}(d),_=b[2]-b[0],w=b[3]-b[1],T=p/h,k=Math.abs(w/_);T>k?(v=h,x=(p-(g=h*k))/i.h/2,y=[s[0],s[1]],m=[f[0]+x,f[1]-x]):(g=p,x=(h-(v=p/k))/i.w/2,y=[s[0]+x,s[1]-x],m=[f[0],f[1]]),r.xLength2=v,r.yLength2=g,r.xDomain2=y,r.yDomain2=m;var A,M=r.xOffset2=i.l+i.w*y[0],S=r.yOffset2=i.t+i.h*(1-m[1]),E=r.radius=v/_,L=r.innerRadius=r.getHole(e)*E,C=r.cx=M-E*b[0],P=r.cy=S+E*b[3],O=r.cxx=C-M,I=r.cyy=P-S,D=a.side;"counterclockwise"===D?(A=D,D="top"):"clockwise"===D&&(A=D,D="bottom"),r.radialAxis=r.mockAxis(t,e,a,{_id:"x",side:D,_trueSide:A,domain:[L/i.w,E/i.w]}),r.angularAxis=r.mockAxis(t,e,o,{side:"right",domain:[0,Math.PI],autorange:!1}),r.doAutoRange(t,e),r.updateAngularAxis(t,e),r.updateRadialAxis(t,e),r.updateRadialAxisTitle(t,e),r.xaxis=r.mockCartesianAxis(t,e,{_id:"x",domain:y}),r.yaxis=r.mockCartesianAxis(t,e,{_id:"y",domain:m});var F=r.pathSubplot();r.clipPaths.forTraces.select("path").attr("d",F).attr("transform",l(O,I)),n.frontplot.attr("transform",l(M,S)).call(c.setClipUrl,r._hasClipOnAxisFalse?null:r.clipIds.forTraces,r.gd),n.bg.attr("d",F).attr("transform",l(C,P)).call(u.fill,e.bgcolor)},N.mockAxis=function(t,e,r,n){var i=o.extendFlat({},r,n);return d(i,e,t),i},N.mockCartesianAxis=function(t,e,r){var n=this,i=n.isSmith,a=r._id,s=o.extendFlat({type:"linear"},r);p(s,t);var l={x:[0,2],y:[1,3]};return s.setRange=function(){var t=n.sectorBBox,r=l[a],i=n.radialAxis._rl,o=(i[1]-i[0])/(1-n.getHole(e));s.range=[t[r[0]]*o,t[r[1]]*o]},s.isPtWithinRange="x"!==a||i?function(){return!0}:function(t){return n.isPtInside(t)},s.setRange(),s.setScale(),s},N.doAutoRange=function(t,e){var r=this,n=r.gd,i=r.radialAxis,a=r.getRadial(e);v(n,i);var o=i.range;a.range=o.slice(),a._input.range=o.slice(),i._rl=[i.r2l(o[0],null,"gregorian"),i.r2l(o[1],null,"gregorian")]},N.updateRadialAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,c=r.innerRadius,f=r.cx,p=r.cy,d=r.getRadial(e),v=z(r.getSector(e)[0],360),g=r.radialAxis,y=c<a,m=r.isSmith;m||(r.fillViewInitialKey("radialaxis.angle",d.angle),r.fillViewInitialKey("radialaxis.range",g.range.slice()),g.setGeometry()),"auto"===g.tickangle&&v>90&&v<=270&&(g.tickangle=180);var x=m?function(t){var e=I(r,C([t.x,0]));return l(e[0]-f,e[1]-p)}:function(t){return l(g.l2p(t.x)+c,0)},b=m?function(t){return O(r,t.x,-1/0,1/0)}:function(t){return r.pathArc(g.r2p(t.x)+c)},_=j(d);if(r.radialTickLayout!==_&&(i["radial-axis"].selectAll(".xtick").remove(),r.radialTickLayout=_),y){g.setScale();var w=0,T=m?(g.tickvals||[]).filter((function(t){return t>=0})).map((function(t){return h.tickText(g,t,!0,!1)})):h.calcTicks(g),k=m?T:h.clipEnds(g,T),A=h.getTickSigns(g)[2];m&&(("top"===g.ticks&&"bottom"===g.side||"bottom"===g.ticks&&"top"===g.side)&&(A=-A),"top"===g.ticks&&"top"===g.side&&(w=-g.ticklen),"bottom"===g.ticks&&"bottom"===g.side&&(w=g.ticklen)),h.drawTicks(n,g,{vals:T,layer:i["radial-axis"],path:h.makeTickPath(g,0,A),transFn:x,crisp:!1}),h.drawGrid(n,g,{vals:k,layer:i["radial-grid"],path:b,transFn:o.noop,crisp:!1}),h.drawLabels(n,g,{vals:T,layer:i["radial-axis"],transFn:x,labelFns:h.makeLabelFns(g,w)})}var M=r.radialAxisAngle=r.vangles?F(U(R(d.angle),r.vangles)):d.angle,S=l(f,p),E=S+s(-M);V(i["radial-axis"],y&&(d.showticklabels||d.ticks),{transform:E}),V(i["radial-grid"],y&&d.showgrid,{transform:m?"":S}),V(i["radial-line"].select("line"),y&&d.showline,{x1:m?-a:c,y1:0,x2:a,y2:0,transform:E}).attr("stroke-width",d.linewidth).call(u.stroke,d.linecolor)},N.updateRadialAxisTitle=function(t,e,r){if(!this.isSmith){var n=this,i=n.gd,a=n.radius,o=n.cx,s=n.cy,l=n.getRadial(e),u=n.id+"title",f=0;if(l.title){var h=c.bBox(n.layers["radial-axis"].node()).height,p=l.title.font.size,d=l.side;f="top"===d?p:"counterclockwise"===d?-(h+.4*p):h+.8*p}var v=void 0!==r?r:n.radialAxisAngle,g=R(v),y=Math.cos(g),m=Math.sin(g),b=o+a/2*y+f*m,_=s-a/2*m+f*y;n.layers["radial-axis-title"]=x.draw(i,u,{propContainer:l,propName:n.id+".radialaxis.title",placeholder:D(i,"Click to enter radial axis title"),attributes:{x:b,y:_,"text-anchor":"middle"},transform:{rotate:-v}})}},N.updateAngularAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,c=r.innerRadius,f=r.cx,p=r.cy,d=r.getAngular(e),v=r.angularAxis,g=r.isSmith;g||(r.fillViewInitialKey("angularaxis.rotation",d.rotation),v.setGeometry(),v.setScale());var y=g?function(t){var e=I(r,C([0,t.x]));return Math.atan2(e[0]-f,e[1]-p)-Math.PI/2}:function(t){return v.t2g(t.x)};"linear"===v.type&&"radians"===v.thetaunit&&(v.tick0=F(v.tick0),v.dtick=F(v.dtick));var m=function(t){return l(f+a*Math.cos(t),p-a*Math.sin(t))},x=g?function(t){var e=I(r,C([0,t.x]));return l(e[0],e[1])}:function(t){return m(y(t))},b=g?function(t){var e=I(r,C([0,t.x])),n=Math.atan2(e[0]-f,e[1]-p)-Math.PI/2;return l(e[0],e[1])+s(-F(n))}:function(t){var e=y(t);return m(e)+s(-F(e))},_=g?function(t){return P(r,t.x,0,1/0)}:function(t){var e=y(t),r=Math.cos(e),n=Math.sin(e);return"M"+[f+c*r,p-c*n]+"L"+[f+a*r,p-a*n]},w=h.makeLabelFns(v,0).labelStandoff,T={xFn:function(t){var e=y(t);return Math.cos(e)*w},yFn:function(t){var e=y(t),r=Math.sin(e)>0?.2:1;return-Math.sin(e)*(w+t.fontSize*r)+Math.abs(Math.cos(e))*(t.fontSize*M)},anchorFn:function(t){var e=y(t),r=Math.cos(e);return Math.abs(r)<.1?"middle":r>0?"start":"end"},heightFn:function(t,e,r){var n=y(t);return-.5*(1+Math.sin(n))*r}},k=j(d);r.angularTickLayout!==k&&(i["angular-axis"].selectAll("."+v._id+"tick").remove(),r.angularTickLayout=k);var A,S=g?[1/0].concat(v.tickvals||[]).map((function(t){return h.tickText(v,t,!0,!1)})):h.calcTicks(v);if(g&&(S[0].text="∞",S[0].fontSize*=1.75),"linear"===e.gridshape?(A=S.map(y),o.angleDelta(A[0],A[1])<0&&(A=A.slice().reverse())):A=null,r.vangles=A,"category"===v.type&&(S=S.filter((function(t){return o.isAngleInsideSector(y(t),r.sectorInRad)}))),v.visible){var E="inside"===v.ticks?-1:1,L=(v.linewidth||1)/2;h.drawTicks(n,v,{vals:S,layer:i["angular-axis"],path:"M"+E*L+",0h"+E*v.ticklen,transFn:b,crisp:!1}),h.drawGrid(n,v,{vals:S,layer:i["angular-grid"],path:_,transFn:o.noop,crisp:!1}),h.drawLabels(n,v,{vals:S,layer:i["angular-axis"],repositionOnUpdate:!0,transFn:x,labelFns:T})}V(i["angular-line"].select("path"),d.showline,{d:r.pathSubplot(),transform:l(f,p)}).attr("stroke-width",d.linewidth).call(u.stroke,d.linecolor)},N.updateFx=function(t,e){this.gd._context.staticPlot||(!this.isSmith&&(this.updateAngularDrag(t),this.updateRadialDrag(t,e,0),this.updateRadialDrag(t,e,1)),this.updateHoverAndMainDrag(t))},N.updateHoverAndMainDrag=function(t){var e,r,s=this,u=s.isSmith,c=s.gd,f=s.layers,h=t._zoomlayer,p=S.MINZOOM,d=S.OFFEDGE,v=s.radius,x=s.innerRadius,T=s.cx,k=s.cy,A=s.cxx,M=s.cyy,L=s.sectorInRad,C=s.vangles,P=s.radialAxis,O=E.clampTiny,I=E.findXYatLength,D=E.findEnclosingVertexAngles,z=S.cornerHalfWidth,R=S.cornerLen/2,F=g.makeDragger(f,"path","maindrag",!1===t.dragmode?"none":"crosshair");n.select(F).attr("d",s.pathSubplot()).attr("transform",l(T,k)),F.onmousemove=function(t){m.hover(c,t,s.id),c._fullLayout._lasthover=F,c._fullLayout._hoversubplot=s.id},F.onmouseout=function(t){c._dragging||y.unhover(c,t)};var B,N,j,U,V,H,q,G,Z,Y={element:F,gd:c,subplot:s.id,plotinfo:{id:s.id,xaxis:s.xaxis,yaxis:s.yaxis},xaxes:[s.xaxis],yaxes:[s.yaxis]};function W(t,e){return Math.sqrt(t*t+e*e)}function X(t,e){return W(t-A,e-M)}function J(t,e){return Math.atan2(M-e,t-A)}function K(t,e){return[t*Math.cos(e),t*Math.sin(-e)]}function $(t,e){if(0===t)return s.pathSector(2*z);var r=R/t,n=e-r,i=e+r,a=Math.max(0,Math.min(t,v)),o=a-z,l=a+z;return"M"+K(o,n)+"A"+[o,o]+" 0,0,0 "+K(o,i)+"L"+K(l,i)+"A"+[l,l]+" 0,0,1 "+K(l,n)+"Z"}function Q(t,e,r){if(0===t)return s.pathSector(2*z);var n,i,a=K(t,e),o=K(t,r),l=O((a[0]+o[0])/2),u=O((a[1]+o[1])/2);if(l&&u){var c=u/l,f=-1/c,h=I(z,c,l,u);n=I(R,f,h[0][0],h[0][1]),i=I(R,f,h[1][0],h[1][1])}else{var p,d;u?(p=R,d=z):(p=z,d=R),n=[[l-p,u-d],[l+p,u-d]],i=[[l-p,u+d],[l+p,u+d]]}return"M"+n.join("L")+"L"+i.reverse().join("L")+"Z"}function tt(t,e){return e=Math.max(Math.min(e,v),x),t<d?t=0:v-t<d?t=v:e<d?e=0:v-e<d&&(e=v),Math.abs(e-t)>p?(t<e?(j=t,U=e):(j=e,U=t),!0):(j=null,U=null,!1)}function et(t,e){t=t||V,e=e||"M0,0Z",G.attr("d",t),Z.attr("d",e),g.transitionZoombox(G,Z,H,q),H=!0;var r={};ot(r),c.emit("plotly_relayouting",r)}function rt(t,n){var i,a,o=B+(t*=e),l=N+(n*=r),u=X(B,N),c=Math.min(X(o,l),v),f=J(B,N);tt(u,c)&&(i=V+s.pathSector(U),j&&(i+=s.pathSector(j)),a=$(j,f)+$(U,f)),et(i,a)}function nt(t,e,r,n){var i=E.findIntersectionXY(r,n,r,[t-A,M-e]);return W(i[0],i[1])}function it(t,e){var r,n,i=B+t,a=N+e,o=J(B,N),l=J(i,a),u=D(o,C),c=D(l,C);tt(nt(B,N,u[0],u[1]),Math.min(nt(i,a,c[0],c[1]),v))&&(r=V+s.pathSector(U),j&&(r+=s.pathSector(j)),n=[Q(j,u[0],u[1]),Q(U,u[0],u[1])].join(" ")),et(r,n)}function at(){if(g.removeZoombox(c),null!==j&&null!==U){var t={};ot(t),g.showDoubleClickNotifier(c),a.call("_guiRelayout",c,t)}}function ot(t){var e=P._rl,r=(e[1]-e[0])/(1-x/v)/v,n=[e[0]+(j-x)*r,e[0]+(U-x)*r];t[s.id+".radialaxis.range"]=n}function st(t,e){var r=c._fullLayout.clickmode;if(g.removeZoombox(c),2===t){var n={};for(var i in s.viewInitial)n[s.id+"."+i]=s.viewInitial[i];c.emit("plotly_doubleclick",null),a.call("_guiRelayout",c,n)}r.indexOf("select")>-1&&1===t&&_(e,c,[s.xaxis],[s.yaxis],s.id,Y),r.indexOf("event")>-1&&m.click(c,e,s.id)}Y.prepFn=function(t,n,a){var l=c._fullLayout.dragmode,f=F.getBoundingClientRect();c._fullLayout._calcInverseTransform(c);var p=c._fullLayout._invTransform;e=c._fullLayout._invScaleX,r=c._fullLayout._invScaleY;var d=o.apply3DTransform(p)(n-f.left,a-f.top);if(B=d[0],N=d[1],C){var y=E.findPolygonOffset(v,L[0],L[1],C);B+=A+y[0],N+=M+y[1]}switch(l){case"zoom":Y.clickFn=st,u||(Y.moveFn=C?it:rt,Y.doneFn=at,function(){j=null,U=null,V=s.pathSubplot(),H=!1;var t=c._fullLayout[s.id];q=i(t.bgcolor).getLuminance(),(G=g.makeZoombox(h,q,T,k,V)).attr("fill-rule","evenodd"),Z=g.makeCorners(h,T,k),w(c)}());break;case"select":case"lasso":b(t,n,a,Y,l)}},y.init(Y)},N.updateRadialDrag=function(t,e,r){var i=this,u=i.gd,c=i.layers,f=i.radius,h=i.innerRadius,p=i.cx,d=i.cy,v=i.radialAxis,m=S.radialDragBoxSize,x=m/2;if(v.visible){var b,_,T,M=R(i.radialAxisAngle),E=v._rl,L=E[0],C=E[1],P=E[r],O=.75*(E[1]-E[0])/(1-i.getHole(e))/f;r?(b=p+(f+x)*Math.cos(M),_=d-(f+x)*Math.sin(M),T="radialdrag"):(b=p+(h-x)*Math.cos(M),_=d-(h-x)*Math.sin(M),T="radialdrag-inner");var I,D,z,B=g.makeRectDragger(c,T,"crosshair",-x,-x,m,m),N={element:B,gd:u};!1===t.dragmode&&(N.dragmode=!1),V(n.select(B),v.visible&&h<f,{transform:l(b,_)}),N.prepFn=function(){I=null,D=null,z=null,N.moveFn=j,N.doneFn=H,w(u)},N.clampFn=function(t,e){return Math.sqrt(t*t+e*e)<S.MINDRAG&&(t=0,e=0),[t,e]},y.init(N)}function j(t,e){if(I)I(t,e);else{var n=[t,-e],a=[Math.cos(M),Math.sin(M)],s=Math.abs(o.dot(n,a)/Math.sqrt(o.dot(n,n)));isNaN(s)||(I=s<.5?q:G)}var l={};!function(t){null!==D?t[i.id+".radialaxis.angle"]=D:null!==z&&(t[i.id+".radialaxis.range["+r+"]"]=z)}(l),u.emit("plotly_relayouting",l)}function H(){null!==D?a.call("_guiRelayout",u,i.id+".radialaxis.angle",D):null!==z&&a.call("_guiRelayout",u,i.id+".radialaxis.range["+r+"]",z)}function q(t,e){if(0!==r){var n=b+t,a=_+e;D=Math.atan2(d-a,n-p),i.vangles&&(D=U(D,i.vangles)),D=F(D);var o=l(p,d)+s(-D);c["radial-axis"].attr("transform",o),c["radial-line"].select("line").attr("transform",o);var u=i.gd._fullLayout,f=u[i.id];i.updateRadialAxisTitle(u,f,D)}}function G(t,e){var n=o.dot([t,-e],[Math.cos(M),Math.sin(M)]);if(z=P-O*n,O>0==(r?z>L:z<C)){var s=u._fullLayout,l=s[i.id];v.range[r]=z,v._rl[r]=z,i.updateRadialAxis(s,l),i.xaxis.setRange(),i.xaxis.setScale(),i.yaxis.setRange(),i.yaxis.setScale();var c=!1;for(var f in i.traceHash){var h=i.traceHash[f],p=o.filterVisible(h);h[0][0].trace._module.plot(u,i,p,l),a.traceIs(f,"gl")&&p.length&&(c=!0)}c&&(k(u),A(u))}else z=null}},N.updateAngularDrag=function(t){var e=this,r=e.gd,i=e.layers,u=e.radius,f=e.angularAxis,h=e.cx,p=e.cy,d=e.cxx,v=e.cyy,m=S.angularDragBoxSize,x=g.makeDragger(i,"path","angulardrag",!1===t.dragmode?"none":"move"),b={element:x,gd:r};function _(t,e){return Math.atan2(v+m-e,t-d-m)}!1===t.dragmode?b.dragmode=!1:n.select(x).attr("d",e.pathAnnulus(u,u+m)).attr("transform",l(h,p)).call(T,"move");var M,E,L,C,P,O,I=i.frontplot.select(".scatterlayer").selectAll(".trace"),D=I.selectAll(".point"),z=I.selectAll(".textpoint");function R(u,g){var y=e.gd._fullLayout,m=y[e.id],x=_(M+u*t._invScaleX,E+g*t._invScaleY),b=F(x-O);if(C=L+b,i.frontplot.attr("transform",l(e.xOffset2,e.yOffset2)+s([-b,d,v])),e.vangles){P=e.radialAxisAngle+b;var w=l(h,p)+s(-b),T=l(h,p)+s(-P);i.bg.attr("transform",w),i["radial-grid"].attr("transform",w),i["radial-axis"].attr("transform",T),i["radial-line"].select("line").attr("transform",T),e.updateRadialAxisTitle(y,m,P)}else e.clipPaths.forTraces.select("path").attr("transform",l(d,v)+s(b));D.each((function(){var t=n.select(this),e=c.getTranslate(t);t.attr("transform",l(e.x,e.y)+s([b]))})),z.each((function(){var t=n.select(this),e=t.select("text"),r=c.getTranslate(t);t.attr("transform",s([b,e.attr("x"),e.attr("y")])+l(r.x,r.y))})),f.rotation=o.modHalf(C,360),e.updateAngularAxis(y,m),e._hasClipOnAxisFalse&&!o.isFullCircle(e.sectorInRad)&&I.call(c.hideOutsideRangePoints,e);var S=!1;for(var R in e.traceHash)if(a.traceIs(R,"gl")){var N=e.traceHash[R],j=o.filterVisible(N);N[0][0].trace._module.plot(r,e,j,m),j.length&&(S=!0)}S&&(k(r),A(r));var U={};B(U),r.emit("plotly_relayouting",U)}function B(t){t[e.id+".angularaxis.rotation"]=C,e.vangles&&(t[e.id+".radialaxis.angle"]=P)}function N(){z.select("text").attr("transform",null);var t={};B(t),a.call("_guiRelayout",r,t)}b.prepFn=function(n,i,a){var s=t[e.id];L=s.angularaxis.rotation;var l=x.getBoundingClientRect();M=i-l.left,E=a-l.top,r._fullLayout._calcInverseTransform(r);var u=o.apply3DTransform(t._invTransform)(M,E);M=u[0],E=u[1],O=_(M,E),b.moveFn=R,b.doneFn=N,w(r)},e.vangles&&!o.isFullCircle(e.sectorInRad)&&(b.prepFn=o.noop,T(n.select(x),null)),y.init(b)},N.isPtInside=function(t){if(this.isSmith)return!0;var e=this.sectorInRad,r=this.vangles,n=this.angularAxis.c2g(t.theta),i=this.radialAxis,a=i.c2l(t.r),s=i._rl;return(r?E.isPtInsidePolygon:o.isPtInsideSector)(a,n,s,e,r)},N.pathArc=function(t){var e=this.sectorInRad,r=this.vangles;return(r?E.pathPolygon:o.pathArc)(t,e[0],e[1],r)},N.pathSector=function(t){var e=this.sectorInRad,r=this.vangles;return(r?E.pathPolygon:o.pathSector)(t,e[0],e[1],r)},N.pathAnnulus=function(t,e){var r=this.sectorInRad,n=this.vangles;return(n?E.pathPolygonAnnulus:o.pathAnnulus)(t,e,r[0],r[1],n)},N.pathSubplot=function(){var t=this.innerRadius,e=this.radius;return t?this.pathAnnulus(t,e):this.pathSector(e)},N.fillViewInitialKey=function(t,e){t in this.viewInitial||(this.viewInitial[t]=e)}},12101:function(t,e,r){"use strict";var n=r(71828),i=r(21994),a=n.deg2rad,o=n.rad2deg;t.exports=function(t,e,r){switch(i(t,r),t._id){case"x":case"radialaxis":!function(t,e){var r=e._subplot;t.setGeometry=function(){var e=t._rl[0],n=t._rl[1],i=r.innerRadius,a=(r.radius-i)/(n-e),o=i/a,s=e>n?function(t){return t<=0}:function(t){return t>=0};t.c2g=function(r){var n=t.c2l(r)-e;return(s(n)?n:0)+o},t.g2c=function(r){return t.l2c(r+e-o)},t.g2p=function(t){return t*a},t.c2p=function(e){return t.g2p(t.c2g(e))}}}(t,e);break;case"angularaxis":!function(t,e){var r=t.type;if("linear"===r){var i=t.d2c,s=t.c2d;t.d2c=function(t,e){return function(t,e){return"degrees"===e?a(t):t}(i(t),e)},t.c2d=function(t,e){return s(function(t,e){return"degrees"===e?o(t):t}(t,e))}}t.makeCalcdata=function(e,i){var a,o,s=e[i],l=e._length,u=function(r){return t.d2c(r,e.thetaunit)};if(s){if(n.isTypedArray(s)&&"linear"===r){if(l===s.length)return s;if(s.subarray)return s.subarray(0,l)}for(a=new Array(l),o=0;o<l;o++)a[o]=u(s[o])}else{var c=i+"0",f="d"+i,h=c in e?u(e[c]):0,p=e[f]?u(e[f]):(t.period||2*Math.PI)/l;for(a=new Array(l),o=0;o<l;o++)a[o]=h+o*p}return a},t.setGeometry=function(){var i,s,l,u,c=e.sector,f=c.map(a),h={clockwise:-1,counterclockwise:1}[t.direction],p=a(t.rotation),d=function(t){return h*t+p},v=function(t){return(t-p)/h};switch(r){case"linear":s=i=n.identity,u=a,l=o,t.range=n.isFullCircle(f)?[c[0],c[0]+360]:f.map(v).map(o);break;case"category":var g=t._categories.length,y=t.period?Math.max(t.period,g):g;0===y&&(y=1),s=u=function(t){return 2*t*Math.PI/y},i=l=function(t){return t*y/Math.PI/2},t.range=[0,y]}t.c2g=function(t){return d(s(t))},t.g2c=function(t){return i(v(t))},t.t2g=function(t){return d(u(t))},t.g2t=function(t){return l(v(t))}}}(t,e)}}},39779:function(t){"use strict";t.exports={attr:"subplot",name:"smith",axisNames:["realaxis","imaginaryaxis"],axisName2dataArray:{imaginaryaxis:"imag",realaxis:"real"}}},23893:function(t){"use strict";function e(t){return t<0?-1:t>0?1:0}function r(t){var e=t[0],r=t[1];if(!isFinite(e)||!isFinite(r))return[1,0];var n=(e+1)*(e+1)+r*r;return[(e*e+r*r-1)/n,2*r/n]}function n(t,e){var r=e[0],n=e[1];return[r*t.radius+t.cx,-n*t.radius+t.cy]}function i(t,e){return e*t.radius}t.exports={smith:r,reactanceArc:function(t,e,a,o){var s=n(t,r([a,e])),l=s[0],u=s[1],c=n(t,r([o,e])),f=c[0],h=c[1];if(0===e)return["M"+l+","+u,"L"+f+","+h].join(" ");var p=i(t,1/Math.abs(e));return["M"+l+","+u,"A"+p+","+p+" 0 0,"+(e<0?1:0)+" "+f+","+h].join(" ")},resistanceArc:function(t,a,o,s){var l=i(t,1/(a+1)),u=n(t,r([a,o])),c=u[0],f=u[1],h=n(t,r([a,s])),p=h[0],d=h[1];if(e(o)!==e(s)){var v=n(t,r([a,0]));return["M"+c+","+f,"A"+l+","+l+" 0 0,"+(0<o?0:1)+" "+v[0]+","+v[1],"A"+l+","+l+" 0 0,"+(s<0?0:1)+p+","+d].join(" ")}return["M"+c+","+f,"A"+l+","+l+" 0 0,"+(s<o?0:1)+" "+p+","+d].join(" ")},smithTransform:n}},7504:function(t,e,r){"use strict";var n=r(27659).AU,i=r(71828).counterRegex,a=r(77997),o=r(39779),s=o.attr,l=o.name,u=i(l),c={};c[s]={valType:"subplotid",dflt:l,editType:"calc"},t.exports={attr:s,name:l,idRoot:l,idRegex:u,attrRegex:u,attributes:c,layoutAttributes:r(33419),supplyLayoutDefaults:r(9558),plot:function(t){for(var e=t._fullLayout,r=t.calcdata,i=e._subplots[l],o=0;o<i.length;o++){var s=i[o],u=n(r,l,s),c=e[s]._subplot;c||(c=a(t,s,!0),e[s]._subplot=c),c.plot(u,e,t._promises)}},clean:function(t,e,r,n){for(var i=n._subplots[l]||[],a=0;a<i.length;a++){var o=i[a],s=n[o]._subplot;if(!e[o]&&s)for(var u in s.framework.remove(),s.clipPaths)s.clipPaths[u].remove()}},toSVG:r(93612).toSVG}},33419:function(t,e,r){"use strict";var n=r(22399),i=r(13838),a=r(27670).Y,o=r(71828).extendFlat,s=r(30962).overrideAll,l=s({color:i.color,showline:o({},i.showline,{dflt:!0}),linecolor:i.linecolor,linewidth:i.linewidth,showgrid:o({},i.showgrid,{dflt:!0}),gridcolor:i.gridcolor,gridwidth:i.gridwidth,griddash:i.griddash},"plot","from-root"),u=s({ticklen:i.ticklen,tickwidth:o({},i.tickwidth,{dflt:2}),tickcolor:i.tickcolor,showticklabels:i.showticklabels,showtickprefix:i.showtickprefix,tickprefix:i.tickprefix,showticksuffix:i.showticksuffix,ticksuffix:i.ticksuffix,tickfont:i.tickfont,tickformat:i.tickformat,hoverformat:i.hoverformat,layer:i.layer},"plot","from-root"),c=o({visible:o({},i.visible,{dflt:!0}),tickvals:{dflt:[.2,.5,1,2,5],valType:"data_array",editType:"plot"},tickangle:o({},i.tickangle,{dflt:90}),ticks:{valType:"enumerated",values:["top","bottom",""],editType:"ticks"},side:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot"},editType:"calc"},l,u),f=o({visible:o({},i.visible,{dflt:!0}),tickvals:{valType:"data_array",editType:"plot"},ticks:i.ticks,editType:"calc"},l,u);t.exports={domain:a({name:"smith",editType:"plot"}),bgcolor:{valType:"color",editType:"plot",dflt:n.background},realaxis:c,imaginaryaxis:f,editType:"calc"}},9558:function(t,e,r){"use strict";var n,i,a,o=r(71828),s=r(7901),l=r(44467),u=r(49119),c=r(27659).NG,f=r(89426),h=r(96115),p=r(92128),d=r(21994),v=r(33419),g=r(39779),y=g.axisNames,m=(n=function(t){return t.slice().reverse().map((function(t){return-t})).concat([0]).concat(t)},i=String,a={},function(t){var e=i?i(t):t;if(e in a)return a[e];var r=n(t);return a[e]=r,r});function x(t,e,r,n){var i=r("bgcolor");n.bgColor=s.combine(i,n.paper_bgcolor);var a,u=c(n.fullData,g.name,n.id),x=n.layoutOut;function b(t,e){return r(a+"."+t,e)}for(var _=0;_<y.length;_++){a=y[_],o.isPlainObject(t[a])||(t[a]={});var w=t[a],T=l.newContainer(e,a);T._id=T._name=a,T._attr=n.id+"."+a,T._traceIndices=u.map((function(t){return t._expandedIndex}));var k=b("visible");if(T.type="linear",d(T,x),f(w,T,b,T.type),k){var A,M,S,E,L="realaxis"===a;L&&b("side"),L?b("tickvals"):b("tickvals",m(e.realaxis.tickvals||v.realaxis.tickvals.dflt));var C=n.font||{};k&&(M=(A=b("color"))===w.color?A:C.color,S=C.size,E=C.family),h(w,T,b,T.type,{noTicklabelstep:!0,noAng:!L,noExp:!0,font:{color:M,size:S,family:E}}),o.coerce2(t,e,v,a+".ticklen"),o.coerce2(t,e,v,a+".tickwidth"),o.coerce2(t,e,v,a+".tickcolor",e.color),b("ticks")||(delete e[a].ticklen,delete e[a].tickwidth,delete e[a].tickcolor),p(w,T,b,{dfltColor:A,bgColor:n.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:v[a]}),b("layer")}b("hoverformat"),delete T.type,T._input=w}}t.exports=function(t,e,r){u(t,e,r,{noUirevision:!0,type:g.name,attributes:v,handleDefaults:x,font:e.font,paper_bgcolor:e.paper_bgcolor,fullData:r,layoutOut:e})}},49119:function(t,e,r){"use strict";var n=r(71828),i=r(44467),a=r(27670).c;t.exports=function(t,e,r,o){var s,l,u=o.type,c=o.attributes,f=o.handleDefaults,h=o.partition||"x",p=e._subplots[u],d=p.length,v=d&&p[0].replace(/\d+$/,"");function g(t,e){return n.coerce(s,l,c,t,e)}for(var y=0;y<d;y++){var m=p[y];s=t[m]?t[m]:t[m]={},l=i.newContainer(e,m,v),o.noUirevision||g("uirevision",e.uirevision);var x={};x[h]=[y/d,(y+1)/d],a(l,e,g,x),o.id=m,f(s,l,g,o)}}},5386:function(t,e,r){"use strict";var n=r(31562);function i(t){var e=t.description?" "+t.description:"",r=t.keys||[];if(r.length>0){for(var n=[],i=0;i<r.length;i++)n[i]="`"+r[i]+"`";e+="Finally, the template string has access to ",e=1===r.length?"variable "+n[0]:"variables "+n.slice(0,-1).join(", ")+" and "+n.slice(-1)+"."}return e}n.FORMAT_LINK,n.DATE_FORMAT_LINK,e.f=function(t,e){t=t||{},i(e=e||{});var r={valType:"string",dflt:"",editType:t.editType||"none"};return!1!==t.arrayOk&&(r.arrayOk=!0),r},e.s=function(t,e){t=t||{},i(e=e||{});var r={valType:"string",dflt:"",editType:t.editType||"calc"};return!1!==t.arrayOk&&(r.arrayOk=!0),r}},61639:function(t,e,r){"use strict";var n=r(64380),i=r(27659).AU,a=r(71828).counterRegex,o="ternary";e.name=o;var s=e.attr="subplot";e.idRoot=o,e.idRegex=e.attrRegex=a(o),(e.attributes={})[s]={valType:"subplotid",dflt:"ternary",editType:"calc"},e.layoutAttributes=r(81367),e.supplyLayoutDefaults=r(25369),e.plot=function(t){for(var e=t._fullLayout,r=t.calcdata,a=e._subplots.ternary,s=0;s<a.length;s++){var l=a[s],u=i(r,o,l),c=e[l]._subplot;c||(c=new n({id:l,graphDiv:t,container:e._ternarylayer.node()},e),e[l]._subplot=c),c.plot(u,e,t._promises)}},e.clean=function(t,e,r,n){for(var i=n._subplots.ternary||[],a=0;a<i.length;a++){var o=i[a],s=n[o]._subplot;!e[o]&&s&&(s.plotContainer.remove(),s.clipDef.remove(),s.clipDefRelative.remove(),s.layers["a-title"].remove(),s.layers["b-title"].remove(),s.layers["c-title"].remove())}}},81367:function(t,e,r){"use strict";var n=r(22399),i=r(27670).Y,a=r(13838),o=r(30962).overrideAll,s=r(1426).extendFlat,l={title:{text:a.title.text,font:a.title.font},color:a.color,tickmode:a.minor.tickmode,nticks:s({},a.nticks,{dflt:6,min:1}),tick0:a.tick0,dtick:a.dtick,tickvals:a.tickvals,ticktext:a.ticktext,ticks:a.ticks,ticklen:a.ticklen,tickwidth:a.tickwidth,tickcolor:a.tickcolor,ticklabelstep:a.ticklabelstep,showticklabels:a.showticklabels,showtickprefix:a.showtickprefix,tickprefix:a.tickprefix,showticksuffix:a.showticksuffix,ticksuffix:a.ticksuffix,showexponent:a.showexponent,exponentformat:a.exponentformat,minexponent:a.minexponent,separatethousands:a.separatethousands,tickfont:a.tickfont,tickangle:a.tickangle,tickformat:a.tickformat,tickformatstops:a.tickformatstops,hoverformat:a.hoverformat,showline:s({},a.showline,{dflt:!0}),linecolor:a.linecolor,linewidth:a.linewidth,showgrid:s({},a.showgrid,{dflt:!0}),gridcolor:a.gridcolor,gridwidth:a.gridwidth,griddash:a.griddash,layer:a.layer,min:{valType:"number",dflt:0,min:0},_deprecated:{title:a._deprecated.title,titlefont:a._deprecated.titlefont}},u=t.exports=o({domain:i({name:"ternary"}),bgcolor:{valType:"color",dflt:n.background},sum:{valType:"number",dflt:1,min:0},aaxis:l,baxis:l,caxis:l},"plot","from-root");u.uirevision={valType:"any",editType:"none"},u.aaxis.uirevision=u.baxis.uirevision=u.caxis.uirevision={valType:"any",editType:"none"}},25369:function(t,e,r){"use strict";var n=r(7901),i=r(44467),a=r(71828),o=r(49119),s=r(96115),l=r(89426),u=r(38701),c=r(26218),f=r(92128),h=r(81367),p=["aaxis","baxis","caxis"];function d(t,e,r,a){var o,s,l,u=r("bgcolor"),c=r("sum");a.bgColor=n.combine(u,a.paper_bgcolor);for(var f=0;f<p.length;f++)s=t[o=p[f]]||{},(l=i.newContainer(e,o))._name=o,v(s,l,a,e);var h=e.aaxis,d=e.baxis,g=e.caxis;h.min+d.min+g.min>=c&&(h.min=0,d.min=0,g.min=0,t.aaxis&&delete t.aaxis.min,t.baxis&&delete t.baxis.min,t.caxis&&delete t.caxis.min)}function v(t,e,r,n){var i=h[e._name];function o(r,n){return a.coerce(t,e,i,r,n)}o("uirevision",n.uirevision),e.type="linear";var p=o("color"),d=p!==i.color.dflt?p:r.font.color,v=e._name.charAt(0).toUpperCase(),g="Component "+v,y=o("title.text",g);e._hovertitle=y===g?y:v,a.coerceFont(o,"title.font",{family:r.font.family,size:a.bigFont(r.font.size),color:d}),o("min"),c(t,e,o,"linear"),l(t,e,o,"linear"),s(t,e,o,"linear"),u(t,e,o,{outerTicks:!0}),o("showticklabels")&&(a.coerceFont(o,"tickfont",{family:r.font.family,size:r.font.size,color:d}),o("tickangle"),o("tickformat")),f(t,e,o,{dfltColor:p,bgColor:r.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:i}),o("hoverformat"),o("layer")}t.exports=function(t,e,r){o(t,e,r,{type:"ternary",attributes:h,handleDefaults:d,font:e.font,paper_bgcolor:e.paper_bgcolor})}},64380:function(t,e,r){"use strict";var n=r(39898),i=r(84267),a=r(73972),o=r(71828),s=o.strTranslate,l=o._,u=r(7901),c=r(91424),f=r(21994),h=r(1426).extendFlat,p=r(74875),d=r(89298),v=r(28569),g=r(30211),y=r(64505),m=y.freeMode,x=y.rectMode,b=r(92998),_=r(47322).prepSelect,w=r(47322).selectOnClick,T=r(47322).clearOutline,k=r(47322).clearSelectionsCache,A=r(85555);function M(t,e){this.id=t.id,this.graphDiv=t.graphDiv,this.init(e),this.makeFramework(e),this.aTickLayout=null,this.bTickLayout=null,this.cTickLayout=null}t.exports=M;var S=M.prototype;S.init=function(t){this.container=t._ternarylayer,this.defs=t._defs,this.layoutId=t._uid,this.traceHash={},this.layers={}},S.plot=function(t,e){var r=this,n=e[r.id],i=e._size;r._hasClipOnAxisFalse=!1;for(var a=0;a<t.length;a++)if(!1===t[a][0].trace.cliponaxis){r._hasClipOnAxisFalse=!0;break}r.updateLayers(n),r.adjustLayout(n,i),p.generalUpdatePerTraceModule(r.graphDiv,r,t,n),r.layers.plotbg.select("path").call(u.fill,n.bgcolor)},S.makeFramework=function(t){var e=this,r=e.graphDiv,n=t[e.id],i=e.clipId="clip"+e.layoutId+e.id,a=e.clipIdRelative="clip-relative"+e.layoutId+e.id;e.clipDef=o.ensureSingleById(t._clips,"clipPath",i,(function(t){t.append("path").attr("d","M0,0Z")})),e.clipDefRelative=o.ensureSingleById(t._clips,"clipPath",a,(function(t){t.append("path").attr("d","M0,0Z")})),e.plotContainer=o.ensureSingle(e.container,"g",e.id),e.updateLayers(n),c.setClipUrl(e.layers.backplot,i,r),c.setClipUrl(e.layers.grids,i,r)},S.updateLayers=function(t){var e=this.layers,r=["draglayer","plotbg","backplot","grids"];"below traces"===t.aaxis.layer&&r.push("aaxis","aline"),"below traces"===t.baxis.layer&&r.push("baxis","bline"),"below traces"===t.caxis.layer&&r.push("caxis","cline"),r.push("frontplot"),"above traces"===t.aaxis.layer&&r.push("aaxis","aline"),"above traces"===t.baxis.layer&&r.push("baxis","bline"),"above traces"===t.caxis.layer&&r.push("caxis","cline");var i=this.plotContainer.selectAll("g.toplevel").data(r,String),a=["agrid","bgrid","cgrid"];i.enter().append("g").attr("class",(function(t){return"toplevel "+t})).each((function(t){var r=n.select(this);e[t]=r,"frontplot"===t?r.append("g").classed("scatterlayer",!0):"backplot"===t?r.append("g").classed("maplayer",!0):"plotbg"===t?r.append("path").attr("d","M0,0Z"):"aline"===t||"bline"===t||"cline"===t?r.append("path"):"grids"===t&&a.forEach((function(t){e[t]=r.append("g").classed("grid "+t,!0)}))})),i.order()};var E=Math.sqrt(4/3);S.adjustLayout=function(t,e){var r,n,i,a,o,l,p=this,d=t.domain,v=(d.x[0]+d.x[1])/2,g=(d.y[0]+d.y[1])/2,y=d.x[1]-d.x[0],m=d.y[1]-d.y[0],x=y*e.w,b=m*e.h,_=t.sum,w=t.aaxis.min,T=t.baxis.min,k=t.caxis.min;x>E*b?i=(a=b)*E:a=(i=x)/E,o=y*i/x,l=m*a/b,r=e.l+e.w*v-i/2,n=e.t+e.h*(1-g)-a/2,p.x0=r,p.y0=n,p.w=i,p.h=a,p.sum=_,p.xaxis={type:"linear",range:[w+2*k-_,_-w-2*T],domain:[v-o/2,v+o/2],_id:"x"},f(p.xaxis,p.graphDiv._fullLayout),p.xaxis.setScale(),p.xaxis.isPtWithinRange=function(t){return t.a>=p.aaxis.range[0]&&t.a<=p.aaxis.range[1]&&t.b>=p.baxis.range[1]&&t.b<=p.baxis.range[0]&&t.c>=p.caxis.range[1]&&t.c<=p.caxis.range[0]},p.yaxis={type:"linear",range:[w,_-T-k],domain:[g-l/2,g+l/2],_id:"y"},f(p.yaxis,p.graphDiv._fullLayout),p.yaxis.setScale(),p.yaxis.isPtWithinRange=function(){return!0};var A=p.yaxis.domain[0],M=p.aaxis=h({},t.aaxis,{range:[w,_-T-k],side:"left",tickangle:(+t.aaxis.tickangle||0)-30,domain:[A,A+l*E],anchor:"free",position:0,_id:"y",_length:i});f(M,p.graphDiv._fullLayout),M.setScale();var S=p.baxis=h({},t.baxis,{range:[_-w-k,T],side:"bottom",domain:p.xaxis.domain,anchor:"free",position:0,_id:"x",_length:i});f(S,p.graphDiv._fullLayout),S.setScale();var L=p.caxis=h({},t.caxis,{range:[_-w-T,k],side:"right",tickangle:(+t.caxis.tickangle||0)+30,domain:[A,A+l*E],anchor:"free",position:0,_id:"y",_length:i});f(L,p.graphDiv._fullLayout),L.setScale();var C="M"+r+","+(n+a)+"h"+i+"l-"+i/2+",-"+a+"Z";p.clipDef.select("path").attr("d",C),p.layers.plotbg.select("path").attr("d",C);var P="M0,"+a+"h"+i+"l-"+i/2+",-"+a+"Z";p.clipDefRelative.select("path").attr("d",P);var O=s(r,n);p.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",O),p.clipDefRelative.select("path").attr("transform",null);var I=s(r-S._offset,n+a);p.layers.baxis.attr("transform",I),p.layers.bgrid.attr("transform",I);var D=s(r+i/2,n)+"rotate(30)"+s(0,-M._offset);p.layers.aaxis.attr("transform",D),p.layers.agrid.attr("transform",D);var z=s(r+i/2,n)+"rotate(-30)"+s(0,-L._offset);p.layers.caxis.attr("transform",z),p.layers.cgrid.attr("transform",z),p.drawAxes(!0),p.layers.aline.select("path").attr("d",M.showline?"M"+r+","+(n+a)+"l"+i/2+",-"+a:"M0,0").call(u.stroke,M.linecolor||"#000").style("stroke-width",(M.linewidth||0)+"px"),p.layers.bline.select("path").attr("d",S.showline?"M"+r+","+(n+a)+"h"+i:"M0,0").call(u.stroke,S.linecolor||"#000").style("stroke-width",(S.linewidth||0)+"px"),p.layers.cline.select("path").attr("d",L.showline?"M"+(r+i/2)+","+n+"l"+i/2+","+a:"M0,0").call(u.stroke,L.linecolor||"#000").style("stroke-width",(L.linewidth||0)+"px"),p.graphDiv._context.staticPlot||p.initInteractions(),c.setClipUrl(p.layers.frontplot,p._hasClipOnAxisFalse?null:p.clipId,p.graphDiv)},S.drawAxes=function(t){var e=this,r=e.graphDiv,n=e.id.substr(7)+"title",i=e.layers,a=e.aaxis,o=e.baxis,s=e.caxis;if(e.drawAx(a),e.drawAx(o),e.drawAx(s),t){var u=Math.max(a.showticklabels?a.tickfont.size/2:0,(s.showticklabels?.75*s.tickfont.size:0)+("outside"===s.ticks?.87*s.ticklen:0)),c=(o.showticklabels?o.tickfont.size:0)+("outside"===o.ticks?o.ticklen:0)+3;i["a-title"]=b.draw(r,"a"+n,{propContainer:a,propName:e.id+".aaxis.title",placeholder:l(r,"Click to enter Component A title"),attributes:{x:e.x0+e.w/2,y:e.y0-a.title.font.size/3-u,"text-anchor":"middle"}}),i["b-title"]=b.draw(r,"b"+n,{propContainer:o,propName:e.id+".baxis.title",placeholder:l(r,"Click to enter Component B title"),attributes:{x:e.x0-c,y:e.y0+e.h+.83*o.title.font.size+c,"text-anchor":"middle"}}),i["c-title"]=b.draw(r,"c"+n,{propContainer:s,propName:e.id+".caxis.title",placeholder:l(r,"Click to enter Component C title"),attributes:{x:e.x0+e.w+c,y:e.y0+e.h+.83*s.title.font.size+c,"text-anchor":"middle"}})}},S.drawAx=function(t){var e,r=this,n=r.graphDiv,i=t._name,a=i.charAt(0),s=t._id,l=r.layers[i],u=a+"tickLayout",c=(e=t).ticks+String(e.ticklen)+String(e.showticklabels);r[u]!==c&&(l.selectAll("."+s+"tick").remove(),r[u]=c),t.setScale();var f=d.calcTicks(t),h=d.clipEnds(t,f),p=d.makeTransTickFn(t),v=d.getTickSigns(t)[2],g=o.deg2rad(30),y=v*(t.linewidth||1)/2,m=v*t.ticklen,x=r.w,b=r.h,_="b"===a?"M0,"+y+"l"+Math.sin(g)*m+","+Math.cos(g)*m:"M"+y+",0l"+Math.cos(g)*m+","+-Math.sin(g)*m,w={a:"M0,0l"+b+",-"+x/2,b:"M0,0l-"+x/2+",-"+b,c:"M0,0l-"+b+","+x/2}[a];d.drawTicks(n,t,{vals:"inside"===t.ticks?h:f,layer:l,path:_,transFn:p,crisp:!1}),d.drawGrid(n,t,{vals:h,layer:r.layers[a+"grid"],path:w,transFn:p,crisp:!1}),d.drawLabels(n,t,{vals:f,layer:l,transFn:p,labelFns:d.makeLabelFns(t,0,30)})};var L=A.MINZOOM/2+.87,C="m-0.87,.5h"+L+"v3h-"+(L+5.2)+"l"+(L/2+2.6)+",-"+(.87*L+4.5)+"l2.6,1.5l-"+L/2+","+.87*L+"Z",P="m0.87,.5h-"+L+"v3h"+(L+5.2)+"l-"+(L/2+2.6)+",-"+(.87*L+4.5)+"l-2.6,1.5l"+L/2+","+.87*L+"Z",O="m0,1l"+L/2+","+.87*L+"l2.6,-1.5l-"+(L/2+2.6)+",-"+(.87*L+4.5)+"l-"+(L/2+2.6)+","+(.87*L+4.5)+"l2.6,1.5l"+L/2+",-"+.87*L+"Z",I=!0;function D(t){n.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}S.clearOutline=function(){k(this.dragOptions),T(this.dragOptions.gd)},S.initInteractions=function(){var t,e,r,n,f,h,p,d,y,b,T,k,M=this,S=M.layers.plotbg.select("path").node(),L=M.graphDiv,z=L._fullLayout._zoomlayer;function R(t){var e={};return e[M.id+".aaxis.min"]=t.a,e[M.id+".baxis.min"]=t.b,e[M.id+".caxis.min"]=t.c,e}function F(t,e){var r=L._fullLayout.clickmode;D(L),2===t&&(L.emit("plotly_doubleclick",null),a.call("_guiRelayout",L,R({a:0,b:0,c:0}))),r.indexOf("select")>-1&&1===t&&w(e,L,[M.xaxis],[M.yaxis],M.id,M.dragOptions),r.indexOf("event")>-1&&g.click(L,e,M.id)}function B(t,e){return 1-e/M.h}function N(t,e){return 1-(t+(M.h-e)/Math.sqrt(3))/M.w}function j(t,e){return(t-(M.h-e)/Math.sqrt(3))/M.w}function U(i,a){var o=r+i*t,s=n+a*e,l=Math.max(0,Math.min(1,B(0,n),B(0,s))),u=Math.max(0,Math.min(1,N(r,n),N(o,s))),c=Math.max(0,Math.min(1,j(r,n),j(o,s))),v=(l/2+c)*M.w,g=(1-l/2-u)*M.w,m=(v+g)/2,x=g-v,_=(1-l)*M.h,w=_-x/E;x<A.MINZOOM?(p=f,T.attr("d",y),k.attr("d","M0,0Z")):(p={a:f.a+l*h,b:f.b+u*h,c:f.c+c*h},T.attr("d",y+"M"+v+","+_+"H"+g+"L"+m+","+w+"L"+v+","+_+"Z"),k.attr("d","M"+r+","+n+"m0.5,0.5h5v-2h-5v-5h-2v5h-5v2h5v5h2ZM"+v+","+_+C+"M"+g+","+_+P+"M"+m+","+w+O)),b||(T.transition().style("fill",d>.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),k.transition().style("opacity",1).duration(200),b=!0),L.emit("plotly_relayouting",R(p))}function V(){D(L),p!==f&&(a.call("_guiRelayout",L,R(p)),I&&L.data&&L._context.showTips&&(o.notifier(l(L,"Double-click to zoom back out"),"long"),I=!1))}function H(t,e){var r=t/M.xaxis._m,n=e/M.yaxis._m,i=[(p={a:f.a-n,b:f.b+(r+n)/2,c:f.c-(r-n)/2}).a,p.b,p.c].sort(o.sorterAsc),a=i.indexOf(p.a),l=i.indexOf(p.b),u=i.indexOf(p.c);i[0]<0&&(i[1]+i[0]/2<0?(i[2]+=i[0]+i[1],i[0]=i[1]=0):(i[2]+=i[0]/2,i[1]+=i[0]/2,i[0]=0),p={a:i[a],b:i[l],c:i[u]},e=(f.a-p.a)*M.yaxis._m,t=(f.c-p.c-f.b+p.b)*M.xaxis._m);var h=s(M.x0+t,M.y0+e);M.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",h);var d=s(-t,-e);M.clipDefRelative.select("path").attr("transform",d),M.aaxis.range=[p.a,M.sum-p.b-p.c],M.baxis.range=[M.sum-p.a-p.c,p.b],M.caxis.range=[M.sum-p.a-p.b,p.c],M.drawAxes(!1),M._hasClipOnAxisFalse&&M.plotContainer.select(".scatterlayer").selectAll(".trace").call(c.hideOutsideRangePoints,M),L.emit("plotly_relayouting",R(p))}function q(){a.call("_guiRelayout",L,R(p))}this.dragOptions={element:S,gd:L,plotinfo:{id:M.id,domain:L._fullLayout[M.id].domain,xaxis:M.xaxis,yaxis:M.yaxis},subplot:M.id,prepFn:function(a,l,c){M.dragOptions.xaxes=[M.xaxis],M.dragOptions.yaxes=[M.yaxis],t=L._fullLayout._invScaleX,e=L._fullLayout._invScaleY;var v=M.dragOptions.dragmode=L._fullLayout.dragmode;m(v)?M.dragOptions.minDrag=1:M.dragOptions.minDrag=void 0,"zoom"===v?(M.dragOptions.moveFn=U,M.dragOptions.clickFn=F,M.dragOptions.doneFn=V,function(t,e,a){var l=S.getBoundingClientRect();r=e-l.left,n=a-l.top,L._fullLayout._calcInverseTransform(L);var c=L._fullLayout._invTransform,v=o.apply3DTransform(c)(r,n);r=v[0],n=v[1],f={a:M.aaxis.range[0],b:M.baxis.range[1],c:M.caxis.range[1]},p=f,h=M.aaxis.range[1]-f.a,d=i(M.graphDiv._fullLayout[M.id].bgcolor).getLuminance(),y="M0,"+M.h+"L"+M.w/2+", 0L"+M.w+","+M.h+"Z",b=!1,T=z.append("path").attr("class","zoombox").attr("transform",s(M.x0,M.y0)).style({fill:d>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("d",y),k=z.append("path").attr("class","zoombox-corners").attr("transform",s(M.x0,M.y0)).style({fill:u.background,stroke:u.defaultLine,"stroke-width":1,opacity:0}).attr("d","M0,0Z"),M.clearOutline(L)}(0,l,c)):"pan"===v?(M.dragOptions.moveFn=H,M.dragOptions.clickFn=F,M.dragOptions.doneFn=q,f={a:M.aaxis.range[0],b:M.baxis.range[1],c:M.caxis.range[1]},p=f,M.clearOutline(L)):(x(v)||m(v))&&_(a,l,c,M.dragOptions,v)}},S.onmousemove=function(t){g.hover(L,t,M.id),L._fullLayout._lasthover=S,L._fullLayout._hoversubplot=M.id},S.onmouseout=function(t){L._dragging||v.unhover(L,t)},v.init(this.dragOptions)}},73972:function(t,e,r){"use strict";var n=r(47769),i=r(64213),a=r(75138),o=r(41965),s=r(24401).addStyleRule,l=r(1426),u=r(9012),c=r(10820),f=l.extendFlat,h=l.extendDeepAll;function p(t){var r=t.name,i=t.categories,a=t.meta;if(e.modules[r])n.log("Type "+r+" already registered");else{e.subplotsRegistry[t.basePlotModule.name]||function(t){var r=t.name;if(e.subplotsRegistry[r])n.log("Plot type "+r+" already registered.");else for(var i in y(t),e.subplotsRegistry[r]=t,e.componentsRegistry)b(i,t.name)}(t.basePlotModule);for(var o={},l=0;l<i.length;l++)o[i[l]]=!0,e.allCategories[i[l]]=!0;for(var u in e.modules[r]={_module:t,categories:o},a&&Object.keys(a).length&&(e.modules[r].meta=a),e.allTypes.push(r),e.componentsRegistry)m(u,r);t.layoutAttributes&&f(e.traceLayoutAttributes,t.layoutAttributes);var c=t.basePlotModule,h=c.name;if("mapbox"===h){var p=c.constants.styleRules;for(var d in p)s(".js-plotly-plot .plotly .mapboxgl-"+d,p[d])}"geo"!==h&&"mapbox"!==h||void 0!==window.PlotlyGeoAssets||(window.PlotlyGeoAssets={topojson:{}})}}function d(t){if("string"!=typeof t.name)throw new Error("Component module *name* must be a string.");var r=t.name;for(var n in e.componentsRegistry[r]=t,t.layoutAttributes&&(t.layoutAttributes._isLinkedToArray&&a(e.layoutArrayContainers,r),y(t)),e.modules)m(r,n);for(var i in e.subplotsRegistry)b(r,i);for(var o in e.transformsRegistry)x(r,o);t.schema&&t.schema.layout&&h(c,t.schema.layout)}function v(t){if("string"!=typeof t.name)throw new Error("Transform module *name* must be a string.");var r="Transform module "+t.name,i="function"==typeof t.transform,a="function"==typeof t.calcTransform;if(!i&&!a)throw new Error(r+" is missing a *transform* or *calcTransform* method.");for(var s in i&&a&&n.log([r+" has both a *transform* and *calcTransform* methods.","Please note that all *transform* methods are executed","before all *calcTransform* methods."].join(" ")),o(t.attributes)||n.log(r+" registered without an *attributes* object."),"function"!=typeof t.supplyDefaults&&n.log(r+" registered without a *supplyDefaults* method."),e.transformsRegistry[t.name]=t,e.componentsRegistry)x(s,t.name)}function g(t){var r=t.name,n=r.split("-")[0],i=t.dictionary,a=t.format,o=i&&Object.keys(i).length,s=a&&Object.keys(a).length,l=e.localeRegistry,u=l[r];if(u||(l[r]=u={}),n!==r){var c=l[n];c||(l[n]=c={}),o&&c.dictionary===u.dictionary&&(c.dictionary=i),s&&c.format===u.format&&(c.format=a)}o&&(u.dictionary=i),s&&(u.format=a)}function y(t){if(t.layoutAttributes){var r=t.layoutAttributes._arrayAttrRegexps;if(r)for(var n=0;n<r.length;n++)a(e.layoutArrayRegexes,r[n])}}function m(t,r){var n=e.componentsRegistry[t].schema;if(n&&n.traces){var i=n.traces[r];i&&h(e.modules[r]._module.attributes,i)}}function x(t,r){var n=e.componentsRegistry[t].schema;if(n&&n.transforms){var i=n.transforms[r];i&&h(e.transformsRegistry[r].attributes,i)}}function b(t,r){var n=e.componentsRegistry[t].schema;if(n&&n.subplots){var i=e.subplotsRegistry[r],a=i.layoutAttributes,o="subplot"===i.attr?i.name:i.attr;Array.isArray(o)&&(o=o[0]);var s=n.subplots[o];a&&s&&h(a,s)}}function _(t){return"object"==typeof t&&(t=t.type),t}e.modules={},e.allCategories={},e.allTypes=[],e.subplotsRegistry={},e.transformsRegistry={},e.componentsRegistry={},e.layoutArrayContainers=[],e.layoutArrayRegexes=[],e.traceLayoutAttributes={},e.localeRegistry={},e.apiMethodRegistry={},e.collectableSubplotTypes=null,e.register=function(t){if(e.collectableSubplotTypes=null,!t)throw new Error("No argument passed to Plotly.register.");t&&!Array.isArray(t)&&(t=[t]);for(var r=0;r<t.length;r++){var n=t[r];if(!n)throw new Error("Invalid module was attempted to be registered!");switch(n.moduleType){case"trace":p(n);break;case"transform":v(n);break;case"component":d(n);break;case"locale":g(n);break;case"apiMethod":var i=n.name;e.apiMethodRegistry[i]=n.fn;break;default:throw new Error("Invalid module was attempted to be registered!")}}},e.getModule=function(t){var r=e.modules[_(t)];return!!r&&r._module},e.traceIs=function(t,r){if("various"===(t=_(t)))return!1;var i=e.modules[t];return i||(t&&n.log("Unrecognized trace type "+t+"."),i=e.modules[u.type.dflt]),!!i.categories[r]},e.getTransformIndices=function(t,e){for(var r=[],n=t.transforms||[],i=0;i<n.length;i++)n[i].type===e&&r.push(i);return r},e.hasTransform=function(t,e){for(var r=t.transforms||[],n=0;n<r.length;n++)if(r[n].type===e)return!0;return!1},e.getComponentMethod=function(t,r){var n=e.componentsRegistry[t];return n&&n[r]||i},e.call=function(){var t=arguments[0],r=[].slice.call(arguments,1);return e.apiMethodRegistry[t].apply(null,r)}},61914:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=i.extendFlat,o=i.extendDeep;function s(t){var e;switch(t){case"themes__thumb":e={autosize:!0,width:150,height:150,title:{text:""},showlegend:!1,margin:{l:5,r:5,t:5,b:5,pad:0},annotations:[]};break;case"thumbnail":e={title:{text:""},hidesources:!0,showlegend:!1,borderwidth:0,bordercolor:"",margin:{l:1,r:1,t:1,b:1,pad:0},annotations:[]};break;default:e={}}return e}t.exports=function(t,e){var r,i,l=t.data,u=t.layout,c=o([],l),f=o({},u,s(e.tileClass)),h=t._context||{};if(e.width&&(f.width=e.width),e.height&&(f.height=e.height),"thumbnail"===e.tileClass||"themes__thumb"===e.tileClass){f.annotations=[];var p=Object.keys(f);for(r=0;r<p.length;r++)i=p[r],["xaxis","yaxis","zaxis"].indexOf(i.slice(0,5))>-1&&(f[p[r]].title={text:""});for(r=0;r<c.length;r++){var d=c[r];d.showscale=!1,d.marker&&(d.marker.showscale=!1),n.traceIs(d,"pie-like")&&(d.textposition="none")}}if(Array.isArray(e.annotations))for(r=0;r<e.annotations.length;r++)f.annotations.push(e.annotations[r]);var v=Object.keys(f).filter((function(t){return t.match(/^scene\d*$/)}));if(v.length){var g={};for("thumbnail"===e.tileClass&&(g={title:{text:""},showaxeslabels:!1,showticklabels:!1,linetickenable:!1}),r=0;r<v.length;r++){var y=f[v[r]];y.xaxis||(y.xaxis={}),y.yaxis||(y.yaxis={}),y.zaxis||(y.zaxis={}),a(y.xaxis,g),a(y.yaxis,g),a(y.zaxis,g),y._scene=null}}var m=document.createElement("div");e.tileClass&&(m.className=e.tileClass);var x={gd:m,td:m,layout:f,data:c,config:{staticPlot:void 0===e.staticPlot||e.staticPlot,plotGlPixelRatio:void 0===e.plotGlPixelRatio?2:e.plotGlPixelRatio,displaylogo:e.displaylogo||!1,showLink:e.showLink||!1,showTips:e.showTips||!1,mapboxAccessToken:h.mapboxAccessToken}};return"transparent"!==e.setBackground&&(x.config.setBackground=e.setBackground||"opaque"),x.gd.defaultLayout=s(e.tileClass),x}},7239:function(t,e,r){"use strict";var n=r(71828),i=r(403),a=r(22435),o=r(25095);t.exports=function(t,e){var r;return n.isPlainObject(t)||(r=n.getGraphDiv(t)),(e=e||{}).format=e.format||"png",e.width=e.width||null,e.height=e.height||null,e.imageDataOnly=!0,new Promise((function(s,l){r&&r._snapshotInProgress&&l(new Error("Snapshotting already in progress.")),n.isIE()&&"svg"!==e.format&&l(new Error(o.MSG_IE_BAD_FORMAT)),r&&(r._snapshotInProgress=!0);var u=i(t,e),c=e.filename||t.fn||"newplot";c+="."+e.format.replace("-","."),u.then((function(t){return r&&(r._snapshotInProgress=!1),a(t,c,e.format)})).then((function(t){s(t)})).catch((function(t){r&&(r._snapshotInProgress=!1),l(t)}))}))}},22435:function(t,e,r){"use strict";var n=r(71828),i=r(25095);t.exports=function(t,e,r){var a=document.createElement("a"),o="download"in a;return new Promise((function(s,l){var u,c;if(n.isIE())return u=i.createBlob(t,"svg"),window.navigator.msSaveBlob(u,e),u=null,s(e);if(o)return u=i.createBlob(t,r),c=i.createObjectURL(u),a.href=c,a.download=e,document.body.appendChild(a),a.click(),document.body.removeChild(a),i.revokeObjectURL(c),u=null,s(e);if(n.isSafari()){var f="svg"===r?",":";base64,";return i.octetStream(f+encodeURIComponent(t)),s(e)}l(new Error("download error"))}))}},25095:function(t,e,r){"use strict";var n=r(73972);e.getDelay=function(t){return t._has&&(t._has("gl3d")||t._has("gl2d")||t._has("mapbox"))?500:0},e.getRedrawFunc=function(t){return function(){n.getComponentMethod("colorbar","draw")(t)}},e.encodeSVG=function(t){return"data:image/svg+xml,"+encodeURIComponent(t)},e.encodeJSON=function(t){return"data:application/json,"+encodeURIComponent(t)};var i=window.URL||window.webkitURL;e.createObjectURL=function(t){return i.createObjectURL(t)},e.revokeObjectURL=function(t){return i.revokeObjectURL(t)},e.createBlob=function(t,e){if("svg"===e)return new window.Blob([t],{type:"image/svg+xml;charset=utf-8"});if("full-json"===e)return new window.Blob([t],{type:"application/json;charset=utf-8"});var r=function(t){for(var e=t.length,r=new ArrayBuffer(e),n=new Uint8Array(r),i=0;i<e;i++)n[i]=t.charCodeAt(i);return r}(window.atob(t));return new window.Blob([r],{type:"image/"+e})},e.octetStream=function(t){document.location.href="data:application/octet-stream"+t},e.IMAGE_URL_PREFIX=/^data:image\/\w+;base64,/,e.MSG_IE_BAD_FORMAT="Sorry IE does not support downloading from canvas. Try {format:'svg'} instead."},44511:function(t,e,r){"use strict";var n=r(25095),i={getDelay:n.getDelay,getRedrawFunc:n.getRedrawFunc,clone:r(61914),toSVG:r(5900),svgToImg:r(70942),toImage:r(56395),downloadImage:r(7239)};t.exports=i},70942:function(t,e,r){"use strict";var n=r(71828),i=r(15398).EventEmitter,a=r(25095);t.exports=function(t){var e=t.emitter||new i,r=new Promise((function(i,o){var s=window.Image,l=t.svg,u=t.format||"png";if(n.isIE()&&"svg"!==u){var c=new Error(a.MSG_IE_BAD_FORMAT);return o(c),t.promise?r:e.emit("error",c)}var f,h,p=t.canvas,d=t.scale||1,v=t.width||300,g=t.height||150,y=d*v,m=d*g,x=p.getContext("2d",{willReadFrequently:!0}),b=new s;"svg"===u||n.isSafari()?h=a.encodeSVG(l):(f=a.createBlob(l,"svg"),h=a.createObjectURL(f)),p.width=y,p.height=m,b.onload=function(){var r;switch(f=null,a.revokeObjectURL(h),"svg"!==u&&x.drawImage(b,0,0,y,m),u){case"jpeg":r=p.toDataURL("image/jpeg");break;case"png":r=p.toDataURL("image/png");break;case"webp":r=p.toDataURL("image/webp");break;case"svg":r=h;break;default:var n="Image format is not jpeg, png, svg or webp.";if(o(new Error(n)),!t.promise)return e.emit("error",n)}i(r),t.promise||e.emit("success",r)},b.onerror=function(r){if(f=null,a.revokeObjectURL(h),o(r),!t.promise)return e.emit("error",r)},b.src=h}));return t.promise?r:e}},56395:function(t,e,r){"use strict";var n=r(15398).EventEmitter,i=r(73972),a=r(71828),o=r(25095),s=r(61914),l=r(5900),u=r(70942);t.exports=function(t,e){var r=new n,c=s(t,{format:"png"}),f=c.gd;f.style.position="absolute",f.style.left="-5000px",document.body.appendChild(f);var h=o.getRedrawFunc(f);return i.call("_doPlot",f,c.data,c.layout,c.config).then(h).then((function(){var t=o.getDelay(f._fullLayout);setTimeout((function(){var t=l(f),n=document.createElement("canvas");n.id=a.randstr(),(r=u({format:e.format,width:f._fullLayout.width,height:f._fullLayout.height,canvas:n,emitter:r,svg:t})).clean=function(){f&&document.body.removeChild(f)}}),t)})).catch((function(t){r.emit("error",t)})),r}},5900:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424),o=r(7901),s=r(77922),l=/"/g,u="TOBESTRIPPED",c=new RegExp('("TOBESTRIPPED)|(TOBESTRIPPED")',"g");t.exports=function(t,e,r){var f,h=t._fullLayout,p=h._paper,d=h._toppaper,v=h.width,g=h.height;p.insert("rect",":first-child").call(a.setRect,0,0,v,g).call(o.fill,h.paper_bgcolor);var y=h._basePlotModules||[];for(f=0;f<y.length;f++){var m=y[f];m.toSVG&&m.toSVG(t)}if(d){var x=d.node().childNodes,b=Array.prototype.slice.call(x);for(f=0;f<b.length;f++){var _=b[f];_.childNodes.length&&p.node().appendChild(_)}}h._draggers&&h._draggers.remove(),p.node().style.background="",p.selectAll("text").attr({"data-unformatted":null,"data-math":null}).each((function(){var t=n.select(this);if("hidden"!==this.style.visibility&&"none"!==this.style.display){t.style({visibility:null,display:null});var e=this.style.fontFamily;e&&-1!==e.indexOf('"')&&t.style("font-family",e.replace(l,u))}else t.remove()})),p.selectAll(".gradient_filled,.pattern_filled").each((function(){var t=n.select(this),e=this.style.fill;e&&-1!==e.indexOf("url(")&&t.style("fill",e.replace(l,u));var r=this.style.stroke;r&&-1!==r.indexOf("url(")&&t.style("stroke",r.replace(l,u))})),"pdf"!==e&&"eps"!==e||p.selectAll("#MathJax_SVG_glyphs path").attr("stroke-width",0),p.node().setAttributeNS(s.xmlns,"xmlns",s.svg),p.node().setAttributeNS(s.xmlns,"xmlns:xlink",s.xlink),"svg"===e&&r&&(p.attr("width",r*v),p.attr("height",r*g),p.attr("viewBox","0 0 "+v+" "+g));var w=(new window.XMLSerializer).serializeToString(p.node());return w=(w=(w=function(t){var e=n.select("body").append("div").style({display:"none"}).html(""),r=t.replace(/(&[^;]*;)/gi,(function(t){return"&lt;"===t?"&#60;":"&rt;"===t?"&#62;":-1!==t.indexOf("<")||-1!==t.indexOf(">")?"":e.html(t).text()}));return e.remove(),r}(w)).replace(/&(?!\w+;|\#[0-9]+;| \#x[0-9A-F]+;)/g,"&amp;")).replace(c,"'"),i.isIE()&&(w=(w=(w=w.replace(/"/gi,"'")).replace(/(\('#)([^']*)('\))/gi,'("#$2")')).replace(/(\\')/gi,'"')),w}},75341:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){for(var r=0;r<t.length;r++)t[r].i=r;n.mergeArray(e.text,t,"tx"),n.mergeArray(e.hovertext,t,"htx");var i=e.marker;if(i){n.mergeArray(i.opacity,t,"mo",!0),n.mergeArray(i.color,t,"mc");var a=i.line;a&&(n.mergeArray(a.color,t,"mlc"),n.mergeArrayCastPositive(a.width,t,"mlw"))}}},1486:function(t,e,r){"use strict";var n=r(82196),i=r(12663).axisHoverFormat,a=r(5386).f,o=r(5386).s,s=r(50693),l=r(41940),u=r(97313),c=r(79952).u,f=r(1426).extendFlat,h=l({editType:"calc",arrayOk:!0,colorEditType:"style"}),p=f({},n.marker.line.width,{dflt:0}),d=f({width:p,editType:"calc"},s("marker.line")),v=f({line:d,editType:"calc"},s("marker"),{opacity:{valType:"number",arrayOk:!0,dflt:1,min:0,max:1,editType:"style"},pattern:c});t.exports={x:n.x,x0:n.x0,dx:n.dx,y:n.y,y0:n.y0,dy:n.dy,xperiod:n.xperiod,yperiod:n.yperiod,xperiod0:n.xperiod0,yperiod0:n.yperiod0,xperiodalignment:n.xperiodalignment,yperiodalignment:n.yperiodalignment,xhoverformat:i("x"),yhoverformat:i("y"),text:n.text,texttemplate:o({editType:"plot"},{keys:u.eventDataKeys}),hovertext:n.hovertext,hovertemplate:a({},{keys:u.eventDataKeys}),textposition:{valType:"enumerated",values:["inside","outside","auto","none"],dflt:"auto",arrayOk:!0,editType:"calc"},insidetextanchor:{valType:"enumerated",values:["end","middle","start"],dflt:"end",editType:"plot"},textangle:{valType:"angle",dflt:"auto",editType:"plot"},textfont:f({},h,{}),insidetextfont:f({},h,{}),outsidetextfont:f({},h,{}),constraintext:{valType:"enumerated",values:["inside","outside","both","none"],dflt:"both",editType:"calc"},cliponaxis:f({},n.cliponaxis,{}),orientation:{valType:"enumerated",values:["v","h"],editType:"calc+clearAxisTypes"},base:{valType:"any",dflt:null,arrayOk:!0,editType:"calc"},offset:{valType:"number",dflt:null,arrayOk:!0,editType:"calc"},width:{valType:"number",dflt:null,min:0,arrayOk:!0,editType:"calc"},marker:v,offsetgroup:n.offsetgroup,alignmentgroup:n.alignmentgroup,selected:{marker:{opacity:n.selected.marker.opacity,color:n.selected.marker.color,editType:"style"},textfont:n.selected.textfont,editType:"style"},unselected:{marker:{opacity:n.unselected.marker.opacity,color:n.unselected.marker.color,editType:"style"},textfont:n.unselected.textfont,editType:"style"},_deprecated:{bardir:{valType:"enumerated",editType:"calc",values:["v","h"]}}}},92290:function(t,e,r){"use strict";var n=r(89298),i=r(42973),a=r(52075).hasColorscale,o=r(78803),s=r(75341),l=r(66279);t.exports=function(t,e){var r,u,c,f,h,p,d=n.getFromId(t,e.xaxis||"x"),v=n.getFromId(t,e.yaxis||"y"),g={msUTC:!(!e.base&&0!==e.base)};"h"===e.orientation?(r=d.makeCalcdata(e,"x",g),c=v.makeCalcdata(e,"y"),f=i(e,v,"y",c),h=!!e.yperiodalignment,p="y"):(r=v.makeCalcdata(e,"y",g),c=d.makeCalcdata(e,"x"),f=i(e,d,"x",c),h=!!e.xperiodalignment,p="x"),u=f.vals;for(var y=Math.min(u.length,r.length),m=new Array(y),x=0;x<y;x++)m[x]={p:u[x],s:r[x]},h&&(m[x].orig_p=c[x],m[x][p+"End"]=f.ends[x],m[x][p+"Start"]=f.starts[x]),e.ids&&(m[x].id=String(e.ids[x]));return a(e,"marker")&&o(t,e,{vals:e.marker.color,containerStr:"marker",cLetter:"c"}),a(e,"marker.line")&&o(t,e,{vals:e.marker.line.color,containerStr:"marker.line",cLetter:"c"}),s(m,e),l(m,e),m}},97313:function(t){"use strict";t.exports={TEXTPAD:3,eventDataKeys:["value","label"]}},11661:function(t,e,r){"use strict";var n=r(92770),i=r(71828).isArrayOrTypedArray,a=r(50606).BADNUM,o=r(73972),s=r(89298),l=r(99082).getAxisGroup,u=r(61546);function c(t,e,r,o,c){if(o.length){var b,_,w,T;switch(function(t,e){var r,a;for(r=0;r<e.length;r++){var o,s=e[r],l=s[0].trace,u="funnel"===l.type?l._base:l.base,c="h"===l.orientation?l.xcalendar:l.ycalendar,f="category"===t.type||"multicategory"===t.type?function(){return null}:t.d2c;if(i(u)){for(a=0;a<Math.min(u.length,s.length);a++)o=f(u[a],0,c),n(o)?(s[a].b=+o,s[a].hasB=1):s[a].b=0;for(;a<s.length;a++)s[a].b=0}else{o=f(u,0,c);var h=n(o);for(o=h?o:0,a=0;a<s.length;a++)s[a].b=o,h&&(s[a].hasB=1)}}}(r,o),c.mode){case"overlay":f(e,r,o,c);break;case"group":for(b=[],_=[],w=0;w<o.length;w++)void 0===(T=o[w])[0].trace.offset?_.push(T):b.push(T);_.length&&function(t,e,r,n,i){var o=new u(n,{posAxis:e,sepNegVal:!1,overlapNoMerge:!i.norm});(function(t,e,r,n){for(var i=t._fullLayout,a=r.positions,o=r.distinctPositions,s=r.minDiff,u=r.traces,c=u.length,f=a.length!==o.length,h=s*(1-n.gap),g=l(i,e._id)+u[0][0].trace.orientation,y=i._alignmentOpts[g]||{},m=0;m<c;m++){var x,b,_=u[m],w=_[0].trace,T=y[w.alignmentgroup]||{},k=Object.keys(T.offsetGroups||{}).length,A=(x=k?h/k:f?h/c:h)*(1-(n.groupgap||0));b=k?((2*w._offsetIndex+1-k)*x-A)/2:f?((2*m+1-c)*x-A)/2:-A/2;var M=_[0].t;M.barwidth=A,M.poffset=b,M.bargroupwidth=h,M.bardelta=s}r.binWidth=u[0][0].t.barwidth/100,p(r),d(e,r),v(e,r,f)})(t,e,o,i),function(t,e){for(var r=t.traces,n=0;n<r.length;n++){var i=r[n];if(void 0===i[0].trace.base)for(var o=new u([i],{posAxis:e,sepNegVal:!0,overlapNoMerge:!0}),s=0;s<i.length;s++){var l=i[s];if(l.p!==a){var c=o.put(l.p,l.b+l.s);c&&(l.b=c)}}}}(o,e),i.norm?(y(o),m(r,o,i)):g(r,o)}(t,e,r,_,c),b.length&&f(e,r,b,c);break;case"stack":case"relative":for(b=[],_=[],w=0;w<o.length;w++)void 0===(T=o[w])[0].trace.base?_.push(T):b.push(T);_.length&&function(t,e,r,n,i){var o=new u(n,{posAxis:e,sepNegVal:"relative"===i.mode,overlapNoMerge:!(i.norm||"stack"===i.mode||"relative"===i.mode)});h(e,o,i),function(t,e,r){var n,i,o,l,u,c,f=x(t),h=e.traces;for(l=0;l<h.length;l++)if("funnel"===(i=(n=h[l])[0].trace).type)for(u=0;u<n.length;u++)(c=n[u]).s!==a&&e.put(c.p,-.5*c.s);for(l=0;l<h.length;l++){o="funnel"===(i=(n=h[l])[0].trace).type;var p=[];for(u=0;u<n.length;u++)if((c=n[u]).s!==a){var d;d=o?c.s:c.s+c.b;var v=e.put(c.p,d),g=v+d;c.b=v,c[f]=g,r.norm||(p.push(g),c.hasB&&p.push(v))}r.norm||(i._extremes[t._id]=s.findExtremes(t,p,{tozero:!0,padded:!0}))}}(r,o,i);for(var l=0;l<n.length;l++)for(var c=n[l],f=0;f<c.length;f++){var p=c[f];p.s!==a&&p.b+p.s===o.get(p.p,p.s)&&(p._outmost=!0)}i.norm&&m(r,o,i)}(0,e,r,_,c),b.length&&f(e,r,b,c)}!function(t,e){var r,i,a,o=x(e),s={},l=1/0,u=-1/0;for(r=0;r<t.length;r++)for(a=t[r],i=0;i<a.length;i++){var c=a[i].p;n(c)&&(l=Math.min(l,c),u=Math.max(u,c))}var f=1e4/(u-l),h=s.round=function(t){return String(Math.round(f*(t-l)))};for(r=0;r<t.length;r++){(a=t[r])[0].t.extents=s;var p=a[0].t.poffset,d=Array.isArray(p);for(i=0;i<a.length;i++){var v=a[i],g=v[o]-v.w/2;if(n(g)){var y=v[o]+v.w/2,m=h(v.p);s[m]?s[m]=[Math.min(g,s[m][0]),Math.max(y,s[m][1])]:s[m]=[g,y]}v.p0=v.p+(d?p[i]:p),v.p1=v.p0+v.w,v.s0=v.b,v.s1=v.s0+v.s}}}(o,e)}}function f(t,e,r,n){for(var i=0;i<r.length;i++){var a=r[i],o=new u([a],{posAxis:t,sepNegVal:!1,overlapNoMerge:!n.norm});h(t,o,n),n.norm?(y(o),m(e,o,n)):g(e,o)}}function h(t,e,r){for(var n=e.minDiff,i=e.traces,a=n*(1-r.gap),o=a*(1-(r.groupgap||0)),s=-o/2,l=0;l<i.length;l++){var u=i[l][0].t;u.barwidth=o,u.poffset=s,u.bargroupwidth=a,u.bardelta=n}e.binWidth=i[0][0].t.barwidth/100,p(e),d(t,e),v(t,e)}function p(t){var e,r,a=t.traces;for(e=0;e<a.length;e++){var o,s=a[e],l=s[0],u=l.trace,c=l.t,f=u._offset||u.offset,h=c.poffset;if(i(f)){for(o=Array.prototype.slice.call(f,0,s.length),r=0;r<o.length;r++)n(o[r])||(o[r]=h);for(r=o.length;r<s.length;r++)o.push(h);c.poffset=o}else void 0!==f&&(c.poffset=f);var p=u._width||u.width,d=c.barwidth;if(i(p)){var v=Array.prototype.slice.call(p,0,s.length);for(r=0;r<v.length;r++)n(v[r])||(v[r]=d);for(r=v.length;r<s.length;r++)v.push(d);if(c.barwidth=v,void 0===f){for(o=[],r=0;r<s.length;r++)o.push(h+(d-v[r])/2);c.poffset=o}}else void 0!==p&&(c.barwidth=p,void 0===f&&(c.poffset=h+(d-p)/2))}}function d(t,e){for(var r=e.traces,n=x(t),i=0;i<r.length;i++)for(var a=r[i],o=a[0].t,s=o.poffset,l=Array.isArray(s),u=o.barwidth,c=Array.isArray(u),f=0;f<a.length;f++){var h=a[f],p=h.w=c?u[f]:u;void 0===h.p&&(h.p=h[n],h["orig_"+n]=h[n]);var d=(l?s[f]:s)+p/2;h[n]=h.p+d}}function v(t,e,r){var n=e.traces,i=e.minDiff/2;s.minDtick(t,e.minDiff,e.distinctPositions[0],r);for(var a=0;a<n.length;a++){var o,l,u,c,f=n[a],h=f[0],p=h.trace,d=[];for(c=0;c<f.length;c++)l=(o=f[c]).p-i,u=o.p+i,d.push(l,u);if(p.width||p.offset){var v=h.t,g=v.poffset,y=v.barwidth,m=Array.isArray(g),x=Array.isArray(y);for(c=0;c<f.length;c++){o=f[c];var b=m?g[c]:g,_=x?y[c]:y;u=(l=o.p+b)+_,d.push(l,u)}}p._extremes[t._id]=s.findExtremes(t,d,{padded:!1})}}function g(t,e){for(var r=e.traces,n=x(t),i=0;i<r.length;i++){for(var a=r[i],o=a[0].trace,l="scatter"===o.type,u="v"===o.orientation,c=[],f=!1,h=0;h<a.length;h++){var p=a[h],d=l?0:p.b,v=l?u?p.y:p.x:d+p.s;p[n]=v,c.push(v),p.hasB&&c.push(d),p.hasB&&p.b||(f=!0)}o._extremes[t._id]=s.findExtremes(t,c,{tozero:f,padded:!0})}}function y(t){for(var e=t.traces,r=0;r<e.length;r++)for(var n=e[r],i=0;i<n.length;i++){var o=n[i];o.s!==a&&t.put(o.p,o.b+o.s)}}function m(t,e,r){var i=e.traces,o=x(t),l="fraction"===r.norm?1:100,u=l/1e9,c=t.l2c(t.c2l(0)),f="stack"===r.mode?l:c;function h(e){return n(t.c2l(e))&&(e<c-u||e>f+u||!n(c))}for(var p=0;p<i.length;p++){for(var d=i[p],v=d[0].trace,g=[],y=!1,m=!1,b=0;b<d.length;b++){var _=d[b];if(_.s!==a){var w=Math.abs(l/e.get(_.p,_.s));_.b*=w,_.s*=w;var T=_.b,k=T+_.s;_[o]=k,g.push(k),m=m||h(k),_.hasB&&(g.push(T),m=m||h(T)),_.hasB&&_.b||(y=!0)}}v._extremes[t._id]=s.findExtremes(t,g,{tozero:y,padded:m})}}function x(t){return t._id.charAt(0)}t.exports={crossTraceCalc:function(t,e){for(var r=e.xaxis,n=e.yaxis,i=t._fullLayout,a=t._fullData,s=t.calcdata,l=[],u=[],f=0;f<a.length;f++){var h=a[f];if(!0===h.visible&&o.traceIs(h,"bar")&&h.xaxis===r._id&&h.yaxis===n._id&&("h"===h.orientation?l.push(s[f]):u.push(s[f]),h._computePh))for(var p=t.calcdata[f],d=0;d<p.length;d++)"function"==typeof p[d].ph0&&(p[d].ph0=p[d].ph0()),"function"==typeof p[d].ph1&&(p[d].ph1=p[d].ph1())}var v={xCat:"category"===r.type||"multicategory"===r.type,yCat:"category"===n.type||"multicategory"===n.type,mode:i.barmode,norm:i.barnorm,gap:i.bargap,groupgap:i.bargroupgap};c(t,r,n,u,v),c(t,n,r,l,v)},setGroupPositions:c}},90769:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(73972),o=r(67513),s=r(73927),l=r(98340),u=r(26125),c=r(1486),f=n.coerceFont;function h(t,e,r,i,a,o){var s=!(!1===(o=o||{}).moduleHasSelected),l=!(!1===o.moduleHasUnselected),u=!(!1===o.moduleHasConstrain),c=!(!1===o.moduleHasCliponaxis),h=!(!1===o.moduleHasTextangle),p=!(!1===o.moduleHasInsideanchor),d=!!o.hasPathbar,v=Array.isArray(a)||"auto"===a,g=v||"inside"===a,y=v||"outside"===a;if(g||y){var m=f(i,"textfont",r.font),x=n.extendFlat({},m),b=!(t.textfont&&t.textfont.color);if(b&&delete x.color,f(i,"insidetextfont",x),d){var _=n.extendFlat({},m);b&&delete _.color,f(i,"pathbar.textfont",_)}y&&f(i,"outsidetextfont",m),s&&i("selected.textfont.color"),l&&i("unselected.textfont.color"),u&&i("constraintext"),c&&i("cliponaxis"),h&&i("textangle"),i("texttemplate")}g&&p&&i("insidetextanchor")}t.exports={supplyDefaults:function(t,e,r,u){function f(r,i){return n.coerce(t,e,c,r,i)}if(o(t,e,u,f)){s(t,e,u,f),f("xhoverformat"),f("yhoverformat"),f("orientation",e.x&&!e.y?"h":"v"),f("base"),f("offset"),f("width"),f("text"),f("hovertext"),f("hovertemplate");var p=f("textposition");h(t,0,u,f,p,{moduleHasSelected:!0,moduleHasUnselected:!0,moduleHasConstrain:!0,moduleHasCliponaxis:!0,moduleHasTextangle:!0,moduleHasInsideanchor:!0}),l(t,e,f,r,u);var d=(e.marker.line||{}).color,v=a.getComponentMethod("errorbars","supplyDefaults");v(t,e,d||i.defaultLine,{axis:"y"}),v(t,e,d||i.defaultLine,{axis:"x",inherit:"y"}),n.coerceSelectionMarkerOpacity(e,f)}else e.visible=!1},crossTraceDefaults:function(t,e){var r,i;function a(t){return n.coerce(i._input,i,c,t)}if("group"===e.barmode)for(var o=0;o<t.length;o++)"bar"===(i=t[o]).type&&(r=i._input,u(r,i,e,a))},handleText:h}},58065:function(t){"use strict";t.exports=function(t,e,r){return t.x="xVal"in e?e.xVal:e.x,t.y="yVal"in e?e.yVal:e.y,e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),"h"===r.orientation?(t.label=t.y,t.value=t.x):(t.label=t.x,t.value=t.y),t}},69383:function(t,e,r){"use strict";var n=r(92770),i=r(84267),a=r(71828).isArrayOrTypedArray;e.coerceString=function(t,e,r){if("string"==typeof e){if(e||!t.noBlank)return e}else if(("number"==typeof e||!0===e)&&!t.strict)return String(e);return void 0!==r?r:t.dflt},e.coerceNumber=function(t,e,r){if(n(e)){e=+e;var i=t.min,a=t.max;if(!(void 0!==i&&e<i||void 0!==a&&e>a))return e}return void 0!==r?r:t.dflt},e.coerceColor=function(t,e,r){return i(e).isValid()?e:void 0!==r?r:t.dflt},e.coerceEnumerated=function(t,e,r){return t.coerceNumber&&(e=+e),-1!==t.values.indexOf(e)?e:void 0!==r?r:t.dflt},e.getValue=function(t,e){var r;return Array.isArray(t)?e<t.length&&(r=t[e]):r=t,r},e.getLineWidth=function(t,e){return 0<e.mlw?e.mlw:a(t.marker.line.width)?0:t.marker.line.width}},95423:function(t,e,r){"use strict";var n=r(30211),i=r(73972),a=r(7901),o=r(71828).fillText,s=r(69383).getLineWidth,l=r(89298).hoverLabelText,u=r(50606).BADNUM;function c(t,e,r,i,a){var s,c,f,h,p,d,v,g=t.cd,y=g[0].trace,m=g[0].t,x="closest"===i,b="waterfall"===y.type,_=t.maxHoverDistance,w=t.maxSpikeDistance;"h"===y.orientation?(s=r,c=e,f="y",h="x",p=D,d=O):(s=e,c=r,f="x",h="y",d=D,p=O);var T=y[f+"period"],k=x||T;function A(t){return S(t,-1)}function M(t){return S(t,1)}function S(t,e){var r=t.w;return t[f]+e*r/2}function E(t){return t[f+"End"]-t[f+"Start"]}var L=x?A:T?function(t){return t.p-E(t)/2}:function(t){return Math.min(A(t),t.p-m.bardelta/2)},C=x?M:T?function(t){return t.p+E(t)/2}:function(t){return Math.max(M(t),t.p+m.bardelta/2)};function P(t,e,r){return a.finiteRange&&(r=0),n.inbox(t-s,e-s,r+Math.min(1,Math.abs(e-t)/v)-1)}function O(t){return P(L(t),C(t),_)}function I(t){var e=t[h];if(b){var r=Math.abs(t.rawS)||0;c>0?e+=r:c<0&&(e-=r)}return e}function D(t){var e=c,r=t.b,i=I(t);return n.inbox(r-e,i-e,_+(i-e)/(i-r)-1)}var z=t[f+"a"],R=t[h+"a"];v=Math.abs(z.r2c(z.range[1])-z.r2c(z.range[0]));var F=n.getDistanceFunction(i,p,d,(function(t){return(p(t)+d(t))/2}));if(n.getClosest(g,F,t),!1!==t.index&&g[t.index].p!==u){k||(L=function(t){return Math.min(A(t),t.p-m.bargroupwidth/2)},C=function(t){return Math.max(M(t),t.p+m.bargroupwidth/2)});var B=g[t.index],N=y.base?B.b+B.s:B.s;t[h+"0"]=t[h+"1"]=R.c2p(B[h],!0),t[h+"LabelVal"]=N;var j=m.extents[m.extents.round(B.p)];t[f+"0"]=z.c2p(x?L(B):j[0],!0),t[f+"1"]=z.c2p(x?C(B):j[1],!0);var U=void 0!==B.orig_p;return t[f+"LabelVal"]=U?B.orig_p:B.p,t.labelLabel=l(z,t[f+"LabelVal"],y[f+"hoverformat"]),t.valueLabel=l(R,t[h+"LabelVal"],y[h+"hoverformat"]),t.baseLabel=l(R,B.b,y[h+"hoverformat"]),t.spikeDistance=(function(t){var e=c,r=t.b,i=I(t);return n.inbox(r-e,i-e,w+(i-e)/(i-r)-1)}(B)+function(t){return P(A(t),M(t),w)}(B))/2,t[f+"Spike"]=z.c2p(B.p,!0),o(B,y,t),t.hovertemplate=y.hovertemplate,t}}function f(t,e){var r=e.mcc||t.marker.color,n=e.mlcc||t.marker.line.color,i=s(t,e);return a.opacity(r)?r:a.opacity(n)&&i?n:void 0}t.exports={hoverPoints:function(t,e,r,n,a){var o=c(t,e,r,n,a);if(o){var s=o.cd,l=s[0].trace,u=s[o.index];return o.color=f(l,u),i.getComponentMethod("errorbars","hoverInfo")(u,l,o),[o]}},hoverOnBars:c,getTraceColor:f}},60822:function(t,e,r){"use strict";t.exports={attributes:r(1486),layoutAttributes:r(43641),supplyDefaults:r(90769).supplyDefaults,crossTraceDefaults:r(90769).crossTraceDefaults,supplyLayoutDefaults:r(13957),calc:r(92290),crossTraceCalc:r(11661).crossTraceCalc,colorbar:r(4898),arraysToCalcdata:r(75341),plot:r(17295).plot,style:r(16688).style,styleOnSelect:r(16688).styleOnSelect,hoverPoints:r(95423).hoverPoints,eventData:r(58065),selectPoints:r(81974),moduleType:"trace",name:"bar",basePlotModule:r(93612),categories:["bar-like","cartesian","svg","bar","oriented","errorBarsOK","showLegend","zoomScale"],animatable:!0,meta:{}}},43641:function(t){"use strict";t.exports={barmode:{valType:"enumerated",values:["stack","group","overlay","relative"],dflt:"group",editType:"calc"},barnorm:{valType:"enumerated",values:["","fraction","percent"],dflt:"",editType:"calc"},bargap:{valType:"number",min:0,max:1,editType:"calc"},bargroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},13957:function(t,e,r){"use strict";var n=r(73972),i=r(89298),a=r(71828),o=r(43641);t.exports=function(t,e,r){function s(r,n){return a.coerce(t,e,o,r,n)}for(var l=!1,u=!1,c=!1,f={},h=s("barmode"),p=0;p<r.length;p++){var d=r[p];if(n.traceIs(d,"bar")&&d.visible){if(l=!0,"group"===h){var v=d.xaxis+d.yaxis;f[v]&&(c=!0),f[v]=!0}d.visible&&"histogram"===d.type&&"category"!==i.getFromId({_fullLayout:e},d["v"===d.orientation?"xaxis":"yaxis"]).type&&(u=!0)}}l?("overlay"!==h&&s("barnorm"),s("bargap",u&&!c?0:.2),s("bargroupgap")):delete e.barmode}},17295:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(71828),o=r(63893),s=r(7901),l=r(91424),u=r(73972),c=r(89298).tickText,f=r(72597),h=f.recordMinTextSize,p=f.clearMinTextSize,d=r(16688),v=r(69383),g=r(97313),y=r(1486),m=y.text,x=y.textposition,b=r(23469).appendArrayPointValue,_=g.TEXTPAD;function w(t){return t.id}function T(t){if(t.ids)return w}function k(t,e){return t<e?1:-1}function A(t,e,r,n){var i;return!e.uniformtext.mode&&M(r)?(n&&(i=n()),t.transition().duration(r.duration).ease(r.easing).each("end",(function(){i&&i()})).each("interrupt",(function(){i&&i()}))):t}function M(t){return t&&t.duration>0}function S(t){return"auto"===t?0:t}function E(t,e){var r=Math.PI/180*e,n=Math.abs(Math.sin(r)),i=Math.abs(Math.cos(r));return{x:t.width*i+t.height*n,y:t.width*n+t.height*i}}function L(t,e,r,n,i,a){var o=!!a.isHorizontal,s=!!a.constrained,l=a.angle||0,u=a.anchor||"end",c="end"===u,f="start"===u,h=((a.leftToRight||0)+1)/2,p=1-h,d=i.width,v=i.height,g=Math.abs(e-t),y=Math.abs(n-r),m=g>2*_&&y>2*_?_:0;g-=2*m,y-=2*m;var x=S(l);"auto"!==l||d<=g&&v<=y||!(d>g||v>y)||(d>y||v>g)&&d<v==g<y||(x+=90);var b=E(i,x),w=1;s&&(w=Math.min(1,g/b.x,y/b.y));var T=i.left*p+i.right*h,A=(i.top+i.bottom)/2,M=(t+_)*p+(e-_)*h,L=(r+n)/2,C=0,P=0;if(f||c){var O=(o?b.x:b.y)/2,I=o?k(t,e):k(r,n);o?f?(M=t+I*m,C=-I*O):(M=e-I*m,C=I*O):f?(L=r+I*m,P=-I*O):(L=n-I*m,P=I*O)}return{textX:T,textY:A,targetX:M,targetY:L,anchorX:C,anchorY:P,scale:w,rotate:x}}t.exports={plot:function(t,e,r,f,g,y){var w=e.xaxis,C=e.yaxis,P=t._fullLayout;g||(g={mode:P.barmode,norm:P.barmode,gap:P.bargap,groupgap:P.bargroupgap},p("bar",P));var O=a.makeTraceGroups(f,r,"trace bars").each((function(r){var u=n.select(this),f=r[0].trace,p="waterfall"===f.type,O="funnel"===f.type,I="bar"===f.type||O,D=0;p&&f.connector.visible&&"between"===f.connector.mode&&(D=f.connector.line.width/2);var z="h"===f.orientation,R=M(g),F=a.ensureSingle(u,"g","points"),B=T(f),N=F.selectAll("g.point").data(a.identity,B);N.enter().append("g").classed("point",!0),N.exit().remove(),N.each((function(u,p){var T,M,O=n.select(this),F=function(t,e,r,n){var i=[],a=[],o=n?e:r,s=n?r:e;return i[0]=o.c2p(t.s0,!0),a[0]=s.c2p(t.p0,!0),i[1]=o.c2p(t.s1,!0),a[1]=s.c2p(t.p1,!0),n?[i,a]:[a,i]}(u,w,C,z),B=F[0][0],N=F[0][1],j=F[1][0],U=F[1][1],V=0==(z?N-B:U-j);if(V&&I&&v.getLineWidth(f,u)&&(V=!1),V||(V=!(i(B)&&i(N)&&i(j)&&i(U))),u.isBlank=V,V&&(z?N=B:U=j),D&&!V&&(z?(B-=k(B,N)*D,N+=k(B,N)*D):(j-=k(j,U)*D,U+=k(j,U)*D)),"waterfall"===f.type){if(!V){var H=f[u.dir].marker;T=H.line.width,M=H.color}}else T=v.getLineWidth(f,u),M=u.mc||f.marker.color;function q(t){var e=n.round(T/2%1,2);return 0===g.gap&&0===g.groupgap?n.round(Math.round(t)-e,2):t}if(!t._context.staticPlot){var G=s.opacity(M)<1||T>.01?q:function(t,e,r){return r&&t===e?t:Math.abs(t-e)>=2?q(t):t>e?Math.ceil(t):Math.floor(t)};B=G(B,N,z),N=G(N,B,z),j=G(j,U,!z),U=G(U,j,!z)}var Z=A(a.ensureSingle(O,"path"),P,g,y);if(Z.style("vector-effect","non-scaling-stroke").attr("d",isNaN((N-B)*(U-j))||V&&t._context.staticPlot?"M0,0Z":"M"+B+","+j+"V"+U+"H"+N+"V"+j+"Z").call(l.setClipUrl,e.layerClipId,t),!P.uniformtext.mode&&R){var Y=l.makePointStyleFns(f);l.singlePointStyle(u,Z,f,Y,t)}!function(t,e,r,n,i,s,u,f,p,g,y){var w,T=e.xaxis,M=e.yaxis,C=t._fullLayout;function P(e,r,n){return a.ensureSingle(e,"text").text(r).attr({class:"bartext bartext-"+w,"text-anchor":"middle","data-notex":1}).call(l.font,n).call(o.convertToTspans,t)}var O=n[0].trace,I="h"===O.orientation,D=function(t,e,r,n,i){var o,s=e[0].trace;return o=s.texttemplate?function(t,e,r,n,i){var o=e[0].trace,s=a.castOption(o,r,"texttemplate");if(!s)return"";var l,u,f,h,p="histogram"===o.type,d="waterfall"===o.type,v="funnel"===o.type,g="h"===o.orientation;function y(t){return c(h,h.c2l(t),!0).text}g?(l="y",u=i,f="x",h=n):(l="x",u=n,f="y",h=i);var m,x=e[r],_={};_.label=x.p,_.labelLabel=_[l+"Label"]=(m=x.p,c(u,u.c2l(m),!0).text);var w=a.castOption(o,x.i,"text");(0===w||w)&&(_.text=w),_.value=x.s,_.valueLabel=_[f+"Label"]=y(x.s);var T={};b(T,o,x.i),(p||void 0===T.x)&&(T.x=g?_.value:_.label),(p||void 0===T.y)&&(T.y=g?_.label:_.value),(p||void 0===T.xLabel)&&(T.xLabel=g?_.valueLabel:_.labelLabel),(p||void 0===T.yLabel)&&(T.yLabel=g?_.labelLabel:_.valueLabel),d&&(_.delta=+x.rawS||x.s,_.deltaLabel=y(_.delta),_.final=x.v,_.finalLabel=y(_.final),_.initial=_.final-_.delta,_.initialLabel=y(_.initial)),v&&(_.value=x.s,_.valueLabel=y(_.value),_.percentInitial=x.begR,_.percentInitialLabel=a.formatPercent(x.begR),_.percentPrevious=x.difR,_.percentPreviousLabel=a.formatPercent(x.difR),_.percentTotal=x.sumR,_.percenTotalLabel=a.formatPercent(x.sumR));var k=a.castOption(o,x.i,"customdata");return k&&(_.customdata=k),a.texttemplateString(s,_,t._d3locale,T,_,o._meta||{})}(t,e,r,n,i):s.textinfo?function(t,e,r,n){var i=t[0].trace,o="h"===i.orientation,s="waterfall"===i.type,l="funnel"===i.type;function u(t){return c(o?r:n,+t,!0).text}var f,h,p=i.textinfo,d=t[e],v=p.split("+"),g=[],y=function(t){return-1!==v.indexOf(t)};if(y("label")&&g.push((h=t[e].p,c(o?n:r,h,!0).text)),y("text")&&(0===(f=a.castOption(i,d.i,"text"))||f)&&g.push(f),s){var m=+d.rawS||d.s,x=d.v,b=x-m;y("initial")&&g.push(u(b)),y("delta")&&g.push(u(m)),y("final")&&g.push(u(x))}if(l){y("value")&&g.push(u(d.s));var _=0;y("percent initial")&&_++,y("percent previous")&&_++,y("percent total")&&_++;var w=_>1;y("percent initial")&&(f=a.formatPercent(d.begR),w&&(f+=" of initial"),g.push(f)),y("percent previous")&&(f=a.formatPercent(d.difR),w&&(f+=" of previous"),g.push(f)),y("percent total")&&(f=a.formatPercent(d.sumR),w&&(f+=" of total"),g.push(f))}return g.join("<br>")}(e,r,n,i):v.getValue(s.text,r),v.coerceString(m,o)}(C,n,i,T,M);w=function(t,e){var r=v.getValue(t.textposition,e);return v.coerceEnumerated(x,r)}(O,i);var z="stack"===g.mode||"relative"===g.mode,R=n[i],F=!z||R._outmost;if(D&&"none"!==w&&(!R.isBlank&&s!==u&&f!==p||"auto"!==w&&"inside"!==w)){var B=C.font,N=d.getBarColor(n[i],O),j=d.getInsideTextFont(O,i,B,N),U=d.getOutsideTextFont(O,i,B),V=r.datum();I?"log"===T.type&&V.s0<=0&&(s=T.range[0]<T.range[1]?0:T._length):"log"===M.type&&V.s0<=0&&(f=M.range[0]<M.range[1]?M._length:0);var H,q,G,Z,Y,W=Math.abs(u-s)-2*_,X=Math.abs(p-f)-2*_;if("outside"===w&&(F||R.hasB||(w="inside")),"auto"===w&&(F?(w="inside",H=P(r,D,Y=a.ensureUniformFontSize(t,j)),G=(q=l.bBox(H.node())).width,Z=q.height,G>0&&Z>0&&(G<=W&&Z<=X||G<=X&&Z<=W||(I?W>=G*(X/Z):X>=Z*(W/G)))?w="inside":(w="outside",H.remove(),H=null)):w="inside"),!H){var J=(H=P(r,D,Y=a.ensureUniformFontSize(t,"outside"===w?U:j))).attr("transform");if(H.attr("transform",""),G=(q=l.bBox(H.node())).width,Z=q.height,H.attr("transform",J),G<=0||Z<=0)return void H.remove()}var K,$=O.textangle;K="outside"===w?function(t,e,r,n,i,a){var o,s=!!a.isHorizontal,l=!!a.constrained,u=a.angle||0,c=i.width,f=i.height,h=Math.abs(e-t),p=Math.abs(n-r);o=s?p>2*_?_:0:h>2*_?_:0;var d=1;l&&(d=s?Math.min(1,p/f):Math.min(1,h/c));var v=S(u),g=E(i,v),y=(s?g.x:g.y)/2,m=(i.left+i.right)/2,x=(i.top+i.bottom)/2,b=(t+e)/2,w=(r+n)/2,T=0,A=0,M=s?k(e,t):k(r,n);return s?(b=e-M*o,T=M*y):(w=n+M*o,A=-M*y),{textX:m,textY:x,targetX:b,targetY:w,anchorX:T,anchorY:A,scale:d,rotate:v}}(s,u,f,p,q,{isHorizontal:I,constrained:"both"===O.constraintext||"outside"===O.constraintext,angle:$}):L(s,u,f,p,q,{isHorizontal:I,constrained:"both"===O.constraintext||"inside"===O.constraintext,angle:$,anchor:O.insidetextanchor}),K.fontSize=Y.size,h("histogram"===O.type?"bar":O.type,K,C),R.transform=K;var Q=A(H,C,g,y);a.setTransormAndDisplay(Q,K)}else r.select("text").remove()}(t,e,O,r,p,B,N,j,U,g,y),e.layerClipId&&l.hideOutsideRangePoint(u,O.select("text"),w,C,f.xcalendar,f.ycalendar)}));var j=!1===f.cliponaxis;l.setClipUrl(u,j?null:e.layerClipId,t)}));u.getComponentMethod("errorbars","plot")(t,O,e,g)},toMoveInsideBar:L}},81974:function(t){"use strict";function e(t,e,r,n,i){var a=e.c2p(n?t.s0:t.p0,!0),o=e.c2p(n?t.s1:t.p1,!0),s=r.c2p(n?t.p0:t.s0,!0),l=r.c2p(n?t.p1:t.s1,!0);return i?[(a+o)/2,(s+l)/2]:n?[o,(s+l)/2]:[(a+o)/2,l]}t.exports=function(t,r){var n,i=t.cd,a=t.xaxis,o=t.yaxis,s=i[0].trace,l="funnel"===s.type,u="h"===s.orientation,c=[];if(!1===r)for(n=0;n<i.length;n++)i[n].selected=0;else for(n=0;n<i.length;n++){var f=i[n],h="ct"in f?f.ct:e(f,a,o,u,l);r.contains(h,!1,n,t)?(c.push({pointNumber:n,x:a.c2d(f.x),y:o.c2d(f.y)}),f.selected=1):f.selected=0}return c}},61546:function(t,e,r){"use strict";t.exports=i;var n=r(71828).distinctVals;function i(t,e){this.traces=t,this.sepNegVal=e.sepNegVal,this.overlapNoMerge=e.overlapNoMerge;for(var r=1/0,i=e.posAxis._id.charAt(0),a=[],o=0;o<t.length;o++){for(var s=t[o],l=0;l<s.length;l++){var u=s[l],c=u.p;void 0===c&&(c=u[i]),void 0!==c&&a.push(c)}s[0]&&s[0].width1&&(r=Math.min(s[0].width1,r))}this.positions=a;var f=n(a);this.distinctPositions=f.vals,1===f.vals.length&&r!==1/0?this.minDiff=r:this.minDiff=Math.min(f.minDiff,r);var h=(e.posAxis||{}).type;"category"!==h&&"multicategory"!==h||(this.minDiff=1),this.binWidth=this.minDiff,this.bins={}}i.prototype.put=function(t,e){var r=this.getLabel(t,e),n=this.bins[r]||0;return this.bins[r]=n+e,n},i.prototype.get=function(t,e){var r=this.getLabel(t,e);return this.bins[r]||0},i.prototype.getLabel=function(t,e){return(e<0&&this.sepNegVal?"v":"^")+(this.overlapNoMerge?t:Math.round(t/this.binWidth))}},16688:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(91424),o=r(71828),s=r(73972),l=r(72597).resizeText,u=r(1486),c=u.textfont,f=u.insidetextfont,h=u.outsidetextfont,p=r(69383);function d(t,e,r){a.pointStyle(t.selectAll("path"),e,r),v(t,e,r)}function v(t,e,r){t.selectAll("text").each((function(t){var i=n.select(this),s=o.ensureUniformFontSize(r,g(i,t,e,r));a.font(i,s)}))}function g(t,e,r,n){var i=n._fullLayout.font,a=r.textfont;if(t.classed("bartext-inside")){var o=_(e,r);a=m(r,e.i,i,o)}else t.classed("bartext-outside")&&(a=x(r,e.i,i));return a}function y(t,e,r){return b(c,t.textfont,e,r)}function m(t,e,r,n){var a=y(t,e,r);return(void 0===t._input.textfont||void 0===t._input.textfont.color||Array.isArray(t.textfont.color)&&void 0===t.textfont.color[e])&&(a={color:i.contrast(n),family:a.family,size:a.size}),b(f,t.insidetextfont,e,a)}function x(t,e,r){var n=y(t,e,r);return b(h,t.outsidetextfont,e,n)}function b(t,e,r,n){e=e||{};var i=p.getValue(e.family,r),a=p.getValue(e.size,r),o=p.getValue(e.color,r);return{family:p.coerceString(t.family,i,n.family),size:p.coerceNumber(t.size,a,n.size),color:p.coerceColor(t.color,o,n.color)}}function _(t,e){return"waterfall"===e.type?e[t.dir].marker.color:t.mcc||t.mc||e.marker.color}t.exports={style:function(t){var e=n.select(t).selectAll("g.barlayer").selectAll("g.trace");l(t,e,"bar");var r=e.size(),i=t._fullLayout;e.style("opacity",(function(t){return t[0].trace.opacity})).each((function(t){("stack"===i.barmode&&r>1||0===i.bargap&&0===i.bargroupgap&&!t[0].trace.marker.line.width)&&n.select(this).attr("shape-rendering","crispEdges")})),e.selectAll("g.points").each((function(e){d(n.select(this),e[0].trace,t)})),s.getComponentMethod("errorbars","style")(e)},styleTextPoints:v,styleOnSelect:function(t,e,r){var i=e[0].trace;i.selectedpoints?function(t,e,r){a.selectedPointStyle(t.selectAll("path"),e),function(t,e,r){t.each((function(t){var i,s=n.select(this);if(t.selected){i=o.ensureUniformFontSize(r,g(s,t,e,r));var l=e.selected.textfont&&e.selected.textfont.color;l&&(i.color=l),a.font(s,i)}else a.selectedTextStyle(s,e)}))}(t.selectAll("text"),e,r)}(r,i,t):(d(r,i,t),s.getComponentMethod("errorbars","style")(r))},getInsideTextFont:m,getOutsideTextFont:x,getBarColor:_,resizeText:l}},98340:function(t,e,r){"use strict";var n=r(7901),i=r(52075).hasColorscale,a=r(1586),o=r(71828).coercePattern;t.exports=function(t,e,r,s,l){var u=r("marker.color",s),c=i(t,"marker");c&&a(t,e,l,r,{prefix:"marker.",cLetter:"c"}),r("marker.line.color",n.defaultLine),i(t,"marker.line")&&a(t,e,l,r,{prefix:"marker.line.",cLetter:"c"}),r("marker.line.width"),r("marker.opacity"),o(r,"marker.pattern",u,c),r("selected.marker.color"),r("unselected.marker.color")}},72597:function(t,e,r){"use strict";var n=r(39898),i=r(71828);function a(t){return"_"+t+"Text_minsize"}t.exports={recordMinTextSize:function(t,e,r){if(r.uniformtext.mode){var n=a(t),i=r.uniformtext.minsize,o=e.scale*e.fontSize;e.hide=o<i,r[n]=r[n]||1/0,e.hide||(r[n]=Math.min(r[n],Math.max(o,i)))}},clearMinTextSize:function(t,e){e[a(t)]=void 0},resizeText:function(t,e,r){var a=t._fullLayout,o=a["_"+r+"Text_minsize"];if(o){var s,l="hide"===a.uniformtext.mode;switch(r){case"funnelarea":case"pie":case"sunburst":s="g.slice";break;case"treemap":case"icicle":s="g.slice, g.pathbar";break;default:s="g.points > g.point"}e.selectAll(s).each((function(t){var e=t.transform;if(e){e.scale=l&&e.hide?0:o/e.fontSize;var r=n.select(this).select("text");i.setTransormAndDisplay(r,e)}}))}}}},55023:function(t,e,r){"use strict";var n=r(5386).f,i=r(1426).extendFlat,a=r(81245),o=r(1486);t.exports={r:a.r,theta:a.theta,r0:a.r0,dr:a.dr,theta0:a.theta0,dtheta:a.dtheta,thetaunit:a.thetaunit,base:i({},o.base,{}),offset:i({},o.offset,{}),width:i({},o.width,{}),text:i({},o.text,{}),hovertext:i({},o.hovertext,{}),marker:o.marker,hoverinfo:a.hoverinfo,hovertemplate:n(),selected:o.selected,unselected:o.unselected}},74692:function(t,e,r){"use strict";var n=r(52075).hasColorscale,i=r(78803),a=r(75341),o=r(11661).setGroupPositions,s=r(66279),l=r(73972).traceIs,u=r(71828).extendFlat;t.exports={calc:function(t,e){for(var r=t._fullLayout,o=e.subplot,l=r[o].radialaxis,u=r[o].angularaxis,c=l.makeCalcdata(e,"r"),f=u.makeCalcdata(e,"theta"),h=e._length,p=new Array(h),d=c,v=f,g=0;g<h;g++)p[g]={p:v[g],s:d[g]};function y(t){var r=e[t];void 0!==r&&(e["_"+t]=Array.isArray(r)?u.makeCalcdata(e,t):u.d2c(r,e.thetaunit))}return"linear"===u.type&&(y("width"),y("offset")),n(e,"marker")&&i(t,e,{vals:e.marker.color,containerStr:"marker",cLetter:"c"}),n(e,"marker.line")&&i(t,e,{vals:e.marker.line.color,containerStr:"marker.line",cLetter:"c"}),a(p,e),s(p,e),p},crossTraceCalc:function(t,e,r){for(var n=t.calcdata,i=[],a=0;a<n.length;a++){var s=n[a],c=s[0].trace;!0===c.visible&&l(c,"bar")&&c.subplot===r&&i.push(s)}var f=u({},e.radialaxis,{_id:"x"}),h=e.angularaxis;o(t,h,f,i,{mode:e.barmode,norm:e.barnorm,gap:e.bargap,groupgap:e.bargroupgap})}}},6135:function(t,e,r){"use strict";var n=r(71828),i=r(22184).handleRThetaDefaults,a=r(98340),o=r(55023);t.exports=function(t,e,r,s){function l(r,i){return n.coerce(t,e,o,r,i)}i(t,e,s,l)?(l("thetaunit"),l("base"),l("offset"),l("width"),l("text"),l("hovertext"),l("hovertemplate"),a(t,e,l,r,s),n.coerceSelectionMarkerOpacity(e,l)):e.visible=!1}},27379:function(t,e,r){"use strict";var n=r(30211),i=r(71828),a=r(95423).getTraceColor,o=i.fillText,s=r(59150).makeHoverPointText,l=r(10869).isPtInsidePolygon;t.exports=function(t,e,r){var u=t.cd,c=u[0].trace,f=t.subplot,h=f.radialAxis,p=f.angularAxis,d=f.vangles,v=d?l:i.isPtInsideSector,g=t.maxHoverDistance,y=p._period||2*Math.PI,m=Math.abs(h.g2p(Math.sqrt(e*e+r*r))),x=Math.atan2(r,e);if(h.range[0]>h.range[1]&&(x+=Math.PI),n.getClosest(u,(function(t){return v(m,x,[t.rp0,t.rp1],[t.thetag0,t.thetag1],d)?g+Math.min(1,Math.abs(t.thetag1-t.thetag0)/y)-1+(t.rp1-m)/(t.rp1-t.rp0)-1:1/0}),t),!1!==t.index){var b=u[t.index];t.x0=t.x1=b.ct[0],t.y0=t.y1=b.ct[1];var _=i.extendFlat({},b,{r:b.s,theta:b.p});return o(b,c,t),s(_,c,f,t),t.hovertemplate=c.hovertemplate,t.color=a(c,b),t.xLabelVal=t.yLabelVal=void 0,b.s<0&&(t.idealAlign="left"),[t]}}},23381:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"barpolar",basePlotModule:r(23580),categories:["polar","bar","showLegend"],attributes:r(55023),layoutAttributes:r(40151),supplyDefaults:r(6135),supplyLayoutDefaults:r(19860),calc:r(74692).calc,crossTraceCalc:r(74692).crossTraceCalc,plot:r(60173),colorbar:r(4898),formatLabels:r(98608),style:r(16688).style,styleOnSelect:r(16688).styleOnSelect,hoverPoints:r(27379),selectPoints:r(81974),meta:{}}},40151:function(t){"use strict";t.exports={barmode:{valType:"enumerated",values:["stack","overlay"],dflt:"stack",editType:"calc"},bargap:{valType:"number",dflt:.1,min:0,max:1,editType:"calc"}}},19860:function(t,e,r){"use strict";var n=r(71828),i=r(40151);t.exports=function(t,e,r){var a,o={};function s(r,o){return n.coerce(t[a]||{},e[a],i,r,o)}for(var l=0;l<r.length;l++){var u=r[l];"barpolar"===u.type&&!0===u.visible&&(o[a=u.subplot]||(s("barmode"),s("bargap"),o[a]=1))}}},60173:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(71828),o=r(91424),s=r(10869);t.exports=function(t,e,r){var l=e.xaxis,u=e.yaxis,c=e.radialAxis,f=e.angularAxis,h=function(t){var e=t.cxx,r=t.cyy;return t.vangles?function(n,i,o,l){var u,c;a.angleDelta(o,l)>0?(u=o,c=l):(u=l,c=o);var f=[s.findEnclosingVertexAngles(u,t.vangles)[0],(u+c)/2,s.findEnclosingVertexAngles(c,t.vangles)[1]];return s.pathPolygonAnnulus(n,i,u,c,f,e,r)}:function(t,n,i,o){return a.pathAnnulus(t,n,i,o,e,r)}}(e),p=e.layers.frontplot.select("g.barlayer");a.makeTraceGroups(p,r,"trace bars").each((function(){var r=n.select(this),s=a.ensureSingle(r,"g","points").selectAll("g.point").data(a.identity);s.enter().append("g").style("vector-effect","non-scaling-stroke").style("stroke-miterlimit",2).classed("point",!0),s.exit().remove(),s.each((function(t){var e,r=n.select(this),o=t.rp0=c.c2p(t.s0),s=t.rp1=c.c2p(t.s1),p=t.thetag0=f.c2g(t.p0),d=t.thetag1=f.c2g(t.p1);if(i(o)&&i(s)&&i(p)&&i(d)&&o!==s&&p!==d){var v=c.c2g(t.s1),g=(p+d)/2;t.ct=[l.c2p(v*Math.cos(g)),u.c2p(v*Math.sin(g))],e=h(o,s,p,d)}else e="M0,0Z";a.ensureSingle(r,"path").attr("d",e)})),o.setClipUrl(r,e._hasClipOnAxisFalse?e.clipIds.forTraces:null,t)}))}},53522:function(t,e,r){"use strict";var n=r(82196),i=r(1486),a=r(22399),o=r(12663).axisHoverFormat,s=r(5386).f,l=r(1426).extendFlat,u=n.marker,c=u.line;t.exports={y:{valType:"data_array",editType:"calc+clearAxisTypes"},x:{valType:"data_array",editType:"calc+clearAxisTypes"},x0:{valType:"any",editType:"calc+clearAxisTypes"},y0:{valType:"any",editType:"calc+clearAxisTypes"},dx:{valType:"number",editType:"calc"},dy:{valType:"number",editType:"calc"},xperiod:n.xperiod,yperiod:n.yperiod,xperiod0:n.xperiod0,yperiod0:n.yperiod0,xperiodalignment:n.xperiodalignment,yperiodalignment:n.yperiodalignment,xhoverformat:o("x"),yhoverformat:o("y"),name:{valType:"string",editType:"calc+clearAxisTypes"},q1:{valType:"data_array",editType:"calc+clearAxisTypes"},median:{valType:"data_array",editType:"calc+clearAxisTypes"},q3:{valType:"data_array",editType:"calc+clearAxisTypes"},lowerfence:{valType:"data_array",editType:"calc"},upperfence:{valType:"data_array",editType:"calc"},notched:{valType:"boolean",editType:"calc"},notchwidth:{valType:"number",min:0,max:.5,dflt:.25,editType:"calc"},notchspan:{valType:"data_array",editType:"calc"},boxpoints:{valType:"enumerated",values:["all","outliers","suspectedoutliers",!1],editType:"calc"},jitter:{valType:"number",min:0,max:1,editType:"calc"},pointpos:{valType:"number",min:-2,max:2,editType:"calc"},boxmean:{valType:"enumerated",values:[!0,"sd",!1],editType:"calc"},mean:{valType:"data_array",editType:"calc"},sd:{valType:"data_array",editType:"calc"},orientation:{valType:"enumerated",values:["v","h"],editType:"calc+clearAxisTypes"},quartilemethod:{valType:"enumerated",values:["linear","exclusive","inclusive"],dflt:"linear",editType:"calc"},width:{valType:"number",min:0,dflt:0,editType:"calc"},marker:{outliercolor:{valType:"color",dflt:"rgba(0, 0, 0, 0)",editType:"style"},symbol:l({},u.symbol,{arrayOk:!1,editType:"plot"}),opacity:l({},u.opacity,{arrayOk:!1,dflt:1,editType:"style"}),angle:l({},u.angle,{arrayOk:!1,editType:"calc"}),size:l({},u.size,{arrayOk:!1,editType:"calc"}),color:l({},u.color,{arrayOk:!1,editType:"style"}),line:{color:l({},c.color,{arrayOk:!1,dflt:a.defaultLine,editType:"style"}),width:l({},c.width,{arrayOk:!1,dflt:0,editType:"style"}),outliercolor:{valType:"color",editType:"style"},outlierwidth:{valType:"number",min:0,dflt:1,editType:"style"},editType:"style"},editType:"plot"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,dflt:2,editType:"style"},editType:"plot"},fillcolor:n.fillcolor,whiskerwidth:{valType:"number",min:0,max:1,dflt:.5,editType:"calc"},offsetgroup:i.offsetgroup,alignmentgroup:i.alignmentgroup,selected:{marker:n.selected.marker,editType:"style"},unselected:{marker:n.unselected.marker,editType:"style"},text:l({},n.text,{}),hovertext:l({},n.hovertext,{}),hovertemplate:s({}),hoveron:{valType:"flaglist",flags:["boxes","points"],dflt:"boxes+points",editType:"style"}}},48518:function(t,e,r){"use strict";var n=r(92770),i=r(89298),a=r(42973),o=r(71828),s=r(50606).BADNUM,l=o._;t.exports=function(t,e){var r,u,m,x,b,_,w,T=t._fullLayout,k=i.getFromId(t,e.xaxis||"x"),A=i.getFromId(t,e.yaxis||"y"),M=[],S="violin"===e.type?"_numViolins":"_numBoxes";"h"===e.orientation?(m=k,x="x",b=A,_="y",w=!!e.yperiodalignment):(m=A,x="y",b=k,_="x",w=!!e.xperiodalignment);var E,L,C,P,O,I,D=function(t,e,r,i){var s,l=e+"0"in t;if(e in t||l&&"d"+e in t){var u=r.makeCalcdata(t,e);return[a(t,r,e,u).vals,u]}s=l?t[e+"0"]:"name"in t&&("category"===r.type||n(t.name)&&-1!==["linear","log"].indexOf(r.type)||o.isDateTime(t.name)&&"date"===r.type)?t.name:i;for(var c="multicategory"===r.type?r.r2c_just_indices(s):r.d2c(s,0,t[e+"calendar"]),f=t._length,h=new Array(f),p=0;p<f;p++)h[p]=c;return[h]}(e,_,b,T[S]),z=D[0],R=D[1],F=o.distinctVals(z,b),B=F.vals,N=F.minDiff/2,j="all"===(e.boxpoints||e.points)?o.identity:function(t){return t.v<E.lf||t.v>E.uf};if(e._hasPreCompStats){var U=e[x],V=function(t){return m.d2c((e[t]||[])[r])},H=1/0,q=-1/0;for(r=0;r<e._length;r++){var G=z[r];if(n(G)){if((E={}).pos=E[_]=G,w&&R&&(E.orig_p=R[r]),E.q1=V("q1"),E.med=V("median"),E.q3=V("q3"),L=[],U&&o.isArrayOrTypedArray(U[r]))for(u=0;u<U[r].length;u++)(I=m.d2c(U[r][u]))!==s&&(c(O={v:I,i:[r,u]},e,[r,u]),L.push(O));if(E.pts=L.sort(f),P=(C=E[x]=L.map(h)).length,E.med!==s&&E.q1!==s&&E.q3!==s&&E.med>=E.q1&&E.q3>=E.med){var Z=V("lowerfence");E.lf=Z!==s&&Z<=E.q1?Z:p(E,C,P);var Y=V("upperfence");E.uf=Y!==s&&Y>=E.q3?Y:d(E,C,P);var W=V("mean");E.mean=W!==s?W:P?o.mean(C,P):(E.q1+E.q3)/2;var X=V("sd");E.sd=W!==s&&X>=0?X:P?o.stdev(C,P,E.mean):E.q3-E.q1,E.lo=v(E),E.uo=g(E);var J=V("notchspan");J=J!==s&&J>0?J:y(E,P),E.ln=E.med-J,E.un=E.med+J;var K=E.lf,$=E.uf;e.boxpoints&&C.length&&(K=Math.min(K,C[0]),$=Math.max($,C[P-1])),e.notched&&(K=Math.min(K,E.ln),$=Math.max($,E.un)),E.min=K,E.max=$}else{var Q;o.warn(["Invalid input - make sure that q1 <= median <= q3","q1 = "+E.q1,"median = "+E.med,"q3 = "+E.q3].join("\n")),Q=E.med!==s?E.med:E.q1!==s?E.q3!==s?(E.q1+E.q3)/2:E.q1:E.q3!==s?E.q3:0,E.med=Q,E.q1=E.q3=Q,E.lf=E.uf=Q,E.mean=E.sd=Q,E.ln=E.un=Q,E.min=E.max=Q}H=Math.min(H,E.min),q=Math.max(q,E.max),E.pts2=L.filter(j),M.push(E)}}e._extremes[m._id]=i.findExtremes(m,[H,q],{padded:!0})}else{var tt=m.makeCalcdata(e,x),et=function(t,e){for(var r=t.length,n=new Array(r+1),i=0;i<r;i++)n[i]=t[i]-e;return n[r]=t[r-1]+e,n}(B,N),rt=B.length,nt=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=[];return e}(rt);for(r=0;r<e._length;r++)if(I=tt[r],n(I)){var it=o.findBin(z[r],et);it>=0&&it<rt&&(c(O={v:I,i:r},e,r),nt[it].push(O))}var at=1/0,ot=-1/0,st=e.quartilemethod,lt="exclusive"===st,ut="inclusive"===st;for(r=0;r<rt;r++)if(nt[r].length>0){var ct,ft;(E={}).pos=E[_]=B[r],L=E.pts=nt[r].sort(f),P=(C=E[x]=L.map(h)).length,E.min=C[0],E.max=C[P-1],E.mean=o.mean(C,P),E.sd=o.stdev(C,P,E.mean),E.med=o.interp(C,.5),P%2&&(lt||ut)?(lt?(ct=C.slice(0,P/2),ft=C.slice(P/2+1)):ut&&(ct=C.slice(0,P/2+1),ft=C.slice(P/2)),E.q1=o.interp(ct,.5),E.q3=o.interp(ft,.5)):(E.q1=o.interp(C,.25),E.q3=o.interp(C,.75)),E.lf=p(E,C,P),E.uf=d(E,C,P),E.lo=v(E),E.uo=g(E);var ht=y(E,P);E.ln=E.med-ht,E.un=E.med+ht,at=Math.min(at,E.ln),ot=Math.max(ot,E.un),E.pts2=L.filter(j),M.push(E)}e._extremes[m._id]=i.findExtremes(m,e.notched?tt.concat([at,ot]):tt,{padded:!0})}return function(t,e){if(o.isArrayOrTypedArray(e.selectedpoints))for(var r=0;r<t.length;r++){for(var n=t[r].pts||[],i={},a=0;a<n.length;a++)i[n[a].i]=a;o.tagSelected(n,e,i)}}(M,e),M.length>0?(M[0].t={num:T[S],dPos:N,posLetter:_,valLetter:x,labels:{med:l(t,"median:"),min:l(t,"min:"),q1:l(t,"q1:"),q3:l(t,"q3:"),max:l(t,"max:"),mean:"sd"===e.boxmean?l(t,"mean ± σ:"):l(t,"mean:"),lf:l(t,"lower fence:"),uf:l(t,"upper fence:")}},T[S]++,M):[{t:{empty:!0}}]};var u={text:"tx",hovertext:"htx"};function c(t,e,r){for(var n in u)o.isArrayOrTypedArray(e[n])&&(Array.isArray(r)?o.isArrayOrTypedArray(e[n][r[0]])&&(t[u[n]]=e[n][r[0]][r[1]]):t[u[n]]=e[n][r])}function f(t,e){return t.v-e.v}function h(t){return t.v}function p(t,e,r){return 0===r?t.q1:Math.min(t.q1,e[Math.min(o.findBin(2.5*t.q1-1.5*t.q3,e,!0)+1,r-1)])}function d(t,e,r){return 0===r?t.q3:Math.max(t.q3,e[Math.max(o.findBin(2.5*t.q3-1.5*t.q1,e),0)])}function v(t){return 4*t.q1-3*t.q3}function g(t){return 4*t.q3-3*t.q1}function y(t,e){return 0===e?0:1.57*(t.q3-t.q1)/Math.sqrt(e)}},37188:function(t,e,r){"use strict";var n=r(89298),i=r(71828),a=r(99082).getAxisGroup,o=["v","h"];function s(t,e,r,o){var s,l,u,c=e.calcdata,f=e._fullLayout,h=o._id,p=h.charAt(0),d=[],v=0;for(s=0;s<r.length;s++)for(u=c[r[s]],l=0;l<u.length;l++)d.push(o.c2l(u[l].pos,!0)),v+=(u[l].pts2||[]).length;if(d.length){var g=i.distinctVals(d);"category"!==o.type&&"multicategory"!==o.type||(g.minDiff=1);var y=g.minDiff/2;n.minDtick(o,g.minDiff,g.vals[0],!0);var m=f["violin"===t?"_numViolins":"_numBoxes"],x="group"===f[t+"mode"]&&m>1,b=1-f[t+"gap"],_=1-f[t+"groupgap"];for(s=0;s<r.length;s++){var w,T,k,A,M,S,E=(u=c[r[s]])[0].trace,L=u[0].t,C=E.width,P=E.side;if(C)w=T=A=C/2,k=0;else if(w=y,x){var O=a(f,o._id)+E.orientation,I=(f._alignmentOpts[O]||{})[E.alignmentgroup]||{},D=Object.keys(I.offsetGroups||{}).length,z=D||m;T=w*b*_/z,k=2*w*(((D?E._offsetIndex:L.num)+.5)/z-.5)*b,A=w*b/z}else T=w*b*_,k=0,A=w;L.dPos=w,L.bPos=k,L.bdPos=T,L.wHover=A;var R,F,B,N,j,U,V=k+T,H=Boolean(C);if("positive"===P?(M=w*(C?1:.5),R=V,S=R=k):"negative"===P?(M=R=k,S=w*(C?1:.5),F=V):(M=S=w,R=F=V),(E.boxpoints||E.points)&&v>0){var q=E.pointpos,G=E.jitter,Z=E.marker.size/2,Y=0;q+G>=0&&((Y=V*(q+G))>M?(H=!0,j=Z,B=Y):Y>R&&(j=Z,B=M)),Y<=M&&(B=M);var W=0;q-G<=0&&((W=-V*(q-G))>S?(H=!0,U=Z,N=W):W>F&&(U=Z,N=S)),W<=S&&(N=S)}else B=M,N=S;var X=new Array(u.length);for(l=0;l<u.length;l++)X[l]=u[l].pos;E._extremes[h]=n.findExtremes(o,X,{padded:H,vpadminus:N,vpadplus:B,vpadLinearized:!0,ppadminus:{x:U,y:j}[p],ppadplus:{x:j,y:U}[p]})}}}t.exports={crossTraceCalc:function(t,e){for(var r=t.calcdata,n=e.xaxis,i=e.yaxis,a=0;a<o.length;a++){for(var l=o[a],u="h"===l?i:n,c=[],f=0;f<r.length;f++){var h=r[f],p=h[0].t,d=h[0].trace;!0!==d.visible||"box"!==d.type&&"candlestick"!==d.type||p.empty||(d.orientation||"v")!==l||d.xaxis!==n._id||d.yaxis!==i._id||c.push(f)}s("box",t,c,u)}},setPositionOffset:s}},36411:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(7901),o=r(73927),s=r(26125),l=r(4322),u=r(53522);function c(t,e,r,a){function o(t){var e=0;return t&&t.length&&(e+=1,n.isArrayOrTypedArray(t[0])&&t[0].length&&(e+=1)),e}function s(e){return n.validate(t[e],u[e])}var c,f=r("y"),h=r("x");if("box"===e.type){var p=r("q1"),d=r("median"),v=r("q3");e._hasPreCompStats=p&&p.length&&d&&d.length&&v&&v.length,c=Math.min(n.minRowLength(p),n.minRowLength(d),n.minRowLength(v))}var g,y,m=o(f),x=o(h),b=m&&n.minRowLength(f),_=x&&n.minRowLength(h),w=a.calendar,T={autotypenumbers:a.autotypenumbers};if(e._hasPreCompStats)switch(String(x)+String(m)){case"00":var k=s("x0")||s("dx");g=!s("y0")&&!s("dy")||k?"v":"h",y=c;break;case"10":g="v",y=Math.min(c,_);break;case"20":g="h",y=Math.min(c,h.length);break;case"01":g="h",y=Math.min(c,b);break;case"02":g="v",y=Math.min(c,f.length);break;case"12":g="v",y=Math.min(c,_,f.length);break;case"21":g="h",y=Math.min(c,h.length,b);break;case"11":y=0;break;case"22":var A,M=!1;for(A=0;A<h.length;A++)if("category"===l(h[A],w,T)){M=!0;break}if(M)g="v",y=Math.min(c,_,f.length);else{for(A=0;A<f.length;A++)if("category"===l(f[A],w,T)){M=!0;break}M?(g="h",y=Math.min(c,h.length,b)):(g="v",y=Math.min(c,_,f.length))}}else m>0?(g="v",y=x>0?Math.min(_,b):Math.min(b)):x>0?(g="h",y=Math.min(_)):y=0;if(y){e._length=y;var S=r("orientation",g);e._hasPreCompStats?"v"===S&&0===x?(r("x0",0),r("dx",1)):"h"===S&&0===m&&(r("y0",0),r("dy",1)):"v"===S&&0===x?r("x0"):"h"===S&&0===m&&r("y0"),i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y"],a)}else e.visible=!1}function f(t,e,r,i){var a=i.prefix,o=n.coerce2(t,e,u,"marker.outliercolor"),s=r("marker.line.outliercolor"),l="outliers";e._hasPreCompStats?l="all":(o||s)&&(l="suspectedoutliers");var c=r(a+"points",l);c?(r("jitter","all"===c?.3:0),r("pointpos","all"===c?-1.5:0),r("marker.symbol"),r("marker.opacity"),r("marker.size"),r("marker.angle"),r("marker.color",e.line.color),r("marker.line.color"),r("marker.line.width"),"suspectedoutliers"===c&&(r("marker.line.outliercolor",e.marker.color),r("marker.line.outlierwidth")),r("selected.marker.color"),r("unselected.marker.color"),r("selected.marker.size"),r("unselected.marker.size"),r("text"),r("hovertext")):delete e.marker;var f=r("hoveron");"all"!==f&&-1===f.indexOf("points")||r("hovertemplate"),n.coerceSelectionMarkerOpacity(e,r)}t.exports={supplyDefaults:function(t,e,r,i){function s(r,i){return n.coerce(t,e,u,r,i)}if(c(t,e,s,i),!1!==e.visible){o(t,e,i,s),s("xhoverformat"),s("yhoverformat");var l=e._hasPreCompStats;l&&(s("lowerfence"),s("upperfence")),s("line.color",(t.marker||{}).color||r),s("line.width"),s("fillcolor",a.addOpacity(e.line.color,.5));var h=!1;if(l){var p=s("mean"),d=s("sd");p&&p.length&&(h=!0,d&&d.length&&(h="sd"))}s("boxmean",h),s("whiskerwidth"),s("width"),s("quartilemethod");var v=!1;if(l){var g=s("notchspan");g&&g.length&&(v=!0)}else n.validate(t.notchwidth,u.notchwidth)&&(v=!0);s("notched",v)&&s("notchwidth"),f(t,e,s,{prefix:"box"})}},crossTraceDefaults:function(t,e){var r,i;function a(t){return n.coerce(i._input,i,u,t)}for(var o=0;o<t.length;o++){var l=(i=t[o]).type;"box"!==l&&"violin"!==l||(r=i._input,"group"===e[l+"mode"]&&s(r,i,e,a))}},handleSampleDefaults:c,handlePointsDefaults:f}},74907:function(t){"use strict";t.exports=function(t,e){return e.hoverOnBox&&(t.hoverOnBox=e.hoverOnBox),"xVal"in e&&(t.x=e.xVal),"yVal"in e&&(t.y=e.yVal),e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),t}},41868:function(t,e,r){"use strict";var n=r(89298),i=r(71828),a=r(30211),o=r(7901),s=i.fillText;function l(t,e,r,s){var l,u,c,f,h,p,d,v,g,y,m,x,b,_,w=t.cd,T=t.xa,k=t.ya,A=w[0].trace,M=w[0].t,S="violin"===A.type,E=M.bdPos,L=M.wHover,C=function(t){return c.c2l(t.pos)+M.bPos-c.c2l(p)};S&&"both"!==A.side?("positive"===A.side&&(g=function(t){var e=C(t);return a.inbox(e,e+L,y)},x=E,b=0),"negative"===A.side&&(g=function(t){var e=C(t);return a.inbox(e-L,e,y)},x=0,b=E)):(g=function(t){var e=C(t);return a.inbox(e-L,e+L,y)},x=b=E),_=S?function(t){return a.inbox(t.span[0]-h,t.span[1]-h,y)}:function(t){return a.inbox(t.min-h,t.max-h,y)},"h"===A.orientation?(h=e,p=r,d=_,v=g,l="y",c=k,u="x",f=T):(h=r,p=e,d=g,v=_,l="x",c=T,u="y",f=k);var P=Math.min(1,E/Math.abs(c.r2c(c.range[1])-c.r2c(c.range[0])));function O(t){return(d(t)+v(t))/2}y=t.maxHoverDistance-P,m=t.maxSpikeDistance-P;var I=a.getDistanceFunction(s,d,v,O);if(a.getClosest(w,I,t),!1===t.index)return[];var D=w[t.index],z=A.line.color,R=(A.marker||{}).color;o.opacity(z)&&A.line.width?t.color=z:o.opacity(R)&&A.boxpoints?t.color=R:t.color=A.fillcolor,t[l+"0"]=c.c2p(D.pos+M.bPos-b,!0),t[l+"1"]=c.c2p(D.pos+M.bPos+x,!0),t[l+"LabelVal"]=void 0!==D.orig_p?D.orig_p:D.pos;var F=l+"Spike";t.spikeDistance=O(D)*m/y,t[F]=c.c2p(D.pos,!0);var B=A.boxmean||(A.meanline||{}).visible,N=A.boxpoints||A.points,j=N&&B?["max","uf","q3","med","mean","q1","lf","min"]:N&&!B?["max","uf","q3","med","q1","lf","min"]:!N&&B?["max","q3","med","mean","q1","min"]:["max","q3","med","q1","min"],U=f.range[1]<f.range[0];A.orientation===(U?"v":"h")&&j.reverse();for(var V=t.spikeDistance,H=t[F],q=[],G=0;G<j.length;G++){var Z=j[G];if(Z in D){var Y=D[Z],W=f.c2p(Y,!0),X=i.extendFlat({},t);X.attr=Z,X[u+"0"]=X[u+"1"]=W,X[u+"LabelVal"]=Y,X[u+"Label"]=(M.labels?M.labels[Z]+" ":"")+n.hoverLabelText(f,Y,A[u+"hoverformat"]),X.hoverOnBox=!0,"mean"===Z&&"sd"in D&&"sd"===A.boxmean&&(X[u+"err"]=D.sd),X.hovertemplate=!1,q.push(X)}}t.name="",t.spikeDistance=void 0,t[F]=void 0;for(var J=0;J<q.length;J++)"med"!==q[J].attr?(q[J].name="",q[J].spikeDistance=void 0,q[J][F]=void 0):(q[J].spikeDistance=V,q[J][F]=H);return q}function u(t,e,r){for(var n,o,l,u=t.cd,c=t.xa,f=t.ya,h=u[0].trace,p=c.c2p(e),d=f.c2p(r),v=a.quadrature((function(t){var e=Math.max(3,t.mrc||0);return Math.max(Math.abs(c.c2p(t.x)-p)-e,1-3/e)}),(function(t){var e=Math.max(3,t.mrc||0);return Math.max(Math.abs(f.c2p(t.y)-d)-e,1-3/e)})),g=!1,y=0;y<u.length;y++){o=u[y];for(var m=0;m<(o.pts||[]).length;m++){var x=v(l=o.pts[m]);x<=t.distance&&(t.distance=x,g=[y,m])}}if(!g)return!1;l=(o=u[g[0]]).pts[g[1]];var b=c.c2p(l.x,!0),_=f.c2p(l.y,!0),w=l.mrc||1;n=i.extendFlat({},t,{index:l.i,color:(h.marker||{}).color,name:h.name,x0:b-w,x1:b+w,y0:_-w,y1:_+w,spikeDistance:t.distance,hovertemplate:h.hovertemplate});var T,k=o.orig_p,A=void 0!==k?k:o.pos;return"h"===h.orientation?(T=f,n.xLabelVal=l.x,n.yLabelVal=A):(T=c,n.xLabelVal=A,n.yLabelVal=l.y),n[T._id.charAt(0)+"Spike"]=T.c2p(o.pos,!0),s(l,h,n),n}t.exports={hoverPoints:function(t,e,r,n){var i,a=t.cd[0].trace.hoveron,o=[];return-1!==a.indexOf("boxes")&&(o=o.concat(l(t,e,r,n))),-1!==a.indexOf("points")&&(i=u(t,e,r)),"closest"===n?i?[i]:o:i?(o.push(i),o):o},hoverOnBoxes:l,hoverOnPoints:u}},83832:function(t,e,r){"use strict";t.exports={attributes:r(53522),layoutAttributes:r(40094),supplyDefaults:r(36411).supplyDefaults,crossTraceDefaults:r(36411).crossTraceDefaults,supplyLayoutDefaults:r(4199).supplyLayoutDefaults,calc:r(48518),crossTraceCalc:r(37188).crossTraceCalc,plot:r(86047).plot,style:r(58063).style,styleOnSelect:r(58063).styleOnSelect,hoverPoints:r(41868).hoverPoints,eventData:r(74907),selectPoints:r(24626),moduleType:"trace",name:"box",basePlotModule:r(93612),categories:["cartesian","svg","symbols","oriented","box-violin","showLegend","boxLayout","zoomScale"],meta:{}}},40094:function(t){"use strict";t.exports={boxmode:{valType:"enumerated",values:["group","overlay"],dflt:"overlay",editType:"calc"},boxgap:{valType:"number",min:0,max:1,dflt:.3,editType:"calc"},boxgroupgap:{valType:"number",min:0,max:1,dflt:.3,editType:"calc"}}},4199:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(40094);function o(t,e,r,i,a){for(var o=a+"Layout",s=!1,l=0;l<r.length;l++){var u=r[l];if(n.traceIs(u,o)){s=!0;break}}s&&(i(a+"mode"),i(a+"gap"),i(a+"groupgap"))}t.exports={supplyLayoutDefaults:function(t,e,r){o(0,0,r,(function(r,n){return i.coerce(t,e,a,r,n)}),"box")},_supply:o}},86047:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424);function o(t,e,r,a){var o,s,l="h"===r.orientation,u=e.val,c=e.pos,f=!!c.rangebreaks,h=a.bPos,p=a.wdPos||0,d=a.bPosPxOffset||0,v=r.whiskerwidth||0,g=r.notched||!1,y=g?1-2*r.notchwidth:1;Array.isArray(a.bdPos)?(o=a.bdPos[0],s=a.bdPos[1]):(o=a.bdPos,s=a.bdPos);var m=t.selectAll("path.box").data("violin"!==r.type||r.box.visible?i.identity:[]);m.enter().append("path").style("vector-effect","non-scaling-stroke").attr("class","box"),m.exit().remove(),m.each((function(t){if(t.empty)return"M0,0Z";var e=c.c2l(t.pos+h,!0),a=c.l2p(e-o)+d,m=c.l2p(e+s)+d,x=f?(a+m)/2:c.l2p(e)+d,b=r.whiskerwidth,_=f?a*b+(1-b)*x:c.l2p(e-p)+d,w=f?m*b+(1-b)*x:c.l2p(e+p)+d,T=c.l2p(e-o*y)+d,k=c.l2p(e+s*y)+d,A=u.c2p(t.q1,!0),M=u.c2p(t.q3,!0),S=i.constrain(u.c2p(t.med,!0),Math.min(A,M)+1,Math.max(A,M)-1),E=void 0===t.lf||!1===r.boxpoints,L=u.c2p(E?t.min:t.lf,!0),C=u.c2p(E?t.max:t.uf,!0),P=u.c2p(t.ln,!0),O=u.c2p(t.un,!0);l?n.select(this).attr("d","M"+S+","+T+"V"+k+"M"+A+","+a+"V"+m+(g?"H"+P+"L"+S+","+k+"L"+O+","+m:"")+"H"+M+"V"+a+(g?"H"+O+"L"+S+","+T+"L"+P+","+a:"")+"ZM"+A+","+x+"H"+L+"M"+M+","+x+"H"+C+(0===v?"":"M"+L+","+_+"V"+w+"M"+C+","+_+"V"+w)):n.select(this).attr("d","M"+T+","+S+"H"+k+"M"+a+","+A+"H"+m+(g?"V"+P+"L"+k+","+S+"L"+m+","+O:"")+"V"+M+"H"+a+(g?"V"+O+"L"+T+","+S+"L"+a+","+P:"")+"ZM"+x+","+A+"V"+L+"M"+x+","+M+"V"+C+(0===v?"":"M"+_+","+L+"H"+w+"M"+_+","+C+"H"+w))}))}function s(t,e,r,n){var o=e.x,s=e.y,l=n.bdPos,u=n.bPos,c=r.boxpoints||r.points;i.seedPseudoRandom();var f=t.selectAll("g.points").data(c?function(t){return t.forEach((function(t){t.t=n,t.trace=r})),t}:[]);f.enter().append("g").attr("class","points"),f.exit().remove();var h=f.selectAll("path").data((function(t){var e,n,a=t.pts2,o=Math.max((t.max-t.min)/10,t.q3-t.q1),s=1e-9*o,f=.01*o,h=[],p=0;if(r.jitter){if(0===o)for(p=1,h=new Array(a.length),e=0;e<a.length;e++)h[e]=1;else for(e=0;e<a.length;e++){var d=Math.max(0,e-5),v=a[d].v,g=Math.min(a.length-1,e+5),y=a[g].v;"all"!==c&&(a[e].v<t.lf?y=Math.min(y,t.lf):v=Math.max(v,t.uf));var m=Math.sqrt(f*(g-d)/(y-v+s))||0;m=i.constrain(Math.abs(m),0,1),h.push(m),p=Math.max(m,p)}n=2*r.jitter/(p||1)}for(e=0;e<a.length;e++){var x=a[e],b=x.v,_=r.jitter?n*h[e]*(i.pseudoRandom()-.5):0,w=t.pos+u+l*(r.pointpos+_);"h"===r.orientation?(x.y=w,x.x=b):(x.x=w,x.y=b),"suspectedoutliers"===c&&b<t.uo&&b>t.lo&&(x.so=!0)}return a}));h.enter().append("path").classed("point",!0),h.exit().remove(),h.call(a.translatePoints,o,s)}function l(t,e,r,a){var o,s,l=e.val,u=e.pos,c=!!u.rangebreaks,f=a.bPos,h=a.bPosPxOffset||0,p=r.boxmean||(r.meanline||{}).visible;Array.isArray(a.bdPos)?(o=a.bdPos[0],s=a.bdPos[1]):(o=a.bdPos,s=a.bdPos);var d=t.selectAll("path.mean").data("box"===r.type&&r.boxmean||"violin"===r.type&&r.box.visible&&r.meanline.visible?i.identity:[]);d.enter().append("path").attr("class","mean").style({fill:"none","vector-effect":"non-scaling-stroke"}),d.exit().remove(),d.each((function(t){var e=u.c2l(t.pos+f,!0),i=u.l2p(e-o)+h,a=u.l2p(e+s)+h,d=c?(i+a)/2:u.l2p(e)+h,v=l.c2p(t.mean,!0),g=l.c2p(t.mean-t.sd,!0),y=l.c2p(t.mean+t.sd,!0);"h"===r.orientation?n.select(this).attr("d","M"+v+","+i+"V"+a+("sd"===p?"m0,0L"+g+","+d+"L"+v+","+i+"L"+y+","+d+"Z":"")):n.select(this).attr("d","M"+i+","+v+"H"+a+("sd"===p?"m0,0L"+d+","+g+"L"+i+","+v+"L"+d+","+y+"Z":""))}))}t.exports={plot:function(t,e,r,a){var u=e.xaxis,c=e.yaxis;i.makeTraceGroups(a,r,"trace boxes").each((function(t){var e,r,i=n.select(this),a=t[0],f=a.t,h=a.trace;f.wdPos=f.bdPos*h.whiskerwidth,!0!==h.visible||f.empty?i.remove():("h"===h.orientation?(e=c,r=u):(e=u,r=c),o(i,{pos:e,val:r},h,f),s(i,{x:u,y:c},h,f),l(i,{pos:e,val:r},h,f))}))},plotBoxAndWhiskers:o,plotPoints:s,plotBoxMean:l}},24626:function(t){"use strict";t.exports=function(t,e){var r,n,i=t.cd,a=t.xaxis,o=t.yaxis,s=[];if(!1===e)for(r=0;r<i.length;r++)for(n=0;n<(i[r].pts||[]).length;n++)i[r].pts[n].selected=0;else for(r=0;r<i.length;r++)for(n=0;n<(i[r].pts||[]).length;n++){var l=i[r].pts[n],u=a.c2p(l.x),c=o.c2p(l.y);e.contains([u,c],null,l.i,t)?(s.push({pointNumber:l.i,x:a.c2d(l.x),y:o.c2d(l.y)}),l.selected=1):l.selected=0}return s}},58063:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(91424);t.exports={style:function(t,e,r){var o=r||n.select(t).selectAll("g.trace.boxes");o.style("opacity",(function(t){return t[0].trace.opacity})),o.each((function(e){var r=n.select(this),o=e[0].trace,s=o.line.width;function l(t,e,r,n){t.style("stroke-width",e+"px").call(i.stroke,r).call(i.fill,n)}var u=r.selectAll("path.box");if("candlestick"===o.type)u.each((function(t){if(!t.empty){var e=n.select(this),r=o[t.dir];l(e,r.line.width,r.line.color,r.fillcolor),e.style("opacity",o.selectedpoints&&!t.selected?.3:1)}}));else{l(u,s,o.line.color,o.fillcolor),r.selectAll("path.mean").style({"stroke-width":s,"stroke-dasharray":2*s+"px,"+s+"px"}).call(i.stroke,o.line.color);var c=r.selectAll("path.point");a.pointStyle(c,o,t)}}))},styleOnSelect:function(t,e,r){var n=e[0].trace,i=r.selectAll("path.point");n.selectedpoints?a.selectedPointStyle(i,n):a.pointStyle(i,n,t)}}},75343:function(t,e,r){"use strict";var n=r(71828).extendFlat,i=r(12663).axisHoverFormat,a=r(2522),o=r(53522);function s(t){return{line:{color:n({},o.line.color,{dflt:t}),width:o.line.width,editType:"style"},fillcolor:o.fillcolor,editType:"style"}}t.exports={xperiod:a.xperiod,xperiod0:a.xperiod0,xperiodalignment:a.xperiodalignment,xhoverformat:i("x"),yhoverformat:i("y"),x:a.x,open:a.open,high:a.high,low:a.low,close:a.close,line:{width:n({},o.line.width,{}),editType:"style"},increasing:s(a.increasing.line.color.dflt),decreasing:s(a.decreasing.line.color.dflt),text:a.text,hovertext:a.hovertext,whiskerwidth:n({},o.whiskerwidth,{dflt:0}),hoverlabel:a.hoverlabel}},41197:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(42973),o=r(3485).calcCommon;function s(t,e,r,n){return{min:r,q1:Math.min(t,n),med:n,q3:Math.max(t,n),max:e}}t.exports=function(t,e){var r=t._fullLayout,l=i.getFromId(t,e.xaxis),u=i.getFromId(t,e.yaxis),c=l.makeCalcdata(e,"x"),f=a(e,l,"x",c).vals,h=o(t,e,c,f,u,s);return h.length?(n.extendFlat(h[0].t,{num:r._numBoxes,dPos:n.distinctVals(f).minDiff/2,posLetter:"x",valLetter:"y"}),r._numBoxes++,h):[{t:{empty:!0}}]}},1026:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(14555),o=r(73927),s=r(75343);function l(t,e,r,n){var a=r(n+".line.color");r(n+".line.width",e.line.width),r(n+".fillcolor",i.addOpacity(a,.5))}t.exports=function(t,e,r,i){function u(r,i){return n.coerce(t,e,s,r,i)}a(t,e,u,i)?(o(t,e,i,u,{x:!0}),u("xhoverformat"),u("yhoverformat"),u("line.width"),l(0,e,u,"increasing"),l(0,e,u,"decreasing"),u("text"),u("hovertext"),u("whiskerwidth"),i._requestRangeslider[e.xaxis]=!0):e.visible=!1}},91815:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"candlestick",basePlotModule:r(93612),categories:["cartesian","svg","showLegend","candlestick","boxLayout"],meta:{},attributes:r(75343),layoutAttributes:r(40094),supplyLayoutDefaults:r(4199).supplyLayoutDefaults,crossTraceCalc:r(37188).crossTraceCalc,supplyDefaults:r(1026),calc:r(41197),plot:r(86047).plot,layerName:"boxlayer",style:r(58063).style,hoverPoints:r(66449).hoverPoints,selectPoints:r(67324)}},13145:function(t,e,r){"use strict";var n=r(11500),i=r(44467);t.exports=function(t,e,r,a,o){a("a")||(a("da"),a("a0")),a("b")||(a("db"),a("b0")),function(t,e,r,a){["aaxis","baxis"].forEach((function(o){var s=o.charAt(0),l=t[o]||{},u=i.newContainer(e,o),c={noTicklabelstep:!0,tickfont:"x",id:s+"axis",letter:s,font:e.font,name:o,data:t[s],calendar:e.calendar,dfltColor:a,bgColor:r.paper_bgcolor,autotypenumbersDflt:r.autotypenumbers,fullLayout:r};n(l,u,c),u._categories=u._categories||[],t[o]||"-"===l.type||(t[o]={type:l.type})}))}(t,e,r,o)}},402:function(t,e,r){"use strict";var n=r(71828).isArrayOrTypedArray;function i(t,e){if(!n(t)||e>=10)return null;for(var r=1/0,a=-1/0,o=t.length,s=0;s<o;s++){var l=t[s];if(n(l)){var u=i(l,e+1);u&&(r=Math.min(u[0],r),a=Math.max(u[1],a))}else r=Math.min(l,r),a=Math.max(l,a)}return[r,a]}t.exports=function(t){return i(t,0)}},99798:function(t,e,r){"use strict";var n=r(41940),i=r(1928),a=r(22399),o=n({editType:"calc"});o.family.dflt='"Open Sans", verdana, arial, sans-serif',o.size.dflt=12,o.color.dflt=a.defaultLine,t.exports={carpet:{valType:"string",editType:"calc"},x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},a:{valType:"data_array",editType:"calc"},a0:{valType:"number",dflt:0,editType:"calc"},da:{valType:"number",dflt:1,editType:"calc"},b:{valType:"data_array",editType:"calc"},b0:{valType:"number",dflt:0,editType:"calc"},db:{valType:"number",dflt:1,editType:"calc"},cheaterslope:{valType:"number",dflt:1,editType:"calc"},aaxis:i,baxis:i,font:o,color:{valType:"color",dflt:a.defaultLine,editType:"plot"},transforms:void 0}},4536:function(t,e,r){"use strict";var n=r(71828).isArrayOrTypedArray;t.exports=function(t,e,r,i){var a,o,s,l,u,c,f,h,p,d,v,g,y,m=n(r)?"a":"b",x=("a"===m?t.aaxis:t.baxis).smoothing,b="a"===m?t.a2i:t.b2j,_="a"===m?r:i,w="a"===m?i:r,T="a"===m?e.a.length:e.b.length,k="a"===m?e.b.length:e.a.length,A=Math.floor("a"===m?t.b2j(w):t.a2i(w)),M="a"===m?function(e){return t.evalxy([],e,A)}:function(e){return t.evalxy([],A,e)};x&&(s=Math.max(0,Math.min(k-2,A)),l=A-s,o="a"===m?function(e,r){return t.dxydi([],e,s,r,l)}:function(e,r){return t.dxydj([],s,e,l,r)});var S=b(_[0]),E=b(_[1]),L=S<E?1:-1,C=1e-8*(E-S),P=L>0?Math.floor:Math.ceil,O=L>0?Math.ceil:Math.floor,I=L>0?Math.min:Math.max,D=L>0?Math.max:Math.min,z=P(S+C),R=O(E-C),F=[[f=M(S)]];for(a=z;a*L<R*L;a+=L)u=[],v=D(S,a),y=(g=I(E,a+L))-v,c=Math.max(0,Math.min(T-2,Math.floor(.5*(v+g)))),h=M(g),x&&(p=o(c,v-c),d=o(c,g-c),u.push([f[0]+p[0]/3*y,f[1]+p[1]/3*y]),u.push([h[0]-d[0]/3*y,h[1]-d[1]/3*y])),u.push(h),F.push(u),f=h;return F}},1928:function(t,e,r){"use strict";var n=r(41940),i=r(22399),a=r(13838),o=r(12663).descriptionWithDates,s=r(30962).overrideAll,l=r(79952).P,u=r(1426).extendFlat;t.exports={color:{valType:"color",editType:"calc"},smoothing:{valType:"number",dflt:1,min:0,max:1.3,editType:"calc"},title:{text:{valType:"string",dflt:"",editType:"calc"},font:n({editType:"calc"}),offset:{valType:"number",dflt:10,editType:"calc"},editType:"calc"},type:{valType:"enumerated",values:["-","linear","date","category"],dflt:"-",editType:"calc"},autotypenumbers:a.autotypenumbers,autorange:{valType:"enumerated",values:[!0,!1,"reversed"],dflt:!0,editType:"calc"},rangemode:{valType:"enumerated",values:["normal","tozero","nonnegative"],dflt:"normal",editType:"calc"},range:{valType:"info_array",editType:"calc",items:[{valType:"any",editType:"calc"},{valType:"any",editType:"calc"}]},fixedrange:{valType:"boolean",dflt:!1,editType:"calc"},cheatertype:{valType:"enumerated",values:["index","value"],dflt:"value",editType:"calc"},tickmode:{valType:"enumerated",values:["linear","array"],dflt:"array",editType:"calc"},nticks:{valType:"integer",min:0,dflt:0,editType:"calc"},tickvals:{valType:"data_array",editType:"calc"},ticktext:{valType:"data_array",editType:"calc"},showticklabels:{valType:"enumerated",values:["start","end","both","none"],dflt:"start",editType:"calc"},tickfont:n({editType:"calc"}),tickangle:{valType:"angle",dflt:"auto",editType:"calc"},tickprefix:{valType:"string",dflt:"",editType:"calc"},showtickprefix:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"calc"},ticksuffix:{valType:"string",dflt:"",editType:"calc"},showticksuffix:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"calc"},showexponent:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"calc"},exponentformat:{valType:"enumerated",values:["none","e","E","power","SI","B"],dflt:"B",editType:"calc"},minexponent:{valType:"number",dflt:3,min:0,editType:"calc"},separatethousands:{valType:"boolean",dflt:!1,editType:"calc"},tickformat:{valType:"string",dflt:"",editType:"calc",description:o("tick label")},tickformatstops:s(a.tickformatstops,"calc","from-root"),categoryorder:{valType:"enumerated",values:["trace","category ascending","category descending","array"],dflt:"trace",editType:"calc"},categoryarray:{valType:"data_array",editType:"calc"},labelpadding:{valType:"integer",dflt:10,editType:"calc"},labelprefix:{valType:"string",editType:"calc"},labelsuffix:{valType:"string",dflt:"",editType:"calc"},showline:{valType:"boolean",dflt:!1,editType:"calc"},linecolor:{valType:"color",dflt:i.defaultLine,editType:"calc"},linewidth:{valType:"number",min:0,dflt:1,editType:"calc"},gridcolor:{valType:"color",editType:"calc"},gridwidth:{valType:"number",min:0,dflt:1,editType:"calc"},griddash:u({},l,{editType:"calc"}),showgrid:{valType:"boolean",dflt:!0,editType:"calc"},minorgridcount:{valType:"integer",min:0,dflt:0,editType:"calc"},minorgridwidth:{valType:"number",min:0,dflt:1,editType:"calc"},minorgriddash:u({},l,{editType:"calc"}),minorgridcolor:{valType:"color",dflt:i.lightLine,editType:"calc"},startline:{valType:"boolean",editType:"calc"},startlinecolor:{valType:"color",editType:"calc"},startlinewidth:{valType:"number",dflt:1,editType:"calc"},endline:{valType:"boolean",editType:"calc"},endlinewidth:{valType:"number",dflt:1,editType:"calc"},endlinecolor:{valType:"color",editType:"calc"},tick0:{valType:"number",min:0,dflt:0,editType:"calc"},dtick:{valType:"number",min:0,dflt:1,editType:"calc"},arraytick0:{valType:"integer",min:0,dflt:0,editType:"calc"},arraydtick:{valType:"integer",min:1,dflt:1,editType:"calc"},_deprecated:{title:{valType:"string",editType:"calc"},titlefont:n({editType:"calc"}),titleoffset:{valType:"number",dflt:10,editType:"calc"}},editType:"calc"}},11500:function(t,e,r){"use strict";var n=r(99798),i=r(7901).addOpacity,a=r(73972),o=r(71828),s=r(26218),l=r(96115),u=r(89426),c=r(15258),f=r(21994),h=r(4322);t.exports=function(t,e,r){var p=r.letter,d=r.font||{},v=n[p+"axis"];function g(r,n){return o.coerce(t,e,v,r,n)}function y(r,n){return o.coerce2(t,e,v,r,n)}r.name&&(e._name=r.name,e._id=r.name),g("autotypenumbers",r.autotypenumbersDflt);var m=g("type");"-"===m&&(r.data&&function(t,e){if("-"===t.type){var r=t._id.charAt(0),n=t[r+"calendar"];t.type=h(e,n,{autotypenumbers:t.autotypenumbers})}}(e,r.data),"-"===e.type?e.type="linear":m=t.type=e.type),g("smoothing"),g("cheatertype"),g("showticklabels"),g("labelprefix",p+" = "),g("labelsuffix"),g("showtickprefix"),g("showticksuffix"),g("separatethousands"),g("tickformat"),g("exponentformat"),g("minexponent"),g("showexponent"),g("categoryorder"),g("tickmode"),g("tickvals"),g("ticktext"),g("tick0"),g("dtick"),"array"===e.tickmode&&(g("arraytick0"),g("arraydtick")),g("labelpadding"),e._hovertitle=p,"date"===m&&a.getComponentMethod("calendars","handleDefaults")(t,e,"calendar",r.calendar),f(e,r.fullLayout),e.c2p=o.identity;var x=g("color",r.dfltColor),b=x===t.color?x:d.color;g("title.text")&&(o.coerceFont(g,"title.font",{family:d.family,size:o.bigFont(d.size),color:b}),g("title.offset")),g("tickangle"),g("autorange",!e.isValidRange(t.range))&&g("rangemode"),g("range"),e.cleanRange(),g("fixedrange"),s(t,e,g,m),u(t,e,g,m,r),l(t,e,g,m,r),c(t,e,g,{data:r.data,dataAttr:p});var _=y("gridcolor",i(x,.3)),w=y("gridwidth"),T=y("griddash"),k=g("showgrid");k||(delete e.gridcolor,delete e.gridwidth,delete e.griddash);var A=y("startlinecolor",x),M=y("startlinewidth",w);g("startline",e.showgrid||!!A||!!M)||(delete e.startlinecolor,delete e.startlinewidth);var S=y("endlinecolor",x),E=y("endlinewidth",w);return g("endline",e.showgrid||!!S||!!E)||(delete e.endlinecolor,delete e.endlinewidth),k?(g("minorgridcount"),g("minorgridwidth",w),g("minorgriddash",T),g("minorgridcolor",i(_,.06)),e.minorgridcount||(delete e.minorgridwidth,delete e.minorgriddash,delete e.minorgridcolor)):(delete e.gridcolor,delete e.gridwidth,delete e.griddash),"none"===e.showticklabels&&(delete e.tickfont,delete e.tickangle,delete e.showexponent,delete e.exponentformat,delete e.minexponent,delete e.tickformat,delete e.showticksuffix,delete e.showtickprefix),e.showticksuffix||delete e.ticksuffix,e.showtickprefix||delete e.tickprefix,g("tickmode"),e}},25281:function(t,e,r){"use strict";var n=r(89298),i=r(71828).isArray1D,a=r(53824),o=r(402),s=r(20347),l=r(83311),u=r(44807),c=r(4742),f=r(72505),h=r(68296),p=r(11435);t.exports=function(t,e){var r=n.getFromId(t,e.xaxis),d=n.getFromId(t,e.yaxis),v=e.aaxis,g=e.baxis,y=e.x,m=e.y,x=[];y&&i(y)&&x.push("x"),m&&i(m)&&x.push("y"),x.length&&h(e,v,g,"a","b",x);var b=e._a=e._a||e.a,_=e._b=e._b||e.b;y=e._x||e.x,m=e._y||e.y;var w={};if(e._cheater){var T="index"===v.cheatertype?b.length:b,k="index"===g.cheatertype?_.length:_;y=a(T,k,e.cheaterslope)}e._x=y=c(y),e._y=m=c(m),f(y,b,_),f(m,b,_),p(e),e.setScale();var A=o(y),M=o(m),S=.5*(A[1]-A[0]),E=.5*(A[1]+A[0]),L=.5*(M[1]-M[0]),C=.5*(M[1]+M[0]),P=1.3;return A=[E-S*P,E+S*P],M=[C-L*P,C+L*P],e._extremes[r._id]=n.findExtremes(r,A,{padded:!0}),e._extremes[d._id]=n.findExtremes(d,M,{padded:!0}),s(e,"a","b"),s(e,"b","a"),l(e,v),l(e,g),w.clipsegments=u(e._xctrl,e._yctrl,v,g),w.x=y,w.y=m,w.a=b,w.b=_,[w]}},44807:function(t){"use strict";t.exports=function(t,e,r,n){var i,a,o,s=[],l=!!r.smoothing,u=!!n.smoothing,c=t[0].length-1,f=t.length-1;for(i=0,a=[],o=[];i<=c;i++)a[i]=t[0][i],o[i]=e[0][i];for(s.push({x:a,y:o,bicubic:l}),i=0,a=[],o=[];i<=f;i++)a[i]=t[i][c],o[i]=e[i][c];for(s.push({x:a,y:o,bicubic:u}),i=c,a=[],o=[];i>=0;i--)a[c-i]=t[f][i],o[c-i]=e[f][i];for(s.push({x:a,y:o,bicubic:l}),i=f,a=[],o=[];i>=0;i--)a[f-i]=t[i][0],o[f-i]=e[i][0];return s.push({x:a,y:o,bicubic:u}),s}},20347:function(t,e,r){"use strict";var n=r(89298),i=r(1426).extendFlat;t.exports=function(t,e,r){var a,o,s,l,u,c,f,h,p,d,v,g,y,m,x=t["_"+e],b=t[e+"axis"],_=b._gridlines=[],w=b._minorgridlines=[],T=b._boundarylines=[],k=t["_"+r],A=t[r+"axis"];"array"===b.tickmode&&(b.tickvals=x.slice());var M=t._xctrl,S=t._yctrl,E=M[0].length,L=M.length,C=t._a.length,P=t._b.length;n.prepTicks(b),"array"===b.tickmode&&delete b.tickvals;var O=b.smoothing?3:1;function I(n){var i,a,o,s,l,u,c,f,p,d,v,g,y=[],m=[],x={};if("b"===e)for(a=t.b2j(n),o=Math.floor(Math.max(0,Math.min(P-2,a))),s=a-o,x.length=P,x.crossLength=C,x.xy=function(e){return t.evalxy([],e,a)},x.dxy=function(e,r){return t.dxydi([],e,o,r,s)},i=0;i<C;i++)u=Math.min(C-2,i),c=i-u,f=t.evalxy([],i,a),A.smoothing&&i>0&&(p=t.dxydi([],i-1,o,0,s),y.push(l[0]+p[0]/3),m.push(l[1]+p[1]/3),d=t.dxydi([],i-1,o,1,s),y.push(f[0]-d[0]/3),m.push(f[1]-d[1]/3)),y.push(f[0]),m.push(f[1]),l=f;else for(i=t.a2i(n),u=Math.floor(Math.max(0,Math.min(C-2,i))),c=i-u,x.length=C,x.crossLength=P,x.xy=function(e){return t.evalxy([],i,e)},x.dxy=function(e,r){return t.dxydj([],u,e,c,r)},a=0;a<P;a++)o=Math.min(P-2,a),s=a-o,f=t.evalxy([],i,a),A.smoothing&&a>0&&(v=t.dxydj([],u,a-1,c,0),y.push(l[0]+v[0]/3),m.push(l[1]+v[1]/3),g=t.dxydj([],u,a-1,c,1),y.push(f[0]-g[0]/3),m.push(f[1]-g[1]/3)),y.push(f[0]),m.push(f[1]),l=f;return x.axisLetter=e,x.axis=b,x.crossAxis=A,x.value=n,x.constvar=r,x.index=h,x.x=y,x.y=m,x.smoothing=A.smoothing,x}function D(n){var i,a,o,s,l,u=[],c=[],f={};if(f.length=x.length,f.crossLength=k.length,"b"===e)for(o=Math.max(0,Math.min(P-2,n)),l=Math.min(1,Math.max(0,n-o)),f.xy=function(e){return t.evalxy([],e,n)},f.dxy=function(e,r){return t.dxydi([],e,o,r,l)},i=0;i<E;i++)u[i]=M[n*O][i],c[i]=S[n*O][i];else for(a=Math.max(0,Math.min(C-2,n)),s=Math.min(1,Math.max(0,n-a)),f.xy=function(e){return t.evalxy([],n,e)},f.dxy=function(e,r){return t.dxydj([],a,e,s,r)},i=0;i<L;i++)u[i]=M[i][n*O],c[i]=S[i][n*O];return f.axisLetter=e,f.axis=b,f.crossAxis=A,f.value=x[n],f.constvar=r,f.index=n,f.x=u,f.y=c,f.smoothing=A.smoothing,f}if("array"===b.tickmode){for(l=5e-15,c=(u=[Math.floor((x.length-1-b.arraytick0)/b.arraydtick*(1+l)),Math.ceil(-b.arraytick0/b.arraydtick/(1+l))].sort((function(t,e){return t-e})))[0]-1,f=u[1]+1,h=c;h<f;h++)(o=b.arraytick0+b.arraydtick*h)<0||o>x.length-1||_.push(i(D(o),{color:b.gridcolor,width:b.gridwidth,dash:b.griddash}));for(h=c;h<f;h++)if(s=b.arraytick0+b.arraydtick*h,v=Math.min(s+b.arraydtick,x.length-1),!(s<0||s>x.length-1||v<0||v>x.length-1))for(g=x[s],y=x[v],a=0;a<b.minorgridcount;a++)(m=v-s)<=0||(d=g+(y-g)*(a+1)/(b.minorgridcount+1)*(b.arraydtick/m))<x[0]||d>x[x.length-1]||w.push(i(I(d),{color:b.minorgridcolor,width:b.minorgridwidth,dash:b.minorgriddash}));b.startline&&T.push(i(D(0),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&T.push(i(D(x.length-1),{color:b.endlinecolor,width:b.endlinewidth}))}else{for(l=5e-15,c=(u=[Math.floor((x[x.length-1]-b.tick0)/b.dtick*(1+l)),Math.ceil((x[0]-b.tick0)/b.dtick/(1+l))].sort((function(t,e){return t-e})))[0],f=u[1],h=c;h<=f;h++)p=b.tick0+b.dtick*h,_.push(i(I(p),{color:b.gridcolor,width:b.gridwidth,dash:b.griddash}));for(h=c-1;h<f+1;h++)for(p=b.tick0+b.dtick*h,a=0;a<b.minorgridcount;a++)(d=p+b.dtick*(a+1)/(b.minorgridcount+1))<x[0]||d>x[x.length-1]||w.push(i(I(d),{color:b.minorgridcolor,width:b.minorgridwidth,dash:b.minorgriddash}));b.startline&&T.push(i(I(x[0]),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&T.push(i(I(x[x.length-1]),{color:b.endlinecolor,width:b.endlinewidth}))}}},83311:function(t,e,r){"use strict";var n=r(89298),i=r(1426).extendFlat;t.exports=function(t,e){var r,a,o,s=e._labels=[],l=e._gridlines;for(r=0;r<l.length;r++)o=l[r],-1!==["start","both"].indexOf(e.showticklabels)&&(a=n.tickText(e,o.value),i(a,{prefix:void 0,suffix:void 0,endAnchor:!0,xy:o.xy(0),dxy:o.dxy(0,0),axis:o.axis,length:o.crossAxis.length,font:o.axis.tickfont,isFirst:0===r,isLast:r===l.length-1}),s.push(a)),-1!==["end","both"].indexOf(e.showticklabels)&&(a=n.tickText(e,o.value),i(a,{endAnchor:!1,xy:o.xy(o.crossLength-1),dxy:o.dxy(o.crossLength-2,1),axis:o.axis,length:o.crossAxis.length,font:o.axis.tickfont,isFirst:0===r,isLast:r===l.length-1}),s.push(a))}},42048:function(t){"use strict";t.exports=function(t,e,r,n){var i=t[0]-e[0],a=t[1]-e[1],o=r[0]-e[0],s=r[1]-e[1],l=Math.pow(i*i+a*a,.25),u=Math.pow(o*o+s*s,.25),c=(u*u*i-l*l*o)*n,f=(u*u*a-l*l*s)*n,h=u*(l+u)*3,p=l*(l+u)*3;return[[e[0]+(h&&c/h),e[1]+(h&&f/h)],[e[0]-(p&&c/p),e[1]-(p&&f/p)]]}},53824:function(t,e,r){"use strict";var n=r(71828).isArrayOrTypedArray;t.exports=function(t,e,r){var i,a,o,s,l,u,c=[],f=n(t)?t.length:t,h=n(e)?e.length:e,p=n(t)?t:null,d=n(e)?e:null;p&&(o=(p.length-1)/(p[p.length-1]-p[0])/(f-1)),d&&(s=(d.length-1)/(d[d.length-1]-d[0])/(h-1));var v=1/0,g=-1/0;for(a=0;a<h;a++)for(c[a]=[],l=d?(d[a]-d[0])*s:a/(h-1),i=0;i<f;i++)u=(p?(p[i]-p[0])*o:i/(f-1))-l*r,v=Math.min(u,v),g=Math.max(u,g),c[a][i]=u;var y=1/(g-v),m=-v*y;for(a=0;a<h;a++)for(i=0;i<f;i++)c[a][i]=y*c[a][i]+m;return c}},45664:function(t,e,r){"use strict";var n=r(42048),i=r(71828).ensureArray;function a(t,e,r){var n=-.5*r[0]+1.5*e[0],i=-.5*r[1]+1.5*e[1];return[(2*n+t[0])/3,(2*i+t[1])/3]}t.exports=function(t,e,r,o,s,l){var u,c,f,h,p,d,v,g,y,m,x=r[0].length,b=r.length,_=s?3*x-2:x,w=l?3*b-2:b;for(t=i(t,w),e=i(e,w),f=0;f<w;f++)t[f]=i(t[f],_),e[f]=i(e[f],_);for(c=0,h=0;c<b;c++,h+=l?3:1)for(p=t[h],d=e[h],v=r[c],g=o[c],u=0,f=0;u<x;u++,f+=s?3:1)p[f]=v[u],d[f]=g[u];if(s)for(c=0,h=0;c<b;c++,h+=l?3:1){for(u=1,f=3;u<x-1;u++,f+=3)y=n([r[c][u-1],o[c][u-1]],[r[c][u],o[c][u]],[r[c][u+1],o[c][u+1]],s),t[h][f-1]=y[0][0],e[h][f-1]=y[0][1],t[h][f+1]=y[1][0],e[h][f+1]=y[1][1];m=a([t[h][0],e[h][0]],[t[h][2],e[h][2]],[t[h][3],e[h][3]]),t[h][1]=m[0],e[h][1]=m[1],m=a([t[h][_-1],e[h][_-1]],[t[h][_-3],e[h][_-3]],[t[h][_-4],e[h][_-4]]),t[h][_-2]=m[0],e[h][_-2]=m[1]}if(l)for(f=0;f<_;f++){for(h=3;h<w-3;h+=3)y=n([t[h-3][f],e[h-3][f]],[t[h][f],e[h][f]],[t[h+3][f],e[h+3][f]],l),t[h-1][f]=y[0][0],e[h-1][f]=y[0][1],t[h+1][f]=y[1][0],e[h+1][f]=y[1][1];m=a([t[0][f],e[0][f]],[t[2][f],e[2][f]],[t[3][f],e[3][f]]),t[1][f]=m[0],e[1][f]=m[1],m=a([t[w-1][f],e[w-1][f]],[t[w-3][f],e[w-3][f]],[t[w-4][f],e[w-4][f]]),t[w-2][f]=m[0],e[w-2][f]=m[1]}if(s&&l)for(h=1;h<w;h+=(h+1)%3==0?2:1){for(f=3;f<_-3;f+=3)y=n([t[h][f-3],e[h][f-3]],[t[h][f],e[h][f]],[t[h][f+3],e[h][f+3]],s),t[h][f-1]=.5*(t[h][f-1]+y[0][0]),e[h][f-1]=.5*(e[h][f-1]+y[0][1]),t[h][f+1]=.5*(t[h][f+1]+y[1][0]),e[h][f+1]=.5*(e[h][f+1]+y[1][1]);m=a([t[h][0],e[h][0]],[t[h][2],e[h][2]],[t[h][3],e[h][3]]),t[h][1]=.5*(t[h][1]+m[0]),e[h][1]=.5*(e[h][1]+m[1]),m=a([t[h][_-1],e[h][_-1]],[t[h][_-3],e[h][_-3]],[t[h][_-4],e[h][_-4]]),t[h][_-2]=.5*(t[h][_-2]+m[0]),e[h][_-2]=.5*(e[h][_-2]+m[1])}return[t,e]}},35509:function(t){"use strict";t.exports={RELATIVE_CULL_TOLERANCE:1e-6}},54495:function(t){"use strict";t.exports=function(t,e,r){return e&&r?function(e,r,n,i,a){var o,s,l,u,c,f;e||(e=[]),r*=3,n*=3;var h=i*i,p=1-i,d=p*p,v=p*i*2,g=-3*d,y=3*(d-v),m=3*(v-h),x=3*h,b=a*a,_=b*a,w=1-a,T=w*w,k=T*w;for(f=0;f<t.length;f++)o=g*(c=t[f])[n][r]+y*c[n][r+1]+m*c[n][r+2]+x*c[n][r+3],s=g*c[n+1][r]+y*c[n+1][r+1]+m*c[n+1][r+2]+x*c[n+1][r+3],l=g*c[n+2][r]+y*c[n+2][r+1]+m*c[n+2][r+2]+x*c[n+2][r+3],u=g*c[n+3][r]+y*c[n+3][r+1]+m*c[n+3][r+2]+x*c[n+3][r+3],e[f]=k*o+3*(T*a*s+w*b*l)+_*u;return e}:e?function(e,r,n,i,a){var o,s,l,u;e||(e=[]),r*=3;var c=i*i,f=1-i,h=f*f,p=f*i*2,d=-3*h,v=3*(h-p),g=3*(p-c),y=3*c,m=1-a;for(l=0;l<t.length;l++)o=d*(u=t[l])[n][r]+v*u[n][r+1]+g*u[n][r+2]+y*u[n][r+3],s=d*u[n+1][r]+v*u[n+1][r+1]+g*u[n+1][r+2]+y*u[n+1][r+3],e[l]=m*o+a*s;return e}:r?function(e,r,n,i,a){var o,s,l,u,c,f;e||(e=[]),n*=3;var h=a*a,p=h*a,d=1-a,v=d*d,g=v*d;for(c=0;c<t.length;c++)o=(f=t[c])[n][r+1]-f[n][r],s=f[n+1][r+1]-f[n+1][r],l=f[n+2][r+1]-f[n+2][r],u=f[n+3][r+1]-f[n+3][r],e[c]=g*o+3*(v*a*s+d*h*l)+p*u;return e}:function(e,r,n,i,a){var o,s,l,u;e||(e=[]);var c=1-a;for(l=0;l<t.length;l++)o=(u=t[l])[n][r+1]-u[n][r],s=u[n+1][r+1]-u[n+1][r],e[l]=c*o+a*s;return e}}},73057:function(t){"use strict";t.exports=function(t,e,r){return e&&r?function(e,r,n,i,a){var o,s,l,u,c,f;e||(e=[]),r*=3,n*=3;var h=i*i,p=h*i,d=1-i,v=d*d,g=v*d,y=a*a,m=1-a,x=m*m,b=m*a*2,_=-3*x,w=3*(x-b),T=3*(b-y),k=3*y;for(f=0;f<t.length;f++)o=_*(c=t[f])[n][r]+w*c[n+1][r]+T*c[n+2][r]+k*c[n+3][r],s=_*c[n][r+1]+w*c[n+1][r+1]+T*c[n+2][r+1]+k*c[n+3][r+1],l=_*c[n][r+2]+w*c[n+1][r+2]+T*c[n+2][r+2]+k*c[n+3][r+2],u=_*c[n][r+3]+w*c[n+1][r+3]+T*c[n+2][r+3]+k*c[n+3][r+3],e[f]=g*o+3*(v*i*s+d*h*l)+p*u;return e}:e?function(e,r,n,i,a){var o,s,l,u,c,f;e||(e=[]),r*=3;var h=a*a,p=h*a,d=1-a,v=d*d,g=v*d;for(c=0;c<t.length;c++)o=(f=t[c])[n+1][r]-f[n][r],s=f[n+1][r+1]-f[n][r+1],l=f[n+1][r+2]-f[n][r+2],u=f[n+1][r+3]-f[n][r+3],e[c]=g*o+3*(v*a*s+d*h*l)+p*u;return e}:r?function(e,r,n,i,a){var o,s,l,u;e||(e=[]),n*=3;var c=1-i,f=a*a,h=1-a,p=h*h,d=h*a*2,v=-3*p,g=3*(p-d),y=3*(d-f),m=3*f;for(l=0;l<t.length;l++)o=v*(u=t[l])[n][r]+g*u[n+1][r]+y*u[n+2][r]+m*u[n+3][r],s=v*u[n][r+1]+g*u[n+1][r+1]+y*u[n+2][r+1]+m*u[n+3][r+1],e[l]=c*o+i*s;return e}:function(e,r,n,i,a){var o,s,l,u;e||(e=[]);var c=1-i;for(l=0;l<t.length;l++)o=(u=t[l])[n+1][r]-u[n][r],s=u[n+1][r+1]-u[n][r+1],e[l]=c*o+i*s;return e}}},20349:function(t){"use strict";t.exports=function(t,e,r,n,i){var a=e-2,o=r-2;return n&&i?function(e,r,n){var i,s,l,u,c,f;e||(e=[]);var h=Math.max(0,Math.min(Math.floor(r),a)),p=Math.max(0,Math.min(Math.floor(n),o)),d=Math.max(0,Math.min(1,r-h)),v=Math.max(0,Math.min(1,n-p));h*=3,p*=3;var g=d*d,y=g*d,m=1-d,x=m*m,b=x*m,_=v*v,w=_*v,T=1-v,k=T*T,A=k*T;for(f=0;f<t.length;f++)i=b*(c=t[f])[p][h]+3*(x*d*c[p][h+1]+m*g*c[p][h+2])+y*c[p][h+3],s=b*c[p+1][h]+3*(x*d*c[p+1][h+1]+m*g*c[p+1][h+2])+y*c[p+1][h+3],l=b*c[p+2][h]+3*(x*d*c[p+2][h+1]+m*g*c[p+2][h+2])+y*c[p+2][h+3],u=b*c[p+3][h]+3*(x*d*c[p+3][h+1]+m*g*c[p+3][h+2])+y*c[p+3][h+3],e[f]=A*i+3*(k*v*s+T*_*l)+w*u;return e}:n?function(e,r,n){e||(e=[]);var i,s,l,u,c,f,h=Math.max(0,Math.min(Math.floor(r),a)),p=Math.max(0,Math.min(Math.floor(n),o)),d=Math.max(0,Math.min(1,r-h)),v=Math.max(0,Math.min(1,n-p));h*=3;var g=d*d,y=g*d,m=1-d,x=m*m,b=x*m,_=1-v;for(c=0;c<t.length;c++)i=_*(f=t[c])[p][h]+v*f[p+1][h],s=_*f[p][h+1]+v*f[p+1][h+1],l=_*f[p][h+2]+v*f[p+1][h+1],u=_*f[p][h+3]+v*f[p+1][h+1],e[c]=b*i+3*(x*d*s+m*g*l)+y*u;return e}:i?function(e,r,n){e||(e=[]);var i,s,l,u,c,f,h=Math.max(0,Math.min(Math.floor(r),a)),p=Math.max(0,Math.min(Math.floor(n),o)),d=Math.max(0,Math.min(1,r-h)),v=Math.max(0,Math.min(1,n-p));p*=3;var g=v*v,y=g*v,m=1-v,x=m*m,b=x*m,_=1-d;for(c=0;c<t.length;c++)i=_*(f=t[c])[p][h]+d*f[p][h+1],s=_*f[p+1][h]+d*f[p+1][h+1],l=_*f[p+2][h]+d*f[p+2][h+1],u=_*f[p+3][h]+d*f[p+3][h+1],e[c]=b*i+3*(x*v*s+m*g*l)+y*u;return e}:function(e,r,n){e||(e=[]);var i,s,l,u,c=Math.max(0,Math.min(Math.floor(r),a)),f=Math.max(0,Math.min(Math.floor(n),o)),h=Math.max(0,Math.min(1,r-c)),p=Math.max(0,Math.min(1,n-f)),d=1-p,v=1-h;for(l=0;l<t.length;l++)i=v*(u=t[l])[f][c]+h*u[f][c+1],s=v*u[f+1][c]+h*u[f+1][c+1],e[l]=d*i+p*s;return e}}},92087:function(t,e,r){"use strict";var n=r(71828),i=r(19237),a=r(13145),o=r(99798),s=r(22399);t.exports=function(t,e,r,l){function u(r,i){return n.coerce(t,e,o,r,i)}e._clipPathId="clip"+e.uid+"carpet";var c=u("color",s.defaultLine);n.coerceFont(u,"font"),u("carpet"),a(t,e,l,u,c),e.a&&e.b?(e.a.length<3&&(e.aaxis.smoothing=0),e.b.length<3&&(e.baxis.smoothing=0),i(t,e,u)||(e.visible=!1),e._cheater&&u("cheaterslope")):e.visible=!1}},21462:function(t,e,r){"use strict";t.exports={attributes:r(99798),supplyDefaults:r(92087),plot:r(89740),calc:r(25281),animatable:!0,isContainer:!0,moduleType:"trace",name:"carpet",basePlotModule:r(93612),categories:["cartesian","svg","carpet","carpetAxis","notLegendIsolatable","noMultiCategory","noHover","noSortingByValue"],meta:{}}},22882:function(t){"use strict";t.exports=function(t,e){for(var r,n=t._fullData.length,i=0;i<n;i++){var a=t._fullData[i];if(a.index!==e.index&&"carpet"===a.type&&(r||(r=a),a.carpet===e.carpet))return a}return r}},67961:function(t){"use strict";t.exports=function(t,e,r){if(0===t.length)return"";var n,i=[],a=r?3:1;for(n=0;n<t.length;n+=a)i.push(t[n]+","+e[n]),r&&n<t.length-a&&(i.push("C"),i.push([t[n+1]+","+e[n+1],t[n+2]+","+e[n+2]+" "].join(" ")));return i.join(r?"":"L")}},27669:function(t,e,r){"use strict";var n=r(71828).isArrayOrTypedArray;t.exports=function(t,e,r){var i;for(n(t)?t.length>e.length&&(t=t.slice(0,e.length)):t=[],i=0;i<e.length;i++)t[i]=r(e[i]);return t}},11651:function(t){"use strict";t.exports=function(t,e,r,n,i,a){var o=i[0]*t.dpdx(e),s=i[1]*t.dpdy(r),l=1,u=1;if(a){var c=Math.sqrt(i[0]*i[0]+i[1]*i[1]),f=Math.sqrt(a[0]*a[0]+a[1]*a[1]),h=(i[0]*a[0]+i[1]*a[1])/c/f;u=Math.max(0,h)}var p=180*Math.atan2(s,o)/Math.PI;return p<-90?(p+=180,l=-l):p>90&&(p-=180,l=-l),{angle:p,flip:l,p:t.c2p(n,e,r),offsetMultplier:u}}},89740:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(27669),o=r(67961),s=r(11651),l=r(63893),u=r(71828),c=u.strRotate,f=u.strTranslate,h=r(18783);function p(t,e,r,s,l,u){var c="const-"+l+"-lines",f=r.selectAll("."+c).data(u);f.enter().append("path").classed(c,!0).style("vector-effect","non-scaling-stroke"),f.each((function(r){var s=r,l=s.x,u=s.y,c=a([],l,t.c2p),f=a([],u,e.c2p),h="M"+o(c,f,s.smoothing);n.select(this).attr("d",h).style("stroke-width",s.width).style("stroke",s.color).style("stroke-dasharray",i.dashStyle(s.dash,s.width)).style("fill","none")})),f.exit().remove()}function d(t,e,r,a,o,u,h,p){var d=u.selectAll("text."+p).data(h);d.enter().append("text").classed(p,!0);var v=0,g={};return d.each((function(o,u){var h;if("auto"===o.axis.tickangle)h=s(a,e,r,o.xy,o.dxy);else{var p=(o.axis.tickangle+180)*Math.PI/180;h=s(a,e,r,o.xy,[Math.cos(p),Math.sin(p)])}u||(g={angle:h.angle,flip:h.flip});var d=(o.endAnchor?-1:1)*h.flip,y=n.select(this).attr({"text-anchor":d>0?"start":"end","data-notex":1}).call(i.font,o.font).text(o.text).call(l.convertToTspans,t),m=i.bBox(this);y.attr("transform",f(h.p[0],h.p[1])+c(h.angle)+f(o.axis.labelpadding*d,.3*m.height)),v=Math.max(v,m.width+o.axis.labelpadding)})),d.exit().remove(),g.maxExtent=v,g}t.exports=function(t,e,r,i){var l=e.xaxis,c=e.yaxis,f=t._fullLayout._clips;u.makeTraceGroups(i,r,"trace").each((function(e){var r=n.select(this),i=e[0],h=i.trace,v=h.aaxis,g=h.baxis,m=u.ensureSingle(r,"g","minorlayer"),x=u.ensureSingle(r,"g","majorlayer"),b=u.ensureSingle(r,"g","boundarylayer"),_=u.ensureSingle(r,"g","labellayer");r.style("opacity",h.opacity),p(l,c,x,0,"a",v._gridlines),p(l,c,x,0,"b",g._gridlines),p(l,c,m,0,"a",v._minorgridlines),p(l,c,m,0,"b",g._minorgridlines),p(l,c,b,0,"a-boundary",v._boundarylines),p(l,c,b,0,"b-boundary",g._boundarylines);var w=d(t,l,c,h,0,_,v._labels,"a-label"),T=d(t,l,c,h,0,_,g._labels,"b-label");!function(t,e,r,n,i,a,o,l){var c,f,h,p,d=u.aggNums(Math.min,null,r.a),v=u.aggNums(Math.max,null,r.a),g=u.aggNums(Math.min,null,r.b),m=u.aggNums(Math.max,null,r.b);c=.5*(d+v),f=g,h=r.ab2xy(c,f,!0),p=r.dxyda_rough(c,f),void 0===o.angle&&u.extendFlat(o,s(r,i,a,h,r.dxydb_rough(c,f))),y(t,e,r,0,h,p,r.aaxis,i,a,o,"a-title"),c=d,f=.5*(g+m),h=r.ab2xy(c,f,!0),p=r.dxydb_rough(c,f),void 0===l.angle&&u.extendFlat(l,s(r,i,a,h,r.dxyda_rough(c,f))),y(t,e,r,0,h,p,r.baxis,i,a,l,"b-title")}(t,_,h,0,l,c,w,T),function(t,e,r,n,i){var s,l,c,f,h=r.select("#"+t._clipPathId);h.size()||(h=r.append("clipPath").classed("carpetclip",!0));var p=u.ensureSingle(h,"path","carpetboundary"),d=e.clipsegments,v=[];for(f=0;f<d.length;f++)s=d[f],l=a([],s.x,n.c2p),c=a([],s.y,i.c2p),v.push(o(l,c,s.bicubic));var g="M"+v.join("L")+"Z";h.attr("id",t._clipPathId),p.attr("d",g)}(h,i,f,l,c)}))};var v=h.LINE_SPACING,g=(1-h.MID_SHIFT)/v+1;function y(t,e,r,a,o,u,h,p,d,y,m){var x=[];h.title.text&&x.push(h.title.text);var b=e.selectAll("text."+m).data(x),_=y.maxExtent;b.enter().append("text").classed(m,!0),b.each((function(){var e=s(r,p,d,o,u);-1===["start","both"].indexOf(h.showticklabels)&&(_=0);var a=h.title.font.size;_+=a+h.title.offset;var m=(y.angle+(y.flip<0?180:0)-e.angle+450)%360,x=m>90&&m<270,b=n.select(this);b.text(h.title.text).call(l.convertToTspans,t),x&&(_=(-l.lineCount(b)+g)*v*a-_),b.attr("transform",f(e.p[0],e.p[1])+c(e.angle)+f(0,_)).attr("text-anchor","middle").call(i.font,h.title.font)})),b.exit().remove()}},11435:function(t,e,r){"use strict";var n=r(35509),i=r(65888).findBin,a=r(45664),o=r(20349),s=r(54495),l=r(73057);t.exports=function(t){var e=t._a,r=t._b,u=e.length,c=r.length,f=t.aaxis,h=t.baxis,p=e[0],d=e[u-1],v=r[0],g=r[c-1],y=e[e.length-1]-e[0],m=r[r.length-1]-r[0],x=y*n.RELATIVE_CULL_TOLERANCE,b=m*n.RELATIVE_CULL_TOLERANCE;p-=x,d+=x,v-=b,g+=b,t.isVisible=function(t,e){return t>p&&t<d&&e>v&&e<g},t.isOccluded=function(t,e){return t<p||t>d||e<v||e>g},t.setScale=function(){var e=t._x,r=t._y,n=a(t._xctrl,t._yctrl,e,r,f.smoothing,h.smoothing);t._xctrl=n[0],t._yctrl=n[1],t.evalxy=o([t._xctrl,t._yctrl],u,c,f.smoothing,h.smoothing),t.dxydi=s([t._xctrl,t._yctrl],f.smoothing,h.smoothing),t.dxydj=l([t._xctrl,t._yctrl],f.smoothing,h.smoothing)},t.i2a=function(t){var r=Math.max(0,Math.floor(t[0]),u-2),n=t[0]-r;return(1-n)*e[r]+n*e[r+1]},t.j2b=function(t){var e=Math.max(0,Math.floor(t[1]),u-2),n=t[1]-e;return(1-n)*r[e]+n*r[e+1]},t.ij2ab=function(e){return[t.i2a(e[0]),t.j2b(e[1])]},t.a2i=function(t){var r=Math.max(0,Math.min(i(t,e),u-2)),n=e[r],a=e[r+1];return Math.max(0,Math.min(u-1,r+(t-n)/(a-n)))},t.b2j=function(t){var e=Math.max(0,Math.min(i(t,r),c-2)),n=r[e],a=r[e+1];return Math.max(0,Math.min(c-1,e+(t-n)/(a-n)))},t.ab2ij=function(e){return[t.a2i(e[0]),t.b2j(e[1])]},t.i2c=function(e,r){return t.evalxy([],e,r)},t.ab2xy=function(n,i,a){if(!a&&(n<e[0]||n>e[u-1]|i<r[0]||i>r[c-1]))return[!1,!1];var o=t.a2i(n),s=t.b2j(i),l=t.evalxy([],o,s);if(a){var f,h,p,d,v=0,g=0,y=[];n<e[0]?(f=0,h=0,v=(n-e[0])/(e[1]-e[0])):n>e[u-1]?(f=u-2,h=1,v=(n-e[u-1])/(e[u-1]-e[u-2])):h=o-(f=Math.max(0,Math.min(u-2,Math.floor(o)))),i<r[0]?(p=0,d=0,g=(i-r[0])/(r[1]-r[0])):i>r[c-1]?(p=c-2,d=1,g=(i-r[c-1])/(r[c-1]-r[c-2])):d=s-(p=Math.max(0,Math.min(c-2,Math.floor(s)))),v&&(t.dxydi(y,f,p,h,d),l[0]+=y[0]*v,l[1]+=y[1]*v),g&&(t.dxydj(y,f,p,h,d),l[0]+=y[0]*g,l[1]+=y[1]*g)}return l},t.c2p=function(t,e,r){return[e.c2p(t[0]),r.c2p(t[1])]},t.p2x=function(t,e,r){return[e.p2c(t[0]),r.p2c(t[1])]},t.dadi=function(t){var r=Math.max(0,Math.min(e.length-2,t));return e[r+1]-e[r]},t.dbdj=function(t){var e=Math.max(0,Math.min(r.length-2,t));return r[e+1]-r[e]},t.dxyda=function(e,r,n,i){var a=t.dxydi(null,e,r,n,i),o=t.dadi(e,n);return[a[0]/o,a[1]/o]},t.dxydb=function(e,r,n,i){var a=t.dxydj(null,e,r,n,i),o=t.dbdj(r,i);return[a[0]/o,a[1]/o]},t.dxyda_rough=function(e,r,n){var i=y*(n||.1),a=t.ab2xy(e+i,r,!0),o=t.ab2xy(e-i,r,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dxydb_rough=function(e,r,n){var i=m*(n||.1),a=t.ab2xy(e,r+i,!0),o=t.ab2xy(e,r-i,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dpdx=function(t){return t._m},t.dpdy=function(t){return t._m}}},72505:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e,r){var i,a,o,s=[],l=[],u=t[0].length,c=t.length;function f(e,r){var n,i=0,a=0;return e>0&&void 0!==(n=t[r][e-1])&&(a++,i+=n),e<u-1&&void 0!==(n=t[r][e+1])&&(a++,i+=n),r>0&&void 0!==(n=t[r-1][e])&&(a++,i+=n),r<c-1&&void 0!==(n=t[r+1][e])&&(a++,i+=n),i/Math.max(1,a)}var h,p,d,v,g,y,m,x,b,_,w,T=0;for(i=0;i<u;i++)for(a=0;a<c;a++)void 0===t[a][i]&&(s.push(i),l.push(a),t[a][i]=f(i,a)),T=Math.max(T,Math.abs(t[a][i]));if(!s.length)return t;var k=0,A=0,M=s.length;do{for(k=0,o=0;o<M;o++){i=s[o],a=l[o];var S,E,L,C,P,O,I=0,D=0;0===i?(L=e[P=Math.min(u-1,2)],C=e[1],S=t[a][P],D+=(E=t[a][1])+(E-S)*(e[0]-C)/(C-L),I++):i===u-1&&(L=e[P=Math.max(0,u-3)],C=e[u-2],S=t[a][P],D+=(E=t[a][u-2])+(E-S)*(e[u-1]-C)/(C-L),I++),(0===i||i===u-1)&&a>0&&a<c-1&&(h=r[a+1]-r[a],D+=((p=r[a]-r[a-1])*t[a+1][i]+h*t[a-1][i])/(p+h),I++),0===a?(L=r[O=Math.min(c-1,2)],C=r[1],S=t[O][i],D+=(E=t[1][i])+(E-S)*(r[0]-C)/(C-L),I++):a===c-1&&(L=r[O=Math.max(0,c-3)],C=r[c-2],S=t[O][i],D+=(E=t[c-2][i])+(E-S)*(r[c-1]-C)/(C-L),I++),(0===a||a===c-1)&&i>0&&i<u-1&&(h=e[i+1]-e[i],D+=((p=e[i]-e[i-1])*t[a][i+1]+h*t[a][i-1])/(p+h),I++),I?D/=I:(d=e[i+1]-e[i],v=e[i]-e[i-1],x=(g=r[a+1]-r[a])*(y=r[a]-r[a-1])*(g+y),D=((m=d*v*(d+v))*(y*t[a+1][i]+g*t[a-1][i])+x*(v*t[a][i+1]+d*t[a][i-1]))/(x*(v+d)+m*(y+g))),k+=(_=(b=D-t[a][i])/T)*_,w=I?0:.85,t[a][i]+=b*(1+w)}k=Math.sqrt(k)}while(A++<100&&k>1e-5);return n.log("Smoother converged to",k,"after",A,"iterations"),t}},19237:function(t,e,r){"use strict";var n=r(71828).isArray1D;t.exports=function(t,e,r){var i=r("x"),a=i&&i.length,o=r("y"),s=o&&o.length;if(!a&&!s)return!1;if(e._cheater=!i,a&&!n(i)||s&&!n(o))e._length=null;else{var l=a?i.length:1/0;s&&(l=Math.min(l,o.length)),e.a&&e.a.length&&(l=Math.min(l,e.a.length)),e.b&&e.b.length&&(l=Math.min(l,e.b.length)),e._length=l}return!0}},69568:function(t,e,r){"use strict";var n=r(5386).f,i=r(19316),a=r(50693),o=r(9012),s=r(22399).defaultLine,l=r(1426).extendFlat,u=i.marker.line;t.exports=l({locations:{valType:"data_array",editType:"calc"},locationmode:i.locationmode,z:{valType:"data_array",editType:"calc"},geojson:l({},i.geojson,{}),featureidkey:i.featureidkey,text:l({},i.text,{}),hovertext:l({},i.hovertext,{}),marker:{line:{color:l({},u.color,{dflt:s}),width:l({},u.width,{dflt:1}),editType:"calc"},opacity:{valType:"number",arrayOk:!0,min:0,max:1,dflt:1,editType:"style"},editType:"calc"},selected:{marker:{opacity:i.selected.marker.opacity,editType:"plot"},editType:"plot"},unselected:{marker:{opacity:i.unselected.marker.opacity,editType:"plot"},editType:"plot"},hoverinfo:l({},o.hoverinfo,{editType:"calc",flags:["location","z","text","name"]}),hovertemplate:n(),showlegend:l({},o.showlegend,{dflt:!1})},a("",{cLetter:"z",editTypeOverride:"calc"}))},38675:function(t,e,r){"use strict";var n=r(92770),i=r(50606).BADNUM,a=r(78803),o=r(75225),s=r(66279);function l(t){return t&&"string"==typeof t}t.exports=function(t,e){var r,u=e._length,c=new Array(u);r=e.geojson?function(t){return l(t)||n(t)}:l;for(var f=0;f<u;f++){var h=c[f]={},p=e.locations[f],d=e.z[f];r(p)&&n(d)?(h.loc=p,h.z=d):(h.loc=null,h.z=i),h.index=f}return o(c,e),a(t,e,{vals:e.z,containerStr:"",cLetter:"z"}),s(c,e),c}},61869:function(t,e,r){"use strict";var n=r(71828),i=r(1586),a=r(69568);t.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s("locations"),u=s("z");if(l&&l.length&&n.isArrayOrTypedArray(u)&&u.length){e._length=Math.min(l.length,u.length);var c,f=s("geojson");("string"==typeof f&&""!==f||n.isPlainObject(f))&&(c="geojson-id"),"geojson-id"===s("locationmode",c)&&s("featureidkey"),s("text"),s("hovertext"),s("hovertemplate"),s("marker.line.width")&&s("marker.line.color"),s("marker.opacity"),i(t,e,o,s,{prefix:"",cLetter:"z"}),n.coerceSelectionMarkerOpacity(e,s)}else e.visible=!1}},92069:function(t){"use strict";t.exports=function(t,e,r,n,i){t.location=e.location,t.z=e.z;var a=n[i];return a.fIn&&a.fIn.properties&&(t.properties=a.fIn.properties),t.ct=a.ct,t}},42300:function(t,e,r){"use strict";var n=r(89298),i=r(69568),a=r(71828).fillText;t.exports=function(t,e,r){var o,s,l,u,c=t.cd,f=c[0].trace,h=t.subplot,p=[e,r],d=[e+360,r];for(s=0;s<c.length;s++)if(u=!1,(o=c[s])._polygons){for(l=0;l<o._polygons.length;l++)o._polygons[l].contains(p)&&(u=!u),o._polygons[l].contains(d)&&(u=!u);if(u)break}if(u&&o)return t.x0=t.x1=t.xa.c2p(o.ct),t.y0=t.y1=t.ya.c2p(o.ct),t.index=o.index,t.location=o.loc,t.z=o.z,t.zLabel=n.tickText(h.mockAxis,h.mockAxis.c2l(o.z),"hover").text,t.hovertemplate=o.hovertemplate,function(t,e,r){if(!e.hovertemplate){var n=r.hi||e.hoverinfo,o=String(r.loc),s="all"===n?i.hoverinfo.flags:n.split("+"),l=-1!==s.indexOf("name"),u=-1!==s.indexOf("location"),c=-1!==s.indexOf("z"),f=-1!==s.indexOf("text"),h=[];!l&&u?t.nameOverride=o:(l&&(t.nameOverride=e.name),u&&h.push(o)),c&&h.push(t.zLabel),f&&a(r,e,h),t.extraText=h.join("<br>")}}(t,f,o),[t]}},51319:function(t,e,r){"use strict";t.exports={attributes:r(69568),supplyDefaults:r(61869),colorbar:r(61243),calc:r(38675),calcGeoJSON:r(99841).calcGeoJSON,plot:r(99841).plot,style:r(99636).style,styleOnSelect:r(99636).styleOnSelect,hoverPoints:r(42300),eventData:r(92069),selectPoints:r(81253),moduleType:"trace",name:"choropleth",basePlotModule:r(44622),categories:["geo","noOpacity","showLegend"],meta:{}}},99841:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(41327),o=r(90973).getTopojsonFeatures,s=r(71739).findExtremes,l=r(99636).style;t.exports={calcGeoJSON:function(t,e){for(var r=t[0].trace,n=e[r.geo],i=n._subplot,l=r.locationmode,u=r._length,c="geojson-id"===l?a.extractTraceFeature(t):o(r,i.topojson),f=[],h=[],p=0;p<u;p++){var d=t[p],v="geojson-id"===l?d.fOut:a.locationToFeature(l,d.loc,c);if(v){d.geojson=v,d.ct=v.properties.ct,d._polygons=a.feature2polygons(v);var g=a.computeBbox(v);f.push(g[0],g[2]),h.push(g[1],g[3])}else d.geojson=null}if("geojson"===n.fitbounds&&"geojson-id"===l){var y=a.computeBbox(a.getTraceGeojson(r));f=[y[0],y[2]],h=[y[1],y[3]]}var m={padded:!0};r._extremes.lon=s(n.lonaxis._ax,f,m),r._extremes.lat=s(n.lataxis._ax,h,m)},plot:function(t,e,r){var a=e.layers.backplot.select(".choroplethlayer");i.makeTraceGroups(a,r,"trace choropleth").each((function(e){var r=n.select(this).selectAll("path.choroplethlocation").data(i.identity);r.enter().append("path").classed("choroplethlocation",!0),r.exit().remove(),l(t,e)}))}}},81253:function(t){"use strict";t.exports=function(t,e){var r,n,i,a,o,s=t.cd,l=t.xaxis,u=t.yaxis,c=[];if(!1===e)for(r=0;r<s.length;r++)s[r].selected=0;else for(r=0;r<s.length;r++)(i=(n=s[r]).ct)&&(a=l.c2p(i),o=u.c2p(i),e.contains([a,o],null,r,t)?(c.push({pointNumber:r,lon:i[0],lat:i[1]}),n.selected=1):n.selected=0);return c}},99636:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(91424),o=r(21081);function s(t,e){var r=e[0].trace,s=e[0].node3.selectAll(".choroplethlocation"),l=r.marker||{},u=l.line||{},c=o.makeColorScaleFuncFromTrace(r);s.each((function(t){n.select(this).attr("fill",c(t.z)).call(i.stroke,t.mlc||u.color).call(a.dashLine,"",t.mlw||u.width||0).style("opacity",l.opacity)})),a.selectedPointStyle(s,r)}t.exports={style:function(t,e){e&&s(0,e)},styleOnSelect:function(t,e){var r=e[0].node3,n=e[0].trace;n.selectedpoints?a.selectedPointStyle(r.selectAll(".choroplethlocation"),n):s(0,e)}}},64496:function(t,e,r){"use strict";var n=r(69568),i=r(50693),a=r(5386).f,o=r(9012),s=r(1426).extendFlat;t.exports=s({locations:{valType:"data_array",editType:"calc"},z:{valType:"data_array",editType:"calc"},geojson:{valType:"any",editType:"calc"},featureidkey:s({},n.featureidkey,{}),below:{valType:"string",editType:"plot"},text:n.text,hovertext:n.hovertext,marker:{line:{color:s({},n.marker.line.color,{editType:"plot"}),width:s({},n.marker.line.width,{editType:"plot"}),editType:"calc"},opacity:s({},n.marker.opacity,{editType:"plot"}),editType:"calc"},selected:{marker:{opacity:s({},n.selected.marker.opacity,{editType:"plot"}),editType:"plot"},editType:"plot"},unselected:{marker:{opacity:s({},n.unselected.marker.opacity,{editType:"plot"}),editType:"plot"},editType:"plot"},hoverinfo:n.hoverinfo,hovertemplate:a({},{keys:["properties"]}),showlegend:s({},o.showlegend,{dflt:!1})},i("",{cLetter:"z",editTypeOverride:"calc"}))},82004:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(21081),o=r(91424),s=r(18214).makeBlank,l=r(41327);function u(t){var e,r=t[0].trace,n=r._opts;if(r.selectedpoints){for(var a=o.makeSelectedPointStyleFns(r),s=0;s<t.length;s++){var l=t[s];l.fOut&&(l.fOut.properties.mo2=a.selectedOpacityFn(l))}e={type:"identity",property:"mo2"}}else e=i.isArrayOrTypedArray(r.marker.opacity)?{type:"identity",property:"mo"}:r.marker.opacity;return i.extendFlat(n.fill.paint,{"fill-opacity":e}),i.extendFlat(n.line.paint,{"line-opacity":e}),n}t.exports={convert:function(t){var e=t[0].trace,r=!0===e.visible&&0!==e._length,o={layout:{visibility:"none"},paint:{}},c={layout:{visibility:"none"},paint:{}},f=e._opts={fill:o,line:c,geojson:s()};if(!r)return f;var h=l.extractTraceFeature(t);if(!h)return f;var p,d,v,g=a.makeColorScaleFuncFromTrace(e),y=e.marker,m=y.line||{};i.isArrayOrTypedArray(y.opacity)&&(p=function(t){var e=t.mo;return n(e)?+i.constrain(e,0,1):0}),i.isArrayOrTypedArray(m.color)&&(d=function(t){return t.mlc}),i.isArrayOrTypedArray(m.width)&&(v=function(t){return t.mlw});for(var x=0;x<t.length;x++){var b=t[x],_=b.fOut;if(_){var w=_.properties;w.fc=g(b.z),p&&(w.mo=p(b)),d&&(w.mlc=d(b)),v&&(w.mlw=v(b)),b.ct=w.ct,b._polygons=l.feature2polygons(_)}}var T=p?{type:"identity",property:"mo"}:y.opacity;return i.extendFlat(o.paint,{"fill-color":{type:"identity",property:"fc"},"fill-opacity":T}),i.extendFlat(c.paint,{"line-color":d?{type:"identity",property:"mlc"}:m.color,"line-width":v?{type:"identity",property:"mlw"}:m.width,"line-opacity":T}),o.layout.visibility="visible",c.layout.visibility="visible",f.geojson={type:"FeatureCollection",features:h},u(t),f},convertOnSelect:u}},22654:function(t,e,r){"use strict";var n=r(71828),i=r(1586),a=r(64496);t.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s("locations"),u=s("z"),c=s("geojson");n.isArrayOrTypedArray(l)&&l.length&&n.isArrayOrTypedArray(u)&&u.length&&("string"==typeof c&&""!==c||n.isPlainObject(c))?(s("featureidkey"),e._length=Math.min(l.length,u.length),s("below"),s("text"),s("hovertext"),s("hovertemplate"),s("marker.line.width")&&s("marker.line.color"),s("marker.opacity"),i(t,e,o,s,{prefix:"",cLetter:"z"}),n.coerceSelectionMarkerOpacity(e,s)):e.visible=!1}},57516:function(t,e,r){"use strict";t.exports={attributes:r(64496),supplyDefaults:r(22654),colorbar:r(61243),calc:r(38675),plot:r(7852),hoverPoints:r(42300),eventData:r(92069),selectPoints:r(81253),styleOnSelect:function(t,e){e&&e[0].trace._glTrace.updateOnSelect(e)},getBelow:function(t,e){for(var r=e.getMapLayers(),n=r.length-2;n>=0;n--){var i=r[n].id;if("string"==typeof i&&0===i.indexOf("water"))for(var a=n+1;a<r.length;a++)if("string"==typeof(i=r[a].id)&&-1===i.indexOf("plotly-"))return i}},moduleType:"trace",name:"choroplethmapbox",basePlotModule:r(50101),categories:["mapbox","gl","noOpacity","showLegend"],meta:{hr_name:"choropleth_mapbox"}}},7852:function(t,e,r){"use strict";var n=r(82004).convert,i=r(82004).convertOnSelect,a=r(77734).traceLayerPrefix;function o(t,e){this.type="choroplethmapbox",this.subplot=t,this.uid=e,this.sourceId="source-"+e,this.layerList=[["fill",a+e+"-fill"],["line",a+e+"-line"]],this.below=null}var s=o.prototype;s.update=function(t){this._update(n(t)),t[0].trace._glTrace=this},s.updateOnSelect=function(t){this._update(i(t))},s._update=function(t){var e=this.subplot,r=this.layerList,n=e.belowLookup["trace-"+this.uid];e.map.getSource(this.sourceId).setData(t.geojson),n!==this.below&&(this._removeLayers(),this._addLayers(t,n),this.below=n);for(var i=0;i<r.length;i++){var a=r[i],o=a[0],s=a[1],l=t[o];e.setOptions(s,"setLayoutProperty",l.layout),"visible"===l.layout.visibility&&e.setOptions(s,"setPaintProperty",l.paint)}},s._addLayers=function(t,e){for(var r=this.subplot,n=this.layerList,i=this.sourceId,a=0;a<n.length;a++){var o=n[a],s=o[0],l=t[s];r.addLayer({type:s,id:o[1],source:i,layout:l.layout,paint:l.paint},e)}},s._removeLayers=function(){for(var t=this.subplot.map,e=this.layerList,r=e.length-1;r>=0;r--)t.removeLayer(e[r][1])},s.dispose=function(){var t=this.subplot.map;this._removeLayers(),t.removeSource(this.sourceId)},t.exports=function(t,e){var r=e[0].trace,i=new o(t,r.uid),a=i.sourceId,s=n(e),l=i.below=t.belowLookup["trace-"+r.uid];return t.map.addSource(a,{type:"geojson",data:s.geojson}),i._addLayers(s,l),e[0].trace._glTrace=i,i}},12674:function(t,e,r){"use strict";var n=r(50693),i=r(12663).axisHoverFormat,a=r(5386).f,o=r(2418),s=r(9012),l=r(1426).extendFlat,u={x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},u:{valType:"data_array",editType:"calc"},v:{valType:"data_array",editType:"calc"},w:{valType:"data_array",editType:"calc"},sizemode:{valType:"enumerated",values:["scaled","absolute"],editType:"calc",dflt:"scaled"},sizeref:{valType:"number",editType:"calc",min:0},anchor:{valType:"enumerated",editType:"calc",values:["tip","tail","cm","center"],dflt:"cm"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:a({editType:"calc"},{keys:["norm"]}),uhoverformat:i("u",1),vhoverformat:i("v",1),whoverformat:i("w",1),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),showlegend:l({},s.showlegend,{dflt:!1})};l(u,n("",{colorAttr:"u/v/w norm",showScaleDflt:!0,editTypeOverride:"calc"})),["opacity","lightposition","lighting"].forEach((function(t){u[t]=o[t]})),u.hoverinfo=l({},s.hoverinfo,{editType:"calc",flags:["x","y","z","u","v","w","norm","text","name"],dflt:"x+y+z+norm+text+name"}),u.transforms=void 0,t.exports=u},31371:function(t,e,r){"use strict";var n=r(78803);t.exports=function(t,e){for(var r=e.u,i=e.v,a=e.w,o=Math.min(e.x.length,e.y.length,e.z.length,r.length,i.length,a.length),s=-1/0,l=1/0,u=0;u<o;u++){var c=r[u],f=i[u],h=a[u],p=Math.sqrt(c*c+f*f+h*h);s=Math.max(s,p),l=Math.min(l,p)}e._len=o,e._normMax=s,n(t,e,{vals:[l,s],containerStr:"",cLetter:"c"})}},5453:function(t,e,r){"use strict";var n=r(9330).gl_cone3d,i=r(9330).gl_cone3d.createConeMesh,a=r(71828).simpleMap,o=r(81697).parseColorScale,s=r(21081).extractOpts,l=r(90060);function u(t,e){this.scene=t,this.uid=e,this.mesh=null,this.data=null}var c=u.prototype;c.handlePick=function(t){if(t.object===this.mesh){var e=t.index=t.data.index,r=this.data.x[e],n=this.data.y[e],i=this.data.z[e],a=this.data.u[e],o=this.data.v[e],s=this.data.w[e];t.traceCoordinate=[r,n,i,a,o,s,Math.sqrt(a*a+o*o+s*s)];var l=this.data.hovertext||this.data.text;return Array.isArray(l)&&void 0!==l[e]?t.textLabel=l[e]:l&&(t.textLabel=l),!0}};var f={xaxis:0,yaxis:1,zaxis:2},h={tip:1,tail:0,cm:.25,center:.5},p={tip:1,tail:1,cm:.75,center:.5};function d(t,e){var r=t.fullSceneLayout,i=t.dataScale,u={};function c(t,e){var n=r[e],o=i[f[e]];return a(t,(function(t){return n.d2l(t)*o}))}u.vectors=l(c(e.u,"xaxis"),c(e.v,"yaxis"),c(e.w,"zaxis"),e._len),u.positions=l(c(e.x,"xaxis"),c(e.y,"yaxis"),c(e.z,"zaxis"),e._len);var d=s(e);u.colormap=o(e),u.vertexIntensityBounds=[d.min/e._normMax,d.max/e._normMax],u.coneOffset=h[e.anchor],"scaled"===e.sizemode?u.coneSize=e.sizeref||.5:u.coneSize=e.sizeref&&e._normMax?e.sizeref/e._normMax:.5;var v=n(u),g=e.lightposition;return v.lightPosition=[g.x,g.y,g.z],v.ambient=e.lighting.ambient,v.diffuse=e.lighting.diffuse,v.specular=e.lighting.specular,v.roughness=e.lighting.roughness,v.fresnel=e.lighting.fresnel,v.opacity=e.opacity,e._pad=p[e.anchor]*v.vectorScale*v.coneScale*e._normMax,v}c.update=function(t){this.data=t;var e=d(this.scene,t);this.mesh.update(e)},c.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()},t.exports=function(t,e){var r=t.glplot.gl,n=d(t,e),a=i(r,n),o=new u(t,e.uid);return o.mesh=a,o.data=e,a._trace=o,t.glplot.add(a),o}},91750:function(t,e,r){"use strict";var n=r(71828),i=r(1586),a=r(12674);t.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s("u"),u=s("v"),c=s("w"),f=s("x"),h=s("y"),p=s("z");l&&l.length&&u&&u.length&&c&&c.length&&f&&f.length&&h&&h.length&&p&&p.length?(s("sizeref"),s("sizemode"),s("anchor"),s("lighting.ambient"),s("lighting.diffuse"),s("lighting.specular"),s("lighting.roughness"),s("lighting.fresnel"),s("lightposition.x"),s("lightposition.y"),s("lightposition.z"),i(t,e,o,s,{prefix:"",cLetter:"c"}),s("text"),s("hovertext"),s("hovertemplate"),s("uhoverformat"),s("vhoverformat"),s("whoverformat"),s("xhoverformat"),s("yhoverformat"),s("zhoverformat"),e._length=null):e.visible=!1}},98128:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"cone",basePlotModule:r(58547),categories:["gl3d","showLegend"],attributes:r(12674),supplyDefaults:r(91750),colorbar:{min:"cmin",max:"cmax"},calc:r(31371),plot:r(5453),eventData:function(t,e){return t.norm=e.traceCoordinate[6],t},meta:{}}},70600:function(t,e,r){"use strict";var n=r(21606),i=r(82196),a=r(12663),o=a.axisHoverFormat,s=a.descriptionOnlyNumbers,l=r(50693),u=r(79952).P,c=r(41940),f=r(1426).extendFlat,h=r(74808),p=h.COMPARISON_OPS2,d=h.INTERVAL_OPS,v=i.line;t.exports=f({z:n.z,x:n.x,x0:n.x0,dx:n.dx,y:n.y,y0:n.y0,dy:n.dy,xperiod:n.xperiod,yperiod:n.yperiod,xperiod0:i.xperiod0,yperiod0:i.yperiod0,xperiodalignment:n.xperiodalignment,yperiodalignment:n.yperiodalignment,text:n.text,hovertext:n.hovertext,transpose:n.transpose,xtype:n.xtype,ytype:n.ytype,xhoverformat:o("x"),yhoverformat:o("y"),zhoverformat:o("z",1),hovertemplate:n.hovertemplate,texttemplate:f({},n.texttemplate,{}),textfont:f({},n.textfont,{}),hoverongaps:n.hoverongaps,connectgaps:f({},n.connectgaps,{}),fillcolor:{valType:"color",editType:"calc"},autocontour:{valType:"boolean",dflt:!0,editType:"calc",impliedEdits:{"contours.start":void 0,"contours.end":void 0,"contours.size":void 0}},ncontours:{valType:"integer",dflt:15,min:1,editType:"calc"},contours:{type:{valType:"enumerated",values:["levels","constraint"],dflt:"levels",editType:"calc"},start:{valType:"number",dflt:null,editType:"plot",impliedEdits:{"^autocontour":!1}},end:{valType:"number",dflt:null,editType:"plot",impliedEdits:{"^autocontour":!1}},size:{valType:"number",dflt:null,min:0,editType:"plot",impliedEdits:{"^autocontour":!1}},coloring:{valType:"enumerated",values:["fill","heatmap","lines","none"],dflt:"fill",editType:"calc"},showlines:{valType:"boolean",dflt:!0,editType:"plot"},showlabels:{valType:"boolean",dflt:!1,editType:"plot"},labelfont:c({editType:"plot",colorEditType:"style"}),labelformat:{valType:"string",dflt:"",editType:"plot",description:s("contour label")},operation:{valType:"enumerated",values:[].concat(p).concat(d),dflt:"=",editType:"calc"},value:{valType:"any",dflt:0,editType:"calc"},editType:"calc",impliedEdits:{autocontour:!1}},line:{color:f({},v.color,{editType:"style+colorbars"}),width:{valType:"number",min:0,editType:"style+colorbars"},dash:u,smoothing:f({},v.smoothing,{}),editType:"plot"}},l("",{cLetter:"z",autoColorDflt:!1,editTypeOverride:"calc"}))},27529:function(t,e,r){"use strict";var n=r(21081),i=r(90757),a=r(18670),o=r(53572);t.exports=function(t,e){var r=i(t,e),s=r[0].z;a(e,s);var l,u=e.contours,c=n.extractOpts(e);if("heatmap"===u.coloring&&c.auto&&!1===e.autocontour){var f=u.start,h=o(u),p=u.size||1,d=Math.floor((h-f)/p)+1;isFinite(p)||(p=1,d=1);var v=f-p/2;l=[v,v+d*p]}else l=s;return n.calc(t,e,{vals:l,cLetter:"z"}),r}},20083:function(t){"use strict";t.exports=function(t,e){var r,n=t[0],i=n.z;switch(e.type){case"levels":var a=Math.min(i[0][0],i[0][1]);for(r=0;r<t.length;r++){var o=t[r];o.prefixBoundary=!o.edgepaths.length&&(a>o.level||o.starts.length&&a===o.level)}break;case"constraint":if(n.prefixBoundary=!1,n.edgepaths.length)return;var s=n.x.length,l=n.y.length,u=-1/0,c=1/0;for(r=0;r<l;r++)c=Math.min(c,i[r][0]),c=Math.min(c,i[r][s-1]),u=Math.max(u,i[r][0]),u=Math.max(u,i[r][s-1]);for(r=1;r<s-1;r++)c=Math.min(c,i[0][r]),c=Math.min(c,i[l-1][r]),u=Math.max(u,i[0][r]),u=Math.max(u,i[l-1][r]);var f,h,p=e.value;switch(e._operation){case">":p>u&&(n.prefixBoundary=!0);break;case"<":(p<c||n.starts.length&&p===c)&&(n.prefixBoundary=!0);break;case"[]":f=Math.min(p[0],p[1]),((h=Math.max(p[0],p[1]))<c||f>u||n.starts.length&&h===c)&&(n.prefixBoundary=!0);break;case"][":f=Math.min(p[0],p[1]),h=Math.max(p[0],p[1]),f<c&&h>u&&(n.prefixBoundary=!0)}}}},90654:function(t,e,r){"use strict";var n=r(21081),i=r(86068),a=r(53572);t.exports={min:"zmin",max:"zmax",calc:function(t,e,r){var o=e.contours,s=e.line,l=o.size||1,u=o.coloring,c=i(e,{isColorbar:!0});if("heatmap"===u){var f=n.extractOpts(e);r._fillgradient=f.reversescale?n.flipScale(f.colorscale):f.colorscale,r._zrange=[f.min,f.max]}else"fill"===u&&(r._fillcolor=c);r._line={color:"lines"===u?c:s.color,width:!1!==o.showlines?s.width:0,dash:s.dash},r._levels={start:o.start,end:a(o),size:l}}}},36914:function(t){"use strict";t.exports={BOTTOMSTART:[1,9,13,104,713],TOPSTART:[4,6,7,104,713],LEFTSTART:[8,12,14,208,1114],RIGHTSTART:[2,3,11,208,1114],NEWDELTA:[null,[-1,0],[0,-1],[-1,0],[1,0],null,[0,-1],[-1,0],[0,1],[0,1],null,[0,1],[1,0],[1,0],[0,-1]],CHOOSESADDLE:{104:[4,1],208:[2,8],713:[7,13],1114:[11,14]},SADDLEREMAINDER:{1:4,2:8,4:1,7:13,8:2,11:14,13:7,14:11},LABELDISTANCE:2,LABELINCREASE:10,LABELMIN:3,LABELMAX:10,LABELOPTIMIZER:{EDGECOST:1,ANGLECOST:1,NEIGHBORCOST:5,SAMELEVELFACTOR:10,SAMELEVELDISTANCE:5,MAXCOST:100,INITIALSEARCHPOINTS:10,ITERATIONS:5}}},83179:function(t,e,r){"use strict";var n=r(92770),i=r(14523),a=r(7901),o=a.addOpacity,s=a.opacity,l=r(74808),u=l.CONSTRAINT_REDUCTION,c=l.COMPARISON_OPS2;t.exports=function(t,e,r,a,l,f){var h,p,d,v=e.contours,g=r("contours.operation");v._operation=u[g],function(t,e){var r;-1===c.indexOf(e.operation)?(t("contours.value",[0,1]),Array.isArray(e.value)?e.value.length>2?e.value=e.value.slice(2):0===e.length?e.value=[0,1]:e.length<2?(r=parseFloat(e.value[0]),e.value=[r,r+1]):e.value=[parseFloat(e.value[0]),parseFloat(e.value[1])]:n(e.value)&&(r=parseFloat(e.value),e.value=[r,r+1])):(t("contours.value",0),n(e.value)||(Array.isArray(e.value)?e.value=parseFloat(e.value[0]):e.value=0))}(r,v),"="===g?h=v.showlines=!0:(h=r("contours.showlines"),d=r("fillcolor",o((t.line||{}).color||l,.5))),h&&(p=r("line.color",d&&s(d)?o(e.fillcolor,1):l),r("line.width",2),r("line.dash")),r("line.smoothing"),i(r,a,p,f)}},64237:function(t,e,r){"use strict";var n=r(74808),i=r(92770);function a(t,e){var r,a=Array.isArray(e);function o(t){return i(t)?+t:null}return-1!==n.COMPARISON_OPS2.indexOf(t)?r=o(a?e[0]:e):-1!==n.INTERVAL_OPS.indexOf(t)?r=a?[o(e[0]),o(e[1])]:[o(e),o(e)]:-1!==n.SET_OPS.indexOf(t)&&(r=a?e.map(o):[o(e)]),r}function o(t){return function(e){e=a(t,e);var r=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return{start:r,end:n,size:n-r}}}function s(t){return function(e){return{start:e=a(t,e),end:1/0,size:1/0}}}t.exports={"[]":o("[]"),"][":o("]["),">":s(">"),"<":s("<"),"=":s("=")}},67217:function(t){"use strict";t.exports=function(t,e,r,n){var i=n("contours.start"),a=n("contours.end"),o=!1===i||!1===a,s=r("contours.size");!(o?e.autocontour=!0:r("autocontour",!1))&&s||r("ncontours")}},84857:function(t,e,r){"use strict";var n=r(71828);function i(t){return n.extendFlat({},t,{edgepaths:n.extendDeep([],t.edgepaths),paths:n.extendDeep([],t.paths),starts:n.extendDeep([],t.starts)})}t.exports=function(t,e){var r,a,o,s=function(t){return t.reverse()},l=function(t){return t};switch(e){case"=":case"<":return t;case">":for(1!==t.length&&n.warn("Contour data invalid for the specified inequality operation."),a=t[0],r=0;r<a.edgepaths.length;r++)a.edgepaths[r]=s(a.edgepaths[r]);for(r=0;r<a.paths.length;r++)a.paths[r]=s(a.paths[r]);for(r=0;r<a.starts.length;r++)a.starts[r]=s(a.starts[r]);return t;case"][":var u=s;s=l,l=u;case"[]":for(2!==t.length&&n.warn("Contour data invalid for the specified inequality range operation."),a=i(t[0]),o=i(t[1]),r=0;r<a.edgepaths.length;r++)a.edgepaths[r]=s(a.edgepaths[r]);for(r=0;r<a.paths.length;r++)a.paths[r]=s(a.paths[r]);for(r=0;r<a.starts.length;r++)a.starts[r]=s(a.starts[r]);for(;o.edgepaths.length;)a.edgepaths.push(l(o.edgepaths.shift()));for(;o.paths.length;)a.paths.push(l(o.paths.shift()));for(;o.starts.length;)a.starts.push(l(o.starts.shift()));return[a]}}},13031:function(t,e,r){"use strict";var n=r(71828),i=r(67684),a=r(73927),o=r(83179),s=r(67217),l=r(8724),u=r(58623),c=r(70600);t.exports=function(t,e,r,f){function h(r,i){return n.coerce(t,e,c,r,i)}if(i(t,e,h,f)){a(t,e,f,h),h("xhoverformat"),h("yhoverformat"),h("text"),h("hovertext"),h("hoverongaps"),h("hovertemplate");var p="constraint"===h("contours.type");h("connectgaps",n.isArray1D(e.z)),p?o(t,e,h,f,r):(s(t,e,h,(function(r){return n.coerce2(t,e,c,r)})),l(t,e,h,f)),e.contours&&"heatmap"===e.contours.coloring&&u(h,f)}else e.visible=!1}},87558:function(t,e,r){"use strict";var n=r(71828),i=r(64237),a=r(53572);t.exports=function(t,e,r){for(var o="constraint"===t.type?i[t._operation](t.value):t,s=o.size,l=[],u=a(o),c=r.trace._carpetTrace,f=c?{xaxis:c.aaxis,yaxis:c.baxis,x:r.a,y:r.b}:{xaxis:e.xaxis,yaxis:e.yaxis,x:r.x,y:r.y},h=o.start;h<u;h+=s)if(l.push(n.extendFlat({level:h,crossings:{},starts:[],edgepaths:[],paths:[],z:r.z,smoothing:r.trace.line.smoothing},f)),l.length>1e3){n.warn("Too many contours, clipping at 1000",t);break}return l}},53572:function(t){"use strict";t.exports=function(t){return t.end+t.size/1e6}},81696:function(t,e,r){"use strict";var n=r(71828),i=r(36914);function a(t,e,r,n){return Math.abs(t[0]-e[0])<r&&Math.abs(t[1]-e[1])<n}function o(t,e,r,o,l){var u,c=e.join(","),f=t.crossings[c],h=function(t,e,r){var n=0,a=0;return t>20&&e?208===t||1114===t?n=0===r[0]?1:-1:a=0===r[1]?1:-1:-1!==i.BOTTOMSTART.indexOf(t)?a=1:-1!==i.LEFTSTART.indexOf(t)?n=1:-1!==i.TOPSTART.indexOf(t)?a=-1:n=-1,[n,a]}(f,r,e),p=[s(t,e,[-h[0],-h[1]])],d=t.z.length,v=t.z[0].length,g=e.slice(),y=h.slice();for(u=0;u<1e4;u++){if(f>20?(f=i.CHOOSESADDLE[f][(h[0]||h[1])<0?0:1],t.crossings[c]=i.SADDLEREMAINDER[f]):delete t.crossings[c],!(h=i.NEWDELTA[f])){n.log("Found bad marching index:",f,e,t.level);break}p.push(s(t,e,h)),e[0]+=h[0],e[1]+=h[1],c=e.join(","),a(p[p.length-1],p[p.length-2],o,l)&&p.pop();var m=h[0]&&(e[0]<0||e[0]>v-2)||h[1]&&(e[1]<0||e[1]>d-2);if(e[0]===g[0]&&e[1]===g[1]&&h[0]===y[0]&&h[1]===y[1]||r&&m)break;f=t.crossings[c]}1e4===u&&n.log("Infinite loop in contour?");var x,b,_,w,T,k,A,M,S,E,L,C,P,O,I,D=a(p[0],p[p.length-1],o,l),z=0,R=.2*t.smoothing,F=[],B=0;for(u=1;u<p.length;u++)C=p[u],P=p[u-1],void 0,void 0,O=C[2]-P[2],I=C[3]-P[3],z+=A=Math.sqrt(O*O+I*I),F.push(A);var N=z/F.length*R;function j(t){return p[t%p.length]}for(u=p.length-2;u>=B;u--)if((x=F[u])<N){for(_=0,b=u-1;b>=B&&x+F[b]<N;b--)x+=F[b];if(D&&u===p.length-2)for(_=0;_<b&&x+F[_]<N;_++)x+=F[_];T=u-b+_+1,k=Math.floor((u+b+_+2)/2),w=D||u!==p.length-2?D||-1!==b?T%2?j(k):[(j(k)[0]+j(k+1)[0])/2,(j(k)[1]+j(k+1)[1])/2]:p[0]:p[p.length-1],p.splice(b+1,u-b+1,w),u=b+1,_&&(B=_),D&&(u===p.length-2?p[_]=p[p.length-1]:0===u&&(p[p.length-1]=p[0]))}for(p.splice(0,B),u=0;u<p.length;u++)p[u].length=2;if(!(p.length<2))if(D)p.pop(),t.paths.push(p);else{r||n.log("Unclosed interior contour?",t.level,g.join(","),p.join("L"));var U=!1;for(M=0;M<t.edgepaths.length;M++)if(E=t.edgepaths[M],!U&&a(E[0],p[p.length-1],o,l)){p.pop(),U=!0;var V=!1;for(S=0;S<t.edgepaths.length;S++)if(a((L=t.edgepaths[S])[L.length-1],p[0],o,l)){V=!0,p.shift(),t.edgepaths.splice(M,1),S===M?t.paths.push(p.concat(L)):(S>M&&S--,t.edgepaths[S]=L.concat(p,E));break}V||(t.edgepaths[M]=p.concat(E))}for(M=0;M<t.edgepaths.length&&!U;M++)a((E=t.edgepaths[M])[E.length-1],p[0],o,l)&&(p.shift(),t.edgepaths[M]=E.concat(p),U=!0);U||t.edgepaths.push(p)}}function s(t,e,r){var n=e[0]+Math.max(r[0],0),i=e[1]+Math.max(r[1],0),a=t.z[i][n],o=t.xaxis,s=t.yaxis;if(r[1]){var l=(t.level-a)/(t.z[i][n+1]-a),u=(1!==l?(1-l)*o.c2l(t.x[n]):0)+(0!==l?l*o.c2l(t.x[n+1]):0);return[o.c2p(o.l2c(u),!0),s.c2p(t.y[i],!0),n+l,i]}var c=(t.level-a)/(t.z[i+1][n]-a),f=(1!==c?(1-c)*s.c2l(t.y[i]):0)+(0!==c?c*s.c2l(t.y[i+1]):0);return[o.c2p(t.x[n],!0),s.c2p(s.l2c(f),!0),n,i+c]}t.exports=function(t,e,r){var i,a,s,l;for(e=e||.01,r=r||.01,a=0;a<t.length;a++){for(s=t[a],l=0;l<s.starts.length;l++)o(s,s.starts[l],"edge",e,r);for(i=0;Object.keys(s.crossings).length&&i<1e4;)i++,o(s,Object.keys(s.crossings)[0].split(",").map(Number),void 0,e,r);1e4===i&&n.log("Infinite loop in contour?")}}},52421:function(t,e,r){"use strict";var n=r(7901),i=r(46248);t.exports=function(t,e,r,a,o){o||(o={}),o.isContour=!0;var s=i(t,e,r,a,o);return s&&s.forEach((function(t){var e=t.trace;"constraint"===e.contours.type&&(e.fillcolor&&n.opacity(e.fillcolor)?t.color=n.addOpacity(e.fillcolor,1):e.contours.showlines&&n.opacity(e.line.color)&&(t.color=n.addOpacity(e.line.color,1)))})),s}},99442:function(t,e,r){"use strict";t.exports={attributes:r(70600),supplyDefaults:r(13031),calc:r(27529),plot:r(29854).plot,style:r(84426),colorbar:r(90654),hoverPoints:r(52421),moduleType:"trace",name:"contour",basePlotModule:r(93612),categories:["cartesian","svg","2dMap","contour","showLegend"],meta:{}}},14523:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e,r,i){if(i||(i={}),t("contours.showlabels")){var a=e.font;n.coerceFont(t,"contours.labelfont",{family:a.family,size:a.size,color:r}),t("contours.labelformat")}!1!==i.hasHover&&t("zhoverformat")}},86068:function(t,e,r){"use strict";var n=r(39898),i=r(21081),a=r(53572);t.exports=function(t){var e=t.contours,r=e.start,o=a(e),s=e.size||1,l=Math.floor((o-r)/s)+1,u="lines"===e.coloring?0:1,c=i.extractOpts(t);isFinite(s)||(s=1,l=1);var f,h,p=c.reversescale?i.flipScale(c.colorscale):c.colorscale,d=p.length,v=new Array(d),g=new Array(d);if("heatmap"===e.coloring){var y=c.min,m=c.max;for(h=0;h<d;h++)f=p[h],v[h]=f[0]*(m-y)+y,g[h]=f[1];var x=n.extent([y,m,e.start,e.start+s*(l-1)]),b=x[y<m?0:1],_=x[y<m?1:0];b!==y&&(v.splice(0,0,b),g.splice(0,0,g[0])),_!==m&&(v.push(_),g.push(g[g.length-1]))}else for(h=0;h<d;h++)f=p[h],v[h]=(f[0]*(l+u-1)-u/2)*s+r,g[h]=f[1];return i.makeColorScaleFunc({domain:v,range:g},{noNumericCheck:!0})}},87678:function(t,e,r){"use strict";var n=r(36914);function i(t,e){var r=(e[0][0]>t?0:1)+(e[0][1]>t?0:2)+(e[1][1]>t?0:4)+(e[1][0]>t?0:8);return 5===r||10===r?t>(e[0][0]+e[0][1]+e[1][0]+e[1][1])/4?5===r?713:1114:5===r?104:208:15===r?0:r}t.exports=function(t){var e,r,a,o,s,l,u,c,f,h=t[0].z,p=h.length,d=h[0].length,v=2===p||2===d;for(r=0;r<p-1;r++)for(o=[],0===r&&(o=o.concat(n.BOTTOMSTART)),r===p-2&&(o=o.concat(n.TOPSTART)),e=0;e<d-1;e++)for(a=o.slice(),0===e&&(a=a.concat(n.LEFTSTART)),e===d-2&&(a=a.concat(n.RIGHTSTART)),s=e+","+r,l=[[h[r][e],h[r][e+1]],[h[r+1][e],h[r+1][e+1]]],f=0;f<t.length;f++)(u=i((c=t[f]).level,l))&&(c.crossings[s]=u,-1!==a.indexOf(u)&&(c.starts.push([e,r]),v&&-1!==a.indexOf(u,a.indexOf(u)+1)&&c.starts.push([e,r])))}},29854:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424),o=r(21081),s=r(63893),l=r(89298),u=r(21994),c=r(50347),f=r(87678),h=r(81696),p=r(87558),d=r(84857),v=r(20083),g=r(36914),y=g.LABELOPTIMIZER;function m(t,e){var r,n,o,s,l,u,c,f="",h=0,p=t.edgepaths.map((function(t,e){return e})),d=!0;function v(t){return Math.abs(t[1]-e[2][1])<.01}function g(t){return Math.abs(t[0]-e[0][0])<.01}function y(t){return Math.abs(t[0]-e[2][0])<.01}for(;p.length;){for(u=a.smoothopen(t.edgepaths[h],t.smoothing),f+=d?u:u.replace(/^M/,"L"),p.splice(p.indexOf(h),1),r=t.edgepaths[h][t.edgepaths[h].length-1],s=-1,o=0;o<4;o++){if(!r){i.log("Missing end?",h,t);break}for(c=r,Math.abs(c[1]-e[0][1])<.01&&!y(r)?n=e[1]:g(r)?n=e[0]:v(r)?n=e[3]:y(r)&&(n=e[2]),l=0;l<t.edgepaths.length;l++){var m=t.edgepaths[l][0];Math.abs(r[0]-n[0])<.01?Math.abs(r[0]-m[0])<.01&&(m[1]-r[1])*(n[1]-m[1])>=0&&(n=m,s=l):Math.abs(r[1]-n[1])<.01?Math.abs(r[1]-m[1])<.01&&(m[0]-r[0])*(n[0]-m[0])>=0&&(n=m,s=l):i.log("endpt to newendpt is not vert. or horz.",r,n,m)}if(r=n,s>=0)break;f+="L"+n}if(s===t.edgepaths.length){i.log("unclosed perimeter path");break}h=s,(d=-1===p.indexOf(h))&&(h=p[0],f+="Z")}for(h=0;h<t.paths.length;h++)f+=a.smoothclosed(t.paths[h],t.smoothing);return f}function x(t,e,r,n){var a=e.width/2,o=e.height/2,s=t.x,l=t.y,u=t.theta,c=Math.cos(u)*a,f=Math.sin(u)*a,h=(s>n.center?n.right-s:s-n.left)/(c+Math.abs(Math.sin(u)*o)),p=(l>n.middle?n.bottom-l:l-n.top)/(Math.abs(f)+Math.cos(u)*o);if(h<1||p<1)return 1/0;var d=y.EDGECOST*(1/(h-1)+1/(p-1));d+=y.ANGLECOST*u*u;for(var v=s-c,g=l-f,m=s+c,x=l+f,b=0;b<r.length;b++){var _=r[b],w=Math.cos(_.theta)*_.width/2,T=Math.sin(_.theta)*_.width/2,k=2*i.segmentDistance(v,g,m,x,_.x-w,_.y-T,_.x+w,_.y+T)/(e.height+_.height),A=_.level===e.level,M=A?y.SAMELEVELDISTANCE:1;if(k<=M)return 1/0;d+=y.NEIGHBORCOST*(A?y.SAMELEVELFACTOR:1)/(k-M)}return d}function b(t){var e,r,n=t.trace._emptypoints,i=[],a=t.z.length,o=t.z[0].length,s=[];for(e=0;e<o;e++)s.push(1);for(e=0;e<a;e++)i.push(s.slice());for(e=0;e<n.length;e++)i[(r=n[e])[0]][r[1]]=0;return t.zmask=i,i}e.plot=function(t,r,o,s){var l=r.xaxis,u=r.yaxis;i.makeTraceGroups(s,o,"contour").each((function(o){var s=n.select(this),y=o[0],x=y.trace,_=y.x,w=y.y,T=x.contours,k=p(T,r,y),A=i.ensureSingle(s,"g","heatmapcoloring"),M=[];"heatmap"===T.coloring&&(M=[o]),c(t,r,M,A),f(k),h(k);var S=l.c2p(_[0],!0),E=l.c2p(_[_.length-1],!0),L=u.c2p(w[0],!0),C=u.c2p(w[w.length-1],!0),P=[[S,C],[E,C],[E,L],[S,L]],O=k;"constraint"===T.type&&(O=d(k,T._operation)),function(t,e,r){var n=i.ensureSingle(t,"g","contourbg").selectAll("path").data("fill"===r.coloring?[0]:[]);n.enter().append("path"),n.exit().remove(),n.attr("d","M"+e.join("L")+"Z").style("stroke","none")}(s,P,T),function(t,e,r,a){var o="fill"===a.coloring||"constraint"===a.type&&"="!==a._operation,s="M"+r.join("L")+"Z";o&&v(e,a);var l=i.ensureSingle(t,"g","contourfill").selectAll("path").data(o?e:[]);l.enter().append("path"),l.exit().remove(),l.each((function(t){var e=(t.prefixBoundary?s:"")+m(t,r);e?n.select(this).attr("d",e).style("stroke","none"):n.select(this).remove()}))}(s,O,P,T),function(t,r,o,s,l){var u=i.ensureSingle(t,"g","contourlines"),c=!1!==l.showlines,f=l.showlabels,h=c&&f,p=e.createLines(u,c||f,r),d=e.createLineClip(u,h,o,s.trace.uid),v=t.selectAll("g.contourlabels").data(f?[0]:[]);if(v.exit().remove(),v.enter().append("g").classed("contourlabels",!0),f){var y=[],m=[];i.clearLocationCache();var x=e.labelFormatter(o,s),b=a.tester.append("text").attr("data-notex",1).call(a.font,l.labelfont),_=r[0].xaxis,w=r[0].yaxis,T=_._length,k=w._length,A=_.range,M=w.range,S=i.aggNums(Math.min,null,s.x),E=i.aggNums(Math.max,null,s.x),L=i.aggNums(Math.min,null,s.y),C=i.aggNums(Math.max,null,s.y),P=Math.max(_.c2p(S,!0),0),O=Math.min(_.c2p(E,!0),T),I=Math.max(w.c2p(C,!0),0),D=Math.min(w.c2p(L,!0),k),z={};A[0]<A[1]?(z.left=P,z.right=O):(z.left=O,z.right=P),M[0]<M[1]?(z.top=I,z.bottom=D):(z.top=D,z.bottom=I),z.middle=(z.top+z.bottom)/2,z.center=(z.left+z.right)/2,y.push([[z.left,z.top],[z.right,z.top],[z.right,z.bottom],[z.left,z.bottom]]);var R=Math.sqrt(T*T+k*k),F=g.LABELDISTANCE*R/Math.max(1,r.length/g.LABELINCREASE);p.each((function(t){var r=e.calcTextOpts(t.level,x,b,o);n.select(this).selectAll("path").each((function(){var t=i.getVisibleSegment(this,z,r.height/2);if(t&&!(t.len<(r.width+r.height)*g.LABELMIN))for(var n=Math.min(Math.ceil(t.len/F),g.LABELMAX),a=0;a<n;a++){var o=e.findBestTextLocation(this,t,r,m,z);if(!o)break;e.addLabelData(o,r,m,y)}}))})),b.remove(),e.drawLabels(v,m,o,d,h?y:null)}f&&!c&&p.remove()}(s,k,t,y,T),function(t,e,r,n,o){var s=n.trace,l=r._fullLayout._clips,u="clip"+s.uid,c=l.selectAll("#"+u).data(s.connectgaps?[]:[0]);if(c.enter().append("clipPath").classed("contourclip",!0).attr("id",u),c.exit().remove(),!1===s.connectgaps){var p={level:.9,crossings:{},starts:[],edgepaths:[],paths:[],xaxis:e.xaxis,yaxis:e.yaxis,x:n.x,y:n.y,z:b(n),smoothing:0};f([p]),h([p]),v([p],{type:"levels"}),i.ensureSingle(c,"path","").attr("d",(p.prefixBoundary?"M"+o.join("L")+"Z":"")+m(p,o))}else u=null;a.setClipUrl(t,u,r)}(s,r,t,y,P)}))},e.createLines=function(t,e,r){var n=r[0].smoothing,i=t.selectAll("g.contourlevel").data(e?r:[]);if(i.exit().remove(),i.enter().append("g").classed("contourlevel",!0),e){var o=i.selectAll("path.openline").data((function(t){return t.pedgepaths||t.edgepaths}));o.exit().remove(),o.enter().append("path").classed("openline",!0),o.attr("d",(function(t){return a.smoothopen(t,n)})).style("stroke-miterlimit",1).style("vector-effect","non-scaling-stroke");var s=i.selectAll("path.closedline").data((function(t){return t.ppaths||t.paths}));s.exit().remove(),s.enter().append("path").classed("closedline",!0),s.attr("d",(function(t){return a.smoothclosed(t,n)})).style("stroke-miterlimit",1).style("vector-effect","non-scaling-stroke")}return i},e.createLineClip=function(t,e,r,n){var i=e?"clipline"+n:null,o=r._fullLayout._clips.selectAll("#"+i).data(e?[0]:[]);return o.exit().remove(),o.enter().append("clipPath").classed("contourlineclip",!0).attr("id",i),a.setClipUrl(t,i,r),o},e.labelFormatter=function(t,e){var r=t._fullLayout,n=e.trace,i=n.contours,a={type:"linear",_id:"ycontour",showexponent:"all",exponentformat:"B"};if(i.labelformat)a.tickformat=i.labelformat,u(a,r);else{var s=o.extractOpts(n);if(s&&s.colorbar&&s.colorbar._axis)a=s.colorbar._axis;else{if("constraint"===i.type){var c=i.value;Array.isArray(c)?a.range=[c[0],c[c.length-1]]:a.range=[c,c]}else a.range=[i.start,i.end],a.nticks=(i.end-i.start)/i.size;a.range[0]===a.range[1]&&(a.range[1]+=a.range[0]||1),a.nticks||(a.nticks=1e3),u(a,r),l.prepTicks(a),a._tmin=null,a._tmax=null}}return function(t){return l.tickText(a,t).text}},e.calcTextOpts=function(t,e,r,n){var i=e(t);r.text(i).call(s.convertToTspans,n);var o=r.node(),l=a.bBox(o,!0);return{text:i,width:l.width,height:l.height,fontSize:+o.style["font-size"].replace("px",""),level:t,dy:(l.top+l.bottom)/2}},e.findBestTextLocation=function(t,e,r,n,a){var o,s,l,u,c,f=r.width;e.isClosed?(s=e.len/y.INITIALSEARCHPOINTS,o=e.min+s/2,l=e.max):(s=(e.len-f)/(y.INITIALSEARCHPOINTS+1),o=e.min+s+f/2,l=e.max-(s+f)/2);for(var h=1/0,p=0;p<y.ITERATIONS;p++){for(var d=o;d<l;d+=s){var v=i.getTextLocation(t,e.total,d,f),g=x(v,r,n,a);g<h&&(h=g,c=v,u=d)}if(h>2*y.MAXCOST)break;p&&(s/=2),l=(o=u-s/2)+1.5*s}if(h<=y.MAXCOST)return c},e.addLabelData=function(t,e,r,n){var i=e.fontSize,a=e.width+i/3,o=Math.max(0,e.height-i/3),s=t.x,l=t.y,u=t.theta,c=Math.sin(u),f=Math.cos(u),h=function(t,e){return[s+t*f-e*c,l+t*c+e*f]},p=[h(-a/2,-o/2),h(-a/2,o/2),h(a/2,o/2),h(a/2,-o/2)];r.push({text:e.text,x:s,y:l,dy:e.dy,theta:u,level:e.level,width:a,height:o}),n.push(p)},e.drawLabels=function(t,e,r,a,o){var l=t.selectAll("text").data(e,(function(t){return t.text+","+t.x+","+t.y+","+t.theta}));if(l.exit().remove(),l.enter().append("text").attr({"data-notex":1,"text-anchor":"middle"}).each((function(t){var e=t.x+Math.sin(t.theta)*t.dy,i=t.y-Math.cos(t.theta)*t.dy;n.select(this).text(t.text).attr({x:e,y:i,transform:"rotate("+180*t.theta/Math.PI+" "+e+" "+i+")"}).call(s.convertToTspans,r)})),o){for(var u="",c=0;c<o.length;c++)u+="M"+o[c].join("L")+"Z";i.ensureSingle(a,"path","").attr("d",u)}}},18670:function(t,e,r){"use strict";var n=r(89298),i=r(71828);function a(t,e,r){var i={type:"linear",range:[t,e]};return n.autoTicks(i,(e-t)/(r||15)),i}t.exports=function(t,e){var r=t.contours;if(t.autocontour){var o=t.zmin,s=t.zmax;(t.zauto||void 0===o)&&(o=i.aggNums(Math.min,null,e)),(t.zauto||void 0===s)&&(s=i.aggNums(Math.max,null,e));var l=a(o,s,t.ncontours);r.size=l.dtick,r.start=n.tickFirst(l),l.range.reverse(),r.end=n.tickFirst(l),r.start===o&&(r.start+=r.size),r.end===s&&(r.end-=r.size),r.start>r.end&&(r.start=r.end=(r.start+r.end)/2),t._input.contours||(t._input.contours={}),i.extendFlat(t._input.contours,{start:r.start,end:r.end,size:r.size}),t._input.autocontour=!0}else if("constraint"!==r.type){var u,c=r.start,f=r.end,h=t._input.contours;c>f&&(r.start=h.start=f,f=r.end=h.end=c,c=r.start),r.size>0||(u=c===f?1:a(c,f,t.ncontours).dtick,h.size=r.size=u)}}},84426:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(70035),o=r(86068);t.exports=function(t){var e=n.select(t).selectAll("g.contour");e.style("opacity",(function(t){return t[0].trace.opacity})),e.each((function(t){var e=n.select(this),r=t[0].trace,a=r.contours,s=r.line,l=a.size||1,u=a.start,c="constraint"===a.type,f=!c&&"lines"===a.coloring,h=!c&&"fill"===a.coloring,p=f||h?o(r):null;e.selectAll("g.contourlevel").each((function(t){n.select(this).selectAll("path").call(i.lineGroupStyle,s.width,f?p(t.level):s.color,s.dash)}));var d=a.labelfont;if(e.selectAll("g.contourlabels text").each((function(t){i.font(n.select(this),{family:d.family,size:d.size,color:d.color||(f?p(t.level):s.color)})})),c)e.selectAll("g.contourfill path").style("fill",r.fillcolor);else if(h){var v;e.selectAll("g.contourfill path").style("fill",(function(t){return void 0===v&&(v=t.level),p(t.level+.5*l)})),void 0===v&&(v=u),e.selectAll("g.contourbg path").style("fill",p(v-.5*l))}})),a(t)}},8724:function(t,e,r){"use strict";var n=r(1586),i=r(14523);t.exports=function(t,e,r,a,o){var s,l=r("contours.coloring"),u="";"fill"===l&&(s=r("contours.showlines")),!1!==s&&("lines"!==l&&(u=r("line.color","#000")),r("line.width",.5),r("line.dash")),"none"!==l&&(!0!==t.showlegend&&(e.showlegend=!1),e._dfltShowLegend=!1,n(t,e,a,r,{prefix:"",cLetter:"z"})),r("line.smoothing"),i(r,a,u,o)}},88085:function(t,e,r){"use strict";var n=r(21606),i=r(70600),a=r(50693),o=r(1426).extendFlat,s=i.contours;t.exports=o({carpet:{valType:"string",editType:"calc"},z:n.z,a:n.x,a0:n.x0,da:n.dx,b:n.y,b0:n.y0,db:n.dy,text:n.text,hovertext:n.hovertext,transpose:n.transpose,atype:n.xtype,btype:n.ytype,fillcolor:i.fillcolor,autocontour:i.autocontour,ncontours:i.ncontours,contours:{type:s.type,start:s.start,end:s.end,size:s.size,coloring:{valType:"enumerated",values:["fill","lines","none"],dflt:"fill",editType:"calc"},showlines:s.showlines,showlabels:s.showlabels,labelfont:s.labelfont,labelformat:s.labelformat,operation:s.operation,value:s.value,editType:"calc",impliedEdits:{autocontour:!1}},line:{color:i.line.color,width:i.line.width,dash:i.line.dash,smoothing:i.line.smoothing,editType:"plot"},transforms:void 0},a("",{cLetter:"z",autoColorDflt:!1}))},59885:function(t,e,r){"use strict";var n=r(78803),i=r(71828),a=r(68296),o=r(4742),s=r(824),l=r(43907),u=r(70769),c=r(75005),f=r(22882),h=r(18670);t.exports=function(t,e){var r=e._carpetTrace=f(t,e);if(r&&r.visible&&"legendonly"!==r.visible){if(!e.a||!e.b){var p=t.data[r.index],d=t.data[e.index];d.a||(d.a=p.a),d.b||(d.b=p.b),c(d,e,e._defaultColor,t._fullLayout)}var v=function(t,e){var r,c,f,h,p,d,v,g=e._carpetTrace,y=g.aaxis,m=g.baxis;y._minDtick=0,m._minDtick=0,i.isArray1D(e.z)&&a(e,y,m,"a","b",["z"]),r=e._a=e._a||e.a,h=e._b=e._b||e.b,r=r?y.makeCalcdata(e,"_a"):[],h=h?m.makeCalcdata(e,"_b"):[],c=e.a0||0,f=e.da||1,p=e.b0||0,d=e.db||1,v=e._z=o(e._z||e.z,e.transpose),e._emptypoints=l(v),s(v,e._emptypoints);var x=i.maxRowLength(v),b="scaled"===e.xtype?"":r,_=u(e,b,c,f,x,y),w="scaled"===e.ytype?"":h,T={a:_,b:u(e,w,p,d,v.length,m),z:v};return"levels"===e.contours.type&&"none"!==e.contours.coloring&&n(t,e,{vals:v,containerStr:"",cLetter:"z"}),[T]}(t,e);return h(e,e._z),v}}},75005:function(t,e,r){"use strict";var n=r(71828),i=r(67684),a=r(88085),o=r(83179),s=r(67217),l=r(8724);t.exports=function(t,e,r,u){function c(r,i){return n.coerce(t,e,a,r,i)}if(c("carpet"),t.a&&t.b){if(!i(t,e,c,u,"a","b"))return void(e.visible=!1);c("text"),"constraint"===c("contours.type")?o(t,e,c,u,r,{hasHover:!1}):(s(t,e,c,(function(r){return n.coerce2(t,e,a,r)})),l(t,e,c,u,{hasHover:!1}))}else e._defaultColor=r,e._length=null}},93740:function(t,e,r){"use strict";t.exports={attributes:r(88085),supplyDefaults:r(75005),colorbar:r(90654),calc:r(59885),plot:r(51048),style:r(84426),moduleType:"trace",name:"contourcarpet",basePlotModule:r(93612),categories:["cartesian","svg","carpet","contour","symbols","showLegend","hasLines","carpetDependent","noHover","noSortingByValue"],meta:{}}},51048:function(t,e,r){"use strict";var n=r(39898),i=r(27669),a=r(67961),o=r(91424),s=r(71828),l=r(87678),u=r(81696),c=r(29854),f=r(36914),h=r(84857),p=r(87558),d=r(20083),v=r(22882),g=r(4536);function y(t,e,r){var n=t.getPointAtLength(e),i=t.getPointAtLength(r),a=i.x-n.x,o=i.y-n.y,s=Math.sqrt(a*a+o*o);return[a/s,o/s]}function m(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]/e,t[1]/e]}function x(t,e){var r=Math.abs(t[0]*e[0]+t[1]*e[1]);return Math.sqrt(1-r*r)/r}t.exports=function(t,e,r,b){var _=e.xaxis,w=e.yaxis;s.makeTraceGroups(b,r,"contour").each((function(r){var b=n.select(this),T=r[0],k=T.trace,A=k._carpetTrace=v(t,k),M=t.calcdata[A.index][0];if(A.visible&&"legendonly"!==A.visible){var S=T.a,E=T.b,L=k.contours,C=p(L,e,T),P="constraint"===L.type,O=L._operation,I=P?"="===O?"lines":"fill":L.coloring,D=[[S[0],E[E.length-1]],[S[S.length-1],E[E.length-1]],[S[S.length-1],E[0]],[S[0],E[0]]];l(C);var z=1e-8*(S[S.length-1]-S[0]),R=1e-8*(E[E.length-1]-E[0]);u(C,z,R);var F,B,N,j,U=C;"constraint"===L.type&&(U=h(C,O)),function(t,e){var r,n,i,a,o,s,l,u,c;for(r=0;r<t.length;r++){for(o=(a=t[r]).pedgepaths=[],s=a.ppaths=[],n=0;n<a.edgepaths.length;n++){for(c=a.edgepaths[n],l=[],i=0;i<c.length;i++)l[i]=e(c[i]);o.push(l)}for(n=0;n<a.paths.length;n++){for(c=a.paths[n],u=[],i=0;i<c.length;i++)u[i]=e(c[i]);s.push(u)}}}(C,q);var V=[];for(j=M.clipsegments.length-1;j>=0;j--)F=M.clipsegments[j],B=i([],F.x,_.c2p),N=i([],F.y,w.c2p),B.reverse(),N.reverse(),V.push(a(B,N,F.bicubic));var H="M"+V.join("L")+"Z";!function(t,e,r,n,o,l){var u,c,f,h,p=s.ensureSingle(t,"g","contourbg").selectAll("path").data("fill"!==l||o?[]:[0]);p.enter().append("path"),p.exit().remove();var d=[];for(h=0;h<e.length;h++)u=e[h],c=i([],u.x,r.c2p),f=i([],u.y,n.c2p),d.push(a(c,f,u.bicubic));p.attr("d","M"+d.join("L")+"Z").style("stroke","none")}(b,M.clipsegments,_,w,P,I),function(t,e,r,i,a,l,u,c,f,h,p){var v="fill"===h;v&&d(a,t.contours);var y=s.ensureSingle(e,"g","contourfill").selectAll("path").data(v?a:[]);y.enter().append("path"),y.exit().remove(),y.each((function(t){var e=(t.prefixBoundary?p:"")+function(t,e,r,n,i,a,l,u){var c,f,h,p,d,v,y,m="",x=e.edgepaths.map((function(t,e){return e})),b=!0,_=1e-4*Math.abs(r[0][0]-r[2][0]),w=1e-4*Math.abs(r[0][1]-r[2][1]);function T(t){return Math.abs(t[1]-r[0][1])<w}function k(t){return Math.abs(t[1]-r[2][1])<w}function A(t){return Math.abs(t[0]-r[0][0])<_}function M(t){return Math.abs(t[0]-r[2][0])<_}function S(t,e){var r,n,o,s,c="";for(T(t)&&!M(t)||k(t)&&!A(t)?(s=i.aaxis,o=g(i,a,[t[0],e[0]],.5*(t[1]+e[1]))):(s=i.baxis,o=g(i,a,.5*(t[0]+e[0]),[t[1],e[1]])),r=1;r<o.length;r++)for(c+=s.smoothing?"C":"L",n=0;n<o[r].length;n++){var f=o[r][n];c+=[l.c2p(f[0]),u.c2p(f[1])]+" "}return c}for(c=0,f=null;x.length;){var E=e.edgepaths[c][0];for(f&&(m+=S(f,E)),y=o.smoothopen(e.edgepaths[c].map(n),e.smoothing),m+=b?y:y.replace(/^M/,"L"),x.splice(x.indexOf(c),1),f=e.edgepaths[c][e.edgepaths[c].length-1],d=-1,p=0;p<4;p++){if(!f){s.log("Missing end?",c,e);break}for(T(f)&&!M(f)?h=r[1]:A(f)?h=r[0]:k(f)?h=r[3]:M(f)&&(h=r[2]),v=0;v<e.edgepaths.length;v++){var L=e.edgepaths[v][0];Math.abs(f[0]-h[0])<_?Math.abs(f[0]-L[0])<_&&(L[1]-f[1])*(h[1]-L[1])>=0&&(h=L,d=v):Math.abs(f[1]-h[1])<w?Math.abs(f[1]-L[1])<w&&(L[0]-f[0])*(h[0]-L[0])>=0&&(h=L,d=v):s.log("endpt to newendpt is not vert. or horz.",f,h,L)}if(d>=0)break;m+=S(f,h),f=h}if(d===e.edgepaths.length){s.log("unclosed perimeter path");break}c=d,(b=-1===x.indexOf(c))&&(c=x[0],m+=S(f,h)+"Z",f=null)}for(c=0;c<e.paths.length;c++)m+=o.smoothclosed(e.paths[c].map(n),e.smoothing);return m}(0,t,l,u,c,f,r,i);e?n.select(this).attr("d",e).style("stroke","none"):n.select(this).remove()}))}(k,b,_,w,U,D,q,A,M,I,H),function(t,e,r,i,a,l,u){var h=s.ensureSingle(t,"g","contourlines"),p=!1!==a.showlines,d=a.showlabels,v=p&&d,g=c.createLines(h,p||d,e),b=c.createLineClip(h,v,r,i.trace.uid),_=t.selectAll("g.contourlabels").data(d?[0]:[]);if(_.exit().remove(),_.enter().append("g").classed("contourlabels",!0),d){var w=l.xaxis,T=l.yaxis,k=w._length,A=T._length,M=[[[0,0],[k,0],[k,A],[0,A]]],S=[];s.clearLocationCache();var E=c.labelFormatter(r,i),L=o.tester.append("text").attr("data-notex",1).call(o.font,a.labelfont),C={left:0,right:k,center:k/2,top:0,bottom:A,middle:A/2},P=Math.sqrt(k*k+A*A),O=f.LABELDISTANCE*P/Math.max(1,e.length/f.LABELINCREASE);g.each((function(t){var e=c.calcTextOpts(t.level,E,L,r);n.select(this).selectAll("path").each((function(r){var n=this,i=s.getVisibleSegment(n,C,e.height/2);if(i&&(function(t,e,r,n,i,a){for(var o,s=0;s<r.pedgepaths.length;s++)e===r.pedgepaths[s]&&(o=r.edgepaths[s]);if(o){var l=i.a[0],u=i.a[i.a.length-1],c=i.b[0],f=i.b[i.b.length-1],h=y(t,0,1),p=y(t,n.total,n.total-1),d=g(o[0],h),v=n.total-g(o[o.length-1],p);n.min<d&&(n.min=d),n.max>v&&(n.max=v),n.len=n.max-n.min}function g(t,e){var r,n=0,o=.1;return(Math.abs(t[0]-l)<o||Math.abs(t[0]-u)<o)&&(r=m(i.dxydb_rough(t[0],t[1],o)),n=Math.max(n,a*x(e,r)/2)),(Math.abs(t[1]-c)<o||Math.abs(t[1]-f)<o)&&(r=m(i.dxyda_rough(t[0],t[1],o)),n=Math.max(n,a*x(e,r)/2)),n}}(n,r,t,i,u,e.height),!(i.len<(e.width+e.height)*f.LABELMIN)))for(var a=Math.min(Math.ceil(i.len/O),f.LABELMAX),o=0;o<a;o++){var l=c.findBestTextLocation(n,i,e,S,C);if(!l)break;c.addLabelData(l,e,S,M)}}))})),L.remove(),c.drawLabels(_,S,r,b,v?M:null)}d&&!p&&g.remove()}(b,C,t,T,L,e,A),o.setClipUrl(b,A._clipPathId,t)}function q(t){var e=A.ab2xy(t[0],t[1],!0);return[_.c2p(e[0]),w.c2p(e[1])]}}))}},64096:function(t,e,r){"use strict";var n=r(50693),i=r(5386).f,a=r(9012),o=r(99181),s=r(1426).extendFlat;t.exports=s({lon:o.lon,lat:o.lat,z:{valType:"data_array",editType:"calc"},radius:{valType:"number",editType:"plot",arrayOk:!0,min:1,dflt:30},below:{valType:"string",editType:"plot"},text:o.text,hovertext:o.hovertext,hoverinfo:s({},a.hoverinfo,{flags:["lon","lat","z","text","name"]}),hovertemplate:i(),showlegend:s({},a.showlegend,{dflt:!1})},n("",{cLetter:"z",editTypeOverride:"calc"}))},85070:function(t,e,r){"use strict";var n=r(92770),i=r(71828).isArrayOrTypedArray,a=r(50606).BADNUM,o=r(78803),s=r(71828)._;t.exports=function(t,e){for(var r=e._length,l=new Array(r),u=e.z,c=i(u)&&u.length,f=0;f<r;f++){var h=l[f]={},p=e.lon[f],d=e.lat[f];if(h.lonlat=n(p)&&n(d)?[+p,+d]:[a,a],c){var v=u[f];h.z=n(v)?v:a}}return o(t,e,{vals:c?u:[0,1],containerStr:"",cLetter:"z"}),r&&(l[0].t={labels:{lat:s(t,"lat:")+" ",lon:s(t,"lon:")+" "}}),l}},52414:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(7901),o=r(21081),s=r(50606).BADNUM,l=r(18214).makeBlank;t.exports=function(t){var e=t[0].trace,r=!0===e.visible&&0!==e._length,u=e._opts={heatmap:{layout:{visibility:"none"},paint:{}},geojson:l()};if(!r)return u;var c,f=[],h=e.z,p=e.radius,d=i.isArrayOrTypedArray(h)&&h.length,v=i.isArrayOrTypedArray(p);for(c=0;c<t.length;c++){var g=t[c],y=g.lonlat;if(y[0]!==s){var m={};if(d){var x=g.z;m.z=x!==s?x:0}v&&(m.r=n(p[c])&&p[c]>0?+p[c]:0),f.push({type:"Feature",geometry:{type:"Point",coordinates:y},properties:m})}}var b=o.extractOpts(e),_=b.reversescale?o.flipScale(b.colorscale):b.colorscale,w=_[0][1],T=["interpolate",["linear"],["heatmap-density"],0,a.opacity(w)<1?w:a.addOpacity(w,0)];for(c=1;c<_.length;c++)T.push(_[c][0],_[c][1]);var k=["interpolate",["linear"],["get","z"],b.min,0,b.max,1];return i.extendFlat(u.heatmap.paint,{"heatmap-weight":d?k:1/(b.max-b.min),"heatmap-color":T,"heatmap-radius":v?{type:"identity",property:"r"}:e.radius,"heatmap-opacity":e.opacity}),u.geojson={type:"FeatureCollection",features:f},u.heatmap.layout.visibility="visible",u}},79429:function(t,e,r){"use strict";var n=r(71828),i=r(1586),a=r(64096);t.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s("lon")||[],u=s("lat")||[],c=Math.min(l.length,u.length);c?(e._length=c,s("z"),s("radius"),s("below"),s("text"),s("hovertext"),s("hovertemplate"),i(t,e,o,s,{prefix:"",cLetter:"z"})):e.visible=!1}},62474:function(t){"use strict";t.exports=function(t,e){return t.lon=e.lon,t.lat=e.lat,t.z=e.z,t}},84684:function(t,e,r){"use strict";var n=r(89298),i=r(28178).hoverPoints,a=r(28178).getExtraText;t.exports=function(t,e,r){var o=i(t,e,r);if(o){var s=o[0],l=s.cd,u=l[0].trace,c=l[s.index];if(delete s.color,"z"in c){var f=s.subplot.mockAxis;s.z=c.z,s.zLabel=n.tickText(f,f.c2l(c.z),"hover").text}return s.extraText=a(u,c,l[0].t.labels),[s]}}},93814:function(t,e,r){"use strict";t.exports={attributes:r(64096),supplyDefaults:r(79429),colorbar:r(61243),formatLabels:r(15636),calc:r(85070),plot:r(7336),hoverPoints:r(84684),eventData:r(62474),getBelow:function(t,e){for(var r=e.getMapLayers(),n=0;n<r.length;n++){var i=r[n],a=i.id;if("symbol"===i.type&&"string"==typeof a&&-1===a.indexOf("plotly-"))return a}},moduleType:"trace",name:"densitymapbox",basePlotModule:r(50101),categories:["mapbox","gl","showLegend"],meta:{hr_name:"density_mapbox"}}},7336:function(t,e,r){"use strict";var n=r(52414),i=r(77734).traceLayerPrefix;function a(t,e){this.type="densitymapbox",this.subplot=t,this.uid=e,this.sourceId="source-"+e,this.layerList=[["heatmap",i+e+"-heatmap"]],this.below=null}var o=a.prototype;o.update=function(t){var e=this.subplot,r=this.layerList,i=n(t),a=e.belowLookup["trace-"+this.uid];e.map.getSource(this.sourceId).setData(i.geojson),a!==this.below&&(this._removeLayers(),this._addLayers(i,a),this.below=a);for(var o=0;o<r.length;o++){var s=r[o],l=s[0],u=s[1],c=i[l];e.setOptions(u,"setLayoutProperty",c.layout),"visible"===c.layout.visibility&&e.setOptions(u,"setPaintProperty",c.paint)}},o._addLayers=function(t,e){for(var r=this.subplot,n=this.layerList,i=this.sourceId,a=0;a<n.length;a++){var o=n[a],s=o[0],l=t[s];r.addLayer({type:s,id:o[1],source:i,layout:l.layout,paint:l.paint},e)}},o._removeLayers=function(){for(var t=this.subplot.map,e=this.layerList,r=e.length-1;r>=0;r--)t.removeLayer(e[r][1])},o.dispose=function(){var t=this.subplot.map;this._removeLayers(),t.removeSource(this.sourceId)},t.exports=function(t,e){var r=e[0].trace,i=new a(t,r.uid),o=i.sourceId,s=n(e),l=i.below=t.belowLookup["trace-"+r.uid];return t.map.addSource(o,{type:"geojson",data:s.geojson}),i._addLayers(s,l),i}},49789:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){for(var r=0;r<t.length;r++)t[r].i=r;n.mergeArray(e.text,t,"tx"),n.mergeArray(e.hovertext,t,"htx");var i=e.marker;if(i){n.mergeArray(i.opacity,t,"mo"),n.mergeArray(i.color,t,"mc");var a=i.line;a&&(n.mergeArray(a.color,t,"mlc"),n.mergeArrayCastPositive(a.width,t,"mlw"))}}},1285:function(t,e,r){"use strict";var n,i=r(1486),a=r(82196).line,o=r(9012),s=r(12663).axisHoverFormat,l=r(5386).f,u=r(5386).s,c=r(18517),f=r(1426).extendFlat,h=r(7901);t.exports={x:i.x,x0:i.x0,dx:i.dx,y:i.y,y0:i.y0,dy:i.dy,xperiod:i.xperiod,yperiod:i.yperiod,xperiod0:i.xperiod0,yperiod0:i.yperiod0,xperiodalignment:i.xperiodalignment,yperiodalignment:i.yperiodalignment,xhoverformat:s("x"),yhoverformat:s("y"),hovertext:i.hovertext,hovertemplate:l({},{keys:c.eventDataKeys}),hoverinfo:f({},o.hoverinfo,{flags:["name","x","y","text","percent initial","percent previous","percent total"]}),textinfo:{valType:"flaglist",flags:["label","text","percent initial","percent previous","percent total","value"],extras:["none"],editType:"plot",arrayOk:!1},texttemplate:u({editType:"plot"},{keys:c.eventDataKeys.concat(["label","value"])}),text:i.text,textposition:i.textposition,insidetextanchor:f({},i.insidetextanchor,{dflt:"middle"}),textangle:f({},i.textangle,{dflt:0}),textfont:i.textfont,insidetextfont:i.insidetextfont,outsidetextfont:i.outsidetextfont,constraintext:i.constraintext,cliponaxis:i.cliponaxis,orientation:f({},i.orientation,{}),offset:f({},i.offset,{arrayOk:!1}),width:f({},i.width,{arrayOk:!1}),marker:(n=f({},i.marker),delete n.pattern,n),connector:{fillcolor:{valType:"color",editType:"style"},line:{color:f({},a.color,{dflt:h.defaultLine}),width:f({},a.width,{dflt:0,editType:"plot"}),dash:a.dash,editType:"style"},visible:{valType:"boolean",dflt:!0,editType:"plot"},editType:"plot"},offsetgroup:i.offsetgroup,alignmentgroup:i.alignmentgroup}},9532:function(t,e,r){"use strict";var n=r(89298),i=r(42973),a=r(49789),o=r(66279),s=r(50606).BADNUM;function l(t){return t===s?0:t}t.exports=function(t,e){var r,u,c,f,h,p,d,v,g=n.getFromId(t,e.xaxis||"x"),y=n.getFromId(t,e.yaxis||"y");"h"===e.orientation?(r=g.makeCalcdata(e,"x"),c=y.makeCalcdata(e,"y"),f=i(e,y,"y",c),h=!!e.yperiodalignment,p="y"):(r=y.makeCalcdata(e,"y"),c=g.makeCalcdata(e,"x"),f=i(e,g,"x",c),h=!!e.xperiodalignment,p="x"),u=f.vals;var m,x=Math.min(u.length,r.length),b=new Array(x);for(e._base=[],d=0;d<x;d++){r[d]<0&&(r[d]=s);var _=!1;r[d]!==s&&d+1<x&&r[d+1]!==s&&(_=!0),v=b[d]={p:u[d],s:r[d],cNext:_},e._base[d]=-.5*v.s,h&&(b[d].orig_p=c[d],b[d][p+"End"]=f.ends[d],b[d][p+"Start"]=f.starts[d]),e.ids&&(v.id=String(e.ids[d])),0===d&&(b[0].vTotal=0),b[0].vTotal+=l(v.s),v.begR=l(v.s)/l(b[0].s)}for(d=0;d<x;d++)(v=b[d]).s!==s&&(v.sumR=v.s/b[0].vTotal,v.difR=void 0!==m?v.s/m:1,m=v.s);return a(b,e),o(b,e),b}},18517:function(t){"use strict";t.exports={eventDataKeys:["percentInitial","percentPrevious","percentTotal"]}},8984:function(t,e,r){"use strict";var n=r(11661).setGroupPositions;t.exports=function(t,e){var r,i,a=t._fullLayout,o=t._fullData,s=t.calcdata,l=e.xaxis,u=e.yaxis,c=[],f=[],h=[];for(i=0;i<o.length;i++){var p=o[i],d="h"===p.orientation;!0===p.visible&&p.xaxis===l._id&&p.yaxis===u._id&&"funnel"===p.type&&(r=s[i],d?h.push(r):f.push(r),c.push(r))}var v={mode:a.funnelmode,norm:a.funnelnorm,gap:a.funnelgap,groupgap:a.funnelgroupgap};for(n(t,l,u,f,v),n(t,u,l,h,v),i=0;i<c.length;i++){r=c[i];for(var g=0;g<r.length;g++)g+1<r.length&&(r[g].nextP0=r[g+1].p0,r[g].nextS0=r[g+1].s0,r[g].nextP1=r[g+1].p1,r[g].nextS1=r[g+1].s1)}}},26199:function(t,e,r){"use strict";var n=r(71828),i=r(26125),a=r(90769).handleText,o=r(67513),s=r(73927),l=r(1285),u=r(7901);t.exports={supplyDefaults:function(t,e,r,i){function c(r,i){return n.coerce(t,e,l,r,i)}if(o(t,e,i,c)){s(t,e,i,c),c("xhoverformat"),c("yhoverformat"),c("orientation",e.y&&!e.x?"v":"h"),c("offset"),c("width");var f=c("text");c("hovertext"),c("hovertemplate");var h=c("textposition");a(t,e,i,c,h,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!0,moduleHasCliponaxis:!0,moduleHasTextangle:!0,moduleHasInsideanchor:!0}),"none"===e.textposition||e.texttemplate||c("textinfo",Array.isArray(f)?"text+value":"value");var p=c("marker.color",r);c("marker.line.color",u.defaultLine),c("marker.line.width"),c("connector.visible")&&(c("connector.fillcolor",function(t){var e=n.isArrayOrTypedArray(t)?"#000":t;return u.addOpacity(e,.5*u.opacity(e))}(p)),c("connector.line.width")&&(c("connector.line.color"),c("connector.line.dash")))}else e.visible=!1},crossTraceDefaults:function(t,e){var r,a;function o(t){return n.coerce(a._input,a,l,t)}if("group"===e.funnelmode)for(var s=0;s<t.length;s++)r=(a=t[s])._input,i(r,a,e,o)}}},34598:function(t){"use strict";t.exports=function(t,e){return t.x="xVal"in e?e.xVal:e.x,t.y="yVal"in e?e.yVal:e.y,"percentInitial"in e&&(t.percentInitial=e.percentInitial),"percentPrevious"in e&&(t.percentPrevious=e.percentPrevious),"percentTotal"in e&&(t.percentTotal=e.percentTotal),e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),t}},63341:function(t,e,r){"use strict";var n=r(7901).opacity,i=r(95423).hoverOnBars,a=r(71828).formatPercent;t.exports=function(t,e,r,o,s){var l=i(t,e,r,o,s);if(l){var u=l.cd,c=u[0].trace,f="h"===c.orientation,h=u[l.index];l[(f?"x":"y")+"LabelVal"]=h.s,l.percentInitial=h.begR,l.percentInitialLabel=a(h.begR,1),l.percentPrevious=h.difR,l.percentPreviousLabel=a(h.difR,1),l.percentTotal=h.sumR,l.percentTotalLabel=a(h.sumR,1);var p=h.hi||c.hoverinfo,d=[];if(p&&"none"!==p&&"skip"!==p){var v="all"===p,g=p.split("+"),y=function(t){return v||-1!==g.indexOf(t)};y("percent initial")&&d.push(l.percentInitialLabel+" of initial"),y("percent previous")&&d.push(l.percentPreviousLabel+" of previous"),y("percent total")&&d.push(l.percentTotalLabel+" of total")}return l.extraText=d.join("<br>"),l.color=function(t,e){var r=t.marker,i=e.mc||r.color,a=e.mlc||r.line.color,o=e.mlw||r.line.width;return n(i)?i:n(a)&&o?a:void 0}(c,h),[l]}}},51759:function(t,e,r){"use strict";t.exports={attributes:r(1285),layoutAttributes:r(10440),supplyDefaults:r(26199).supplyDefaults,crossTraceDefaults:r(26199).crossTraceDefaults,supplyLayoutDefaults:r(93138),calc:r(9532),crossTraceCalc:r(8984),plot:r(80461),style:r(68266).style,hoverPoints:r(63341),eventData:r(34598),selectPoints:r(81974),moduleType:"trace",name:"funnel",basePlotModule:r(93612),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},10440:function(t){"use strict";t.exports={funnelmode:{valType:"enumerated",values:["stack","group","overlay"],dflt:"stack",editType:"calc"},funnelgap:{valType:"number",min:0,max:1,editType:"calc"},funnelgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},93138:function(t,e,r){"use strict";var n=r(71828),i=r(10440);t.exports=function(t,e,r){var a=!1;function o(r,a){return n.coerce(t,e,i,r,a)}for(var s=0;s<r.length;s++){var l=r[s];if(l.visible&&"funnel"===l.type){a=!0;break}}a&&(o("funnelmode"),o("funnelgap",.2),o("funnelgroupgap"))}},80461:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424),o=r(50606).BADNUM,s=r(17295),l=r(72597).clearMinTextSize;function u(t,e,r,n){var i=[],a=[],o=n?e:r,s=n?r:e;return i[0]=o.c2p(t.s0,!0),a[0]=s.c2p(t.p0,!0),i[1]=o.c2p(t.s1,!0),a[1]=s.c2p(t.p1,!0),i[2]=o.c2p(t.nextS0,!0),a[2]=s.c2p(t.nextP0,!0),i[3]=o.c2p(t.nextS1,!0),a[3]=s.c2p(t.nextP1,!0),n?[i,a]:[a,i]}t.exports=function(t,e,r,c){var f=t._fullLayout;l("funnel",f),function(t,e,r,s){var l=e.xaxis,c=e.yaxis;i.makeTraceGroups(s,r,"trace bars").each((function(r){var s=n.select(this),f=r[0].trace,h=i.ensureSingle(s,"g","regions");if(f.connector&&f.connector.visible){var p="h"===f.orientation,d=h.selectAll("g.region").data(i.identity);d.enter().append("g").classed("region",!0),d.exit().remove();var v=d.size();d.each((function(r,s){if(s===v-1||r.cNext){var f=u(r,l,c,p),h=f[0],d=f[1],g="";h[0]!==o&&d[0]!==o&&h[1]!==o&&d[1]!==o&&h[2]!==o&&d[2]!==o&&h[3]!==o&&d[3]!==o&&(g+=p?"M"+h[0]+","+d[1]+"L"+h[2]+","+d[2]+"H"+h[3]+"L"+h[1]+","+d[1]+"Z":"M"+h[1]+","+d[1]+"L"+h[2]+","+d[3]+"V"+d[2]+"L"+h[1]+","+d[0]+"Z"),""===g&&(g="M0,0Z"),i.ensureSingle(n.select(this),"path").attr("d",g).call(a.setClipUrl,e.layerClipId,t)}}))}else h.remove()}))}(t,e,r,c),function(t,e,r,o){var s=e.xaxis,l=e.yaxis;i.makeTraceGroups(o,r,"trace bars").each((function(r){var o=n.select(this),c=r[0].trace,f=i.ensureSingle(o,"g","lines");if(c.connector&&c.connector.visible&&c.connector.line.width){var h="h"===c.orientation,p=f.selectAll("g.line").data(i.identity);p.enter().append("g").classed("line",!0),p.exit().remove();var d=p.size();p.each((function(r,o){if(o===d-1||r.cNext){var c=u(r,s,l,h),f=c[0],p=c[1],v="";void 0!==f[3]&&void 0!==p[3]&&(h?(v+="M"+f[0]+","+p[1]+"L"+f[2]+","+p[2],v+="M"+f[1]+","+p[1]+"L"+f[3]+","+p[2]):(v+="M"+f[1]+","+p[1]+"L"+f[2]+","+p[3],v+="M"+f[1]+","+p[0]+"L"+f[2]+","+p[2])),""===v&&(v="M0,0Z"),i.ensureSingle(n.select(this),"path").attr("d",v).call(a.setClipUrl,e.layerClipId,t)}}))}else f.remove()}))}(t,e,r,c),s.plot(t,e,r,c,{mode:f.funnelmode,norm:f.funnelmode,gap:f.funnelgap,groupgap:f.funnelgroupgap})}},68266:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(7901),o=r(37822).DESELECTDIM,s=r(16688),l=r(72597).resizeText,u=s.styleTextPoints;t.exports={style:function(t,e,r){var s=r||n.select(t).selectAll("g.funnellayer").selectAll("g.trace");l(t,s,"funnel"),s.style("opacity",(function(t){return t[0].trace.opacity})),s.each((function(e){var r=n.select(this),s=e[0].trace;r.selectAll(".point > path").each((function(t){if(!t.isBlank){var e=s.marker;n.select(this).call(a.fill,t.mc||e.color).call(a.stroke,t.mlc||e.line.color).call(i.dashLine,e.line.dash,t.mlw||e.line.width).style("opacity",s.selectedpoints&&!t.selected?o:1)}})),u(r,s,t),r.selectAll(".regions").each((function(){n.select(this).selectAll("path").style("stroke-width",0).call(a.fill,s.connector.fillcolor)})),r.selectAll(".lines").each((function(){var t=s.connector.line;i.lineGroupStyle(n.select(this).selectAll("path"),t.width,t.color,t.dash)}))}))}}},86807:function(t,e,r){"use strict";var n=r(34e3),i=r(9012),a=r(27670).Y,o=r(5386).f,s=r(5386).s,l=r(1426).extendFlat;t.exports={labels:n.labels,label0:n.label0,dlabel:n.dlabel,values:n.values,marker:{colors:n.marker.colors,line:{color:l({},n.marker.line.color,{dflt:null}),width:l({},n.marker.line.width,{dflt:1}),editType:"calc"},editType:"calc"},text:n.text,hovertext:n.hovertext,scalegroup:l({},n.scalegroup,{}),textinfo:l({},n.textinfo,{flags:["label","text","value","percent"]}),texttemplate:s({editType:"plot"},{keys:["label","color","value","text","percent"]}),hoverinfo:l({},i.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:o({},{keys:["label","color","value","text","percent"]}),textposition:l({},n.textposition,{values:["inside","none"],dflt:"inside"}),textfont:n.textfont,insidetextfont:n.insidetextfont,title:{text:n.title.text,font:n.title.font,position:l({},n.title.position,{values:["top left","top center","top right"],dflt:"top center"}),editType:"plot"},domain:a({name:"funnelarea",trace:!0,editType:"calc"}),aspectratio:{valType:"number",min:0,dflt:1,editType:"plot"},baseratio:{valType:"number",min:0,max:1,dflt:.333,editType:"plot"}}},6452:function(t,e,r){"use strict";var n=r(74875);e.name="funnelarea",e.plot=function(t,r,i,a){n.plotBasePlot(e.name,t,r,i,a)},e.clean=function(t,r,i,a){n.cleanBasePlot(e.name,t,r,i,a)}},89574:function(t,e,r){"use strict";var n=r(32354);t.exports={calc:function(t,e){return n.calc(t,e)},crossTraceCalc:function(t){n.crossTraceCalc(t,{type:"funnelarea"})}}},86282:function(t,e,r){"use strict";var n=r(71828),i=r(86807),a=r(27670).c,o=r(90769).handleText,s=r(37434).handleLabelsAndValues;t.exports=function(t,e,r,l){function u(r,a){return n.coerce(t,e,i,r,a)}var c=u("labels"),f=u("values"),h=s(c,f),p=h.len;if(e._hasLabels=h.hasLabels,e._hasValues=h.hasValues,!e._hasLabels&&e._hasValues&&(u("label0"),u("dlabel")),p){e._length=p,u("marker.line.width")&&u("marker.line.color",l.paper_bgcolor),u("marker.colors"),u("scalegroup");var d,v=u("text"),g=u("texttemplate");if(g||(d=u("textinfo",Array.isArray(v)?"text+percent":"percent")),u("hovertext"),u("hovertemplate"),g||d&&"none"!==d){var y=u("textposition");o(t,e,l,u,y,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1})}a(e,l,u),u("title.text")&&(u("title.position"),n.coerceFont(u,"title.font",l.font)),u("aspectratio"),u("baseratio")}else e.visible=!1}},10421:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"funnelarea",basePlotModule:r(6452),categories:["pie-like","funnelarea","showLegend"],attributes:r(86807),layoutAttributes:r(80097),supplyDefaults:r(86282),supplyLayoutDefaults:r(57402),calc:r(89574).calc,crossTraceCalc:r(89574).crossTraceCalc,plot:r(79187),style:r(71858),styleOne:r(63463),meta:{}}},80097:function(t,e,r){"use strict";var n=r(92774).hiddenlabels;t.exports={hiddenlabels:n,funnelareacolorway:{valType:"colorlist",editType:"calc"},extendfunnelareacolors:{valType:"boolean",dflt:!0,editType:"calc"}}},57402:function(t,e,r){"use strict";var n=r(71828),i=r(80097);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("hiddenlabels"),r("funnelareacolorway",e.colorway),r("extendfunnelareacolors")}},79187:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(71828),o=a.strScale,s=a.strTranslate,l=r(63893),u=r(17295).toMoveInsideBar,c=r(72597),f=c.recordMinTextSize,h=c.clearMinTextSize,p=r(53581),d=r(14575),v=d.attachFxHandlers,g=d.determineInsideTextFont,y=d.layoutAreas,m=d.prerenderTitles,x=d.positionTitleOutside,b=d.formatSliceLabel;function _(t,e){return"l"+(e[0]-t[0])+","+(e[1]-t[1])}t.exports=function(t,e){var r=t._context.staticPlot,c=t._fullLayout;h("funnelarea",c),m(e,t),y(e,c._size),a.makeTraceGroups(c._funnelarealayer,e,"trace").each((function(e){var h=n.select(this),d=e[0],y=d.trace;!function(t){if(t.length){var e=t[0],r=e.trace,n=r.aspectratio,i=r.baseratio;i>.999&&(i=.999);var a,o,s,l=Math.pow(i,2),u=e.vTotal,c=u,f=u*l/(1-l)/u,h=[];for(h.push(E()),o=t.length-1;o>-1;o--)if(!(s=t[o]).hidden){var p=s.v/c;f+=p,h.push(E())}var d=1/0,v=-1/0;for(o=0;o<h.length;o++)a=h[o],d=Math.min(d,a[1]),v=Math.max(v,a[1]);for(o=0;o<h.length;o++)h[o][1]-=(v+d)/2;var g=h[h.length-1][0],y=e.r,m=(v-d)/2,x=y/g,b=y/m*n;for(e.r=b*m,o=0;o<h.length;o++)h[o][0]*=x,h[o][1]*=b;var _,w,T=[-(a=h[0])[0],a[1]],k=[a[0],a[1]],A=0;for(o=t.length-1;o>-1;o--)if(!(s=t[o]).hidden){var M=h[A+=1][0],S=h[A][1];s.TL=[-M,S],s.TR=[M,S],s.BL=T,s.BR=k,s.pxmid=(_=s.TR,w=s.BR,[.5*(_[0]+w[0]),.5*(_[1]+w[1])]),T=s.TL,k=s.TR}}function E(){var t,e={x:t=Math.sqrt(f),y:-t};return[e.x,e.y]}}(e),h.each((function(){var h=n.select(this).selectAll("g.slice").data(e);h.enter().append("g").classed("slice",!0),h.exit().remove(),h.each((function(o,s){if(o.hidden)n.select(this).selectAll("path,g").remove();else{o.pointNumber=o.i,o.curveNumber=y.index;var h=d.cx,m=d.cy,x=n.select(this),w=x.selectAll("path.surface").data([o]);w.enter().append("path").classed("surface",!0).style({"pointer-events":r?"none":"all"}),x.call(v,t,e);var T="M"+(h+o.TR[0])+","+(m+o.TR[1])+_(o.TR,o.BR)+_(o.BR,o.BL)+_(o.BL,o.TL)+"Z";w.attr("d",T),b(t,o,d);var k=p.castOption(y.textposition,o.pts),A=x.selectAll("g.slicetext").data(o.text&&"none"!==k?[0]:[]);A.enter().append("g").classed("slicetext",!0),A.exit().remove(),A.each((function(){var r=a.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),p=a.ensureUniformFontSize(t,g(y,o,c.font));r.text(o.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(i.font,p).call(l.convertToTspans,t);var d,v,x,b=i.bBox(r.node()),_=Math.min(o.BL[1],o.BR[1])+m,w=Math.max(o.TL[1],o.TR[1])+m;v=Math.max(o.TL[0],o.BL[0])+h,x=Math.min(o.TR[0],o.BR[0])+h,(d=u(v,x,_,w,b,{isHorizontal:!0,constrained:!0,angle:0,anchor:"middle"})).fontSize=p.size,f(y.type,d,c),e[s].transform=d,a.setTransormAndDisplay(r,d)}))}}));var m=n.select(this).selectAll("g.titletext").data(y.title.text?[0]:[]);m.enter().append("g").classed("titletext",!0),m.exit().remove(),m.each((function(){var e=a.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),r=y.title.text;y._meta&&(r=a.templateString(r,y._meta)),e.text(r).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(i.font,y.title.font).call(l.convertToTspans,t);var u=x(d,c._size);e.attr("transform",s(u.x,u.y)+o(Math.min(1,u.scale))+s(u.tx,u.ty))}))}))}))}},71858:function(t,e,r){"use strict";var n=r(39898),i=r(63463),a=r(72597).resizeText;t.exports=function(t){var e=t._fullLayout._funnelarealayer.selectAll(".trace");a(t,e,"funnelarea"),e.each((function(t){var e=t[0].trace,r=n.select(this);r.style({opacity:e.opacity}),r.selectAll("path.surface").each((function(t){n.select(this).call(i,t,e)}))}))}},21606:function(t,e,r){"use strict";var n=r(82196),i=r(9012),a=r(41940),o=r(12663).axisHoverFormat,s=r(5386).f,l=r(5386).s,u=r(50693),c=r(1426).extendFlat;t.exports=c({z:{valType:"data_array",editType:"calc"},x:c({},n.x,{impliedEdits:{xtype:"array"}}),x0:c({},n.x0,{impliedEdits:{xtype:"scaled"}}),dx:c({},n.dx,{impliedEdits:{xtype:"scaled"}}),y:c({},n.y,{impliedEdits:{ytype:"array"}}),y0:c({},n.y0,{impliedEdits:{ytype:"scaled"}}),dy:c({},n.dy,{impliedEdits:{ytype:"scaled"}}),xperiod:c({},n.xperiod,{impliedEdits:{xtype:"scaled"}}),yperiod:c({},n.yperiod,{impliedEdits:{ytype:"scaled"}}),xperiod0:c({},n.xperiod0,{impliedEdits:{xtype:"scaled"}}),yperiod0:c({},n.yperiod0,{impliedEdits:{ytype:"scaled"}}),xperiodalignment:c({},n.xperiodalignment,{impliedEdits:{xtype:"scaled"}}),yperiodalignment:c({},n.yperiodalignment,{impliedEdits:{ytype:"scaled"}}),text:{valType:"data_array",editType:"calc"},hovertext:{valType:"data_array",editType:"calc"},transpose:{valType:"boolean",dflt:!1,editType:"calc"},xtype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},ytype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},zsmooth:{valType:"enumerated",values:["fast","best",!1],dflt:!1,editType:"calc"},hoverongaps:{valType:"boolean",dflt:!0,editType:"none"},connectgaps:{valType:"boolean",editType:"calc"},xgap:{valType:"number",dflt:0,min:0,editType:"plot"},ygap:{valType:"number",dflt:0,min:0,editType:"plot"},xhoverformat:o("x"),yhoverformat:o("y"),zhoverformat:o("z",1),hovertemplate:s(),texttemplate:l({arrayOk:!1,editType:"plot"},{keys:["x","y","z","text"]}),textfont:a({editType:"plot",autoSize:!0,autoColor:!0,colorEditType:"style"}),showlegend:c({},i.showlegend,{dflt:!1})},{transforms:void 0},u("",{cLetter:"z",autoColorDflt:!1}))},90757:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(89298),o=r(42973),s=r(17562),l=r(78803),u=r(68296),c=r(4742),f=r(824),h=r(43907),p=r(70769),d=r(50606).BADNUM;function v(t){for(var e=[],r=t.length,n=0;n<r;n++){var i=t[n];i!==d&&e.push(i)}return e}t.exports=function(t,e){var r,g,y,m,x,b,_,w,T,k,A,M=a.getFromId(t,e.xaxis||"x"),S=a.getFromId(t,e.yaxis||"y"),E=n.traceIs(e,"contour"),L=n.traceIs(e,"histogram"),C=n.traceIs(e,"gl2d"),P=E?"best":e.zsmooth;if(M._minDtick=0,S._minDtick=0,L)m=(A=s(t,e)).orig_x,r=A.x,g=A.x0,y=A.dx,w=A.orig_y,x=A.y,b=A.y0,_=A.dy,T=A.z;else{var O=e.z;i.isArray1D(O)?(u(e,M,S,"x","y",["z"]),r=e._x,x=e._y,O=e._z):(m=e.x?M.makeCalcdata(e,"x"):[],w=e.y?S.makeCalcdata(e,"y"):[],r=o(e,M,"x",m).vals,x=o(e,S,"y",w).vals,e._x=r,e._y=x),g=e.x0,y=e.dx,b=e.y0,_=e.dy,T=c(O,e,M,S)}function I(t){P=e._input.zsmooth=e.zsmooth=!1,i.warn('cannot use zsmooth: "fast": '+t)}if((M.rangebreaks||S.rangebreaks)&&(T=function(t,e,r){for(var n=[],i=-1,a=0;a<r.length;a++)if(e[a]!==d){n[++i]=[];for(var o=0;o<r[a].length;o++)t[o]!==d&&n[i].push(r[a][o])}return n}(r,x,T),L||(r=v(r),x=v(x),e._x=r,e._y=x)),L||!E&&!e.connectgaps||(e._emptypoints=h(T),f(T,e._emptypoints)),"fast"===P)if("log"===M.type||"log"===S.type)I("log axis found");else if(!L){if(r.length){var D=(r[r.length-1]-r[0])/(r.length-1),z=Math.abs(D/100);for(k=0;k<r.length-1;k++)if(Math.abs(r[k+1]-r[k]-D)>z){I("x scale is not linear");break}}if(x.length&&"fast"===P){var R=(x[x.length-1]-x[0])/(x.length-1),F=Math.abs(R/100);for(k=0;k<x.length-1;k++)if(Math.abs(x[k+1]-x[k]-R)>F){I("y scale is not linear");break}}}var B=i.maxRowLength(T),N="scaled"===e.xtype?"":r,j=p(e,N,g,y,B,M),U="scaled"===e.ytype?"":x,V=p(e,U,b,_,T.length,S);C||(e._extremes[M._id]=a.findExtremes(M,j),e._extremes[S._id]=a.findExtremes(S,V));var H={x:j,y:V,z:T,text:e._text||e.text,hovertext:e._hovertext||e.hovertext};if(e.xperiodalignment&&m&&(H.orig_x=m),e.yperiodalignment&&w&&(H.orig_y=w),N&&N.length===j.length-1&&(H.xCenter=N),U&&U.length===V.length-1&&(H.yCenter=U),L&&(H.xRanges=A.xRanges,H.yRanges=A.yRanges,H.pts=A.pts),E||l(t,e,{vals:T,cLetter:"z"}),E&&e.contours&&"heatmap"===e.contours.coloring){var q={type:"contour"===e.type?"heatmap":"histogram2d",xcalendar:e.xcalendar,ycalendar:e.ycalendar};H.xfill=p(q,N,g,y,B,M),H.yfill=p(q,U,b,_,T.length,S)}return[H]}},4742:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(50606).BADNUM;t.exports=function(t,e,r,o){var s,l,u,c,f,h;function p(t){if(n(t))return+t}if(e&&e.transpose){for(s=0,f=0;f<t.length;f++)s=Math.max(s,t[f].length);if(0===s)return!1;u=function(t){return t.length},c=function(t,e,r){return(t[r]||[])[e]}}else s=t.length,u=function(t,e){return t[e].length},c=function(t,e,r){return(t[e]||[])[r]};var d=function(t,e,r){return e===a||r===a?a:c(t,e,r)};function v(t){if(e&&"carpet"!==e.type&&"contourcarpet"!==e.type&&t&&"category"===t.type&&e["_"+t._id.charAt(0)].length){var r=t._id.charAt(0),n={},o=e["_"+r+"CategoryMap"]||e[r];for(f=0;f<o.length;f++)n[o[f]]=f;return function(e){var r=n[t._categories[e]];return r+1?r:a}}return i.identity}var g=v(r),y=v(o);o&&"category"===o.type&&(s=o._categories.length);var m=new Array(s);for(f=0;f<s;f++)for(l=r&&"category"===r.type?r._categories.length:u(t,f),m[f]=new Array(l),h=0;h<l;h++)m[f][h]=p(d(t,y(f),g(h)));return m}},61243:function(t){"use strict";t.exports={min:"zmin",max:"zmax"}},68296:function(t,e,r){"use strict";var n=r(71828),i=r(50606).BADNUM,a=r(42973);t.exports=function(t,e,r,o,s,l){var u=t._length,c=e.makeCalcdata(t,o),f=r.makeCalcdata(t,s);c=a(t,e,o,c).vals,f=a(t,r,s,f).vals;var h,p,d,v,g=t.text,y=void 0!==g&&n.isArray1D(g),m=t.hovertext,x=void 0!==m&&n.isArray1D(m),b=n.distinctVals(c),_=b.vals,w=n.distinctVals(f),T=w.vals,k=[],A=T.length,M=_.length;for(h=0;h<l.length;h++)k[h]=n.init2dArray(A,M);y&&(d=n.init2dArray(A,M)),x&&(v=n.init2dArray(A,M));var S=n.init2dArray(A,M);for(h=0;h<u;h++)if(c[h]!==i&&f[h]!==i){var E=n.findBin(c[h]+b.minDiff/2,_),L=n.findBin(f[h]+w.minDiff/2,T);for(p=0;p<l.length;p++){var C=t[l[p]];k[p][L][E]=C[h],S[L][E]=h}y&&(d[L][E]=g[h]),x&&(v[L][E]=m[h])}for(t["_"+o]=_,t["_"+s]=T,p=0;p<l.length;p++)t["_"+l[p]]=k[p];y&&(t._text=d),x&&(t._hovertext=v),e&&"category"===e.type&&(t["_"+o+"CategoryMap"]=_.map((function(t){return e._categories[t]}))),r&&"category"===r.type&&(t["_"+s+"CategoryMap"]=T.map((function(t){return r._categories[t]}))),t._after2before=S}},76382:function(t,e,r){"use strict";var n=r(71828),i=r(67684),a=r(58623),o=r(73927),s=r(49901),l=r(1586),u=r(21606);t.exports=function(t,e,r,c){function f(r,i){return n.coerce(t,e,u,r,i)}i(t,e,f,c)?(o(t,e,c,f),f("xhoverformat"),f("yhoverformat"),f("text"),f("hovertext"),f("hovertemplate"),a(f,c),s(t,e,f,c),f("hoverongaps"),f("connectgaps",n.isArray1D(e.z)&&!1!==e.zsmooth),l(t,e,c,f,{prefix:"",cLetter:"z"})):e.visible=!1}},43907:function(t,e,r){"use strict";var n=r(71828).maxRowLength;t.exports=function(t){var e,r,i,a,o,s,l,u,c=[],f={},h=[],p=t[0],d=[],v=[0,0,0],g=n(t);for(r=0;r<t.length;r++)for(e=d,d=p,p=t[r+1]||[],i=0;i<g;i++)void 0===d[i]&&((s=(void 0!==d[i-1]?1:0)+(void 0!==d[i+1]?1:0)+(void 0!==e[i]?1:0)+(void 0!==p[i]?1:0))?(0===r&&s++,0===i&&s++,r===t.length-1&&s++,i===d.length-1&&s++,s<4&&(f[[r,i]]=[r,i,s]),c.push([r,i,s])):h.push([r,i]));for(;h.length;){for(l={},u=!1,o=h.length-1;o>=0;o--)(s=((f[[(r=(a=h[o])[0])-1,i=a[1]]]||v)[2]+(f[[r+1,i]]||v)[2]+(f[[r,i-1]]||v)[2]+(f[[r,i+1]]||v)[2])/20)&&(l[a]=[r,i,s],h.splice(o,1),u=!0);if(!u)throw"findEmpties iterated with no new neighbors";for(a in l)f[a]=l[a],c.push(l[a])}return c.sort((function(t,e){return e[2]-t[2]}))}},46248:function(t,e,r){"use strict";var n=r(30211),i=r(71828),a=r(89298),o=r(21081).extractOpts;t.exports=function(t,e,r,s,l){l||(l={});var u,c,f,h,p=l.isContour,d=t.cd[0],v=d.trace,g=t.xa,y=t.ya,m=d.x,x=d.y,b=d.z,_=d.xCenter,w=d.yCenter,T=d.zmask,k=v.zhoverformat,A=m,M=x;if(!1!==t.index){try{f=Math.round(t.index[1]),h=Math.round(t.index[0])}catch(e){return void i.error("Error hovering on heatmap, pointNumber must be [row,col], found:",t.index)}if(f<0||f>=b[0].length||h<0||h>b.length)return}else{if(n.inbox(e-m[0],e-m[m.length-1],0)>0||n.inbox(r-x[0],r-x[x.length-1],0)>0)return;if(p){var S;for(A=[2*m[0]-m[1]],S=1;S<m.length;S++)A.push((m[S]+m[S-1])/2);for(A.push([2*m[m.length-1]-m[m.length-2]]),M=[2*x[0]-x[1]],S=1;S<x.length;S++)M.push((x[S]+x[S-1])/2);M.push([2*x[x.length-1]-x[x.length-2]])}f=Math.max(0,Math.min(A.length-2,i.findBin(e,A))),h=Math.max(0,Math.min(M.length-2,i.findBin(r,M)))}var E,L,C=g.c2p(m[f]),P=g.c2p(m[f+1]),O=y.c2p(x[h]),I=y.c2p(x[h+1]);p?(E=d.orig_x||m,L=d.orig_y||x,P=C,u=E[f],I=O,c=L[h]):(E=d.orig_x||_||m,L=d.orig_y||w||x,u=_?E[f]:(E[f]+E[f+1])/2,c=w?L[h]:(L[h]+L[h+1])/2,g&&"category"===g.type&&(u=m[f]),y&&"category"===y.type&&(c=x[h]),v.zsmooth&&(C=P=g.c2p(u),O=I=y.c2p(c)));var D=b[h][f];if(T&&!T[h][f]&&(D=void 0),void 0!==D||v.hoverongaps){var z;Array.isArray(d.hovertext)&&Array.isArray(d.hovertext[h])?z=d.hovertext[h][f]:Array.isArray(d.text)&&Array.isArray(d.text[h])&&(z=d.text[h][f]);var R=o(v),F={type:"linear",range:[R.min,R.max],hoverformat:k,_separators:g._separators,_numFormat:g._numFormat},B=a.tickText(F,D,"hover").text;return[i.extendFlat(t,{index:v._after2before?v._after2before[h][f]:[h,f],distance:t.maxHoverDistance,spikeDistance:t.maxSpikeDistance,x0:C,x1:P,y0:O,y1:I,xLabelVal:u,yLabelVal:c,zLabelVal:D,zLabel:B,text:z})]}}},92165:function(t,e,r){"use strict";t.exports={attributes:r(21606),supplyDefaults:r(76382),calc:r(90757),plot:r(50347),colorbar:r(61243),style:r(70035),hoverPoints:r(46248),moduleType:"trace",name:"heatmap",basePlotModule:r(93612),categories:["cartesian","svg","2dMap","showLegend"],meta:{}}},824:function(t,e,r){"use strict";var n=r(71828),i=[[-1,0],[1,0],[0,-1],[0,1]];function a(t){return.5-.25*Math.min(1,.5*t)}function o(t,e,r){var n,a,o,s,l,u,c,f,h,p,d,v,g,y=0;for(s=0;s<e.length;s++){for(a=(n=e[s])[0],o=n[1],d=t[a][o],p=0,h=0,l=0;l<4;l++)(c=t[a+(u=i[l])[0]])&&void 0!==(f=c[o+u[1]])&&(0===p?v=g=f:(v=Math.min(v,f),g=Math.max(g,f)),h++,p+=f);if(0===h)throw"iterateInterp2d order is wrong: no defined neighbors";t[a][o]=p/h,void 0===d?h<4&&(y=1):(t[a][o]=(1+r)*t[a][o]-r*d,g>v&&(y=Math.max(y,Math.abs(t[a][o]-d)/(g-v))))}return y}t.exports=function(t,e){var r,i=1;for(o(t,e),r=0;r<e.length&&!(e[r][2]<4);r++);for(e=e.slice(r),r=0;r<100&&i>.01;r++)i=o(t,e,a(i));return i>.01&&n.log("interp2d didn't converge quickly",i),t}},58623:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){t("texttemplate");var r=n.extendFlat({},e.font,{color:"auto",size:"auto"});n.coerceFont(t,"textfont",r)}},70769:function(t,e,r){"use strict";var n=r(73972),i=r(71828).isArrayOrTypedArray;t.exports=function(t,e,r,a,o,s){var l,u,c,f=[],h=n.traceIs(t,"contour"),p=n.traceIs(t,"histogram"),d=n.traceIs(t,"gl2d");if(i(e)&&e.length>1&&!p&&"category"!==s.type){var v=e.length;if(!(v<=o))return h?e.slice(0,o):e.slice(0,o+1);if(h||d)f=e.slice(0,o);else if(1===o)f=[e[0]-.5,e[0]+.5];else{for(f=[1.5*e[0]-.5*e[1]],c=1;c<v;c++)f.push(.5*(e[c-1]+e[c]));f.push(1.5*e[v-1]-.5*e[v-2])}if(v<o){var g=f[f.length-1],y=g-f[f.length-2];for(c=v;c<o;c++)g+=y,f.push(g)}}else{var m=t[s._id.charAt(0)+"calendar"];for(l=p?s.r2c(r,0,m):i(e)&&1===e.length?e[0]:void 0===r?0:("log"===s.type?s.d2c:s.r2c)(r,0,m),u=a||1,c=h||d?0:-.5;c<o;c++)f.push(l+u*c)}return f}},50347:function(t,e,r){"use strict";var n=r(39898),i=r(84267),a=r(73972),o=r(91424),s=r(89298),l=r(71828),u=r(63893),c=r(8225),f=r(7901),h=r(21081).extractOpts,p=r(21081).makeColorScaleFuncFromTrace,d=r(77922),v=r(18783).LINE_SPACING,g="heatmap-label";function y(t){return t.selectAll("g."+g)}function m(t){y(t).remove()}function x(t,e){var r=e.length-2,n=l.constrain(l.findBin(t,e),0,r),i=e[n],a=e[n+1],o=l.constrain(n+(t-i)/(a-i)-.5,0,r),s=Math.round(o),u=Math.abs(o-s);return o&&o!==r&&u?{bin0:s,frac:u,bin1:Math.round(s+u/(o-s))}:{bin0:s,bin1:s,frac:0}}function b(t,e){var r=e.length-1,n=l.constrain(l.findBin(t,e),0,r),i=e[n],a=(t-i)/(e[n+1]-i)||0;return a<=0?{bin0:n,bin1:n,frac:0}:a<.5?{bin0:n,bin1:n+1,frac:a}:{bin0:n+1,bin1:n,frac:1-a}}function _(t,e,r){t[e]=r[0],t[e+1]=r[1],t[e+2]=r[2],t[e+3]=Math.round(255*r[3])}t.exports=function(t,e,r,w){var T=e.xaxis,k=e.yaxis;l.makeTraceGroups(w,r,"hm").each((function(e){var r,w,A,M,S,E,L,C,P=n.select(this),O=e[0],I=O.trace,D=I.xgap||0,z=I.ygap||0,R=O.z,F=O.x,B=O.y,N=O.xCenter,j=O.yCenter,U=a.traceIs(I,"contour"),V=U?"best":I.zsmooth,H=R.length,q=l.maxRowLength(R),G=!1,Z=!1;for(E=0;void 0===r&&E<F.length-1;)r=T.c2p(F[E]),E++;for(E=F.length-1;void 0===w&&E>0;)w=T.c2p(F[E]),E--;for(w<r&&(A=w,w=r,r=A,G=!0),E=0;void 0===M&&E<B.length-1;)M=k.c2p(B[E]),E++;for(E=B.length-1;void 0===S&&E>0;)S=k.c2p(B[E]),E--;if(S<M&&(A=M,M=S,S=A,Z=!0),U&&(N=F,j=B,F=O.xfill,B=O.yfill),"fast"!==V){var Y="best"===V?0:.5;r=Math.max(-Y*T._length,r),w=Math.min((1+Y)*T._length,w),M=Math.max(-Y*k._length,M),S=Math.min((1+Y)*k._length,S)}var W,X,J=Math.round(w-r),K=Math.round(S-M);if(J<=0||K<=0)return P.selectAll("image").data([]).exit().remove(),void m(P);"fast"===V?(W=q,X=H):(W=J,X=K);var $=document.createElement("canvas");$.width=W,$.height=X;var Q,tt,et=$.getContext("2d"),rt=p(I,{noNumericCheck:!0,returnArray:!0});"fast"===V?(Q=G?function(t){return q-1-t}:l.identity,tt=Z?function(t){return H-1-t}:l.identity):(Q=function(t){return l.constrain(Math.round(T.c2p(F[t])-r),0,J)},tt=function(t){return l.constrain(Math.round(k.c2p(B[t])-M),0,K)});var nt,it,at,ot,st=tt(0),lt=[st,st],ut=G?0:1,ct=Z?0:1,ft=0,ht=0,pt=0,dt=0;function vt(t,e){if(void 0!==t){var r=rt(t);return r[0]=Math.round(r[0]),r[1]=Math.round(r[1]),r[2]=Math.round(r[2]),ft+=e,ht+=r[0]*e,pt+=r[1]*e,dt+=r[2]*e,r}return[0,0,0,0]}function gt(t,e,r,n){var i=t[r.bin0];if(void 0===i)return vt(void 0,1);var a,o=t[r.bin1],s=e[r.bin0],l=e[r.bin1],u=o-i||0,c=s-i||0;return a=void 0===o?void 0===l?0:void 0===s?2*(l-i):2*(2*l-s-i)/3:void 0===l?void 0===s?0:2*(2*i-o-s)/3:void 0===s?2*(2*l-o-i)/3:l+i-o-s,vt(i+r.frac*u+n.frac*(c+r.frac*a))}if(V){var yt,mt=0;try{yt=new Uint8Array(J*K*4)}catch(t){yt=new Array(J*K*4)}if("best"===V){var xt,bt,_t,wt=N||F,Tt=j||B,kt=new Array(wt.length),At=new Array(Tt.length),Mt=new Array(J),St=N?b:x,Et=j?b:x;for(E=0;E<wt.length;E++)kt[E]=Math.round(T.c2p(wt[E])-r);for(E=0;E<Tt.length;E++)At[E]=Math.round(k.c2p(Tt[E])-M);for(E=0;E<J;E++)Mt[E]=St(E,kt);for(L=0;L<K;L++)for(bt=R[(xt=Et(L,At)).bin0],_t=R[xt.bin1],E=0;E<J;E++,mt+=4)_(yt,mt,ot=gt(bt,_t,Mt[E],xt))}else for(L=0;L<H;L++)for(at=R[L],lt=tt(L),E=0;E<J;E++)ot=vt(at[E],1),_(yt,mt=4*(lt*J+Q(E)),ot);var Lt=et.createImageData(J,K);try{Lt.data.set(yt)}catch(t){var Ct=Lt.data,Pt=Ct.length;for(L=0;L<Pt;L++)Ct[L]=yt[L]}et.putImageData(Lt,0,0)}else{var Ot=Math.floor(D/2),It=Math.floor(z/2);for(L=0;L<H;L++)if(at=R[L],lt.reverse(),lt[ct]=tt(L+1),lt[0]!==lt[1]&&void 0!==lt[0]&&void 0!==lt[1])for(nt=[it=Q(0),it],E=0;E<q;E++)nt.reverse(),nt[ut]=Q(E+1),nt[0]!==nt[1]&&void 0!==nt[0]&&void 0!==nt[1]&&(ot=vt(at[E],(nt[1]-nt[0])*(lt[1]-lt[0])),et.fillStyle="rgba("+ot.join(",")+")",et.fillRect(nt[0]+Ot,lt[0]+It,nt[1]-nt[0]-D,lt[1]-lt[0]-z))}ht=Math.round(ht/ft),pt=Math.round(pt/ft),dt=Math.round(dt/ft);var Dt=i("rgb("+ht+","+pt+","+dt+")");t._hmpixcount=(t._hmpixcount||0)+ft,t._hmlumcount=(t._hmlumcount||0)+ft*Dt.getLuminance();var zt=P.selectAll("image").data(e);zt.enter().append("svg:image").attr({xmlns:d.svg,preserveAspectRatio:"none"}),zt.attr({height:K,width:J,x:r,y:M,"xlink:href":$.toDataURL("image/png")}),m(P);var Rt=I.texttemplate;if(Rt){var Ft=h(I),Bt={type:"linear",range:[Ft.min,Ft.max],_separators:T._separators,_numFormat:T._numFormat},Nt="histogram2dcontour"===I.type,jt="contour"===I.type,Ut=jt?H-1:H,Vt=jt?1:0,Ht=jt?q-1:q,qt=[];for(E=jt?1:0;E<Ut;E++){var Gt;if(jt)Gt=O.y[E];else if(Nt){if(0===E||E===H-1)continue;Gt=O.y[E]}else if(O.yCenter)Gt=O.yCenter[E];else{if(E+1===H&&void 0===O.y[E+1])continue;Gt=(O.y[E]+O.y[E+1])/2}var Zt=Math.round(k.c2p(Gt));if(!(0>Zt||Zt>k._length))for(L=Vt;L<Ht;L++){var Yt;if(jt)Yt=O.x[L];else if(Nt){if(0===L||L===q-1)continue;Yt=O.x[L]}else if(O.xCenter)Yt=O.xCenter[L];else{if(L+1===q&&void 0===O.x[L+1])continue;Yt=(O.x[L]+O.x[L+1])/2}var Wt=Math.round(T.c2p(Yt));if(!(0>Wt||Wt>T._length)){var Xt=c({x:Yt,y:Gt},I,t._fullLayout);Xt.x=Yt,Xt.y=Gt;var Jt=O.z[E][L];void 0===Jt?(Xt.z="",Xt.zLabel=""):(Xt.z=Jt,Xt.zLabel=s.tickText(Bt,Jt,"hover").text);var Kt=O.text&&O.text[E]&&O.text[E][L];void 0!==Kt&&!1!==Kt||(Kt=""),Xt.text=Kt;var $t=l.texttemplateString(Rt,Xt,t._fullLayout._d3locale,Xt,I._meta||{});if($t){var Qt=$t.split("<br>"),te=Qt.length,ee=0;for(C=0;C<te;C++)ee=Math.max(ee,Qt[C].length);qt.push({l:te,c:ee,t:$t,x:Wt,y:Zt,z:Jt})}}}}var re=I.textfont,ne=re.family,ie=re.size,ae=t._fullLayout.font.size;if(!ie||"auto"===ie){var oe=1/0,se=1/0,le=0,ue=0;for(C=0;C<qt.length;C++){var ce=qt[C];if(le=Math.max(le,ce.l),ue=Math.max(ue,ce.c),C<qt.length-1){var fe=qt[C+1],he=Math.abs(fe.x-ce.x),pe=Math.abs(fe.y-ce.y);he&&(oe=Math.min(oe,he)),pe&&(se=Math.min(se,pe))}}isFinite(oe)&&isFinite(se)?(oe-=D,se-=z,oe/=ue,se/=le,oe/=v/2,se/=v,ie=Math.min(Math.floor(oe),Math.floor(se),ae)):ie=ae}if(ie<=0||!isFinite(ie))return;y(P).data(qt).enter().append("g").classed(g,1).append("text").attr("text-anchor","middle").each((function(e){var r=n.select(this),i=re.color;i&&"auto"!==i||(i=f.contrast("rgba("+rt(e.z).join()+")")),r.attr("data-notex",1).call(u.positionText,function(t){return t.x}(e),function(t){return t.y-ie*(t.l*v/2-1)}(e)).call(o.font,ne,ie,i).text(e.t).call(u.convertToTspans,t)}))}}))}},70035:function(t,e,r){"use strict";var n=r(39898);t.exports=function(t){n.select(t).selectAll(".hm image").style("opacity",(function(t){return t.trace.opacity}))}},49901:function(t){"use strict";t.exports=function(t,e,r){!1===r("zsmooth")&&(r("xgap"),r("ygap")),r("zhoverformat")}},67684:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(73972);function o(t,e){var r=e(t);return"scaled"===(r?e(t+"type","array"):"scaled")&&(e(t+"0"),e("d"+t)),r}t.exports=function(t,e,r,s,l,u){var c,f,h=r("z");if(l=l||"x",u=u||"y",void 0===h||!h.length)return 0;if(i.isArray1D(t.z)){c=r(l),f=r(u);var p=i.minRowLength(c),d=i.minRowLength(f);if(0===p||0===d)return 0;e._length=Math.min(p,d,h.length)}else{if(c=o(l,r),f=o(u,r),!function(t){for(var e,r=!0,a=!1,o=!1,s=0;s<t.length;s++){if(e=t[s],!i.isArrayOrTypedArray(e)){r=!1;break}e.length>0&&(a=!0);for(var l=0;l<e.length;l++)if(n(e[l])){o=!0;break}}return r&&a&&o}(h))return 0;r("transpose"),e._length=null}return"heatmapgl"===t.type||a.getComponentMethod("calendars","handleTraceDefaults")(t,e,[l,u],s),!0}},16063:function(t,e,r){"use strict";for(var n=r(21606),i=r(50693),a=r(1426).extendFlat,o=r(30962).overrideAll,s=["z","x","x0","dx","y","y0","dy","text","transpose","xtype","ytype"],l={},u=0;u<s.length;u++){var c=s[u];l[c]=n[c]}l.zsmooth={valType:"enumerated",values:["fast",!1],dflt:"fast",editType:"calc"},a(l,i("",{cLetter:"z",autoColorDflt:!1})),t.exports=o(l,"calc","nested")},59560:function(t,e,r){"use strict";var n=r(9330).gl_heatmap2d,i=r(89298),a=r(78614);function o(t,e){this.scene=t,this.uid=e,this.type="heatmapgl",this.name="",this.hoverinfo="all",this.xData=[],this.yData=[],this.zData=[],this.textLabels=[],this.idToIndex=[],this.bounds=[0,0,0,0],this.options={zsmooth:"fast",z:[],x:[],y:[],shape:[0,0],colorLevels:[0],colorValues:[0,0,0,1]},this.heatmap=n(t.glplot,this.options),this.heatmap._trace=this}var s=o.prototype;s.handlePick=function(t){var e=this.options,r=e.shape,n=t.pointId,i=n%r[0],a=Math.floor(n/r[0]),o=n;return{trace:this,dataCoord:t.dataCoord,traceCoord:[e.x[i],e.y[a],e.z[o]],textLabel:this.textLabels[n],name:this.name,pointIndex:[a,i],hoverinfo:this.hoverinfo}},s.update=function(t,e){var r=e[0];this.index=t.index,this.name=t.name,this.hoverinfo=t.hoverinfo;var n=r.z;this.options.z=[].concat.apply([],n);var o=n[0].length,s=n.length;this.options.shape=[o,s],this.options.x=r.x,this.options.y=r.y,this.options.zsmooth=t.zsmooth;var l=function(t){for(var e=t.colorscale,r=t.zmin,n=t.zmax,i=e.length,o=new Array(i),s=new Array(4*i),l=0;l<i;l++){var u=e[l],c=a(u[1]);o[l]=r+u[0]*(n-r);for(var f=0;f<4;f++)s[4*l+f]=c[f]}return{colorLevels:o,colorValues:s}}(t);this.options.colorLevels=l.colorLevels,this.options.colorValues=l.colorValues,this.textLabels=[].concat.apply([],t.text),this.heatmap.update(this.options);var u,c,f=this.scene.xaxis,h=this.scene.yaxis;!1===t.zsmooth&&(u={ppad:r.x[1]-r.x[0]},c={ppad:r.y[1]-r.y[0]}),t._extremes[f._id]=i.findExtremes(f,r.x,u),t._extremes[h._id]=i.findExtremes(h,r.y,c)},s.dispose=function(){this.heatmap.dispose()},t.exports=function(t,e,r){var n=new o(t,e.uid);return n.update(e,r),n}},19600:function(t,e,r){"use strict";var n=r(71828),i=r(67684),a=r(1586),o=r(16063);t.exports=function(t,e,r,s){function l(r,i){return n.coerce(t,e,o,r,i)}i(t,e,l,s)?(l("text"),l("zsmooth"),a(t,e,s,l,{prefix:"",cLetter:"z"})):e.visible=!1}},3325:function(t,e,r){"use strict";["*heatmapgl* trace is deprecated!","Please consider switching to the *heatmap* or *image* trace types.","Alternatively you could contribute/sponsor rewriting this trace type","based on cartesian features and using regl framework."].join(" "),t.exports={attributes:r(16063),supplyDefaults:r(19600),colorbar:r(61243),calc:r(90757),plot:r(59560),moduleType:"trace",name:"heatmapgl",basePlotModule:r(4796),categories:["gl","gl2d","2dMap"],meta:{}}},7745:function(t,e,r){"use strict";var n=r(1486),i=r(12663).axisHoverFormat,a=r(5386).f,o=r(5386).s,s=r(41940),l=r(17656),u=r(72406),c=r(1426).extendFlat;t.exports={x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},xhoverformat:i("x"),yhoverformat:i("y"),text:c({},n.text,{}),hovertext:c({},n.hovertext,{}),orientation:n.orientation,histfunc:{valType:"enumerated",values:["count","sum","avg","min","max"],dflt:"count",editType:"calc"},histnorm:{valType:"enumerated",values:["","percent","probability","density","probability density"],dflt:"",editType:"calc"},cumulative:{enabled:{valType:"boolean",dflt:!1,editType:"calc"},direction:{valType:"enumerated",values:["increasing","decreasing"],dflt:"increasing",editType:"calc"},currentbin:{valType:"enumerated",values:["include","exclude","half"],dflt:"include",editType:"calc"},editType:"calc"},nbinsx:{valType:"integer",min:0,dflt:0,editType:"calc"},xbins:l("x",!0),nbinsy:{valType:"integer",min:0,dflt:0,editType:"calc"},ybins:l("y",!0),autobinx:{valType:"boolean",dflt:null,editType:"calc"},autobiny:{valType:"boolean",dflt:null,editType:"calc"},bingroup:{valType:"string",dflt:"",editType:"calc"},hovertemplate:a({},{keys:u.eventDataKeys}),texttemplate:o({arrayOk:!1,editType:"plot"},{keys:["label","value"]}),textposition:c({},n.textposition,{arrayOk:!1}),textfont:s({arrayOk:!1,editType:"plot",colorEditType:"style"}),outsidetextfont:s({arrayOk:!1,editType:"plot",colorEditType:"style"}),insidetextfont:s({arrayOk:!1,editType:"plot",colorEditType:"style"}),insidetextanchor:n.insidetextanchor,textangle:n.textangle,cliponaxis:n.cliponaxis,constraintext:n.constraintext,marker:n.marker,offsetgroup:n.offsetgroup,alignmentgroup:n.alignmentgroup,selected:n.selected,unselected:n.unselected,_deprecated:{bardir:n._deprecated.bardir}}},42174:function(t){"use strict";t.exports=function(t,e){for(var r=t.length,n=0,i=0;i<r;i++)e[i]?(t[i]/=e[i],n+=t[i]):t[i]=null;return n}},17656:function(t){"use strict";t.exports=function(t,e){return{start:{valType:"any",editType:"calc"},end:{valType:"any",editType:"calc"},size:{valType:"any",editType:"calc"},editType:"calc"}}},59575:function(t,e,r){"use strict";var n=r(92770);t.exports={count:function(t,e,r){return r[t]++,1},sum:function(t,e,r,i){var a=i[e];return n(a)?(a=Number(a),r[t]+=a,a):0},avg:function(t,e,r,i,a){var o=i[e];return n(o)&&(o=Number(o),r[t]+=o,a[t]++),0},min:function(t,e,r,i){var a=i[e];if(n(a)){if(a=Number(a),!n(r[t]))return r[t]=a,a;if(r[t]>a){var o=a-r[t];return r[t]=a,o}}return 0},max:function(t,e,r,i){var a=i[e];if(n(a)){if(a=Number(a),!n(r[t]))return r[t]=a,a;if(r[t]<a){var o=a-r[t];return r[t]=a,o}}return 0}}},40965:function(t,e,r){"use strict";var n=r(50606),i=n.ONEAVGYEAR,a=n.ONEAVGMONTH,o=n.ONEDAY,s=n.ONEHOUR,l=n.ONEMIN,u=n.ONESEC,c=r(89298).tickIncrement;function f(t,e,r,n){if(t*e<=0)return 1/0;for(var i=Math.abs(e-t),a="date"===r.type,o=h(i,a),s=0;s<10;s++){var l=h(80*o,a);if(o===l)break;if(!p(l,t,e,a,r,n))break;o=l}return o}function h(t,e){return e&&t>u?t>o?t>1.1*i?i:t>1.1*a?a:o:t>s?s:t>l?l:u:Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function p(t,e,r,n,a,s){if(n&&t>o){var l=d(e,a,s),u=d(r,a,s),c=t===i?0:1;return l[c]!==u[c]}return Math.floor(r/t)-Math.floor(e/t)>.1}function d(t,e,r){var n=e.c2d(t,i,r).split("-");return""===n[0]&&(n.unshift(),n[0]="-"+n[0]),n}t.exports=function(t,e,r,n,a){var s,l,u=-1.1*e,h=-.1*e,p=t-h,d=r[0],v=r[1],g=Math.min(f(d+h,d+p,n,a),f(v+h,v+p,n,a)),y=Math.min(f(d+u,d+h,n,a),f(v+u,v+h,n,a));if(g>y&&y<Math.abs(v-d)/4e3?(s=g,l=!1):(s=Math.min(g,y),l=!0),"date"===n.type&&s>o){var m=s===i?1:6,x=s===i?"M12":"M1";return function(e,r){var o=n.c2d(e,i,a),s=o.indexOf("-",m);s>0&&(o=o.substr(0,s));var u=n.d2c(o,0,a);if(u<e){var f=c(u,x,!1,a);(u+f)/2<e+t&&(u=f)}return r&&l?c(u,x,!0,a):u}}return function(e,r){var n=s*Math.round(e/s);return n+s/10<e&&n+.9*s<e+t&&(n+=s),r&&l&&(n-=s),n}}},72138:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(73972),o=r(89298),s=r(75341),l=r(59575),u=r(36362),c=r(42174),f=r(40965);function h(t,e,r,s,l){var u,c,f,p,d,v,g,y=s+"bins",m=t._fullLayout,x=e["_"+s+"bingroup"],b=m._histogramBinOpts[x],_="overlay"===m.barmode,w=function(t){return r.r2c(t,0,p)},T=function(t){return r.c2r(t,0,p)},k="date"===r.type?function(t){return t||0===t?i.cleanDate(t,null,p):null}:function(t){return n(t)?Number(t):null};function A(t,e,r){e[t+"Found"]?(e[t]=k(e[t]),null===e[t]&&(e[t]=r[t])):(v[t]=e[t]=r[t],i.nestedProperty(c[0],y+"."+t).set(r[t]))}if(e["_"+s+"autoBinFinished"])delete e["_"+s+"autoBinFinished"];else{c=b.traces;var M=[],S=!0,E=!1,L=!1;for(u=0;u<c.length;u++)if((f=c[u]).visible){var C=b.dirs[u];d=f["_"+C+"pos0"]=r.makeCalcdata(f,C),M=i.concat(M,d),delete f["_"+s+"autoBinFinished"],!0===e.visible&&(S?S=!1:(delete f._autoBin,f["_"+s+"autoBinFinished"]=1),a.traceIs(f,"2dMap")&&(E=!0),"histogram2dcontour"===f.type&&(L=!0))}p=c[0][s+"calendar"];var P=o.autoBin(M,r,b.nbins,E,p,b.sizeFound&&b.size),O=c[0]._autoBin={};if(v=O[b.dirs[0]]={},L&&(b.size||(P.start=T(o.tickIncrement(w(P.start),P.size,!0,p))),void 0===b.end&&(P.end=T(o.tickIncrement(w(P.end),P.size,!1,p)))),_&&!a.traceIs(e,"2dMap")&&0===P._dataSpan&&"category"!==r.type&&"multicategory"!==r.type){if(l)return[P,d,!0];P=function(t,e,r,n,a){var o,s,l,u=t._fullLayout,c=function(t,e){for(var r=e.xaxis,n=e.yaxis,i=e.orientation,a=[],o=t._fullData,s=0;s<o.length;s++){var l=o[s];"histogram"===l.type&&!0===l.visible&&l.orientation===i&&l.xaxis===r&&l.yaxis===n&&a.push(l)}return a}(t,e),f=!1,p=1/0,d=[e];for(o=0;o<c.length;o++)if((s=c[o])===e)f=!0;else if(f){var v=h(t,s,r,n,!0),g=v[0],y=v[2];s["_"+n+"autoBinFinished"]=1,s["_"+n+"pos0"]=v[1],y?d.push(s):p=Math.min(p,g.size)}else l=u._histogramBinOpts[s["_"+n+"bingroup"]],p=Math.min(p,l.size||s[a].size);var m=new Array(d.length);for(o=0;o<d.length;o++)for(var x=d[o]["_"+n+"pos0"],b=0;b<x.length;b++)if(void 0!==x[b]){m[o]=x[b];break}for(isFinite(p)||(p=i.distinctVals(m).minDiff),o=0;o<d.length;o++){var _=(s=d[o])[n+"calendar"],w={start:r.c2r(m[o]-p/2,0,_),end:r.c2r(m[o]+p/2,0,_),size:p};s._input[a]=s[a]=w,(l=u._histogramBinOpts[s["_"+n+"bingroup"]])&&i.extendFlat(l,w)}return e[a]}(t,e,r,s,y)}(g=f.cumulative||{}).enabled&&"include"!==g.currentbin&&("decreasing"===g.direction?P.start=T(o.tickIncrement(w(P.start),P.size,!0,p)):P.end=T(o.tickIncrement(w(P.end),P.size,!1,p))),b.size=P.size,b.sizeFound||(v.size=P.size,i.nestedProperty(c[0],y+".size").set(P.size)),A("start",b,P),A("end",b,P)}d=e["_"+s+"pos0"],delete e["_"+s+"pos0"];var I=e._input[y]||{},D=i.extendFlat({},b),z=b.start,R=r.r2l(I.start),F=void 0!==R;if((b.startFound||F)&&R!==r.r2l(z)){var B=F?R:i.aggNums(Math.min,null,d),N={type:"category"===r.type||"multicategory"===r.type?"linear":r.type,r2l:r.r2l,dtick:b.size,tick0:z,calendar:p,range:[B,o.tickIncrement(B,b.size,!1,p)].map(r.l2r)},j=o.tickFirst(N);j>r.r2l(B)&&(j=o.tickIncrement(j,b.size,!0,p)),D.start=r.l2r(j),F||i.nestedProperty(e,y+".start").set(D.start)}var U=b.end,V=r.r2l(I.end),H=void 0!==V;if((b.endFound||H)&&V!==r.r2l(U)){var q=H?V:i.aggNums(Math.max,null,d);D.end=r.l2r(q),H||i.nestedProperty(e,y+".start").set(D.end)}var G="autobin"+s;return!1===e._input[G]&&(e._input[y]=i.extendFlat({},e[y]||{}),delete e._input[G],delete e[G]),[D,d]}t.exports={calc:function(t,e){var r,a,p,d,v=[],g=[],y="h"===e.orientation,m=o.getFromId(t,y?e.yaxis:e.xaxis),x=y?"y":"x",b={x:"y",y:"x"}[x],_=e[x+"calendar"],w=e.cumulative,T=h(t,e,m,x),k=T[0],A=T[1],M="string"==typeof k.size,S=[],E=M?S:k,L=[],C=[],P=[],O=0,I=e.histnorm,D=e.histfunc,z=-1!==I.indexOf("density");w.enabled&&z&&(I=I.replace(/ ?density$/,""),z=!1);var R,F="max"===D||"min"===D?null:0,B=l.count,N=u[I],j=!1,U=function(t){return m.r2c(t,0,_)};for(i.isArrayOrTypedArray(e[b])&&"count"!==D&&(R=e[b],j="avg"===D,B=l[D]),r=U(k.start),p=U(k.end)+(r-o.tickIncrement(r,k.size,!1,_))/1e6;r<p&&v.length<1e6&&(a=o.tickIncrement(r,k.size,!1,_),v.push((r+a)/2),g.push(F),P.push([]),S.push(r),z&&L.push(1/(a-r)),j&&C.push(0),!(a<=r));)r=a;S.push(r),M||"date"!==m.type||(E={start:U(E.start),end:U(E.end),size:E.size}),t._fullLayout._roundFnOpts||(t._fullLayout._roundFnOpts={});var V=e["_"+x+"bingroup"],H={leftGap:1/0,rightGap:1/0};V&&(t._fullLayout._roundFnOpts[V]||(t._fullLayout._roundFnOpts[V]=H),H=t._fullLayout._roundFnOpts[V]);var q,G=g.length,Z=!0,Y=H.leftGap,W=H.rightGap,X={};for(r=0;r<A.length;r++){var J=A[r];(d=i.findBin(J,E))>=0&&d<G&&(O+=B(d,r,g,R,C),Z&&P[d].length&&J!==A[P[d][0]]&&(Z=!1),P[d].push(r),X[r]=d,Y=Math.min(Y,J-S[d]),W=Math.min(W,S[d+1]-J))}H.leftGap=Y,H.rightGap=W,Z||(q=function(e,r){return function(){var n=t._fullLayout._roundFnOpts[V];return f(n.leftGap,n.rightGap,S,m,_)(e,r)}}),j&&(O=c(g,C)),N&&N(g,O,L),w.enabled&&function(t,e,r){var n,i,a;function o(e){a=t[e],t[e]/=2}function s(e){i=t[e],t[e]=a+i/2,a+=i}if("half"===r)if("increasing"===e)for(o(0),n=1;n<t.length;n++)s(n);else for(o(t.length-1),n=t.length-2;n>=0;n--)s(n);else if("increasing"===e){for(n=1;n<t.length;n++)t[n]+=t[n-1];"exclude"===r&&(t.unshift(0),t.pop())}else{for(n=t.length-2;n>=0;n--)t[n]+=t[n+1];"exclude"===r&&(t.push(0),t.shift())}}(g,w.direction,w.currentbin);var K=Math.min(v.length,g.length),$=[],Q=0,tt=K-1;for(r=0;r<K;r++)if(g[r]){Q=r;break}for(r=K-1;r>=Q;r--)if(g[r]){tt=r;break}for(r=Q;r<=tt;r++)if(n(v[r])&&n(g[r])){var et={p:v[r],s:g[r],b:0};w.enabled||(et.pts=P[r],Z?et.ph0=et.ph1=P[r].length?A[P[r][0]]:v[r]:(e._computePh=!0,et.ph0=q(S[r]),et.ph1=q(S[r+1],!0))),$.push(et)}return 1===$.length&&($[0].width1=o.tickIncrement($[0].p,k.size,!1,_)-$[0].p),s($,e),i.isArrayOrTypedArray(e.selectedpoints)&&i.tagSelected($,e,X),$},calcAllAutoBins:h}},72406:function(t){"use strict";t.exports={eventDataKeys:["binNumber"]}},82222:function(t,e,r){"use strict";var n=r(71828),i=r(41675),a=r(73972).traceIs,o=r(26125),s=n.nestedProperty,l=r(99082).getAxisGroup,u=[{aStr:{x:"xbins.start",y:"ybins.start"},name:"start"},{aStr:{x:"xbins.end",y:"ybins.end"},name:"end"},{aStr:{x:"xbins.size",y:"ybins.size"},name:"size"},{aStr:{x:"nbinsx",y:"nbinsy"},name:"nbins"}],c=["x","y"];t.exports=function(t,e){var r,f,h,p,d,v,g,y=e._histogramBinOpts={},m=[],x={},b=[];function _(t,e){return n.coerce(r._input,r,r._module.attributes,t,e)}function w(t){return"v"===t.orientation?"x":"y"}function T(t,r,a){var o=t.uid+"__"+a;r||(r=o);var s=function(t,r){return i.getFromTrace({_fullLayout:e},t,r).type}(t,a),l=t[a+"calendar"]||"",u=y[r],c=!0;u&&(s===u.axType&&l===u.calendar?(c=!1,u.traces.push(t),u.dirs.push(a)):(r=o,s!==u.axType&&n.warn(["Attempted to group the bins of trace",t.index,"set on a","type:"+s,"axis","with bins on","type:"+u.axType,"axis."].join(" ")),l!==u.calendar&&n.warn(["Attempted to group the bins of trace",t.index,"set with a",l,"calendar","with bins",u.calendar?"on a "+u.calendar+" calendar":"w/o a set calendar"].join(" ")))),c&&(y[r]={traces:[t],dirs:[a],axType:s,calendar:t[a+"calendar"]||""}),t["_"+a+"bingroup"]=r}for(d=0;d<t.length;d++)r=t[d],a(r,"histogram")&&(m.push(r),delete r._xautoBinFinished,delete r._yautoBinFinished,a(r,"2dMap")||o(r._input,r,e,_));var k=e._alignmentOpts||{};for(d=0;d<m.length;d++){if(r=m[d],h="",!a(r,"2dMap")){if(p=w(r),"group"===e.barmode&&r.alignmentgroup){var A=r[p+"axis"],M=l(e,A)+r.orientation;(k[M]||{})[r.alignmentgroup]&&(h=M)}h||"overlay"===e.barmode||(h=l(e,r.xaxis)+l(e,r.yaxis)+w(r))}h?(x[h]||(x[h]=[]),x[h].push(r)):b.push(r)}for(h in x)if(1!==(f=x[h]).length){var S=!1;for(f.length&&(r=f[0],S=_("bingroup")),h=S||h,d=0;d<f.length;d++){var E=(r=f[d])._input.bingroup;E&&E!==h&&n.warn(["Trace",r.index,"must match","within bingroup",h+".","Ignoring its bingroup:",E,"setting."].join(" ")),r.bingroup=h,T(r,h,w(r))}}else b.push(f[0]);for(d=0;d<b.length;d++){r=b[d];var L=_("bingroup");if(a(r,"2dMap"))for(g=0;g<2;g++){var C=_((p=c[g])+"bingroup",L?L+"__"+p:null);T(r,C,p)}else T(r,L,w(r))}for(h in y){var P=y[h];for(f=P.traces,v=0;v<u.length;v++){var O,I,D=u[v],z=D.name;if("nbins"!==z||!P.sizeFound){for(d=0;d<f.length;d++){if(r=f[d],p=P.dirs[d],O=D.aStr[p],void 0!==s(r._input,O).get()){P[z]=_(O),P[z+"Found"]=!0;break}(I=(r._autoBin||{})[p]||{})[z]&&s(r,O).set(I[z])}if("start"===z||"end"===z)for(;d<f.length;d++)(r=f[d])["_"+p+"bingroup"]&&_(O,(I=(r._autoBin||{})[p]||{})[z]);"nbins"!==z||P.sizeFound||P.nbinsFound||(r=f[0],P[z]=_(O))}}}}},11385:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(7901),o=r(90769).handleText,s=r(98340),l=r(7745);t.exports=function(t,e,r,u){function c(r,n){return i.coerce(t,e,l,r,n)}var f=c("x"),h=c("y");c("cumulative.enabled")&&(c("cumulative.direction"),c("cumulative.currentbin")),c("text");var p=c("textposition");o(t,e,u,c,p,{moduleHasSelected:!0,moduleHasUnselected:!0,moduleHasConstrain:!0,moduleHasCliponaxis:!0,moduleHasTextangle:!0,moduleHasInsideanchor:!0}),c("hovertext"),c("hovertemplate"),c("xhoverformat"),c("yhoverformat");var d=c("orientation",h&&!f?"h":"v"),v="v"===d?"x":"y",g="v"===d?"y":"x",y=f&&h?Math.min(i.minRowLength(f)&&i.minRowLength(h)):i.minRowLength(e[v]||[]);if(y){e._length=y,n.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y"],u),e[g]&&c("histfunc"),c("histnorm"),c("autobin"+v),s(t,e,c,r,u),i.coerceSelectionMarkerOpacity(e,c);var m=(e.marker.line||{}).color,x=n.getComponentMethod("errorbars","supplyDefaults");x(t,e,m||a.defaultLine,{axis:"y"}),x(t,e,m||a.defaultLine,{axis:"x",inherit:"y"})}else e.visible=!1}},84402:function(t){"use strict";t.exports=function(t,e,r,n,i){if(t.x="xVal"in e?e.xVal:e.x,t.y="yVal"in e?e.yVal:e.y,"zLabelVal"in e&&(t.z=e.zLabelVal),e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),!(r.cumulative||{}).enabled){var a,o=Array.isArray(i)?n[0].pts[i[0]][i[1]]:n[i].pts;if(t.pointNumbers=o,t.binNumber=t.pointNumber,delete t.pointNumber,delete t.pointIndex,r._indexToPoints){a=[];for(var s=0;s<o.length;s++)a=a.concat(r._indexToPoints[o[s]])}else a=o;t.pointIndices=a}return t}},76440:function(t,e,r){"use strict";var n=r(95423).hoverPoints,i=r(89298).hoverLabelText;t.exports=function(t,e,r,a,o){var s=n(t,e,r,a,o);if(s){var l=(t=s[0]).cd[t.index],u=t.cd[0].trace;if(!u.cumulative.enabled){var c="h"===u.orientation?"y":"x";t[c+"Label"]=i(t[c+"a"],[l.ph0,l.ph1],u[c+"hoverformat"])}return s}}},36071:function(t,e,r){"use strict";t.exports={attributes:r(7745),layoutAttributes:r(43641),supplyDefaults:r(11385),crossTraceDefaults:r(82222),supplyLayoutDefaults:r(13957),calc:r(72138).calc,crossTraceCalc:r(11661).crossTraceCalc,plot:r(17295).plot,layerName:"barlayer",style:r(16688).style,styleOnSelect:r(16688).styleOnSelect,colorbar:r(4898),hoverPoints:r(76440),selectPoints:r(81974),eventData:r(84402),moduleType:"trace",name:"histogram",basePlotModule:r(93612),categories:["bar-like","cartesian","svg","bar","histogram","oriented","errorBarsOK","showLegend"],meta:{}}},36362:function(t){"use strict";t.exports={percent:function(t,e){for(var r=t.length,n=100/e,i=0;i<r;i++)t[i]*=n},probability:function(t,e){for(var r=t.length,n=0;n<r;n++)t[n]/=e},density:function(t,e,r,n){var i=t.length;n=n||1;for(var a=0;a<i;a++)t[a]*=r[a]*n},"probability density":function(t,e,r,n){var i=t.length;n&&(e/=n);for(var a=0;a<i;a++)t[a]*=r[a]/e}}},35361:function(t,e,r){"use strict";var n=r(7745),i=r(17656),a=r(21606),o=r(9012),s=r(12663).axisHoverFormat,l=r(5386).f,u=r(5386).s,c=r(50693),f=r(1426).extendFlat;t.exports=f({x:n.x,y:n.y,z:{valType:"data_array",editType:"calc"},marker:{color:{valType:"data_array",editType:"calc"},editType:"calc"},histnorm:n.histnorm,histfunc:n.histfunc,nbinsx:n.nbinsx,xbins:i("x"),nbinsy:n.nbinsy,ybins:i("y"),autobinx:n.autobinx,autobiny:n.autobiny,bingroup:f({},n.bingroup,{}),xbingroup:f({},n.bingroup,{}),ybingroup:f({},n.bingroup,{}),xgap:a.xgap,ygap:a.ygap,zsmooth:a.zsmooth,xhoverformat:s("x"),yhoverformat:s("y"),zhoverformat:s("z",1),hovertemplate:l({},{keys:"z"}),texttemplate:u({arrayOk:!1,editType:"plot"},{keys:"z"}),textfont:a.textfont,showlegend:f({},o.showlegend,{dflt:!1})},c("",{cLetter:"z",autoColorDflt:!1}))},17562:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(59575),o=r(36362),s=r(42174),l=r(40965),u=r(72138).calcAllAutoBins;function c(t,e,r,n){var i,a=new Array(t);if(n)for(i=0;i<t;i++)a[i]=1/(e[i+1]-e[i]);else{var o=1/r;for(i=0;i<t;i++)a[i]=o}return a}function f(t,e){return{start:t(e.start),end:t(e.end),size:e.size}}function h(t,e,r,n,i,a){var o,s=t.length-1,u=new Array(s),c=l(r,n,t,i,a);for(o=0;o<s;o++){var f=(e||[])[o];u[o]=void 0===f?[c(t[o]),c(t[o+1],!0)]:[f,f]}return u}t.exports=function(t,e){var r,l,p,d,v=i.getFromId(t,e.xaxis),g=i.getFromId(t,e.yaxis),y=e.xcalendar,m=e.ycalendar,x=function(t){return v.r2c(t,0,y)},b=function(t){return g.r2c(t,0,m)},_=u(t,e,v,"x"),w=_[0],T=_[1],k=u(t,e,g,"y"),A=k[0],M=k[1],S=e._length;T.length>S&&T.splice(S,T.length-S),M.length>S&&M.splice(S,M.length-S);var E=[],L=[],C=[],P="string"==typeof w.size,O="string"==typeof A.size,I=[],D=[],z=P?I:w,R=O?D:A,F=0,B=[],N=[],j=e.histnorm,U=e.histfunc,V=-1!==j.indexOf("density"),H="max"===U||"min"===U?null:0,q=a.count,G=o[j],Z=!1,Y=[],W=[],X="z"in e?e.z:"marker"in e&&Array.isArray(e.marker.color)?e.marker.color:"";X&&"count"!==U&&(Z="avg"===U,q=a[U]);var J=w.size,K=x(w.start),$=x(w.end)+(K-i.tickIncrement(K,J,!1,y))/1e6;for(r=K;r<$;r=i.tickIncrement(r,J,!1,y))L.push(H),I.push(r),Z&&C.push(0);I.push(r);var Q,tt=L.length,et=(r-K)/tt,rt=(Q=K+et/2,v.c2r(Q,0,y)),nt=A.size,it=b(A.start),at=b(A.end)+(it-i.tickIncrement(it,nt,!1,m))/1e6;for(r=it;r<at;r=i.tickIncrement(r,nt,!1,m)){E.push(L.slice()),D.push(r);var ot=new Array(tt);for(l=0;l<tt;l++)ot[l]=[];N.push(ot),Z&&B.push(C.slice())}D.push(r);var st=E.length,lt=(r-it)/st,ut=function(t){return g.c2r(t,0,m)}(it+lt/2);V&&(Y=c(L.length,z,et,P),W=c(E.length,R,lt,O)),P||"date"!==v.type||(z=f(x,z)),O||"date"!==g.type||(R=f(b,R));var ct=!0,ft=!0,ht=new Array(tt),pt=new Array(st),dt=1/0,vt=1/0,gt=1/0,yt=1/0;for(r=0;r<S;r++){var mt=T[r],xt=M[r];p=n.findBin(mt,z),d=n.findBin(xt,R),p>=0&&p<tt&&d>=0&&d<st&&(F+=q(p,r,E[d],X,B[d]),N[d][p].push(r),ct&&(void 0===ht[p]?ht[p]=mt:ht[p]!==mt&&(ct=!1)),ft&&(void 0===pt[d]?pt[d]=xt:pt[d]!==xt&&(ft=!1)),dt=Math.min(dt,mt-I[p]),vt=Math.min(vt,I[p+1]-mt),gt=Math.min(gt,xt-D[d]),yt=Math.min(yt,D[d+1]-xt))}if(Z)for(d=0;d<st;d++)F+=s(E[d],B[d]);if(G)for(d=0;d<st;d++)G(E[d],F,Y,W[d]);return{x:T,xRanges:h(I,ct&&ht,dt,vt,v,y),x0:rt,dx:et,y:M,yRanges:h(D,ft&&pt,gt,yt,g,m),y0:ut,dy:lt,z:E,pts:N}}},93888:function(t,e,r){"use strict";var n=r(71828),i=r(75238),a=r(49901),o=r(1586),s=r(58623),l=r(35361);t.exports=function(t,e,r,u){function c(r,i){return n.coerce(t,e,l,r,i)}i(t,e,c,u),!1!==e.visible&&(a(t,e,c,u),o(t,e,u,c,{prefix:"",cLetter:"z"}),c("hovertemplate"),s(c,u),c("xhoverformat"),c("yhoverformat"))}},76128:function(t,e,r){"use strict";var n=r(46248),i=r(89298).hoverLabelText;t.exports=function(t,e,r,a,o){var s=n(t,e,r,a,o);if(s){var l=(t=s[0]).index,u=l[0],c=l[1],f=t.cd[0],h=f.trace,p=f.xRanges[c],d=f.yRanges[u];return t.xLabel=i(t.xa,[p[0],p[1]],h.xhoverformat),t.yLabel=i(t.ya,[d[0],d[1]],h.yhoverformat),s}}},43905:function(t,e,r){"use strict";t.exports={attributes:r(35361),supplyDefaults:r(93888),crossTraceDefaults:r(82222),calc:r(90757),plot:r(50347),layerName:"heatmaplayer",colorbar:r(61243),style:r(70035),hoverPoints:r(76128),eventData:r(84402),moduleType:"trace",name:"histogram2d",basePlotModule:r(93612),categories:["cartesian","svg","2dMap","histogram","showLegend"],meta:{}}},75238:function(t,e,r){"use strict";var n=r(73972),i=r(71828);t.exports=function(t,e,r,a){var o=r("x"),s=r("y"),l=i.minRowLength(o),u=i.minRowLength(s);l&&u?(e._length=Math.min(l,u),n.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y"],a),(r("z")||r("marker.color"))&&r("histfunc"),r("histnorm"),r("autobinx"),r("autobiny")):e.visible=!1}},99066:function(t,e,r){"use strict";var n=r(35361),i=r(70600),a=r(50693),o=r(12663).axisHoverFormat,s=r(1426).extendFlat;t.exports=s({x:n.x,y:n.y,z:n.z,marker:n.marker,histnorm:n.histnorm,histfunc:n.histfunc,nbinsx:n.nbinsx,xbins:n.xbins,nbinsy:n.nbinsy,ybins:n.ybins,autobinx:n.autobinx,autobiny:n.autobiny,bingroup:n.bingroup,xbingroup:n.xbingroup,ybingroup:n.ybingroup,autocontour:i.autocontour,ncontours:i.ncontours,contours:i.contours,line:{color:i.line.color,width:s({},i.line.width,{dflt:.5}),dash:i.line.dash,smoothing:i.line.smoothing,editType:"plot"},xhoverformat:o("x"),yhoverformat:o("y"),zhoverformat:o("z",1),hovertemplate:n.hovertemplate,texttemplate:i.texttemplate,textfont:i.textfont},a("",{cLetter:"z",editTypeOverride:"calc"}))},62654:function(t,e,r){"use strict";var n=r(71828),i=r(75238),a=r(67217),o=r(8724),s=r(58623),l=r(99066);t.exports=function(t,e,r,u){function c(r,i){return n.coerce(t,e,l,r,i)}i(t,e,c,u),!1!==e.visible&&(a(t,e,c,(function(r){return n.coerce2(t,e,l,r)})),o(t,e,c,u),c("xhoverformat"),c("yhoverformat"),c("hovertemplate"),e.contours&&"heatmap"===e.contours.coloring&&s(c,u))}},35902:function(t,e,r){"use strict";t.exports={attributes:r(99066),supplyDefaults:r(62654),crossTraceDefaults:r(82222),calc:r(27529),plot:r(29854).plot,layerName:"contourlayer",style:r(84426),colorbar:r(90654),hoverPoints:r(52421),moduleType:"trace",name:"histogram2dcontour",basePlotModule:r(93612),categories:["cartesian","svg","2dMap","contour","histogram","showLegend"],meta:{}}},46291:function(t,e,r){"use strict";var n=r(5386).f,i=r(5386).s,a=r(50693),o=r(27670).Y,s=r(34e3),l=r(57564),u=r(45802),c=r(43473),f=r(1426).extendFlat;t.exports={labels:l.labels,parents:l.parents,values:l.values,branchvalues:l.branchvalues,count:l.count,level:l.level,maxdepth:l.maxdepth,tiling:{orientation:{valType:"enumerated",values:["v","h"],dflt:"h",editType:"plot"},flip:u.tiling.flip,pad:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"calc"},marker:f({colors:l.marker.colors,line:l.marker.line,editType:"calc"},a("marker",{colorAttr:"colors",anim:!1})),leaf:l.leaf,pathbar:u.pathbar,text:s.text,textinfo:l.textinfo,texttemplate:i({editType:"plot"},{keys:c.eventDataKeys.concat(["label","value"])}),hovertext:s.hovertext,hoverinfo:l.hoverinfo,hovertemplate:n({},{keys:c.eventDataKeys}),textfont:s.textfont,insidetextfont:s.insidetextfont,outsidetextfont:u.outsidetextfont,textposition:u.textposition,sort:s.sort,root:l.root,domain:o({name:"icicle",trace:!0,editType:"calc"})}},96346:function(t,e,r){"use strict";var n=r(74875);e.name="icicle",e.plot=function(t,r,i,a){n.plotBasePlot(e.name,t,r,i,a)},e.clean=function(t,r,i,a){n.cleanBasePlot(e.name,t,r,i,a)}},46584:function(t,e,r){"use strict";var n=r(52147);e.y=function(t,e){return n.calc(t,e)},e.T=function(t){return n._runCrossTraceCalc("icicle",t)}},56524:function(t,e,r){"use strict";var n=r(71828),i=r(46291),a=r(7901),o=r(27670).c,s=r(90769).handleText,l=r(97313).TEXTPAD,u=r(21081),c=u.hasColorscale,f=u.handleDefaults;t.exports=function(t,e,r,u){function h(r,a){return n.coerce(t,e,i,r,a)}var p=h("labels"),d=h("parents");if(p&&p.length&&d&&d.length){var v=h("values");v&&v.length?h("branchvalues"):h("count"),h("level"),h("maxdepth"),h("tiling.orientation"),h("tiling.flip"),h("tiling.pad");var g=h("text");h("texttemplate"),e.texttemplate||h("textinfo",Array.isArray(g)?"text+label":"label"),h("hovertext"),h("hovertemplate");var y=h("pathbar.visible");s(t,e,u,h,"auto",{hasPathbar:y,moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),h("textposition"),h("marker.line.width")&&h("marker.line.color",u.paper_bgcolor),h("marker.colors");var m=e._hasColorscale=c(t,"marker","colors")||(t.marker||{}).coloraxis;m&&f(t,e,u,h,{prefix:"marker.",cLetter:"c"}),h("leaf.opacity",m?1:.7),e._hovered={marker:{line:{width:2,color:a.contrast(u.paper_bgcolor)}}},y&&(h("pathbar.thickness",e.pathbar.textfont.size+2*l),h("pathbar.side"),h("pathbar.edgeshape")),h("sort"),h("root.color"),o(e,u,h),e._length=null}else e.visible=!1}},90666:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424),o=r(63893),s=r(21538),l=r(82454).styleOne,u=r(43473),c=r(2791),f=r(83523),h=r(24714).formatSliceLabel,p=!1;t.exports=function(t,e,r,d,v){var g=v.width,y=v.height,m=v.viewX,x=v.viewY,b=v.pathSlice,_=v.toMoveInsideSlice,w=v.strTransform,T=v.hasTransition,k=v.handleSlicesExit,A=v.makeUpdateSliceInterpolator,M=v.makeUpdateTextInterpolator,S=v.prevEntry,E=t._context.staticPlot,L=t._fullLayout,C=e[0].trace,P=-1!==C.textposition.indexOf("left"),O=-1!==C.textposition.indexOf("right"),I=-1!==C.textposition.indexOf("bottom"),D=s(r,[g,y],{flipX:C.tiling.flip.indexOf("x")>-1,flipY:C.tiling.flip.indexOf("y")>-1,orientation:C.tiling.orientation,pad:{inner:C.tiling.pad},maxDepth:C._maxDepth}).descendants(),z=1/0,R=-1/0;D.forEach((function(t){var e=t.depth;e>=C._maxDepth?(t.x0=t.x1=(t.x0+t.x1)/2,t.y0=t.y1=(t.y0+t.y1)/2):(z=Math.min(z,e),R=Math.max(R,e))})),d=d.data(D,c.getPtId),C._maxVisibleLayers=isFinite(R)?R-z+1:0,d.enter().append("g").classed("slice",!0),k(d,p,{},[g,y],b),d.order();var F=null;if(T&&S){var B=c.getPtId(S);d.each((function(t){null===F&&c.getPtId(t)===B&&(F={x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1})}))}var N=function(){return F||{x0:0,x1:g,y0:0,y1:y}},j=d;return T&&(j=j.transition().each("end",(function(){var e=n.select(this);c.setSliceCursor(e,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})}))),j.each((function(s){s._x0=m(s.x0),s._x1=m(s.x1),s._y0=x(s.y0),s._y1=x(s.y1),s._hoverX=m(s.x1-C.tiling.pad),s._hoverY=x(I?s.y1-C.tiling.pad/2:s.y0+C.tiling.pad/2);var d=n.select(this),v=i.ensureSingle(d,"path","surface",(function(t){t.style("pointer-events",E?"none":"all")}));T?v.transition().attrTween("d",(function(t){var e=A(t,p,N(),[g,y],{orientation:C.tiling.orientation,flipX:C.tiling.flip.indexOf("x")>-1,flipY:C.tiling.flip.indexOf("y")>-1});return function(t){return b(e(t))}})):v.attr("d",b),d.call(f,r,t,e,{styleOne:l,eventDataKeys:u.eventDataKeys,transitionTime:u.CLICK_TRANSITION_TIME,transitionEasing:u.CLICK_TRANSITION_EASING}).call(c.setSliceCursor,t,{isTransitioning:t._transitioning}),v.call(l,s,C,{hovered:!1}),s.x0===s.x1||s.y0===s.y1?s._text="":s._text=h(s,r,C,e,L)||"";var k=i.ensureSingle(d,"g","slicetext"),S=i.ensureSingle(k,"text","",(function(t){t.attr("data-notex",1)})),D=i.ensureUniformFontSize(t,c.determineTextFont(C,s,L.font));S.text(s._text||" ").classed("slicetext",!0).attr("text-anchor",O?"end":P?"start":"middle").call(a.font,D).call(o.convertToTspans,t),s.textBB=a.bBox(S.node()),s.transform=_(s,{fontSize:D.size}),s.transform.fontSize=D.size,T?S.transition().attrTween("transform",(function(t){var e=M(t,p,N(),[g,y]);return function(t){return w(e(t))}})):S.attr("transform",w(s))})),F}},69816:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"icicle",basePlotModule:r(96346),categories:[],animatable:!0,attributes:r(46291),layoutAttributes:r(92894),supplyDefaults:r(56524),supplyLayoutDefaults:r(21070),calc:r(46584).y,crossTraceCalc:r(46584).T,plot:r(85596),style:r(82454).style,colorbar:r(4898),meta:{}}},92894:function(t){"use strict";t.exports={iciclecolorway:{valType:"colorlist",editType:"calc"},extendiciclecolors:{valType:"boolean",dflt:!0,editType:"calc"}}},21070:function(t,e,r){"use strict";var n=r(71828),i=r(92894);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("iciclecolorway",e.colorway),r("extendiciclecolors")}},21538:function(t,e,r){"use strict";var n=r(674),i=r(14102);t.exports=function(t,e,r){var a=r.flipX,o=r.flipY,s="h"===r.orientation,l=r.maxDepth,u=e[0],c=e[1];l&&(u=(t.height+1)*e[0]/Math.min(t.height+1,l),c=(t.height+1)*e[1]/Math.min(t.height+1,l));var f=n.partition().padding(r.pad.inner).size(s?[e[1],u]:[e[0],c])(t);return(s||a||o)&&i(f,e,{swapXY:s,flipX:a,flipY:o}),f}},85596:function(t,e,r){"use strict";var n=r(80694),i=r(90666);t.exports=function(t,e,r,a){return n(t,e,r,a,{type:"icicle",drawDescendants:i})}},82454:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(71828),o=r(72597).resizeText;function s(t,e,r){var n=e.data.data,o=!e.children,s=n.i,l=a.castOption(r,s,"marker.line.color")||i.defaultLine,u=a.castOption(r,s,"marker.line.width")||0;t.style("stroke-width",u).call(i.fill,n.color).call(i.stroke,l).style("opacity",o?r.leaf.opacity:null)}t.exports={style:function(t){var e=t._fullLayout._iciclelayer.selectAll(".trace");o(t,e,"icicle"),e.each((function(t){var e=n.select(this),r=t[0].trace;e.style("opacity",r.opacity),e.selectAll("path.surface").each((function(t){n.select(this).call(s,t,r)}))}))},styleOne:s}},17230:function(t,e,r){"use strict";for(var n=r(9012),i=r(5386).f,a=r(1426).extendFlat,o=r(51877).colormodel,s=["rgb","rgba","rgba256","hsl","hsla"],l=[],u=[],c=0;c<s.length;c++){var f=o[s[c]];l.push("For the `"+s[c]+"` colormodel, it is ["+(f.zminDflt||f.min).join(", ")+"]."),u.push("For the `"+s[c]+"` colormodel, it is ["+(f.zmaxDflt||f.max).join(", ")+"].")}t.exports=a({source:{valType:"string",editType:"calc"},z:{valType:"data_array",editType:"calc"},colormodel:{valType:"enumerated",values:s,editType:"calc"},zsmooth:{valType:"enumerated",values:["fast",!1],dflt:!1,editType:"plot"},zmin:{valType:"info_array",items:[{valType:"number",editType:"calc"},{valType:"number",editType:"calc"},{valType:"number",editType:"calc"},{valType:"number",editType:"calc"}],editType:"calc"},zmax:{valType:"info_array",items:[{valType:"number",editType:"calc"},{valType:"number",editType:"calc"},{valType:"number",editType:"calc"},{valType:"number",editType:"calc"}],editType:"calc"},x0:{valType:"any",dflt:0,editType:"calc+clearAxisTypes"},y0:{valType:"any",dflt:0,editType:"calc+clearAxisTypes"},dx:{valType:"number",dflt:1,editType:"calc"},dy:{valType:"number",dflt:1,editType:"calc"},text:{valType:"data_array",editType:"plot"},hovertext:{valType:"data_array",editType:"plot"},hoverinfo:a({},n.hoverinfo,{flags:["x","y","z","color","name","text"],dflt:"x+y+z+text+name"}),hovertemplate:i({},{keys:["z","color","colormodel"]}),transforms:void 0})},71113:function(t,e,r){"use strict";var n=r(71828),i=r(51877),a=r(92770),o=r(89298),s=r(71828).maxRowLength,l=r(67395).A;function u(t,e,r,i){return function(a){return n.constrain((a-t)*e,r,i)}}function c(t,e){return function(r){return n.constrain(r,t,e)}}t.exports=function(t,e){var r,n;if(e._hasZ)r=e.z.length,n=s(e.z);else if(e._hasSource){var f=l(e.source);r=f.height,n=f.width}var h,p=o.getFromId(t,e.xaxis||"x"),d=o.getFromId(t,e.yaxis||"y"),v=p.d2c(e.x0)-e.dx/2,g=d.d2c(e.y0)-e.dy/2,y=[v,v+n*e.dx],m=[g,g+r*e.dy];if(p&&"log"===p.type)for(h=0;h<n;h++)y.push(v+h*e.dx);if(d&&"log"===d.type)for(h=0;h<r;h++)m.push(g+h*e.dy);return e._extremes[p._id]=o.findExtremes(p,y),e._extremes[d._id]=o.findExtremes(d,m),e._scaler=function(t){var e=i.colormodel[t.colormodel],r=(e.colormodel||t.colormodel).length;t._sArray=[];for(var n=0;n<r;n++)e.min[n]!==t.zmin[n]||e.max[n]!==t.zmax[n]?t._sArray.push(u(t.zmin[n],(e.max[n]-e.min[n])/(t.zmax[n]-t.zmin[n]),e.min[n],e.max[n])):t._sArray.push(c(e.min[n],e.max[n]));return function(e){for(var n=e.slice(0,r),i=0;i<r;i++){var o=n[i];if(!a(o))return!1;n[i]=t._sArray[i](o)}return n}}(e),[{x0:v,y0:g,z:e.z,w:n,h:r}]}},51877:function(t){"use strict";t.exports={colormodel:{rgb:{min:[0,0,0],max:[255,255,255],fmt:function(t){return t.slice(0,3)},suffix:["","",""]},rgba:{min:[0,0,0,0],max:[255,255,255,1],fmt:function(t){return t.slice(0,4)},suffix:["","","",""]},rgba256:{colormodel:"rgba",zminDflt:[0,0,0,0],zmaxDflt:[255,255,255,255],min:[0,0,0,0],max:[255,255,255,1],fmt:function(t){return t.slice(0,4)},suffix:["","","",""]},hsl:{min:[0,0,0],max:[360,100,100],fmt:function(t){var e=t.slice(0,3);return e[1]=e[1]+"%",e[2]=e[2]+"%",e},suffix:["°","%","%"]},hsla:{min:[0,0,0,0],max:[360,100,100,1],fmt:function(t){var e=t.slice(0,4);return e[1]=e[1]+"%",e[2]=e[2]+"%",e},suffix:["°","%","%",""]}},pixelatedStyle:["image-rendering: optimizeSpeed","image-rendering: -moz-crisp-edges","image-rendering: -o-crisp-edges","image-rendering: -webkit-optimize-contrast","image-rendering: optimize-contrast","image-rendering: crisp-edges","image-rendering: pixelated",""].join("; ")}},13245:function(t,e,r){"use strict";var n=r(71828),i=r(17230),a=r(51877),o=r(25095).IMAGE_URL_PREFIX;t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("source"),e.source&&!e.source.match(o)&&delete e.source,e._hasSource=!!e.source;var s,l=r("z");e._hasZ=!(void 0===l||!l.length||!l[0]||!l[0].length),e._hasZ||e._hasSource?(r("x0"),r("y0"),r("dx"),r("dy"),e._hasZ?(r("colormodel","rgb"),r("zmin",(s=a.colormodel[e.colormodel]).zminDflt||s.min),r("zmax",s.zmaxDflt||s.max)):e._hasSource&&(e.colormodel="rgba256",s=a.colormodel[e.colormodel],e.zmin=s.zminDflt,e.zmax=s.zmaxDflt),r("zsmooth"),r("text"),r("hovertext"),r("hovertemplate"),e._length=null):e.visible=!1}},30835:function(t){"use strict";t.exports=function(t,e){return"xVal"in e&&(t.x=e.xVal),"yVal"in e&&(t.y=e.yVal),e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),t.color=e.color,t.colormodel=e.trace.colormodel,t.z||(t.z=e.color),t}},67395:function(t,e,r){"use strict";var n=r(33575),i=r(25095).IMAGE_URL_PREFIX,a=r(12856).Buffer;e.A=function(t){var e=t.replace(i,""),r=new a(e,"base64");return n(r)}},28749:function(t,e,r){"use strict";var n=r(30211),i=r(71828),a=r(51877);t.exports=function(t,e,r){var o=t.cd[0],s=o.trace,l=t.xa,u=t.ya;if(!(n.inbox(e-o.x0,e-(o.x0+o.w*s.dx),0)>0||n.inbox(r-o.y0,r-(o.y0+o.h*s.dy),0)>0)){var c,f=Math.floor((e-o.x0)/s.dx),h=Math.floor(Math.abs(r-o.y0)/s.dy);if(s._hasZ?c=o.z[h][f]:s._hasSource&&(c=s._canvas.el.getContext("2d",{willReadFrequently:!0}).getImageData(f,h,1,1).data),c){var p,d=o.hi||s.hoverinfo;if(d){var v=d.split("+");-1!==v.indexOf("all")&&(v=["color"]),-1!==v.indexOf("color")&&(p=!0)}var g,y=a.colormodel[s.colormodel],m=y.colormodel||s.colormodel,x=m.length,b=s._scaler(c),_=y.suffix,w=[];(s.hovertemplate||p)&&(w.push("["+[b[0]+_[0],b[1]+_[1],b[2]+_[2]].join(", ")),4===x&&w.push(", "+b[3]+_[3]),w.push("]"),w=w.join(""),t.extraText=m.toUpperCase()+": "+w),Array.isArray(s.hovertext)&&Array.isArray(s.hovertext[h])?g=s.hovertext[h][f]:Array.isArray(s.text)&&Array.isArray(s.text[h])&&(g=s.text[h][f]);var T=u.c2p(o.y0+(h+.5)*s.dy),k=o.x0+(f+.5)*s.dx,A=o.y0+(h+.5)*s.dy,M="["+c.slice(0,s.colormodel.length).join(", ")+"]";return[i.extendFlat(t,{index:[h,f],x0:l.c2p(o.x0+f*s.dx),x1:l.c2p(o.x0+(f+1)*s.dx),y0:T,y1:T,color:b,xVal:k,xLabelVal:k,yVal:A,yLabelVal:A,zLabelVal:M,text:g,hovertemplateLabels:{zLabel:M,colorLabel:w,"color[0]Label":b[0]+_[0],"color[1]Label":b[1]+_[1],"color[2]Label":b[2]+_[2],"color[3]Label":b[3]+_[3]}})]}}}},94507:function(t,e,r){"use strict";t.exports={attributes:r(17230),supplyDefaults:r(13245),calc:r(71113),plot:r(60775),style:r(12826),hoverPoints:r(28749),eventData:r(30835),moduleType:"trace",name:"image",basePlotModule:r(93612),categories:["cartesian","svg","2dMap","noSortingByValue"],animatable:!1,meta:{}}},60775:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.strTranslate,o=r(77922),s=r(51877),l=i.isIOS()||i.isSafari()||i.isIE();t.exports=function(t,e,r,u){var c=e.xaxis,f=e.yaxis,h=!(l||t._context._exportedPlot);i.makeTraceGroups(u,r,"im").each((function(e){var r=n.select(this),l=e[0],u=l.trace,p=("fast"===u.zsmooth||!1===u.zsmooth&&h)&&!u._hasZ&&u._hasSource&&"linear"===c.type&&"linear"===f.type;u._realImage=p;var d,v,g,y,m,x,b=l.z,_=l.x0,w=l.y0,T=l.w,k=l.h,A=u.dx,M=u.dy;for(x=0;void 0===d&&x<T;)d=c.c2p(_+x*A),x++;for(x=T;void 0===v&&x>0;)v=c.c2p(_+x*A),x--;for(x=0;void 0===y&&x<k;)y=f.c2p(w+x*M),x++;for(x=k;void 0===m&&x>0;)m=f.c2p(w+x*M),x--;v<d&&(g=v,v=d,d=g),m<y&&(g=y,y=m,m=g),p||(d=Math.max(-.5*c._length,d),v=Math.min(1.5*c._length,v),y=Math.max(-.5*f._length,y),m=Math.min(1.5*f._length,m));var S=Math.round(v-d),E=Math.round(m-y);if(S<=0||E<=0)r.selectAll("image").data([]).exit().remove();else{var L=r.selectAll("image").data([e]);L.enter().append("svg:image").attr({xmlns:o.svg,preserveAspectRatio:"none"}),L.exit().remove();var C=!1===u.zsmooth?s.pixelatedStyle:"";if(p){var P=i.simpleMap(c.range,c.r2l),O=i.simpleMap(f.range,f.r2l),I=P[1]<P[0],D=O[1]>O[0];if(I||D){var z=d+S/2,R=y+E/2;C+="transform:"+a(z+"px",R+"px")+"scale("+(I?-1:1)+","+(D?-1:1)+")"+a(-z+"px",-R+"px")+";"}}L.attr("style",C);var F=new Promise((function(t){if(u._hasZ)t();else if(u._hasSource)if(u._canvas&&u._canvas.el.width===T&&u._canvas.el.height===k&&u._canvas.source===u.source)t();else{var e=document.createElement("canvas");e.width=T,e.height=k;var r=e.getContext("2d",{willReadFrequently:!0});u._image=u._image||new Image;var n=u._image;n.onload=function(){r.drawImage(n,0,0),u._canvas={el:e,source:u.source},t()},n.setAttribute("src",u.source)}})).then((function(){var t,e;if(u._hasZ)e=B((function(t,e){return b[e][t]})),t=e.toDataURL("image/png");else if(u._hasSource)if(p)t=u.source;else{var r=u._canvas.el.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,T,k).data;e=B((function(t,e){var n=4*(e*T+t);return[r[n],r[n+1],r[n+2],r[n+3]]})),t=e.toDataURL("image/png")}L.attr({"xlink:href":t,height:E,width:S,x:d,y:y})}));t._promises.push(F)}function B(t){var e=document.createElement("canvas");e.width=S,e.height=E;var r,n=e.getContext("2d",{willReadFrequently:!0}),a=function(t){return i.constrain(Math.round(c.c2p(_+t*A)-d),0,S)},o=function(t){return i.constrain(Math.round(f.c2p(w+t*M)-y),0,E)},h=s.colormodel[u.colormodel],p=h.colormodel||u.colormodel,v=h.fmt;for(x=0;x<l.w;x++){var g=a(x),m=a(x+1);if(m!==g&&!isNaN(m)&&!isNaN(g))for(var b=0;b<l.h;b++){var T=o(b),k=o(b+1);k===T||isNaN(k)||isNaN(T)||!t(x,b)||(r=u._scaler(t(x,b)),n.fillStyle=r?p+"("+v(r).join(",")+")":"rgba(0,0,0,0)",n.fillRect(g,T,m-g,k-T))}}return e}}))}},12826:function(t,e,r){"use strict";var n=r(39898);t.exports=function(t){n.select(t).selectAll(".im image").style("opacity",(function(t){return t[0].trace.opacity}))}},54846:function(t,e,r){"use strict";var n=r(1426).extendFlat,i=r(1426).extendDeep,a=r(30962).overrideAll,o=r(41940),s=r(22399),l=r(27670).Y,u=r(13838),c=r(44467).templatedArray,f=r(22372),h=r(12663).descriptionOnlyNumbers,p=o({editType:"plot",colorEditType:"plot"}),d={color:{valType:"color",editType:"plot"},line:{color:{valType:"color",dflt:s.defaultLine,editType:"plot"},width:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"calc"},thickness:{valType:"number",min:0,max:1,dflt:1,editType:"plot"},editType:"calc"},v={valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},g=c("step",i({},d,{range:v}));t.exports={mode:{valType:"flaglist",editType:"calc",flags:["number","delta","gauge"],dflt:"number"},value:{valType:"number",editType:"calc",anim:!0},align:{valType:"enumerated",values:["left","center","right"],editType:"plot"},domain:l({name:"indicator",trace:!0,editType:"calc"}),title:{text:{valType:"string",editType:"plot"},align:{valType:"enumerated",values:["left","center","right"],editType:"plot"},font:n({},p,{}),editType:"plot"},number:{valueformat:{valType:"string",dflt:"",editType:"plot",description:h("value")},font:n({},p,{}),prefix:{valType:"string",dflt:"",editType:"plot"},suffix:{valType:"string",dflt:"",editType:"plot"},editType:"plot"},delta:{reference:{valType:"number",editType:"calc"},position:{valType:"enumerated",values:["top","bottom","left","right"],dflt:"bottom",editType:"plot"},relative:{valType:"boolean",editType:"plot",dflt:!1},valueformat:{valType:"string",editType:"plot",description:h("value")},increasing:{symbol:{valType:"string",dflt:f.INCREASING.SYMBOL,editType:"plot"},color:{valType:"color",dflt:f.INCREASING.COLOR,editType:"plot"},editType:"plot"},decreasing:{symbol:{valType:"string",dflt:f.DECREASING.SYMBOL,editType:"plot"},color:{valType:"color",dflt:f.DECREASING.COLOR,editType:"plot"},editType:"plot"},font:n({},p,{}),prefix:{valType:"string",dflt:"",editType:"plot"},suffix:{valType:"string",dflt:"",editType:"plot"},editType:"calc"},gauge:{shape:{valType:"enumerated",editType:"plot",dflt:"angular",values:["angular","bullet"]},bar:i({},d,{color:{dflt:"green"}}),bgcolor:{valType:"color",editType:"plot"},bordercolor:{valType:"color",dflt:s.defaultLine,editType:"plot"},borderwidth:{valType:"number",min:0,dflt:1,editType:"plot"},axis:a({range:v,visible:n({},u.visible,{dflt:!0}),tickmode:u.minor.tickmode,nticks:u.nticks,tick0:u.tick0,dtick:u.dtick,tickvals:u.tickvals,ticktext:u.ticktext,ticks:n({},u.ticks,{dflt:"outside"}),ticklen:u.ticklen,tickwidth:u.tickwidth,tickcolor:u.tickcolor,ticklabelstep:u.ticklabelstep,showticklabels:u.showticklabels,tickfont:o({}),tickangle:u.tickangle,tickformat:u.tickformat,tickformatstops:u.tickformatstops,tickprefix:u.tickprefix,showtickprefix:u.showtickprefix,ticksuffix:u.ticksuffix,showticksuffix:u.showticksuffix,separatethousands:u.separatethousands,exponentformat:u.exponentformat,minexponent:u.minexponent,showexponent:u.showexponent,editType:"plot"},"plot"),steps:g,threshold:{line:{color:n({},d.line.color,{}),width:n({},d.line.width,{dflt:1}),editType:"plot"},thickness:n({},d.thickness,{dflt:.85}),value:{valType:"number",editType:"calc",dflt:!1},editType:"plot"},editType:"plot"}}},15970:function(t,e,r){"use strict";var n=r(74875);e.name="indicator",e.plot=function(t,r,i,a){n.plotBasePlot(e.name,t,r,i,a)},e.clean=function(t,r,i,a){n.cleanBasePlot(e.name,t,r,i,a)}},24667:function(t){"use strict";t.exports={calc:function(t,e){var r=[],n=e.value;"number"!=typeof e._lastValue&&(e._lastValue=e.value);var i=e._lastValue,a=i;return e._hasDelta&&"number"==typeof e.delta.reference&&(a=e.delta.reference),r[0]={y:n,lastY:i,delta:n-a,relativeDelta:(n-a)/a},r}}},84577:function(t){"use strict";t.exports={defaultNumberFontSize:80,bulletNumberDomainSize:.25,bulletPadding:.025,innerRadius:.75,valueThickness:.5,titlePadding:5,horizontalPadding:10}},94425:function(t,e,r){"use strict";var n=r(71828),i=r(54846),a=r(27670).c,o=r(44467),s=r(85501),l=r(84577),u=r(26218),c=r(38701),f=r(96115),h=r(89426);function p(t,e){function r(r,a){return n.coerce(t,e,i.gauge.steps,r,a)}r("color"),r("line.color"),r("line.width"),r("range"),r("thickness")}t.exports={supplyDefaults:function(t,e,r,d){function v(r,a){return n.coerce(t,e,i,r,a)}a(e,d,v),v("mode"),e._hasNumber=-1!==e.mode.indexOf("number"),e._hasDelta=-1!==e.mode.indexOf("delta"),e._hasGauge=-1!==e.mode.indexOf("gauge");var g=v("value");e._range=[0,"number"==typeof g?1.5*g:1];var y,m,x,b,_,w,T=new Array(2);function k(t,e){return n.coerce(x,b,i.gauge,t,e)}function A(t,e){return n.coerce(_,w,i.gauge.axis,t,e)}if(e._hasNumber&&(v("number.valueformat"),v("number.font.color",d.font.color),v("number.font.family",d.font.family),v("number.font.size"),void 0===e.number.font.size&&(e.number.font.size=l.defaultNumberFontSize,T[0]=!0),v("number.prefix"),v("number.suffix"),y=e.number.font.size),e._hasDelta&&(v("delta.font.color",d.font.color),v("delta.font.family",d.font.family),v("delta.font.size"),void 0===e.delta.font.size&&(e.delta.font.size=(e._hasNumber?.5:1)*(y||l.defaultNumberFontSize),T[1]=!0),v("delta.reference",e.value),v("delta.relative"),v("delta.valueformat",e.delta.relative?"2%":""),v("delta.increasing.symbol"),v("delta.increasing.color"),v("delta.decreasing.symbol"),v("delta.decreasing.color"),v("delta.position"),v("delta.prefix"),v("delta.suffix"),m=e.delta.font.size),e._scaleNumbers=(!e._hasNumber||T[0])&&(!e._hasDelta||T[1])||!1,v("title.font.color",d.font.color),v("title.font.family",d.font.family),v("title.font.size",.25*(y||m||l.defaultNumberFontSize)),v("title.text"),e._hasGauge){(x=t.gauge)||(x={}),b=o.newContainer(e,"gauge"),k("shape"),(e._isBullet="bullet"===e.gauge.shape)||v("title.align","center"),(e._isAngular="angular"===e.gauge.shape)||v("align","center"),k("bgcolor",d.paper_bgcolor),k("borderwidth"),k("bordercolor"),k("bar.color"),k("bar.line.color"),k("bar.line.width"),k("bar.thickness",l.valueThickness*("bullet"===e.gauge.shape?.5:1)),s(x,b,{name:"steps",handleItemDefaults:p}),k("threshold.value"),k("threshold.thickness"),k("threshold.line.width"),k("threshold.line.color"),_={},x&&(_=x.axis||{}),w=o.newContainer(b,"axis"),A("visible"),e._range=A("range",e._range);var M={outerTicks:!0};u(_,w,A,"linear"),h(_,w,A,"linear",M),f(_,w,A,"linear",M),c(_,w,A,M)}else v("title.align","center"),v("align","center"),e._isAngular=e._isBullet=!1;e._length=null}}},15154:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"indicator",basePlotModule:r(15970),categories:["svg","noOpacity","noHover"],animatable:!0,attributes:r(54846),supplyDefaults:r(94425).supplyDefaults,calc:r(24667).calc,plot:r(75634),meta:{}}},75634:function(t,e,r){"use strict";var n=r(39898),i=r(29502).sX,a=r(29502).k4,o=r(71828),s=o.strScale,l=o.strTranslate,u=o.rad2deg,c=r(18783).MID_SHIFT,f=r(91424),h=r(84577),p=r(63893),d=r(89298),v=r(71453),g=r(52830),y=r(13838),m=r(7901),x={left:"start",center:"middle",right:"end"},b={left:0,center:.5,right:1},_=/[yzafpnµmkMGTPEZY]/;function w(t){return t&&t.duration>0}function T(t){t.each((function(t){m.stroke(n.select(this),t.line.color)})).each((function(t){m.fill(n.select(this),t.color)})).style("stroke-width",(function(t){return t.line.width}))}function k(t,e,r){var n=t._fullLayout,i=o.extendFlat({type:"linear",ticks:"outside",range:r,showline:!0},e),a={type:"linear",_id:"x"+e._id},s={letter:"x",font:n.font,noHover:!0,noTickson:!0};function l(t,e){return o.coerce(i,a,y,t,e)}return v(i,a,l,s,n),g(i,a,l,s),a}function A(t,e,r){return[Math.min(e/t.width,r/t.height),t,e+"x"+r]}function M(t,e,r,i){var a=document.createElementNS("http://www.w3.org/2000/svg","text"),o=n.select(a);return o.text(t).attr("x",0).attr("y",0).attr("text-anchor",r).attr("data-unformatted",t).call(p.convertToTspans,i).call(f.font,e),f.bBox(o.node())}function S(t,e,r,n,i,a){var s="_cache"+e;t[s]&&t[s].key===i||(t[s]={key:i,value:r});var l=o.aggNums(a,null,[t[s].value,n],2);return t[s].value=l,l}t.exports=function(t,e,r,v){var g,y=t._fullLayout;w(r)&&v&&(g=v()),o.makeTraceGroups(y._indicatorlayer,e,"trace").each((function(e){var v,E,L,C,P,O=e[0].trace,I=n.select(this),D=O._hasGauge,z=O._isAngular,R=O._isBullet,F=O.domain,B={w:y._size.w*(F.x[1]-F.x[0]),h:y._size.h*(F.y[1]-F.y[0]),l:y._size.l+y._size.w*F.x[0],r:y._size.r+y._size.w*(1-F.x[1]),t:y._size.t+y._size.h*(1-F.y[1]),b:y._size.b+y._size.h*F.y[0]},N=B.l+B.w/2,j=B.t+B.h/2,U=Math.min(B.w/2,B.h),V=h.innerRadius*U,H=O.align||"center";if(E=j,D){if(z&&(v=N,E=j+U/2,L=function(t){return function(t,e){return[e/Math.sqrt(t.width/2*(t.width/2)+t.height*t.height),t,e]}(t,.9*V)}),R){var q=h.bulletPadding,G=1-h.bulletNumberDomainSize+q;v=B.l+(G+(1-G)*b[H])*B.w,L=function(t){return A(t,(h.bulletNumberDomainSize-q)*B.w,B.h)}}}else v=B.l+b[H]*B.w,L=function(t){return A(t,B.w,B.h)};!function(t,e,r,i){var u,c,h,v=r[0].trace,g=i.numbersX,y=i.numbersY,T=v.align||"center",A=x[T],E=i.transitionOpts,L=i.onComplete,C=o.ensureSingle(e,"g","numbers"),P=[];v._hasNumber&&P.push("number"),v._hasDelta&&(P.push("delta"),"left"===v.delta.position&&P.reverse());var O=C.selectAll("text").data(P);function I(e,r,n,i){if(!e.match("s")||n>=0==i>=0||r(n).slice(-1).match(_)||r(i).slice(-1).match(_))return r;var a=e.slice().replace("s","f").replace(/\d+/,(function(t){return parseInt(t)-1})),o=k(t,{tickformat:a});return function(t){return Math.abs(t)<1?d.tickText(o,t).text:r(t)}}O.enter().append("text"),O.attr("text-anchor",(function(){return A})).attr("class",(function(t){return t})).attr("x",null).attr("y",null).attr("dx",null).attr("dy",null),O.exit().remove();var D,z=v.mode+v.align;if(v._hasDelta&&(D=function(){var e=k(t,{tickformat:v.delta.valueformat},v._range);e.setScale(),d.prepTicks(e);var i=function(t){return d.tickText(e,t).text},o=v.delta.suffix,s=v.delta.prefix,l=function(t){return v.delta.relative?t.relativeDelta:t.delta},u=function(t,e){return 0===t||"number"!=typeof t||isNaN(t)?"-":(t>0?v.delta.increasing.symbol:v.delta.decreasing.symbol)+s+e(t)+o},h=function(t){return t.delta>=0?v.delta.increasing.color:v.delta.decreasing.color};void 0===v._deltaLastValue&&(v._deltaLastValue=l(r[0]));var g=C.select("text.delta");function y(){g.text(u(l(r[0]),i)).call(m.fill,h(r[0])).call(p.convertToTspans,t)}return g.call(f.font,v.delta.font).call(m.fill,h({delta:v._deltaLastValue})),w(E)?g.transition().duration(E.duration).ease(E.easing).tween("text",(function(){var t=n.select(this),e=l(r[0]),o=v._deltaLastValue,s=I(v.delta.valueformat,i,o,e),c=a(o,e);return v._deltaLastValue=e,function(e){t.text(u(c(e),s)),t.call(m.fill,h({delta:c(e)}))}})).each("end",(function(){y(),L&&L()})).each("interrupt",(function(){y(),L&&L()})):y(),c=M(u(l(r[0]),i),v.delta.font,A,t),g}(),z+=v.delta.position+v.delta.font.size+v.delta.font.family+v.delta.valueformat,z+=v.delta.increasing.symbol+v.delta.decreasing.symbol,h=c),v._hasNumber&&(function(){var e=k(t,{tickformat:v.number.valueformat},v._range);e.setScale(),d.prepTicks(e);var i=function(t){return d.tickText(e,t).text},o=v.number.suffix,s=v.number.prefix,l=C.select("text.number");function c(){var e="number"==typeof r[0].y?s+i(r[0].y)+o:"-";l.text(e).call(f.font,v.number.font).call(p.convertToTspans,t)}w(E)?l.transition().duration(E.duration).ease(E.easing).each("end",(function(){c(),L&&L()})).each("interrupt",(function(){c(),L&&L()})).attrTween("text",(function(){var t=n.select(this),e=a(r[0].lastY,r[0].y);v._lastValue=r[0].y;var l=I(v.number.valueformat,i,r[0].lastY,r[0].y);return function(r){t.text(s+l(e(r))+o)}})):c(),u=M(s+i(r[0].y)+o,v.number.font,A,t)}(),z+=v.number.font.size+v.number.font.family+v.number.valueformat+v.number.suffix+v.number.prefix,h=u),v._hasDelta&&v._hasNumber){var R,F,B=[(u.left+u.right)/2,(u.top+u.bottom)/2],N=[(c.left+c.right)/2,(c.top+c.bottom)/2],j=.75*v.delta.font.size;"left"===v.delta.position&&(R=S(v,"deltaPos",0,-1*(u.width*b[v.align]+c.width*(1-b[v.align])+j),z,Math.min),F=B[1]-N[1],h={width:u.width+c.width+j,height:Math.max(u.height,c.height),left:c.left+R,right:u.right,top:Math.min(u.top,c.top+F),bottom:Math.max(u.bottom,c.bottom+F)}),"right"===v.delta.position&&(R=S(v,"deltaPos",0,u.width*(1-b[v.align])+c.width*b[v.align]+j,z,Math.max),F=B[1]-N[1],h={width:u.width+c.width+j,height:Math.max(u.height,c.height),left:u.left,right:c.right+R,top:Math.min(u.top,c.top+F),bottom:Math.max(u.bottom,c.bottom+F)}),"bottom"===v.delta.position&&(R=null,F=c.height,h={width:Math.max(u.width,c.width),height:u.height+c.height,left:Math.min(u.left,c.left),right:Math.max(u.right,c.right),top:u.bottom-u.height,bottom:u.bottom+c.height}),"top"===v.delta.position&&(R=null,F=u.top,h={width:Math.max(u.width,c.width),height:u.height+c.height,left:Math.min(u.left,c.left),right:Math.max(u.right,c.right),top:u.bottom-u.height-c.height,bottom:u.bottom}),D.attr({dx:R,dy:F})}(v._hasNumber||v._hasDelta)&&C.attr("transform",(function(){var t=i.numbersScaler(h);z+=t[2];var e,r=S(v,"numbersScale",1,t[0],z,Math.min);v._scaleNumbers||(r=1),e=v._isAngular?y-r*h.bottom:y-r*(h.top+h.bottom)/2,v._numbersTop=r*h.top+e;var n=h[T];"center"===T&&(n=(h.left+h.right)/2);var a=g-r*n;return a=S(v,"numbersTranslate",0,a,z,Math.max),l(a,e)+s(r)}))}(t,I,e,{numbersX:v,numbersY:E,numbersScaler:L,transitionOpts:r,onComplete:g}),D&&(C={range:O.gauge.axis.range,color:O.gauge.bgcolor,line:{color:O.gauge.bordercolor,width:0},thickness:1},P={range:O.gauge.axis.range,color:"rgba(0, 0, 0, 0)",line:{color:O.gauge.bordercolor,width:O.gauge.borderwidth},thickness:1});var Z=I.selectAll("g.angular").data(z?e:[]);Z.exit().remove();var Y=I.selectAll("g.angularaxis").data(z?e:[]);Y.exit().remove(),z&&function(t,e,r,a){var o,s,f,h,p=r[0].trace,v=a.size,g=a.radius,y=a.innerRadius,m=a.gaugeBg,x=a.gaugeOutline,b=[v.l+v.w/2,v.t+v.h/2+g/2],_=a.gauge,A=a.layer,M=a.transitionOpts,S=a.onComplete,E=Math.PI/2;function L(t){var e=p.gauge.axis.range[0],r=(t-e)/(p.gauge.axis.range[1]-e)*Math.PI-E;return r<-E?-E:r>E?E:r}function C(t){return n.svg.arc().innerRadius((y+g)/2-t/2*(g-y)).outerRadius((y+g)/2+t/2*(g-y)).startAngle(-E)}function P(t){t.attr("d",(function(t){return C(t.thickness).startAngle(L(t.range[0])).endAngle(L(t.range[1]))()}))}_.enter().append("g").classed("angular",!0),_.attr("transform",l(b[0],b[1])),A.enter().append("g").classed("angularaxis",!0).classed("crisp",!0),A.selectAll("g.xangularaxistick,path,text").remove(),(o=k(t,p.gauge.axis)).type="linear",o.range=p.gauge.axis.range,o._id="xangularaxis",o.ticklabeloverflow="allow",o.setScale();var O=function(t){return(o.range[0]-t.x)/(o.range[1]-o.range[0])*Math.PI+Math.PI},I={},D=d.makeLabelFns(o,0).labelStandoff;I.xFn=function(t){var e=O(t);return Math.cos(e)*D},I.yFn=function(t){var e=O(t),r=Math.sin(e)>0?.2:1;return-Math.sin(e)*(D+t.fontSize*r)+Math.abs(Math.cos(e))*(t.fontSize*c)},I.anchorFn=function(t){var e=O(t),r=Math.cos(e);return Math.abs(r)<.1?"middle":r>0?"start":"end"},I.heightFn=function(t,e,r){var n=O(t);return-.5*(1+Math.sin(n))*r};var z=function(t){return l(b[0]+g*Math.cos(t),b[1]-g*Math.sin(t))};f=function(t){return z(O(t))};if(s=d.calcTicks(o),h=d.getTickSigns(o)[2],o.visible){h="inside"===o.ticks?-1:1;var R=(o.linewidth||1)/2;d.drawTicks(t,o,{vals:s,layer:A,path:"M"+h*R+",0h"+h*o.ticklen,transFn:function(t){var e=O(t);return z(e)+"rotate("+-u(e)+")"}}),d.drawLabels(t,o,{vals:s,layer:A,transFn:f,labelFns:I})}var F=[m].concat(p.gauge.steps),B=_.selectAll("g.bg-arc").data(F);B.enter().append("g").classed("bg-arc",!0).append("path"),B.select("path").call(P).call(T),B.exit().remove();var N=C(p.gauge.bar.thickness),j=_.selectAll("g.value-arc").data([p.gauge.bar]);j.enter().append("g").classed("value-arc",!0).append("path");var U,V,H,q=j.select("path");w(M)?(q.transition().duration(M.duration).ease(M.easing).each("end",(function(){S&&S()})).each("interrupt",(function(){S&&S()})).attrTween("d",(U=N,V=L(r[0].lastY),H=L(r[0].y),function(){var t=i(V,H);return function(e){return U.endAngle(t(e))()}})),p._lastValue=r[0].y):q.attr("d","number"==typeof r[0].y?N.endAngle(L(r[0].y)):"M0,0Z"),q.call(T),j.exit().remove(),F=[];var G=p.gauge.threshold.value;(G||0===G)&&F.push({range:[G,G],color:p.gauge.threshold.color,line:{color:p.gauge.threshold.line.color,width:p.gauge.threshold.line.width},thickness:p.gauge.threshold.thickness});var Z=_.selectAll("g.threshold-arc").data(F);Z.enter().append("g").classed("threshold-arc",!0).append("path"),Z.select("path").call(P).call(T),Z.exit().remove();var Y=_.selectAll("g.gauge-outline").data([x]);Y.enter().append("g").classed("gauge-outline",!0).append("path"),Y.select("path").call(P).call(T),Y.exit().remove()}(t,0,e,{radius:U,innerRadius:V,gauge:Z,layer:Y,size:B,gaugeBg:C,gaugeOutline:P,transitionOpts:r,onComplete:g});var W=I.selectAll("g.bullet").data(R?e:[]);W.exit().remove();var X=I.selectAll("g.bulletaxis").data(R?e:[]);X.exit().remove(),R&&function(t,e,r,n){var i,a,o,s,u,c=r[0].trace,f=n.gauge,p=n.layer,v=n.gaugeBg,g=n.gaugeOutline,y=n.size,x=c.domain,b=n.transitionOpts,_=n.onComplete;f.enter().append("g").classed("bullet",!0),f.attr("transform",l(y.l,y.t)),p.enter().append("g").classed("bulletaxis",!0).classed("crisp",!0),p.selectAll("g.xbulletaxistick,path,text").remove();var A=y.h,M=c.gauge.bar.thickness*A,S=x.x[0],E=x.x[0]+(x.x[1]-x.x[0])*(c._hasNumber||c._hasDelta?1-h.bulletNumberDomainSize:1);function L(t){t.attr("width",(function(t){return Math.max(0,i.c2p(t.range[1])-i.c2p(t.range[0]))})).attr("x",(function(t){return i.c2p(t.range[0])})).attr("y",(function(t){return.5*(1-t.thickness)*A})).attr("height",(function(t){return t.thickness*A}))}(i=k(t,c.gauge.axis))._id="xbulletaxis",i.domain=[S,E],i.setScale(),a=d.calcTicks(i),o=d.makeTransTickFn(i),s=d.getTickSigns(i)[2],u=y.t+y.h,i.visible&&(d.drawTicks(t,i,{vals:"inside"===i.ticks?d.clipEnds(i,a):a,layer:p,path:d.makeTickPath(i,u,s),transFn:o}),d.drawLabels(t,i,{vals:a,layer:p,transFn:o,labelFns:d.makeLabelFns(i,u)}));var C=[v].concat(c.gauge.steps),P=f.selectAll("g.bg-bullet").data(C);P.enter().append("g").classed("bg-bullet",!0).append("rect"),P.select("rect").call(L).call(T),P.exit().remove();var O=f.selectAll("g.value-bullet").data([c.gauge.bar]);O.enter().append("g").classed("value-bullet",!0).append("rect"),O.select("rect").attr("height",M).attr("y",(A-M)/2).call(T),w(b)?O.select("rect").transition().duration(b.duration).ease(b.easing).each("end",(function(){_&&_()})).each("interrupt",(function(){_&&_()})).attr("width",Math.max(0,i.c2p(Math.min(c.gauge.axis.range[1],r[0].y)))):O.select("rect").attr("width","number"==typeof r[0].y?Math.max(0,i.c2p(Math.min(c.gauge.axis.range[1],r[0].y))):0),O.exit().remove();var I=r.filter((function(){return c.gauge.threshold.value||0===c.gauge.threshold.value})),D=f.selectAll("g.threshold-bullet").data(I);D.enter().append("g").classed("threshold-bullet",!0).append("line"),D.select("line").attr("x1",i.c2p(c.gauge.threshold.value)).attr("x2",i.c2p(c.gauge.threshold.value)).attr("y1",(1-c.gauge.threshold.thickness)/2*A).attr("y2",(1-(1-c.gauge.threshold.thickness)/2)*A).call(m.stroke,c.gauge.threshold.line.color).style("stroke-width",c.gauge.threshold.line.width),D.exit().remove();var z=f.selectAll("g.gauge-outline").data([g]);z.enter().append("g").classed("gauge-outline",!0).append("rect"),z.select("rect").call(L).call(T),z.exit().remove()}(t,0,e,{gauge:W,layer:X,size:B,gaugeBg:C,gaugeOutline:P,transitionOpts:r,onComplete:g});var J=I.selectAll("text.title").data(e);J.exit().remove(),J.enter().append("text").classed("title",!0),J.attr("text-anchor",(function(){return R?x.right:x[O.title.align]})).text(O.title.text).call(f.font,O.title.font).call(p.convertToTspans,t),J.attr("transform",(function(){var t,e=B.l+B.w*b[O.title.align],r=h.titlePadding,n=f.bBox(J.node());return D?(z&&(t=O.gauge.axis.visible?f.bBox(Y.node()).top-r-n.bottom:B.t+B.h/2-U/2-n.bottom-r),R&&(t=E-(n.top+n.bottom)/2,e=B.l-h.bulletPadding*B.w)):t=O._numbersTop-r-n.bottom,l(e,t)}))}))}},16249:function(t,e,r){"use strict";var n=r(50693),i=r(12663).axisHoverFormat,a=r(5386).f,o=r(2418),s=r(9012),l=r(1426).extendFlat,u=r(30962).overrideAll,c=t.exports=u(l({x:{valType:"data_array"},y:{valType:"data_array"},z:{valType:"data_array"},value:{valType:"data_array"},isomin:{valType:"number"},isomax:{valType:"number"},surface:{show:{valType:"boolean",dflt:!0},count:{valType:"integer",dflt:2,min:1},fill:{valType:"number",min:0,max:1,dflt:1},pattern:{valType:"flaglist",flags:["A","B","C","D","E"],extras:["all","odd","even"],dflt:"all"}},spaceframe:{show:{valType:"boolean",dflt:!1},fill:{valType:"number",min:0,max:1,dflt:.15}},slices:{x:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}}},caps:{x:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}}},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:a(),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),valuehoverformat:i("value",1),showlegend:l({},s.showlegend,{dflt:!1})},n("",{colorAttr:"`value`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:o.opacity,lightposition:o.lightposition,lighting:o.lighting,flatshading:o.flatshading,contour:o.contour,hoverinfo:l({},s.hoverinfo)}),"calc","nested");c.flatshading.dflt=!0,c.lighting.facenormalsepsilon.dflt=0,c.x.editType=c.y.editType=c.z.editType=c.value.editType="calc+clearAxisTypes",c.transforms=void 0},56959:function(t,e,r){"use strict";var n=r(78803),i=r(88489).processGrid,a=r(88489).filter;t.exports=function(t,e){e._len=Math.min(e.x.length,e.y.length,e.z.length,e.value.length),e._x=a(e.x,e._len),e._y=a(e.y,e._len),e._z=a(e.z,e._len),e._value=a(e.value,e._len);var r=i(e);e._gridFill=r.fill,e._Xs=r.Xs,e._Ys=r.Ys,e._Zs=r.Zs,e._len=r.len;for(var o=1/0,s=-1/0,l=0;l<e._len;l++){var u=e._value[l];o=Math.min(o,u),s=Math.max(s,u)}e._minValues=o,e._maxValues=s,e._vMin=void 0===e.isomin||null===e.isomin?o:e.isomin,e._vMax=void 0===e.isomax||null===e.isomin?s:e.isomax,n(t,e,{vals:[e._vMin,e._vMax],containerStr:"",cLetter:"c"})}},22674:function(t,e,r){"use strict";var n=r(9330).gl_mesh3d,i=r(81697).parseColorScale,a=r(78614),o=r(21081).extractOpts,s=r(90060),l=function(t,e){for(var r=e.length-1;r>0;r--){var n=Math.min(e[r],e[r-1]),i=Math.max(e[r],e[r-1]);if(i>n&&n<t&&t<=i)return{id:r,distRatio:(i-t)/(i-n)}}return{id:0,distRatio:0}};function u(t,e,r){this.scene=t,this.uid=r,this.mesh=e,this.name="",this.data=null,this.showContour=!1}var c=u.prototype;c.handlePick=function(t){if(t.object===this.mesh){var e=t.data.index,r=this.data._meshX[e],n=this.data._meshY[e],i=this.data._meshZ[e],a=this.data._Ys.length,o=this.data._Zs.length,s=l(r,this.data._Xs).id,u=l(n,this.data._Ys).id,c=l(i,this.data._Zs).id,f=t.index=c+o*u+o*a*s;t.traceCoordinate=[this.data._meshX[f],this.data._meshY[f],this.data._meshZ[f],this.data._value[f]];var h=this.data.hovertext||this.data.text;return Array.isArray(h)&&void 0!==h[f]?t.textLabel=h[f]:h&&(t.textLabel=h),!0}},c.update=function(t){var e=this.scene,r=e.fullSceneLayout;function n(t,e,r,n){return e.map((function(e){return t.d2l(e,0,n)*r}))}this.data=h(t);var l={positions:s(n(r.xaxis,t._meshX,e.dataScale[0],t.xcalendar),n(r.yaxis,t._meshY,e.dataScale[1],t.ycalendar),n(r.zaxis,t._meshZ,e.dataScale[2],t.zcalendar)),cells:s(t._meshI,t._meshJ,t._meshK),lightPosition:[t.lightposition.x,t.lightposition.y,t.lightposition.z],ambient:t.lighting.ambient,diffuse:t.lighting.diffuse,specular:t.lighting.specular,roughness:t.lighting.roughness,fresnel:t.lighting.fresnel,vertexNormalsEpsilon:t.lighting.vertexnormalsepsilon,faceNormalsEpsilon:t.lighting.facenormalsepsilon,opacity:t.opacity,contourEnable:t.contour.show,contourColor:a(t.contour.color).slice(0,3),contourWidth:t.contour.width,useFacetNormals:t.flatshading},u=o(t);l.vertexIntensity=t._meshIntensity,l.vertexIntensityBounds=[u.min,u.max],l.colormap=i(t),this.mesh.update(l)},c.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()};var f=["xyz","xzy","yxz","yzx","zxy","zyx"];function h(t){t._meshI=[],t._meshJ=[],t._meshK=[];var e,r,n,i,a,o,s,u=t.surface.show,c=t.spaceframe.show,h=t.surface.fill,p=t.spaceframe.fill,d=!1,v=!1,g=0,y=t._Xs,m=t._Ys,x=t._Zs,b=y.length,_=m.length,w=x.length,T=f.indexOf(t._gridFill.replace(/-/g,"").replace(/\+/g,"")),k=function(t,e,r){switch(T){case 5:return r+w*e+w*_*t;case 4:return r+w*t+w*b*e;case 3:return e+_*r+_*w*t;case 2:return e+_*t+_*b*r;case 1:return t+b*r+b*w*e;default:return t+b*e+b*_*r}},A=t._minValues,M=t._maxValues,S=t._vMin,E=t._vMax;function L(t,e,s){for(var l=o.length,u=r;u<l;u++)if(t===n[u]&&e===i[u]&&s===a[u])return u;return-1}function C(){r=e}function P(){n=[],i=[],a=[],o=[],e=0,C()}function O(t,r,s,l){return n.push(t),i.push(r),a.push(s),o.push(l),++e-1}function I(t,e,r){for(var n=[],i=0;i<t.length;i++)n[i]=t[i]*(1-r)+r*e[i];return n}function D(t){s=t}function z(t,e){return"all"===t||null===t||t.indexOf(e)>-1}function R(t,e){return null===t?e:t}function F(e,r,n){C();var i,a,o,l=[r],u=[n];if(s>=1)l=[r],u=[n];else if(s>0){var c=function(t,e){var r=t[0],n=t[1],i=t[2],a=function(t,e,r){for(var n=[],i=0;i<t.length;i++)n[i]=(t[i]+e[i]+r[i])/3;return n}(r,n,i),o=Math.sqrt(1-s),l=I(a,r,o),u=I(a,n,o),c=I(a,i,o),f=e[0],h=e[1],p=e[2];return{xyzv:[[r,n,u],[u,l,r],[n,i,c],[c,u,n],[i,r,l],[l,c,i]],abc:[[f,h,-1],[-1,-1,f],[h,p,-1],[-1,-1,h],[p,f,-1],[-1,-1,p]]}}(r,n);l=c.xyzv,u=c.abc}for(var f=0;f<l.length;f++){r=l[f],n=u[f];for(var h=[],p=0;p<3;p++){var d=r[p][0],v=r[p][1],y=r[p][2],m=r[p][3],x=n[p]>-1?n[p]:L(d,v,y);h[p]=x>-1?x:O(d,v,y,R(e,m))}i=h[0],a=h[1],o=h[2],t._meshI.push(i),t._meshJ.push(a),t._meshK.push(o),++g}}function B(t,e,r,n){var i=t[3];i<r&&(i=r),i>n&&(i=n);for(var a=(t[3]-i)/(t[3]-e[3]+1e-9),o=[],s=0;s<4;s++)o[s]=(1-a)*t[s]+a*e[s];return o}function N(t,e,r){return t>=e&&t<=r}function j(t){var e=.001*(E-S);return t>=S-e&&t<=E+e}function U(e){for(var r=[],n=0;n<4;n++){var i=e[n];r.push([t._x[i],t._y[i],t._z[i],t._value[i]])}return r}function V(t,e,r,n,i,a){a||(a=1),r=[-1,-1,-1];var o=!1,s=[N(e[0][3],n,i),N(e[1][3],n,i),N(e[2][3],n,i)];if(!s[0]&&!s[1]&&!s[2])return!1;var l=function(t,e,r){return j(e[0][3])&&j(e[1][3])&&j(e[2][3])?(F(t,e,r),!0):a<3&&V(t,e,r,S,E,++a)};if(s[0]&&s[1]&&s[2])return l(t,e,r)||o;var u=!1;return[[0,1,2],[2,0,1],[1,2,0]].forEach((function(a){if(s[a[0]]&&s[a[1]]&&!s[a[2]]){var c=e[a[0]],f=e[a[1]],h=e[a[2]],p=B(h,c,n,i),d=B(h,f,n,i);o=l(t,[d,p,c],[-1,-1,r[a[0]]])||o,o=l(t,[c,f,d],[r[a[0]],r[a[1]],-1])||o,u=!0}})),u||[[0,1,2],[1,2,0],[2,0,1]].forEach((function(a){if(s[a[0]]&&!s[a[1]]&&!s[a[2]]){var c=e[a[0]],f=e[a[1]],h=e[a[2]],p=B(f,c,n,i),d=B(h,c,n,i);o=l(t,[d,p,c],[-1,-1,r[a[0]]])||o,u=!0}})),o}function H(t,e,r,n){var i=!1,a=U(e),o=[N(a[0][3],r,n),N(a[1][3],r,n),N(a[2][3],r,n),N(a[3][3],r,n)];if(!(o[0]||o[1]||o[2]||o[3]))return i;if(o[0]&&o[1]&&o[2]&&o[3])return v&&(i=function(t,e,r){var n=function(n,i,a){F(t,[e[n],e[i],e[a]],[r[n],r[i],r[a]])};n(0,1,2),n(3,0,1),n(2,3,0),n(1,2,3)}(t,a,e)||i),i;var s=!1;return[[0,1,2,3],[3,0,1,2],[2,3,0,1],[1,2,3,0]].forEach((function(l){if(o[l[0]]&&o[l[1]]&&o[l[2]]&&!o[l[3]]){var u=a[l[0]],c=a[l[1]],f=a[l[2]],h=a[l[3]];if(v)i=F(t,[u,c,f],[e[l[0]],e[l[1]],e[l[2]]])||i;else{var p=B(h,u,r,n),d=B(h,c,r,n),g=B(h,f,r,n);i=F(null,[p,d,g],[-1,-1,-1])||i}s=!0}})),s||([[0,1,2,3],[1,2,3,0],[2,3,0,1],[3,0,1,2],[0,2,3,1],[1,3,2,0]].forEach((function(l){if(o[l[0]]&&o[l[1]]&&!o[l[2]]&&!o[l[3]]){var u=a[l[0]],c=a[l[1]],f=a[l[2]],h=a[l[3]],p=B(f,u,r,n),d=B(f,c,r,n),g=B(h,c,r,n),y=B(h,u,r,n);v?(i=F(t,[u,y,p],[e[l[0]],-1,-1])||i,i=F(t,[c,d,g],[e[l[1]],-1,-1])||i):i=function(t,e,r){var n=function(t,n,i){F(null,[e[t],e[n],e[i]],[r[t],r[n],r[i]])};n(0,1,2),n(2,3,0)}(0,[p,d,g,y],[-1,-1,-1,-1])||i,s=!0}})),s||[[0,1,2,3],[1,2,3,0],[2,3,0,1],[3,0,1,2]].forEach((function(l){if(o[l[0]]&&!o[l[1]]&&!o[l[2]]&&!o[l[3]]){var u=a[l[0]],c=a[l[1]],f=a[l[2]],h=a[l[3]],p=B(c,u,r,n),d=B(f,u,r,n),g=B(h,u,r,n);v?(i=F(t,[u,p,d],[e[l[0]],-1,-1])||i,i=F(t,[u,d,g],[e[l[0]],-1,-1])||i,i=F(t,[u,g,p],[e[l[0]],-1,-1])||i):i=F(null,[p,d,g],[-1,-1,-1])||i,s=!0}}))),i}function q(t,e,r,n,i,a,o,s,l,u,c){var f=!1;return d&&(z(t,"A")&&(f=H(null,[e,r,n,a],u,c)||f),z(t,"B")&&(f=H(null,[r,n,i,l],u,c)||f),z(t,"C")&&(f=H(null,[r,a,o,l],u,c)||f),z(t,"D")&&(f=H(null,[n,a,s,l],u,c)||f),z(t,"E")&&(f=H(null,[r,n,a,l],u,c)||f)),v&&(f=H(t,[r,n,a,l],u,c)||f),f}function G(t,e,r,n,i,a,o,s){return[!0===s[0]||V(t,U([e,r,n]),[e,r,n],a,o),!0===s[1]||V(t,U([n,i,e]),[n,i,e],a,o)]}function Z(t,e,r,n,i,a,o,s,l){return s?G(t,e,r,i,n,a,o,l):G(t,r,i,n,e,a,o,l)}function Y(t,e,r,n,i,a,o){var s,l,u,c,f=!1,h=function(){f=V(t,[s,l,u],[-1,-1,-1],i,a)||f,f=V(t,[u,c,s],[-1,-1,-1],i,a)||f},p=o[0],d=o[1],v=o[2];return p&&(s=I(U([k(e,r-0,n-0)])[0],U([k(e-1,r-0,n-0)])[0],p),l=I(U([k(e,r-0,n-1)])[0],U([k(e-1,r-0,n-1)])[0],p),u=I(U([k(e,r-1,n-1)])[0],U([k(e-1,r-1,n-1)])[0],p),c=I(U([k(e,r-1,n-0)])[0],U([k(e-1,r-1,n-0)])[0],p),h()),d&&(s=I(U([k(e-0,r,n-0)])[0],U([k(e-0,r-1,n-0)])[0],d),l=I(U([k(e-0,r,n-1)])[0],U([k(e-0,r-1,n-1)])[0],d),u=I(U([k(e-1,r,n-1)])[0],U([k(e-1,r-1,n-1)])[0],d),c=I(U([k(e-1,r,n-0)])[0],U([k(e-1,r-1,n-0)])[0],d),h()),v&&(s=I(U([k(e-0,r-0,n)])[0],U([k(e-0,r-0,n-1)])[0],v),l=I(U([k(e-0,r-1,n)])[0],U([k(e-0,r-1,n-1)])[0],v),u=I(U([k(e-1,r-1,n)])[0],U([k(e-1,r-1,n-1)])[0],v),c=I(U([k(e-1,r-0,n)])[0],U([k(e-1,r-0,n-1)])[0],v),h()),f}function W(t,e,r,n,i,a,o,s,l,u,c,f){var h=t;return f?(d&&"even"===t&&(h=null),q(h,e,r,n,i,a,o,s,l,u,c)):(d&&"odd"===t&&(h=null),q(h,l,s,o,a,i,n,r,e,u,c))}function X(t,e,r,n,i){for(var a=[],o=0,s=0;s<e.length;s++)for(var l=e[s],u=1;u<w;u++)for(var c=1;c<_;c++)a.push(Z(t,k(l,c-1,u-1),k(l,c-1,u),k(l,c,u-1),k(l,c,u),r,n,(l+c+u)%2,i&&i[o]?i[o]:[])),o++;return a}function J(t,e,r,n,i){for(var a=[],o=0,s=0;s<e.length;s++)for(var l=e[s],u=1;u<b;u++)for(var c=1;c<w;c++)a.push(Z(t,k(u-1,l,c-1),k(u,l,c-1),k(u-1,l,c),k(u,l,c),r,n,(u+l+c)%2,i&&i[o]?i[o]:[])),o++;return a}function K(t,e,r,n,i){for(var a=[],o=0,s=0;s<e.length;s++)for(var l=e[s],u=1;u<_;u++)for(var c=1;c<b;c++)a.push(Z(t,k(c-1,u-1,l),k(c-1,u,l),k(c,u-1,l),k(c,u,l),r,n,(c+u+l)%2,i&&i[o]?i[o]:[])),o++;return a}function $(t,e,r){for(var n=1;n<w;n++)for(var i=1;i<_;i++)for(var a=1;a<b;a++)W(t,k(a-1,i-1,n-1),k(a-1,i-1,n),k(a-1,i,n-1),k(a-1,i,n),k(a,i-1,n-1),k(a,i-1,n),k(a,i,n-1),k(a,i,n),e,r,(a+i+n)%2)}function Q(t,e,r,n,i,a){for(var o=[],s=0,l=0;l<e.length;l++)for(var u=e[l],c=1;c<w;c++)for(var f=1;f<_;f++)o.push(Y(t,u,f,c,r,n,i[l],a&&a[s]&&a[s])),s++;return o}function tt(t,e,r,n,i,a){for(var o=[],s=0,l=0;l<e.length;l++)for(var u=e[l],c=1;c<b;c++)for(var f=1;f<w;f++)o.push(Y(t,c,u,f,r,n,i[l],a&&a[s]&&a[s])),s++;return o}function et(t,e,r,n,i,a){for(var o=[],s=0,l=0;l<e.length;l++)for(var u=e[l],c=1;c<_;c++)for(var f=1;f<b;f++)o.push(Y(t,f,c,u,r,n,i[l],a&&a[s]&&a[s])),s++;return o}function rt(t,e){for(var r=[],n=t;n<e;n++)r.push(n);return r}return function(){P(),function(){for(var e=0;e<b;e++)for(var r=0;r<_;r++)for(var n=0;n<w;n++){var i=k(e,r,n);O(t._x[i],t._y[i],t._z[i],t._value[i])}}();var e=null;if(c&&p&&(D(p),v=!0,$(e,S,E),v=!1),u&&h){D(h);for(var r=t.surface.pattern,s=t.surface.count,f=0;f<s;f++){var T=1===s?.5:f/(s-1),L=(1-T)*S+T*E,C=Math.abs(L-A)>Math.abs(L-M)?[A,L]:[L,M];d=!0,$(r,C[0],C[1]),d=!1}}var I=[[Math.min(S,M),Math.max(S,M)],[Math.min(A,E),Math.max(A,E)]];["x","y","z"].forEach((function(r){for(var n=[],i=0;i<I.length;i++){var a=0,o=I[i][0],s=I[i][1],u=t.slices[r];if(u.show&&u.fill){D(u.fill);var c=[],f=[],h=[];if(u.locations.length)for(var p=0;p<u.locations.length;p++){var d=l(u.locations[p],"x"===r?y:"y"===r?m:x);0===d.distRatio?c.push(d.id):d.id>0&&(f.push(d.id),"x"===r?h.push([d.distRatio,0,0]):"y"===r?h.push([0,d.distRatio,0]):h.push([0,0,d.distRatio]))}else c=rt(1,"x"===r?b-1:"y"===r?_-1:w-1);f.length>0&&(n[a]="x"===r?Q(e,f,o,s,h,n[a]):"y"===r?tt(e,f,o,s,h,n[a]):et(e,f,o,s,h,n[a]),a++),c.length>0&&(n[a]="x"===r?X(e,c,o,s,n[a]):"y"===r?J(e,c,o,s,n[a]):K(e,c,o,s,n[a]),a++)}var v=t.caps[r];v.show&&v.fill&&(D(v.fill),n[a]="x"===r?X(e,[0,b-1],o,s,n[a]):"y"===r?J(e,[0,_-1],o,s,n[a]):K(e,[0,w-1],o,s,n[a]),a++)}})),0===g&&P(),t._meshX=n,t._meshY=i,t._meshZ=a,t._meshIntensity=o,t._Xs=y,t._Ys=m,t._Zs=x}(),t}t.exports={findNearestOnAxis:l,generateIsoMeshes:h,createIsosurfaceTrace:function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new u(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}}},82738:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(16249),o=r(1586);function s(t,e,r,n,a){var s=a("isomin"),l=a("isomax");null!=l&&null!=s&&s>l&&(e.isomin=null,e.isomax=null);var u=a("x"),c=a("y"),f=a("z"),h=a("value");u&&u.length&&c&&c.length&&f&&f.length&&h&&h.length?(i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y","z"],n),a("valuehoverformat"),["x","y","z"].forEach((function(t){a(t+"hoverformat");var e="caps."+t;a(e+".show")&&a(e+".fill");var r="slices."+t;a(r+".show")&&(a(r+".fill"),a(r+".locations"))})),a("spaceframe.show")&&a("spaceframe.fill"),a("surface.show")&&(a("surface.count"),a("surface.fill"),a("surface.pattern")),a("contour.show")&&(a("contour.color"),a("contour.width")),["text","hovertext","hovertemplate","lighting.ambient","lighting.diffuse","lighting.specular","lighting.roughness","lighting.fresnel","lighting.vertexnormalsepsilon","lighting.facenormalsepsilon","lightposition.x","lightposition.y","lightposition.z","flatshading","opacity"].forEach((function(t){a(t)})),o(t,e,n,a,{prefix:"",cLetter:"c"}),e._length=null):e.visible=!1}t.exports={supplyDefaults:function(t,e,r,i){s(t,e,0,i,(function(r,i){return n.coerce(t,e,a,r,i)}))},supplyIsoDefaults:s}},64943:function(t,e,r){"use strict";t.exports={attributes:r(16249),supplyDefaults:r(82738).supplyDefaults,calc:r(56959),colorbar:{min:"cmin",max:"cmax"},plot:r(22674).createIsosurfaceTrace,moduleType:"trace",name:"isosurface",basePlotModule:r(58547),categories:["gl3d","showLegend"],meta:{}}},2418:function(t,e,r){"use strict";var n=r(50693),i=r(12663).axisHoverFormat,a=r(5386).f,o=r(54532),s=r(9012),l=r(1426).extendFlat;t.exports=l({x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},i:{valType:"data_array",editType:"calc"},j:{valType:"data_array",editType:"calc"},k:{valType:"data_array",editType:"calc"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:a({editType:"calc"}),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),delaunayaxis:{valType:"enumerated",values:["x","y","z"],dflt:"z",editType:"calc"},alphahull:{valType:"number",dflt:-1,editType:"calc"},intensity:{valType:"data_array",editType:"calc"},intensitymode:{valType:"enumerated",values:["vertex","cell"],dflt:"vertex",editType:"calc"},color:{valType:"color",editType:"calc"},vertexcolor:{valType:"data_array",editType:"calc"},facecolor:{valType:"data_array",editType:"calc"},transforms:void 0},n("",{colorAttr:"`intensity`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:o.opacity,flatshading:{valType:"boolean",dflt:!1,editType:"calc"},contour:{show:l({},o.contours.x.show,{}),color:o.contours.x.color,width:o.contours.x.width,editType:"calc"},lightposition:{x:l({},o.lightposition.x,{dflt:1e5}),y:l({},o.lightposition.y,{dflt:1e5}),z:l({},o.lightposition.z,{dflt:0}),editType:"calc"},lighting:l({vertexnormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-12,editType:"calc"},facenormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-6,editType:"calc"},editType:"calc"},o.lighting),hoverinfo:l({},s.hoverinfo,{editType:"calc"}),showlegend:l({},s.showlegend,{dflt:!1})})},82932:function(t,e,r){"use strict";var n=r(78803);t.exports=function(t,e){e.intensity&&n(t,e,{vals:e.intensity,containerStr:"",cLetter:"c"})}},91134:function(t,e,r){"use strict";var n=r(9330).gl_mesh3d,i=r(9330).delaunay_triangulate,a=r(9330).alpha_shape,o=r(9330).convex_hull,s=r(81697).parseColorScale,l=r(78614),u=r(21081).extractOpts,c=r(90060);function f(t,e,r){this.scene=t,this.uid=r,this.mesh=e,this.name="",this.color="#fff",this.data=null,this.showContour=!1}var h=f.prototype;function p(t){for(var e=[],r=t.length,n=0;n<r;n++)e[n]=l(t[n]);return e}function d(t,e,r,n){for(var i=[],a=e.length,o=0;o<a;o++)i[o]=t.d2l(e[o],0,n)*r;return i}function v(t){for(var e=[],r=t.length,n=0;n<r;n++)e[n]=Math.round(t[n]);return e}function g(t,e){for(var r=t.length,n=0;n<r;n++)if(t[n]<=-.5||t[n]>=e-.5)return!1;return!0}h.handlePick=function(t){if(t.object===this.mesh){var e=t.index=t.data.index;t.data._cellCenter?t.traceCoordinate=t.data.dataCoordinate:t.traceCoordinate=[this.data.x[e],this.data.y[e],this.data.z[e]];var r=this.data.hovertext||this.data.text;return Array.isArray(r)&&void 0!==r[e]?t.textLabel=r[e]:r&&(t.textLabel=r),!0}},h.update=function(t){var e=this.scene,r=e.fullSceneLayout;this.data=t;var n,f=t.x.length,h=c(d(r.xaxis,t.x,e.dataScale[0],t.xcalendar),d(r.yaxis,t.y,e.dataScale[1],t.ycalendar),d(r.zaxis,t.z,e.dataScale[2],t.zcalendar));if(t.i&&t.j&&t.k){if(t.i.length!==t.j.length||t.j.length!==t.k.length||!g(t.i,f)||!g(t.j,f)||!g(t.k,f))return;n=c(v(t.i),v(t.j),v(t.k))}else n=0===t.alphahull?o(h):t.alphahull>0?a(t.alphahull,h):function(t,e){for(var r=["x","y","z"].indexOf(t),n=[],a=e.length,o=0;o<a;o++)n[o]=[e[o][(r+1)%3],e[o][(r+2)%3]];return i(n)}(t.delaunayaxis,h);var y={positions:h,cells:n,lightPosition:[t.lightposition.x,t.lightposition.y,t.lightposition.z],ambient:t.lighting.ambient,diffuse:t.lighting.diffuse,specular:t.lighting.specular,roughness:t.lighting.roughness,fresnel:t.lighting.fresnel,vertexNormalsEpsilon:t.lighting.vertexnormalsepsilon,faceNormalsEpsilon:t.lighting.facenormalsepsilon,opacity:t.opacity,contourEnable:t.contour.show,contourColor:l(t.contour.color).slice(0,3),contourWidth:t.contour.width,useFacetNormals:t.flatshading};if(t.intensity){var m=u(t);this.color="#fff";var x=t.intensitymode;y[x+"Intensity"]=t.intensity,y[x+"IntensityBounds"]=[m.min,m.max],y.colormap=s(t)}else t.vertexcolor?(this.color=t.vertexcolor[0],y.vertexColors=p(t.vertexcolor)):t.facecolor?(this.color=t.facecolor[0],y.cellColors=p(t.facecolor)):(this.color=t.color,y.meshColor=l(t.color));this.mesh.update(y)},h.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()},t.exports=function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new f(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}},58669:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(1586),o=r(2418);t.exports=function(t,e,r,s){function l(r,n){return i.coerce(t,e,o,r,n)}function u(t){var e=t.map((function(t){var e=l(t);return e&&i.isArrayOrTypedArray(e)?e:null}));return e.every((function(t){return t&&t.length===e[0].length}))&&e}u(["x","y","z"])?(u(["i","j","k"]),(!e.i||e.j&&e.k)&&(!e.j||e.k&&e.i)&&(!e.k||e.i&&e.j)?(n.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y","z"],s),["lighting.ambient","lighting.diffuse","lighting.specular","lighting.roughness","lighting.fresnel","lighting.vertexnormalsepsilon","lighting.facenormalsepsilon","lightposition.x","lightposition.y","lightposition.z","flatshading","alphahull","delaunayaxis","opacity"].forEach((function(t){l(t)})),l("contour.show")&&(l("contour.color"),l("contour.width")),"intensity"in t?(l("intensity"),l("intensitymode"),a(t,e,s,l,{prefix:"",cLetter:"c"})):(e.showscale=!1,"facecolor"in t?l("facecolor"):"vertexcolor"in t?l("vertexcolor"):l("color",r)),l("text"),l("hovertext"),l("hovertemplate"),l("xhoverformat"),l("yhoverformat"),l("zhoverformat"),e._length=null):e.visible=!1):e.visible=!1}},21164:function(t,e,r){"use strict";t.exports={attributes:r(2418),supplyDefaults:r(58669),calc:r(82932),colorbar:{min:"cmin",max:"cmax"},plot:r(91134),moduleType:"trace",name:"mesh3d",basePlotModule:r(58547),categories:["gl3d","showLegend"],meta:{}}},2522:function(t,e,r){"use strict";var n=r(71828).extendFlat,i=r(82196),a=r(12663).axisHoverFormat,o=r(79952).P,s=r(77914),l=r(22372),u=l.INCREASING.COLOR,c=l.DECREASING.COLOR,f=i.line;function h(t){return{line:{color:n({},f.color,{dflt:t}),width:f.width,dash:o,editType:"style"},editType:"style"}}t.exports={xperiod:i.xperiod,xperiod0:i.xperiod0,xperiodalignment:i.xperiodalignment,xhoverformat:a("x"),yhoverformat:a("y"),x:{valType:"data_array",editType:"calc+clearAxisTypes"},open:{valType:"data_array",editType:"calc"},high:{valType:"data_array",editType:"calc"},low:{valType:"data_array",editType:"calc"},close:{valType:"data_array",editType:"calc"},line:{width:n({},f.width,{}),dash:n({},o,{}),editType:"style"},increasing:h(u),decreasing:h(c),text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},tickwidth:{valType:"number",min:0,max:.5,dflt:.3,editType:"calc"},hoverlabel:n({},s.hoverlabel,{split:{valType:"boolean",dflt:!1,editType:"style"}})}},3485:function(t,e,r){"use strict";var n=r(71828),i=n._,a=r(89298),o=r(42973),s=r(50606).BADNUM;function l(t,e,r,n){return{o:t,h:e,l:r,c:n}}function u(t,e,r,o,l,u){for(var c=l.makeCalcdata(e,"open"),f=l.makeCalcdata(e,"high"),h=l.makeCalcdata(e,"low"),p=l.makeCalcdata(e,"close"),d=Array.isArray(e.text),v=Array.isArray(e.hovertext),g=!0,y=null,m=!!e.xperiodalignment,x=[],b=0;b<o.length;b++){var _=o[b],w=c[b],T=f[b],k=h[b],A=p[b];if(_!==s&&w!==s&&T!==s&&k!==s&&A!==s){A===w?null!==y&&A!==y&&(g=A>y):g=A>w,y=A;var M=u(w,T,k,A);M.pos=_,M.yc=(w+A)/2,M.i=b,M.dir=g?"increasing":"decreasing",M.x=M.pos,M.y=[k,T],m&&(M.orig_p=r[b]),d&&(M.tx=e.text[b]),v&&(M.htx=e.hovertext[b]),x.push(M)}else x.push({pos:_,empty:!0})}return e._extremes[l._id]=a.findExtremes(l,n.concat(h,f),{padded:!0}),x.length&&(x[0].t={labels:{open:i(t,"open:")+" ",high:i(t,"high:")+" ",low:i(t,"low:")+" ",close:i(t,"close:")+" "}}),x}t.exports={calc:function(t,e){var r=a.getFromId(t,e.xaxis),i=a.getFromId(t,e.yaxis),s=function(t,e,r){var i=r._minDiff;if(!i){var a,s=t._fullData,l=[];for(i=1/0,a=0;a<s.length;a++){var u=s[a];if("ohlc"===u.type&&!0===u.visible&&u.xaxis===e._id){l.push(u);var c=e.makeCalcdata(u,"x");u._origX=c;var f=o(r,e,"x",c).vals;u._xcalc=f;var h=n.distinctVals(f).minDiff;h&&isFinite(h)&&(i=Math.min(i,h))}}for(i===1/0&&(i=1),a=0;a<l.length;a++)l[a]._minDiff=i}return i*r.tickwidth}(t,r,e),c=e._minDiff;e._minDiff=null;var f=e._origX;e._origX=null;var h=e._xcalc;e._xcalc=null;var p=u(t,e,f,h,i,l);return e._extremes[r._id]=a.findExtremes(r,h,{vpad:c/2}),p.length?(n.extendFlat(p[0].t,{wHover:c/2,tickLen:s}),p):[{t:{empty:!0}}]},calcCommon:u}},16169:function(t,e,r){"use strict";var n=r(71828),i=r(14555),a=r(73927),o=r(2522);function s(t,e,r,n){r(n+".line.color"),r(n+".line.width",e.line.width),r(n+".line.dash",e.line.dash)}t.exports=function(t,e,r,l){function u(r,i){return n.coerce(t,e,o,r,i)}i(t,e,u,l)?(a(t,e,l,u,{x:!0}),u("xhoverformat"),u("yhoverformat"),u("line.width"),u("line.dash"),s(0,e,u,"increasing"),s(0,e,u,"decreasing"),u("text"),u("hovertext"),u("tickwidth"),l._requestRangeslider[e.xaxis]=!0):e.visible=!1}},66449:function(t,e,r){"use strict";var n=r(89298),i=r(71828),a=r(30211),o=r(7901),s=r(71828).fillText,l=r(22372),u={increasing:l.INCREASING.SYMBOL,decreasing:l.DECREASING.SYMBOL};function c(t,e,r,n){var i,s,l=t.cd,u=t.xa,c=l[0].trace,f=l[0].t,h=c.type,p="ohlc"===h?"l":"min",d="ohlc"===h?"h":"max",v=f.bPos||0,g=f.bdPos||f.tickLen,y=f.wHover,m=Math.min(1,g/Math.abs(u.r2c(u.range[1])-u.r2c(u.range[0])));function x(t){var r=function(t){return t.pos+v-e}(t);return a.inbox(r-y,r+y,i)}function b(t){var e=t[p],n=t[d];return e===n||a.inbox(e-r,n-r,i)}function _(t){return(x(t)+b(t))/2}i=t.maxHoverDistance-m,s=t.maxSpikeDistance-m;var w=a.getDistanceFunction(n,x,b,_);if(a.getClosest(l,w,t),!1===t.index)return null;var T=l[t.index];if(T.empty)return null;var k=c[T.dir],A=k.line.color;return o.opacity(A)&&k.line.width?t.color=A:t.color=k.fillcolor,t.x0=u.c2p(T.pos+v-g,!0),t.x1=u.c2p(T.pos+v+g,!0),t.xLabelVal=void 0!==T.orig_p?T.orig_p:T.pos,t.spikeDistance=_(T)*s/i,t.xSpike=u.c2p(T.pos,!0),t}function f(t,e,r,a){var o=t.cd,s=t.ya,l=o[0].trace,u=o[0].t,f=[],h=c(t,e,r,a);if(!h)return[];var p=o[h.index].hi||l.hoverinfo,d=p.split("+");if("all"!==p&&-1===d.indexOf("y"))return[];for(var v=["high","open","close","low"],g={},y=0;y<v.length;y++){var m,x=v[y],b=l[x][h.index],_=s.c2p(b,!0);b in g?(m=g[b]).yLabel+="<br>"+u.labels[x]+n.hoverLabelText(s,b,l.yhoverformat):((m=i.extendFlat({},h)).y0=m.y1=_,m.yLabelVal=b,m.yLabel=u.labels[x]+n.hoverLabelText(s,b,l.yhoverformat),m.name="",f.push(m),g[b]=m)}return f}function h(t,e,r,i){var a=t.cd,o=t.ya,l=a[0].trace,f=a[0].t,h=c(t,e,r,i);if(!h)return[];var p=a[h.index],d=h.index=p.i,v=p.dir;function g(t){return f.labels[t]+n.hoverLabelText(o,l[t][d],l.yhoverformat)}var y=p.hi||l.hoverinfo,m=y.split("+"),x="all"===y,b=x||-1!==m.indexOf("y"),_=x||-1!==m.indexOf("text"),w=b?[g("open"),g("high"),g("low"),g("close")+"  "+u[v]]:[];return _&&s(p,l,w),h.extraText=w.join("<br>"),h.y0=h.y1=o.c2p(p.yc,!0),[h]}t.exports={hoverPoints:function(t,e,r,n){return t.cd[0].trace.hoverlabel.split?f(t,e,r,n):h(t,e,r,n)},hoverSplit:f,hoverOnPoints:h}},54186:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"ohlc",basePlotModule:r(93612),categories:["cartesian","svg","showLegend"],meta:{},attributes:r(2522),supplyDefaults:r(16169),calc:r(3485).calc,plot:r(72314),style:r(53101),hoverPoints:r(66449).hoverPoints,selectPoints:r(67324)}},14555:function(t,e,r){"use strict";var n=r(73972),i=r(71828);t.exports=function(t,e,r,a){var o=r("x"),s=r("open"),l=r("high"),u=r("low"),c=r("close");if(r("hoverlabel.split"),n.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x"],a),s&&l&&u&&c){var f=Math.min(s.length,l.length,u.length,c.length);return o&&(f=Math.min(f,i.minRowLength(o))),e._length=f,f}}},72314:function(t,e,r){"use strict";var n=r(39898),i=r(71828);t.exports=function(t,e,r,a){var o=e.yaxis,s=e.xaxis,l=!!s.rangebreaks;i.makeTraceGroups(a,r,"trace ohlc").each((function(t){var e=n.select(this),r=t[0],a=r.t;if(!0!==r.trace.visible||a.empty)e.remove();else{var u=a.tickLen,c=e.selectAll("path").data(i.identity);c.enter().append("path"),c.exit().remove(),c.attr("d",(function(t){if(t.empty)return"M0,0Z";var e=s.c2p(t.pos-u,!0),r=s.c2p(t.pos+u,!0),n=l?(e+r)/2:s.c2p(t.pos,!0);return"M"+e+","+o.c2p(t.o,!0)+"H"+n+"M"+n+","+o.c2p(t.h,!0)+"V"+o.c2p(t.l,!0)+"M"+r+","+o.c2p(t.c,!0)+"H"+n}))}}))}},67324:function(t){"use strict";t.exports=function(t,e){var r,n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].t.bPos||0;if(!1===e)for(r=0;r<n.length;r++)n[r].selected=0;else for(r=0;r<n.length;r++){var l=n[r];e.contains([i.c2p(l.pos+s),a.c2p(l.yc)],null,l.i,t)?(o.push({pointNumber:l.i,x:i.c2d(l.pos),y:a.c2d(l.yc)}),l.selected=1):l.selected=0}return o}},53101:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(7901);t.exports=function(t,e,r){var o=r||n.select(t).selectAll("g.ohlclayer").selectAll("g.trace");o.style("opacity",(function(t){return t[0].trace.opacity})),o.each((function(t){var e=t[0].trace;n.select(this).selectAll("path").each((function(t){if(!t.empty){var r=e[t.dir].line;n.select(this).style("fill","none").call(a.stroke,r.color).call(i.dashLine,r.dash,r.width).style("opacity",e.selectedpoints&&!t.selected?.3:1)}}))}))}},99506:function(t,e,r){"use strict";var n=r(1426).extendFlat,i=r(9012),a=r(41940),o=r(50693),s=r(5386).f,l=r(27670).Y,u=n({editType:"calc"},o("line",{editTypeOverride:"calc"}),{shape:{valType:"enumerated",values:["linear","hspline"],dflt:"linear",editType:"plot"},hovertemplate:s({editType:"plot",arrayOk:!1},{keys:["count","probability"]})});t.exports={domain:l({name:"parcats",trace:!0,editType:"calc"}),hoverinfo:n({},i.hoverinfo,{flags:["count","probability"],editType:"plot",arrayOk:!1}),hoveron:{valType:"enumerated",values:["category","color","dimension"],dflt:"category",editType:"plot"},hovertemplate:s({editType:"plot",arrayOk:!1},{keys:["count","probability","category","categorycount","colorcount","bandcolorcount"]}),arrangement:{valType:"enumerated",values:["perpendicular","freeform","fixed"],dflt:"perpendicular",editType:"plot"},bundlecolors:{valType:"boolean",dflt:!0,editType:"plot"},sortpaths:{valType:"enumerated",values:["forward","backward"],dflt:"forward",editType:"plot"},labelfont:a({editType:"calc"}),tickfont:a({editType:"calc"}),dimensions:{_isLinkedToArray:"dimension",label:{valType:"string",editType:"calc"},categoryorder:{valType:"enumerated",values:["trace","category ascending","category descending","array"],dflt:"trace",editType:"calc"},categoryarray:{valType:"data_array",editType:"calc"},ticktext:{valType:"data_array",editType:"calc"},values:{valType:"data_array",dflt:[],editType:"calc"},displayindex:{valType:"integer",editType:"calc"},editType:"calc",visible:{valType:"boolean",dflt:!0,editType:"calc"}},line:u,counts:{valType:"number",min:0,dflt:1,arrayOk:!0,editType:"calc"},customdata:void 0,hoverlabel:void 0,ids:void 0,legendgroup:void 0,legendrank:void 0,opacity:void 0,selectedpoints:void 0,showlegend:void 0}},27677:function(t,e,r){"use strict";var n=r(27659).a0,i=r(45784),a="parcats";e.name=a,e.plot=function(t,e,r,o){var s=n(t.calcdata,a);if(s.length){var l=s[0];i(t,l,r,o)}},e.clean=function(t,e,r,n){var i=n._has&&n._has("parcats"),a=e._has&&e._has("parcats");i&&!a&&n._paperdiv.selectAll(".parcats").remove()}},28699:function(t,e,r){"use strict";var n=r(28984).wrap,i=r(52075).hasColorscale,a=r(78803),o=r(75744),s=r(91424),l=r(71828),u=r(92770);function c(t,e,r){t.valueInds.push(e),t.count+=r}function f(t,e,r){return{categoryInds:t,color:e,rawColor:r,valueInds:[],count:0}}function h(t,e,r){t.valueInds.push(e),t.count+=r}t.exports=function(t,e){var r=l.filterVisible(e.dimensions);if(0===r.length)return[];var p,d,v,g=r.map((function(t){var e;if("trace"===t.categoryorder)e=null;else if("array"===t.categoryorder)e=t.categoryarray;else{e=o(t.values);for(var r=!0,n=0;n<e.length;n++)if(!u(e[n])){r=!1;break}e.sort(r?l.sorterAsc:void 0),"category descending"===t.categoryorder&&(e=e.reverse())}return function(t,e){e=null==e?[]:e.map((function(t){return t}));var r={},n={},i=[];e.forEach((function(t,e){r[t]=0,n[t]=e}));for(var a=0;a<t.length;a++){var o,s=t[a];void 0===r[s]?(r[s]=1,o=e.push(s)-1,n[s]=o):(r[s]++,o=n[s]),i.push(o)}var l=e.map((function(t){return r[t]}));return{uniqueValues:e,uniqueCounts:l,inds:i}}(t.values,e)}));p=l.isArrayOrTypedArray(e.counts)?e.counts:[e.counts],function(t){var e,r=t.map((function(t){return t.displayindex}));if(function(t){for(var e=new Array(t.length),r=0;r<t.length;r++){if(t[r]<0||t[r]>=t.length)return!1;if(void 0!==e[t[r]])return!1;e[t[r]]=!0}return!0}(r))for(e=0;e<t.length;e++)t[e]._displayindex=t[e].displayindex;else for(e=0;e<t.length;e++)t[e]._displayindex=e}(r),r.forEach((function(t,e){!function(t,e){t._categoryarray=e.uniqueValues,null===t.ticktext||void 0===t.ticktext?t._ticktext=[]:t._ticktext=t.ticktext.slice();for(var r=t._ticktext.length;r<e.uniqueValues.length;r++)t._ticktext.push(e.uniqueValues[r])}(t,g[e])}));var y,m=e.line;m?(i(e,"line")&&a(t,e,{vals:e.line.color,containerStr:"line",cLetter:"c"}),y=s.tryColorscale(m)):y=l.identity;var x,b,_,w,T,k=r[0].values.length,A={},M=g.map((function(t){return t.inds}));for(v=0,x=0;x<k;x++){var S=[];for(b=0;b<M.length;b++)S.push(M[b][x]);d=p[x%p.length],v+=d;var E=(_=x,w=void 0,T=void 0,l.isArrayOrTypedArray(m.color)?T=w=m.color[_%m.color.length]:w=m.color,{color:y(w),rawColor:T}),L=S+"-"+E.rawColor;void 0===A[L]&&(A[L]=f(S,E.color,E.rawColor)),h(A[L],x,d)}var C,P=r.map((function(t,e){return function(t,e,r,n,i){return{dimensionInd:t,containerInd:e,displayInd:r,dimensionLabel:n,count:i,categories:[],dragX:null}}(e,t._index,t._displayindex,t.label,v)}));for(x=0;x<k;x++)for(d=p[x%p.length],b=0;b<P.length;b++){var O=P[b].containerInd,I=g[b].inds[x],D=P[b].categories;if(void 0===D[I]){var z=e.dimensions[O]._categoryarray[I],R=e.dimensions[O]._ticktext[I];D[I]={dimensionInd:b,categoryInd:C=I,categoryValue:z,displayInd:C,categoryLabel:R,valueInds:[],count:0,dragY:null}}c(D[I],x,d)}return n(function(t,e,r){var n=t.map((function(t){return t.categories.length})).reduce((function(t,e){return Math.max(t,e)}));return{dimensions:t,paths:e,trace:void 0,maxCats:n,count:r}}(P,A,v))}},14647:function(t,e,r){"use strict";var n=r(71828),i=r(52075).hasColorscale,a=r(1586),o=r(27670).c,s=r(85501),l=r(99506),u=r(94397);function c(t,e){function r(r,i){return n.coerce(t,e,l.dimensions,r,i)}var i=r("values"),a=r("visible");if(i&&i.length||(a=e.visible=!1),a){r("label"),r("displayindex",e._index);var o,s=t.categoryarray,u=Array.isArray(s)&&s.length>0;u&&(o="array");var c=r("categoryorder",o);"array"===c?(r("categoryarray"),r("ticktext")):(delete t.categoryarray,delete t.ticktext),u||"array"!==c||(e.categoryorder="trace")}}t.exports=function(t,e,r,f){function h(r,i){return n.coerce(t,e,l,r,i)}var p=s(t,e,{name:"dimensions",handleItemDefaults:c}),d=function(t,e,r,o,s){s("line.shape"),s("line.hovertemplate");var l=s("line.color",o.colorway[0]);if(i(t,"line")&&n.isArrayOrTypedArray(l)){if(l.length)return s("line.colorscale"),a(t,e,o,s,{prefix:"line.",cLetter:"c"}),l.length;e.line.color=r}return 1/0}(t,e,r,f,h);o(e,f,h),Array.isArray(p)&&p.length||(e.visible=!1),u(e,p,"values",d),h("hoveron"),h("hovertemplate"),h("arrangement"),h("bundlecolors"),h("sortpaths"),h("counts");var v={family:f.font.family,size:Math.round(f.font.size),color:f.font.color};n.coerceFont(h,"labelfont",v);var g={family:f.font.family,size:Math.round(f.font.size/1.2),color:f.font.color};n.coerceFont(h,"tickfont",g)}},94873:function(t,e,r){"use strict";t.exports={attributes:r(99506),supplyDefaults:r(14647),calc:r(28699),plot:r(45784),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcats",basePlotModule:r(27677),categories:["noOpacity"],meta:{}}},45460:function(t,e,r){"use strict";var n=r(39898),i=r(29502).k4,a=r(72391),o=r(30211),s=r(71828),l=s.strTranslate,u=r(91424),c=r(84267),f=r(63893);function h(t,e,r,i){var a=e._context.staticPlot,o=t.map(F.bind(0,e,r)),c=i.selectAll("g.parcatslayer").data([null]);c.enter().append("g").attr("class","parcatslayer").style("pointer-events",a?"none":"all");var h=c.selectAll("g.trace.parcats").data(o,p),m=h.enter().append("g").attr("class","trace parcats");h.attr("transform",(function(t){return l(t.x,t.y)})),m.append("g").attr("class","paths");var x=h.select("g.paths").selectAll("path.path").data((function(t){return t.paths}),p);x.attr("fill",(function(t){return t.model.color}));var w=x.enter().append("path").attr("class","path").attr("stroke-opacity",0).attr("fill",(function(t){return t.model.color})).attr("fill-opacity",0);_(w),x.attr("d",(function(t){return t.svgD})),w.empty()||x.sort(v),x.exit().remove(),x.on("mouseover",g).on("mouseout",y).on("click",b),m.append("g").attr("class","dimensions");var A=h.select("g.dimensions").selectAll("g.dimension").data((function(t){return t.dimensions}),p);A.enter().append("g").attr("class","dimension"),A.attr("transform",(function(t){return l(t.x,0)})),A.exit().remove();var M=A.selectAll("g.category").data((function(t){return t.categories}),p),S=M.enter().append("g").attr("class","category");M.attr("transform",(function(t){return l(0,t.y)})),S.append("rect").attr("class","catrect").attr("pointer-events","none"),M.select("rect.catrect").attr("fill","none").attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})),T(S);var E=M.selectAll("rect.bandrect").data((function(t){return t.bands}),p);E.each((function(){s.raiseToTop(this)})),E.attr("fill",(function(t){return t.color}));var D=E.enter().append("rect").attr("class","bandrect").attr("stroke-opacity",0).attr("fill",(function(t){return t.color})).attr("fill-opacity",0);E.attr("fill",(function(t){return t.color})).attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})).attr("y",(function(t){return t.y})).attr("cursor",(function(t){return"fixed"===t.parcatsViewModel.arrangement?"default":"perpendicular"===t.parcatsViewModel.arrangement?"ns-resize":"move"})),k(D),E.exit().remove(),S.append("text").attr("class","catlabel").attr("pointer-events","none");var z=e._fullLayout.paper_bgcolor;M.select("text.catlabel").attr("text-anchor",(function(t){return d(t)?"start":"end"})).attr("alignment-baseline","middle").style("text-shadow",f.makeTextShadow(z)).style("fill","rgb(0, 0, 0)").attr("x",(function(t){return d(t)?t.width+5:-5})).attr("y",(function(t){return t.height/2})).text((function(t){return t.model.categoryLabel})).each((function(t){u.font(n.select(this),t.parcatsViewModel.categorylabelfont),f.convertToTspans(n.select(this),e)})),S.append("text").attr("class","dimlabel"),M.select("text.dimlabel").attr("text-anchor","middle").attr("alignment-baseline","baseline").attr("cursor",(function(t){return"fixed"===t.parcatsViewModel.arrangement?"default":"ew-resize"})).attr("x",(function(t){return t.width/2})).attr("y",-5).text((function(t,e){return 0===e?t.parcatsViewModel.model.dimensions[t.model.dimensionInd].dimensionLabel:null})).each((function(t){u.font(n.select(this),t.parcatsViewModel.labelfont)})),M.selectAll("rect.bandrect").on("mouseover",L).on("mouseout",C),M.exit().remove(),A.call(n.behavior.drag().origin((function(t){return{x:t.x,y:0}})).on("dragstart",P).on("drag",O).on("dragend",I)),h.each((function(t){t.traceSelection=n.select(this),t.pathSelection=n.select(this).selectAll("g.paths").selectAll("path.path"),t.dimensionSelection=n.select(this).selectAll("g.dimensions").selectAll("g.dimension")})),h.exit().remove()}function p(t){return t.key}function d(t){var e=t.parcatsViewModel.dimensions.length,r=t.parcatsViewModel.dimensions[e-1].model.dimensionInd;return t.model.dimensionInd===r}function v(t,e){return t.model.rawColor>e.model.rawColor?1:t.model.rawColor<e.model.rawColor?-1:0}function g(t){if(!t.parcatsViewModel.dragDimension&&-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")){s.raiseToTop(this),w(n.select(this));var e=m(t),r=x(t);if(t.parcatsViewModel.graphDiv.emit("plotly_hover",{points:e,event:n.event,constraints:r}),-1===t.parcatsViewModel.hoverinfoItems.indexOf("none")){var i,a,l,u=n.mouse(this)[0],f=t.parcatsViewModel.graphDiv,h=t.parcatsViewModel.trace,p=f._fullLayout,d=p._paperdiv.node().getBoundingClientRect(),v=t.parcatsViewModel.graphDiv.getBoundingClientRect();for(l=0;l<t.leftXs.length-1;l++)if(t.leftXs[l]+t.dimWidths[l]-2<=u&&u<=t.leftXs[l+1]+2){var g=t.parcatsViewModel.dimensions[l],y=t.parcatsViewModel.dimensions[l+1];i=(g.x+g.width+y.x)/2,a=(t.topYs[l]+t.topYs[l+1]+t.height)/2;break}var b=t.parcatsViewModel.x+i,_=t.parcatsViewModel.y+a,T=c.mostReadable(t.model.color,["black","white"]),k=t.model.count,A=k/t.parcatsViewModel.model.count,M={countLabel:k,probabilityLabel:A.toFixed(3)},S=[];-1!==t.parcatsViewModel.hoverinfoItems.indexOf("count")&&S.push(["Count:",M.countLabel].join(" ")),-1!==t.parcatsViewModel.hoverinfoItems.indexOf("probability")&&S.push(["P:",M.probabilityLabel].join(" "));var E=S.join("<br>"),L=n.mouse(f)[0];o.loneHover({trace:h,x:b-d.left+v.left,y:_-d.top+v.top,text:E,color:t.model.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:10,fontColor:T,idealAlign:L<b?"right":"left",hovertemplate:(h.line||{}).hovertemplate,hovertemplateLabels:M,eventData:[{data:h._input,fullData:h,count:k,probability:A}]},{container:p._hoverlayer.node(),outerContainer:p._paper.node(),gd:f})}}}function y(t){if(!t.parcatsViewModel.dragDimension&&(_(n.select(this)),o.loneUnhover(t.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node()),t.parcatsViewModel.pathSelection.sort(v),-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip"))){var e=m(t),r=x(t);t.parcatsViewModel.graphDiv.emit("plotly_unhover",{points:e,event:n.event,constraints:r})}}function m(t){for(var e=[],r=D(t.parcatsViewModel),n=0;n<t.model.valueInds.length;n++){var i=t.model.valueInds[n];e.push({curveNumber:r,pointNumber:i})}return e}function x(t){for(var e={},r=t.parcatsViewModel.model.dimensions,n=0;n<r.length;n++){var i=r[n],a=i.categories[t.model.categoryInds[n]];e[i.containerInd]=a.categoryValue}return void 0!==t.model.rawColor&&(e.color=t.model.rawColor),e}function b(t){if(-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")){var e=m(t),r=x(t);t.parcatsViewModel.graphDiv.emit("plotly_click",{points:e,event:n.event,constraints:r})}}function _(t){t.attr("fill",(function(t){return t.model.color})).attr("fill-opacity",.6).attr("stroke","lightgray").attr("stroke-width",.2).attr("stroke-opacity",1)}function w(t){t.attr("fill-opacity",.8).attr("stroke",(function(t){return c.mostReadable(t.model.color,["black","white"])})).attr("stroke-width",.3)}function T(t){t.select("rect.catrect").attr("stroke","black").attr("stroke-width",1).attr("stroke-opacity",1)}function k(t){t.attr("stroke","black").attr("stroke-width",.2).attr("stroke-opacity",1).attr("fill-opacity",1)}function A(t){var e=t.parcatsViewModel.pathSelection,r=t.categoryViewModel.model.dimensionInd,n=t.categoryViewModel.model.categoryInd;return e.filter((function(e){return e.model.categoryInds[r]===n&&e.model.color===t.color}))}function M(t,e,r){var i=n.select(t).datum(),a=i.categoryViewModel.model,o=i.parcatsViewModel.graphDiv,s=n.select(t.parentNode).selectAll("rect.bandrect"),l=[];s.each((function(t){A(t).each((function(t){Array.prototype.push.apply(l,m(t))}))}));var u={};u[a.dimensionInd]=a.categoryValue,o.emit(e,{points:l,event:r,constraints:u})}function S(t,e,r){var i=n.select(t).datum(),a=i.categoryViewModel.model,o=i.parcatsViewModel.graphDiv,s=A(i),l=[];s.each((function(t){Array.prototype.push.apply(l,m(t))}));var u={};u[a.dimensionInd]=a.categoryValue,void 0!==i.rawColor&&(u.color=i.rawColor),o.emit(e,{points:l,event:r,constraints:u})}function E(t,e,r){t._fullLayout._calcInverseTransform(t);var i,a,o=t._fullLayout._invScaleX,s=t._fullLayout._invScaleY,l=n.select(r.parentNode).select("rect.catrect"),u=l.node().getBoundingClientRect(),c=l.datum(),f=c.parcatsViewModel,h=f.model.dimensions[c.model.dimensionInd],p=f.trace,d=u.top+u.height/2;f.dimensions.length>1&&h.displayInd===f.dimensions.length-1?(i=u.left,a="left"):(i=u.left+u.width,a="right");var v=c.model.count,g=c.model.categoryLabel,y=v/c.parcatsViewModel.model.count,m={countLabel:v,categoryLabel:g,probabilityLabel:y.toFixed(3)},x=[];-1!==c.parcatsViewModel.hoverinfoItems.indexOf("count")&&x.push(["Count:",m.countLabel].join(" ")),-1!==c.parcatsViewModel.hoverinfoItems.indexOf("probability")&&x.push(["P("+m.categoryLabel+"):",m.probabilityLabel].join(" "));var b=x.join("<br>");return{trace:p,x:o*(i-e.left),y:s*(d-e.top),text:b,color:"lightgray",borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:12,fontColor:"black",idealAlign:a,hovertemplate:p.hovertemplate,hovertemplateLabels:m,eventData:[{data:p._input,fullData:p,count:v,category:g,probability:y}]}}function L(t){if(!t.parcatsViewModel.dragDimension&&-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")){if(n.mouse(this)[1]<-1)return;var e,r=t.parcatsViewModel.graphDiv,i=r._fullLayout,a=i._paperdiv.node().getBoundingClientRect(),l=t.parcatsViewModel.hoveron,u=this;"color"===l?(function(t){var e=n.select(t).datum(),r=A(e);w(r),r.each((function(){s.raiseToTop(this)})),n.select(t.parentNode).selectAll("rect.bandrect").filter((function(t){return t.color===e.color})).each((function(){s.raiseToTop(this),n.select(this).attr("stroke","black").attr("stroke-width",1.5)}))}(u),S(u,"plotly_hover",n.event)):(function(t){n.select(t.parentNode).selectAll("rect.bandrect").each((function(t){var e=A(t);w(e),e.each((function(){s.raiseToTop(this)}))})),n.select(t.parentNode).select("rect.catrect").attr("stroke","black").attr("stroke-width",2.5)}(u),M(u,"plotly_hover",n.event)),-1===t.parcatsViewModel.hoverinfoItems.indexOf("none")&&("category"===l?e=E(r,a,u):"color"===l?e=function(t,e,r){t._fullLayout._calcInverseTransform(t);var i,a,o=t._fullLayout._invScaleX,s=t._fullLayout._invScaleY,l=r.getBoundingClientRect(),u=n.select(r).datum(),f=u.categoryViewModel,h=f.parcatsViewModel,p=h.model.dimensions[f.model.dimensionInd],d=h.trace,v=l.y+l.height/2;h.dimensions.length>1&&p.displayInd===h.dimensions.length-1?(i=l.left,a="left"):(i=l.left+l.width,a="right");var g=f.model.categoryLabel,y=u.parcatsViewModel.model.count,m=0;u.categoryViewModel.bands.forEach((function(t){t.color===u.color&&(m+=t.count)}));var x=f.model.count,b=0;h.pathSelection.each((function(t){t.model.color===u.color&&(b+=t.model.count)}));var _=m/y,w=m/b,T=m/x,k={countLabel:y,categoryLabel:g,probabilityLabel:_.toFixed(3)},A=[];-1!==f.parcatsViewModel.hoverinfoItems.indexOf("count")&&A.push(["Count:",k.countLabel].join(" ")),-1!==f.parcatsViewModel.hoverinfoItems.indexOf("probability")&&(A.push("P(color ∩ "+g+"): "+k.probabilityLabel),A.push("P("+g+" | color): "+w.toFixed(3)),A.push("P(color | "+g+"): "+T.toFixed(3)));var M=A.join("<br>"),S=c.mostReadable(u.color,["black","white"]);return{trace:d,x:o*(i-e.left),y:s*(v-e.top),text:M,color:u.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontColor:S,fontSize:10,idealAlign:a,hovertemplate:d.hovertemplate,hovertemplateLabels:k,eventData:[{data:d._input,fullData:d,category:g,count:y,probability:_,categorycount:x,colorcount:b,bandcolorcount:m}]}}(r,a,u):"dimension"===l&&(e=function(t,e,r){var i=[];return n.select(r.parentNode.parentNode).selectAll("g.category").select("rect.catrect").each((function(){i.push(E(t,e,this))})),i}(r,a,u)),e&&o.loneHover(e,{container:i._hoverlayer.node(),outerContainer:i._paper.node(),gd:r}))}}function C(t){var e=t.parcatsViewModel;e.dragDimension||(_(e.pathSelection),T(e.dimensionSelection.selectAll("g.category")),k(e.dimensionSelection.selectAll("g.category").selectAll("rect.bandrect")),o.loneUnhover(e.graphDiv._fullLayout._hoverlayer.node()),e.pathSelection.sort(v),-1!==e.hoverinfoItems.indexOf("skip"))||("color"===t.parcatsViewModel.hoveron?S(this,"plotly_unhover",n.event):M(this,"plotly_unhover",n.event))}function P(t){"fixed"!==t.parcatsViewModel.arrangement&&(t.dragDimensionDisplayInd=t.model.displayInd,t.initialDragDimensionDisplayInds=t.parcatsViewModel.model.dimensions.map((function(t){return t.displayInd})),t.dragHasMoved=!1,t.dragCategoryDisplayInd=null,n.select(this).selectAll("g.category").select("rect.catrect").each((function(e){var r=n.mouse(this)[0],i=n.mouse(this)[1];-2<=r&&r<=e.width+2&&-2<=i&&i<=e.height+2&&(t.dragCategoryDisplayInd=e.model.displayInd,t.initialDragCategoryDisplayInds=t.model.categories.map((function(t){return t.displayInd})),e.model.dragY=e.y,s.raiseToTop(this.parentNode),n.select(this.parentNode).selectAll("rect.bandrect").each((function(e){e.y<i&&i<=e.y+e.height&&(t.potentialClickBand=this)})))})),t.parcatsViewModel.dragDimension=t,o.loneUnhover(t.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node()))}function O(t){if("fixed"!==t.parcatsViewModel.arrangement&&(t.dragHasMoved=!0,null!==t.dragDimensionDisplayInd)){var e=t.dragDimensionDisplayInd,r=e-1,i=e+1,a=t.parcatsViewModel.dimensions[e];if(null!==t.dragCategoryDisplayInd){var o=a.categories[t.dragCategoryDisplayInd];o.model.dragY+=n.event.dy;var s=o.model.dragY,l=o.model.displayInd,u=a.categories,c=u[l-1],f=u[l+1];void 0!==c&&s<c.y+c.height/2&&(o.model.displayInd=c.model.displayInd,c.model.displayInd=l),void 0!==f&&s+o.height>f.y+f.height/2&&(o.model.displayInd=f.model.displayInd,f.model.displayInd=l),t.dragCategoryDisplayInd=o.model.displayInd}if(null===t.dragCategoryDisplayInd||"freeform"===t.parcatsViewModel.arrangement){a.model.dragX=n.event.x;var h=t.parcatsViewModel.dimensions[r],p=t.parcatsViewModel.dimensions[i];void 0!==h&&a.model.dragX<h.x+h.width&&(a.model.displayInd=h.model.displayInd,h.model.displayInd=e),void 0!==p&&a.model.dragX+a.width>p.x&&(a.model.displayInd=p.model.displayInd,p.model.displayInd=t.dragDimensionDisplayInd),t.dragDimensionDisplayInd=a.model.displayInd}j(t.parcatsViewModel),N(t.parcatsViewModel),R(t.parcatsViewModel),z(t.parcatsViewModel)}}function I(t){if("fixed"!==t.parcatsViewModel.arrangement&&null!==t.dragDimensionDisplayInd){n.select(this).selectAll("text").attr("font-weight","normal");var e={},r=D(t.parcatsViewModel),i=t.parcatsViewModel.model.dimensions.map((function(t){return t.displayInd})),o=t.initialDragDimensionDisplayInds.some((function(t,e){return t!==i[e]}));o&&i.forEach((function(r,n){var i=t.parcatsViewModel.model.dimensions[n].containerInd;e["dimensions["+i+"].displayindex"]=r}));var s=!1;if(null!==t.dragCategoryDisplayInd){var l=t.model.categories.map((function(t){return t.displayInd}));if(s=t.initialDragCategoryDisplayInds.some((function(t,e){return t!==l[e]}))){var u=t.model.categories.slice().sort((function(t,e){return t.displayInd-e.displayInd})),c=u.map((function(t){return t.categoryValue})),f=u.map((function(t){return t.categoryLabel}));e["dimensions["+t.model.containerInd+"].categoryarray"]=[c],e["dimensions["+t.model.containerInd+"].ticktext"]=[f],e["dimensions["+t.model.containerInd+"].categoryorder"]="array"}}-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")&&!t.dragHasMoved&&t.potentialClickBand&&("color"===t.parcatsViewModel.hoveron?S(t.potentialClickBand,"plotly_click",n.event.sourceEvent):M(t.potentialClickBand,"plotly_click",n.event.sourceEvent)),t.model.dragX=null,null!==t.dragCategoryDisplayInd&&(t.parcatsViewModel.dimensions[t.dragDimensionDisplayInd].categories[t.dragCategoryDisplayInd].model.dragY=null,t.dragCategoryDisplayInd=null),t.dragDimensionDisplayInd=null,t.parcatsViewModel.dragDimension=null,t.dragHasMoved=null,t.potentialClickBand=null,j(t.parcatsViewModel),N(t.parcatsViewModel),n.transition().duration(300).ease("cubic-in-out").each((function(){R(t.parcatsViewModel,!0),z(t.parcatsViewModel,!0)})).each("end",(function(){(o||s)&&a.restyle(t.parcatsViewModel.graphDiv,e,[r])}))}}function D(t){for(var e,r=t.graphDiv._fullData,n=0;n<r.length;n++)if(t.key===r[n].uid){e=n;break}return e}function z(t,e){var r;void 0===e&&(e=!1),t.pathSelection.data((function(t){return t.paths}),p),(r=t.pathSelection,e?r.transition():r).attr("d",(function(t){return t.svgD}))}function R(t,e){function r(t){return e?t.transition():t}void 0===e&&(e=!1),t.dimensionSelection.data((function(t){return t.dimensions}),p);var i=t.dimensionSelection.selectAll("g.category").data((function(t){return t.categories}),p);r(t.dimensionSelection).attr("transform",(function(t){return l(t.x,0)})),r(i).attr("transform",(function(t){return l(0,t.y)})),i.select(".dimlabel").text((function(t,e){return 0===e?t.parcatsViewModel.model.dimensions[t.model.dimensionInd].dimensionLabel:null})),i.select(".catlabel").attr("text-anchor",(function(t){return d(t)?"start":"end"})).attr("x",(function(t){return d(t)?t.width+5:-5})).each((function(t){var e,r;d(t)?(e=t.width+5,r="start"):(e=-5,r="end"),n.select(this).selectAll("tspan").attr("x",e).attr("text-anchor",r)}));var a=i.selectAll("rect.bandrect").data((function(t){return t.bands}),p),o=a.enter().append("rect").attr("class","bandrect").attr("cursor","move").attr("stroke-opacity",0).attr("fill",(function(t){return t.color})).attr("fill-opacity",0);a.attr("fill",(function(t){return t.color})).attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})).attr("y",(function(t){return t.y})),k(o),a.each((function(){s.raiseToTop(this)})),a.exit().remove()}function F(t,e,r){var n,i=r[0],a=e.margin||{l:80,r:80,t:100,b:80},o=i.trace,s=o.domain,l=e.width,u=e.height,c=Math.floor(l*(s.x[1]-s.x[0])),f=Math.floor(u*(s.y[1]-s.y[0])),h=s.x[0]*l+a.l,p=e.height-s.y[1]*e.height+a.t,d=o.line.shape;n="all"===o.hoverinfo?["count","probability"]:(o.hoverinfo||"").split("+");var v={trace:o,key:o.uid,model:i,x:h,y:p,width:c,height:f,hoveron:o.hoveron,hoverinfoItems:n,arrangement:o.arrangement,bundlecolors:o.bundlecolors,sortpaths:o.sortpaths,labelfont:o.labelfont,categorylabelfont:o.tickfont,pathShape:d,dragDimension:null,margin:a,paths:[],dimensions:[],graphDiv:t,traceSelection:null,pathSelection:null,dimensionSelection:null};return i.dimensions&&(j(v),N(v)),v}function B(t,e,r,n,a){var o,s,l=[],u=[];for(s=0;s<r.length-1;s++)o=i(r[s]+t[s],t[s+1]),l.push(o(a)),u.push(o(1-a));var c="M "+t[0]+","+e[0];for(c+="l"+r[0]+",0 ",s=1;s<r.length;s++)c+="C"+l[s-1]+","+e[s-1]+" "+u[s-1]+","+e[s]+" "+t[s]+","+e[s],c+="l"+r[s]+",0 ";for(c+="l0,"+n+" ",c+="l -"+r[r.length-1]+",0 ",s=r.length-2;s>=0;s--)c+="C"+u[s]+","+(e[s+1]+n)+" "+l[s]+","+(e[s]+n)+" "+(t[s]+r[s])+","+(e[s]+n),c+="l-"+r[s]+",0 ";return c+"Z"}function N(t){var e=t.dimensions,r=t.model,n=e.map((function(t){return t.categories.map((function(t){return t.y}))})),i=t.model.dimensions.map((function(t){return t.categories.map((function(t){return t.displayInd}))})),a=t.model.dimensions.map((function(t){return t.displayInd})),o=t.dimensions.map((function(t){return t.model.dimensionInd})),s=e.map((function(t){return t.x})),l=e.map((function(t){return t.width})),u=[];for(var c in r.paths)r.paths.hasOwnProperty(c)&&u.push(r.paths[c]);function f(t){var e=t.categoryInds.map((function(t,e){return i[e][t]}));return o.map((function(t){return e[t]}))}u.sort((function(e,r){var n=f(e),i=f(r);return"backward"===t.sortpaths&&(n.reverse(),i.reverse()),n.push(e.valueInds[0]),i.push(r.valueInds[0]),t.bundlecolors&&(n.unshift(e.rawColor),i.unshift(r.rawColor)),n<i?-1:n>i?1:0}));for(var h=new Array(u.length),p=e[0].model.count,d=e[0].categories.map((function(t){return t.height})).reduce((function(t,e){return t+e})),v=0;v<u.length;v++){var g,y=u[v];g=p>0?d*(y.count/p):0;for(var m,x=new Array(n.length),b=0;b<y.categoryInds.length;b++){var _=y.categoryInds[b],w=i[b][_],T=a[b];x[T]=n[T][w],n[T][w]+=g;var k=t.dimensions[T].categories[w],A=k.bands.length,M=k.bands[A-1];if(void 0===M||y.rawColor!==M.rawColor){var S=void 0===M?0:M.y+M.height;k.bands.push({key:S,color:y.color,rawColor:y.rawColor,height:g,width:k.width,count:y.count,y:S,categoryViewModel:k,parcatsViewModel:t})}else{var E=k.bands[A-1];E.height+=g,E.count+=y.count}}m="hspline"===t.pathShape?B(s,x,l,g,.5):B(s,x,l,g,0),h[v]={key:y.valueInds[0],model:y,height:g,leftXs:s,topYs:x,dimWidths:l,svgD:m,parcatsViewModel:t}}t.paths=h}function j(t){var e=t.model.dimensions.map((function(t){return{displayInd:t.displayInd,dimensionInd:t.dimensionInd}}));e.sort((function(t,e){return t.displayInd-e.displayInd}));var r=[];for(var n in e){var i=e[n].dimensionInd,a=t.model.dimensions[i];r.push(U(t,a))}t.dimensions=r}function U(t,e){var r,n=t.model.dimensions.length,i=e.displayInd;r=40+(n>1?(t.width-80-16)/(n-1):0)*i;var a,o,s,l,u,c=[],f=t.model.maxCats,h=e.categories.length,p=e.count,d=t.height-8*(f-1),v=8*(f-h)/2,g=e.categories.map((function(t){return{displayInd:t.displayInd,categoryInd:t.categoryInd}}));for(g.sort((function(t,e){return t.displayInd-e.displayInd})),u=0;u<h;u++)l=g[u].categoryInd,o=e.categories[l],a=p>0?o.count/p*d:0,s={key:o.valueInds[0],model:o,width:16,height:a,y:null!==o.dragY?o.dragY:v,bands:[],parcatsViewModel:t},v=v+a+8,c.push(s);return{key:e.dimensionInd,x:null!==e.dragX?e.dragX:r,y:0,width:16,model:e,categories:c,parcatsViewModel:t,dragCategoryDisplayInd:null,dragDimensionDisplayInd:null,initialDragDimensionDisplayInds:null,initialDragCategoryDisplayInds:null,dragHasMoved:null,potentialClickBand:null}}t.exports=function(t,e,r,n){h(r,t,n,e)}},45784:function(t,e,r){"use strict";var n=r(45460);t.exports=function(t,e,r,i){var a=t._fullLayout,o=a._paper,s=a._size;n(t,o,e,{width:s.w,height:s.h,margin:{t:s.t,r:s.r,b:s.b,l:s.l}},r,i)}},73362:function(t,e,r){"use strict";var n=r(50693),i=r(13838),a=r(41940),o=r(27670).Y,s=r(1426).extendFlat,l=r(44467).templatedArray;t.exports={domain:o({name:"parcoords",trace:!0,editType:"plot"}),labelangle:{valType:"angle",dflt:0,editType:"plot"},labelside:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot"},labelfont:a({editType:"plot"}),tickfont:a({editType:"plot"}),rangefont:a({editType:"plot"}),dimensions:l("dimension",{label:{valType:"string",editType:"plot"},tickvals:s({},i.tickvals,{editType:"plot"}),ticktext:s({},i.ticktext,{editType:"plot"}),tickformat:s({},i.tickformat,{editType:"plot"}),visible:{valType:"boolean",dflt:!0,editType:"plot"},range:{valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},constraintrange:{valType:"info_array",freeLength:!0,dimensions:"1-2",items:[{valType:"any",editType:"plot"},{valType:"any",editType:"plot"}],editType:"plot"},multiselect:{valType:"boolean",dflt:!0,editType:"plot"},values:{valType:"data_array",editType:"calc"},editType:"calc"}),line:s({editType:"calc"},n("line",{colorscaleDflt:"Viridis",autoColorDflt:!1,editTypeOverride:"calc"})),unselected:{line:{color:{valType:"color",dflt:"#7f7f7f",editType:"plot"},opacity:{valType:"number",min:0,max:1,dflt:"auto",editType:"plot"},editType:"plot"},editType:"plot"}}},57920:function(t,e,r){"use strict";var n=r(25706),i=r(39898),a=r(28984).keyFun,o=r(28984).repeat,s=r(71828).sorterAsc,l=r(71828).strTranslate,u=n.bar.snapRatio;function c(t,e){return t*(1-u)+e*u}var f=n.bar.snapClose;function h(t,e){return t*(1-f)+e*f}function p(t,e,r,n){if(function(t,e){for(var r=0;r<e.length;r++)if(t>=e[r][0]&&t<=e[r][1])return!0;return!1}(r,n))return r;var i=t?-1:1,a=0,o=e.length-1;if(i<0){var s=a;a=o,o=s}for(var l=e[a],u=l,f=a;i*f<i*o;f+=i){var p=f+i,d=e[p];if(i*r<i*h(l,d))return c(l,u);if(i*r<i*d||p===o)return c(d,l);u=l,l=d}}function d(t){t.attr("x",-n.bar.captureWidth/2).attr("width",n.bar.captureWidth)}function v(t){t.attr("visibility","visible").style("visibility","visible").attr("fill","yellow").attr("opacity",0)}function g(t){if(!t.brush.filterSpecified)return"0,"+t.height;for(var e,r,n,i=y(t.brush.filter.getConsolidated(),t.height),a=[0],o=i.length?i[0][0]:null,s=0;s<i.length;s++)r=(e=i[s])[1]-e[0],a.push(o),a.push(r),(n=s+1)<i.length&&(o=i[n][0]-e[1]);return a.push(t.height),a}function y(t,e){return t.map((function(t){return t.map((function(t){return Math.max(0,t*e)})).sort(s)}))}function m(){i.select(document.body).style("cursor",null)}function x(t){t.attr("stroke-dasharray",g)}function b(t,e){var r=i.select(t).selectAll(".highlight, .highlight-shadow");x(e?r.transition().duration(n.bar.snapDuration).each("end",e):r)}function _(t,e){var r,i=t.brush,a=NaN,o={};if(i.filterSpecified){var s=t.height,l=i.filter.getConsolidated(),u=y(l,s),c=NaN,f=NaN,h=NaN;for(r=0;r<=u.length;r++){var p=u[r];if(p&&p[0]<=e&&e<=p[1]){c=r;break}if(f=r?r-1:NaN,p&&p[0]>e){h=r;break}}if(a=c,isNaN(a)&&(a=isNaN(f)||isNaN(h)?isNaN(f)?h:f:e-u[f][1]<u[h][0]-e?f:h),!isNaN(a)){var d=u[a],v=function(t,e){var r=n.bar.handleHeight;if(!(e>t[1]+r||e<t[0]-r))return e>=.9*t[1]+.1*t[0]?"n":e<=.9*t[0]+.1*t[1]?"s":"ns"}(d,e);v&&(o.interval=l[a],o.intervalPix=d,o.region=v)}}if(t.ordinal&&!o.region){var g=t.unitTickvals,m=t.unitToPaddedPx.invert(e);for(r=0;r<g.length;r++){var x=[.25*g[Math.max(r-1,0)]+.75*g[r],.25*g[Math.min(r+1,g.length-1)]+.75*g[r]];if(m>=x[0]&&m<=x[1]){o.clickableOrdinalRange=x;break}}}return o}function w(t,e){i.event.sourceEvent.stopPropagation();var r=e.height-i.mouse(t)[1]-2*n.verticalPadding,a=e.brush.svgBrush;a.wasDragged=!0,a._dragging=!0,a.grabbingBar?a.newExtent=[r-a.grabPoint,r+a.barLength-a.grabPoint].map(e.unitToPaddedPx.invert):a.newExtent=[a.startExtent,e.unitToPaddedPx.invert(r)].sort(s),e.brush.filterSpecified=!0,a.extent=a.stayingIntervals.concat([a.newExtent]),a.brushCallback(e),b(t.parentNode)}function T(t,e){var r=_(e,e.height-i.mouse(t)[1]-2*n.verticalPadding),a="crosshair";r.clickableOrdinalRange?a="pointer":r.region&&(a=r.region+"-resize"),i.select(document.body).style("cursor",a)}function k(t){t.on("mousemove",(function(t){i.event.preventDefault(),t.parent.inBrushDrag||T(this,t)})).on("mouseleave",(function(t){t.parent.inBrushDrag||m()})).call(i.behavior.drag().on("dragstart",(function(t){!function(t,e){i.event.sourceEvent.stopPropagation();var r=e.height-i.mouse(t)[1]-2*n.verticalPadding,a=e.unitToPaddedPx.invert(r),o=e.brush,s=_(e,r),l=s.interval,u=o.svgBrush;if(u.wasDragged=!1,u.grabbingBar="ns"===s.region,u.grabbingBar){var c=l.map(e.unitToPaddedPx);u.grabPoint=r-c[0]-n.verticalPadding,u.barLength=c[1]-c[0]}u.clickableOrdinalRange=s.clickableOrdinalRange,u.stayingIntervals=e.multiselect&&o.filterSpecified?o.filter.getConsolidated():[],l&&(u.stayingIntervals=u.stayingIntervals.filter((function(t){return t[0]!==l[0]&&t[1]!==l[1]}))),u.startExtent=s.region?l["s"===s.region?1:0]:a,e.parent.inBrushDrag=!0,u.brushStartCallback()}(this,t)})).on("drag",(function(t){w(this,t)})).on("dragend",(function(t){!function(t,e){var r=e.brush,n=r.filter,a=r.svgBrush;a._dragging||(T(t,e),w(t,e),e.brush.svgBrush.wasDragged=!1),a._dragging=!1,i.event.sourceEvent.stopPropagation();var o=a.grabbingBar;if(a.grabbingBar=!1,a.grabLocation=void 0,e.parent.inBrushDrag=!1,m(),!a.wasDragged)return a.wasDragged=void 0,a.clickableOrdinalRange?r.filterSpecified&&e.multiselect?a.extent.push(a.clickableOrdinalRange):(a.extent=[a.clickableOrdinalRange],r.filterSpecified=!0):o?(a.extent=a.stayingIntervals,0===a.extent.length&&M(r)):M(r),a.brushCallback(e),b(t.parentNode),void a.brushEndCallback(r.filterSpecified?n.getConsolidated():[]);var s=function(){n.set(n.getConsolidated())};if(e.ordinal){var l=e.unitTickvals;l[l.length-1]<l[0]&&l.reverse(),a.newExtent=[p(0,l,a.newExtent[0],a.stayingIntervals),p(1,l,a.newExtent[1],a.stayingIntervals)];var u=a.newExtent[1]>a.newExtent[0];a.extent=a.stayingIntervals.concat(u?[a.newExtent]:[]),a.extent.length||M(r),a.brushCallback(e),u?b(t.parentNode,s):(s(),b(t.parentNode))}else s();a.brushEndCallback(r.filterSpecified?n.getConsolidated():[])}(this,t)})))}function A(t,e){return t[0]-e[0]}function M(t){t.filterSpecified=!1,t.svgBrush.extent=[[-1/0,1/0]]}function S(t){for(var e,r=t.slice(),n=[],i=r.shift();i;){for(e=i.slice();(i=r.shift())&&i[0]<=e[1];)e[1]=Math.max(e[1],i[1]);n.push(e)}return 1===n.length&&n[0][0]>n[0][1]&&(n=[]),n}t.exports={makeBrush:function(t,e,r,n,i,a){var o,l=function(){var t,e,r=[];return{set:function(n){1===(r=n.map((function(t){return t.slice().sort(s)})).sort(A)).length&&r[0][0]===-1/0&&r[0][1]===1/0&&(r=[[0,-1]]),t=S(r),e=r.reduce((function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]}),[1/0,-1/0])},get:function(){return r.slice()},getConsolidated:function(){return t},getBounds:function(){return e}}}();return l.set(r),{filter:l,filterSpecified:e,svgBrush:{extent:[],brushStartCallback:n,brushCallback:(o=i,function(t){var e=t.brush,r=function(t){return t.svgBrush.extent.map((function(t){return t.slice()}))}(e),n=r.slice();e.filter.set(n),o()}),brushEndCallback:a}}},ensureAxisBrush:function(t,e,r){var i=t.selectAll("."+n.cn.axisBrush).data(o,a);i.enter().append("g").classed(n.cn.axisBrush,!0),function(t,e,r){var i=r._context.staticPlot,a=t.selectAll(".background").data(o);a.enter().append("rect").classed("background",!0).call(d).call(v).style("pointer-events",i?"none":"auto").attr("transform",l(0,n.verticalPadding)),a.call(k).attr("height",(function(t){return t.height-n.verticalPadding}));var s=t.selectAll(".highlight-shadow").data(o);s.enter().append("line").classed("highlight-shadow",!0).attr("x",-n.bar.width/2).attr("stroke-width",n.bar.width+n.bar.strokeWidth).attr("stroke",e).attr("opacity",n.bar.strokeOpacity).attr("stroke-linecap","butt"),s.attr("y1",(function(t){return t.height})).call(x);var u=t.selectAll(".highlight").data(o);u.enter().append("line").classed("highlight",!0).attr("x",-n.bar.width/2).attr("stroke-width",n.bar.width-n.bar.strokeWidth).attr("stroke",n.bar.fillColor).attr("opacity",n.bar.fillOpacity).attr("stroke-linecap","butt"),u.attr("y1",(function(t){return t.height})).call(x)}(i,e,r)},cleanRanges:function(t,e){if(Array.isArray(t[0])?(t=t.map((function(t){return t.sort(s)})),t=e.multiselect?S(t.sort(A)):[t[0]]):t=[t.sort(s)],e.tickvals){var r=e.tickvals.slice().sort(s);if(!(t=t.map((function(t){var e=[p(0,r,t[0],[]),p(1,r,t[1],[])];if(e[1]>e[0])return e})).filter((function(t){return t}))).length)return}return t.length>1?t:t[0]}}},71791:function(t,e,r){"use strict";t.exports={attributes:r(73362),supplyDefaults:r(3633),calc:r(24639),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcoords",basePlotModule:r(49351),categories:["gl","regl","noOpacity","noHover"],meta:{}}},49351:function(t,e,r){"use strict";var n=r(39898),i=r(27659).a0,a=r(21341),o=r(77922);e.name="parcoords",e.plot=function(t){var e=i(t.calcdata,"parcoords")[0];e.length&&a(t,e)},e.clean=function(t,e,r,n){var i=n._has&&n._has("parcoords"),a=e._has&&e._has("parcoords");i&&!a&&(n._paperdiv.selectAll(".parcoords").remove(),n._glimages.selectAll("*").remove())},e.toSVG=function(t){var e=t._fullLayout._glimages,r=n.select(t).selectAll(".svg-container");r.filter((function(t,e){return e===r.size()-1})).selectAll(".gl-canvas-context, .gl-canvas-focus").each((function(){var t=this,r=t.toDataURL("image/png");e.append("svg:image").attr({xmlns:o.svg,"xlink:href":r,preserveAspectRatio:"none",x:0,y:0,width:t.style.width,height:t.style.height})})),window.setTimeout((function(){n.selectAll("#filterBarPattern").attr("id","filterBarPattern")}),60)}},24639:function(t,e,r){"use strict";var n=r(71828).isArrayOrTypedArray,i=r(21081),a=r(28984).wrap;t.exports=function(t,e){var r,o;return i.hasColorscale(e,"line")&&n(e.line.color)?(r=e.line.color,o=i.extractOpts(e.line).colorscale,i.calc(t,e,{vals:r,containerStr:"line",cLetter:"c"})):(r=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=.5;return e}(e._length),o=[[0,e.line.color],[1,e.line.color]]),a({lineColor:r,cscale:o})}},25706:function(t){"use strict";t.exports={maxDimensionCount:60,overdrag:45,verticalPadding:2,tickDistance:50,canvasPixelRatio:1,blockLineCount:5e3,layers:["contextLineLayer","focusLineLayer","pickLineLayer"],axisTitleOffset:28,axisExtentOffset:10,bar:{width:4,captureWidth:10,fillColor:"magenta",fillOpacity:1,snapDuration:150,snapRatio:.25,snapClose:.01,strokeOpacity:1,strokeWidth:1,handleHeight:8,handleOpacity:1,handleOverlap:0},cn:{axisExtentText:"axis-extent-text",parcoordsLineLayers:"parcoords-line-layers",parcoordsLineLayer:"parcoords-lines",parcoords:"parcoords",parcoordsControlView:"parcoords-control-view",yAxis:"y-axis",axisOverlays:"axis-overlays",axis:"axis",axisHeading:"axis-heading",axisTitle:"axis-title",axisExtent:"axis-extent",axisExtentTop:"axis-extent-top",axisExtentTopText:"axis-extent-top-text",axisExtentBottom:"axis-extent-bottom",axisExtentBottomText:"axis-extent-bottom-text",axisBrush:"axis-brush"},id:{filterBarPattern:"filter-bar-pattern"}}},3633:function(t,e,r){"use strict";var n=r(71828),i=r(52075).hasColorscale,a=r(1586),o=r(27670).c,s=r(85501),l=r(89298),u=r(73362),c=r(57920),f=r(25706).maxDimensionCount,h=r(94397);function p(t,e,r,i){function a(r,i){return n.coerce(t,e,u.dimensions,r,i)}var o=a("values"),s=a("visible");if(o&&o.length||(s=e.visible=!1),s){a("label"),a("tickvals"),a("ticktext"),a("tickformat");var f=a("range");e._ax={_id:"y",type:"linear",showexponent:"all",exponentformat:"B",range:f},l.setConvert(e._ax,i.layout),a("multiselect");var h=a("constraintrange");h&&(e.constraintrange=c.cleanRanges(h,e))}}t.exports=function(t,e,r,l){function c(r,i){return n.coerce(t,e,u,r,i)}var d=t.dimensions;Array.isArray(d)&&d.length>f&&(n.log("parcoords traces support up to "+f+" dimensions at the moment"),d.splice(f));var v=s(t,e,{name:"dimensions",layout:l,handleItemDefaults:p}),g=function(t,e,r,o,s){var l=s("line.color",r);if(i(t,"line")&&n.isArrayOrTypedArray(l)){if(l.length)return s("line.colorscale"),a(t,e,o,s,{prefix:"line.",cLetter:"c"}),l.length;e.line.color=r}return 1/0}(t,e,r,l,c);o(e,l,c),Array.isArray(v)&&v.length||(e.visible=!1),h(e,v,"values",g);var y={family:l.font.family,size:Math.round(l.font.size/1.2),color:l.font.color};n.coerceFont(c,"labelfont",y),n.coerceFont(c,"tickfont",y),n.coerceFont(c,"rangefont",y),c("labelangle"),c("labelside"),c("unselected.line.color"),c("unselected.line.opacity")}},1602:function(t,e,r){"use strict";var n=r(71828).isTypedArray;e.convertTypedArray=function(t){return n(t)?Array.prototype.slice.call(t):t},e.isOrdinal=function(t){return!!t.tickvals},e.isVisible=function(t){return t.visible||!("visible"in t)}},67618:function(t,e,r){"use strict";var n=r(71791);n.plot=r(21341),t.exports=n},83398:function(t,e,r){"use strict";var n=r(56068),i=n(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nattribute vec4 p01_04, p05_08, p09_12, p13_16,\n               p17_20, p21_24, p25_28, p29_32,\n               p33_36, p37_40, p41_44, p45_48,\n               p49_52, p53_56, p57_60, colors;\n\nuniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,\n             loA, hiA, loB, hiB, loC, hiC, loD, hiD;\n\nuniform vec2 resolution, viewBoxPos, viewBoxSize;\nuniform float maskHeight;\nuniform float drwLayer; // 0: context, 1: focus, 2: pick\nuniform vec4 contextColor;\nuniform sampler2D maskTexture, palette;\n\nbool isPick    = (drwLayer > 1.5);\nbool isContext = (drwLayer < 0.5);\n\nconst vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);\nconst vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);\n\nfloat val(mat4 p, mat4 v) {\n    return dot(matrixCompMult(p, v) * UNITS, UNITS);\n}\n\nfloat axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {\n    float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);\n    float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);\n    return y1 * (1.0 - ratio) + y2 * ratio;\n}\n\nint iMod(int a, int b) {\n    return a - b * (a / b);\n}\n\nbool fOutside(float p, float lo, float hi) {\n    return (lo < hi) && (lo > p || p > hi);\n}\n\nbool vOutside(vec4 p, vec4 lo, vec4 hi) {\n    return (\n        fOutside(p[0], lo[0], hi[0]) ||\n        fOutside(p[1], lo[1], hi[1]) ||\n        fOutside(p[2], lo[2], hi[2]) ||\n        fOutside(p[3], lo[3], hi[3])\n    );\n}\n\nbool mOutside(mat4 p, mat4 lo, mat4 hi) {\n    return (\n        vOutside(p[0], lo[0], hi[0]) ||\n        vOutside(p[1], lo[1], hi[1]) ||\n        vOutside(p[2], lo[2], hi[2]) ||\n        vOutside(p[3], lo[3], hi[3])\n    );\n}\n\nbool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {\n    return mOutside(A, loA, hiA) ||\n           mOutside(B, loB, hiB) ||\n           mOutside(C, loC, hiC) ||\n           mOutside(D, loD, hiD);\n}\n\nbool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {\n    mat4 pnts[4];\n    pnts[0] = A;\n    pnts[1] = B;\n    pnts[2] = C;\n    pnts[3] = D;\n\n    for(int i = 0; i < 4; ++i) {\n        for(int j = 0; j < 4; ++j) {\n            for(int k = 0; k < 4; ++k) {\n                if(0 == iMod(\n                    int(255.0 * texture2D(maskTexture,\n                        vec2(\n                            (float(i * 2 + j / 2) + 0.5) / 8.0,\n                            (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight\n                        ))[3]\n                    ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),\n                    2\n                )) return true;\n            }\n        }\n    }\n    return false;\n}\n\nvec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {\n    float x = 0.5 * sign(v) + 0.5;\n    float y = axisY(x, A, B, C, D);\n    float z = 1.0 - abs(v);\n\n    z += isContext ? 0.0 : 2.0 * float(\n        outsideBoundingBox(A, B, C, D) ||\n        outsideRasterMask(A, B, C, D)\n    );\n\n    return vec4(\n        2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,\n        z,\n        1.0\n    );\n}\n\nvoid main() {\n    mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);\n    mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);\n    mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);\n    mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);\n\n    float v = colors[3];\n\n    gl_Position = position(isContext, v, A, B, C, D);\n\n    fragColor =\n        isContext ? vec4(contextColor) :\n        isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));\n}\n"]),a=n(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n    gl_FragColor = fragColor;\n}\n"]),o=r(25706).maxDimensionCount,s=r(71828),l=new Uint8Array(4),u=new Uint8Array(4),c={shape:[256,1],format:"rgba",type:"uint8",mag:"nearest",min:"nearest"};function f(t,e,r,n,i){var a=t._gl;a.enable(a.SCISSOR_TEST),a.scissor(e,r,n,i),t.clear({color:[0,0,0,0],depth:1})}function h(t,e,r,n,i,a){var o=a.key;r.drawCompleted||(function(t){t.read({x:0,y:0,width:1,height:1,data:l})}(t),r.drawCompleted=!0),function s(l){var u=Math.min(n,i-l*n);0===l&&(window.cancelAnimationFrame(r.currentRafs[o]),delete r.currentRafs[o],f(t,a.scissorX,a.scissorY,a.scissorWidth,a.viewBoxSize[1])),r.clearOnly||(a.count=2*u,a.offset=2*l*n,e(a),l*n+u<i&&(r.currentRafs[o]=window.requestAnimationFrame((function(){s(l+1)}))),r.drawCompleted=!1)}(0)}function p(t,e){for(var r=new Array(256),n=0;n<256;n++)r[n]=t(n/255).concat(e);return r}function d(t,e){return(t>>>8*e)%256/255}function v(t,e,r){for(var n=new Array(8*e),i=0,a=0;a<e;a++)for(var o=0;o<2;o++)for(var s=0;s<4;s++){var l=4*t+s,u=r[64*a+l];63===l&&0===o&&(u*=-1),n[i++]=u}return n}function g(t){var e="0"+t;return e.substr(e.length-2)}function y(t){return t<o?"p"+g(t+1)+"_"+g(t+4):"colors"}function m(t,e,r,n,i,a,o,l,u,c,f,h,p,d){for(var v=[[],[]],g=0;g<64;g++)v[0][g]=g===i?1:0,v[1][g]=g===a?1:0;o*=d,l*=d,u*=d,c*=d;var y=t.lines.canvasOverdrag*d,m=t.domain,x=t.canvasWidth*d,b=t.canvasHeight*d,_=t.pad.l*d,w=t.pad.b*d,T=t.layoutHeight*d,k=t.layoutWidth*d,A=t.deselectedLines.color,M=t.deselectedLines.opacity;return s.extendFlat({key:f,resolution:[x,b],viewBoxPos:[o+y,l],viewBoxSize:[u,c],i0:i,i1:a,dim0A:v[0].slice(0,16),dim0B:v[0].slice(16,32),dim0C:v[0].slice(32,48),dim0D:v[0].slice(48,64),dim1A:v[1].slice(0,16),dim1B:v[1].slice(16,32),dim1C:v[1].slice(32,48),dim1D:v[1].slice(48,64),drwLayer:h,contextColor:[A[0]/255,A[1]/255,A[2]/255,"auto"!==M?A[3]*M:Math.max(1/255,Math.pow(1/t.lines.color.length,1/3))],scissorX:(n===e?0:o+y)+(_-y)+k*m.x[0],scissorWidth:(n===r?x-o+y:u+.5)+(n===e?o+y:0),scissorY:l+w+T*m.y[0],scissorHeight:c,viewportX:_-y+k*m.x[0],viewportY:w+T*m.y[0],viewportWidth:x,viewportHeight:b},p)}function x(t){var e=2047,r=Math.max(0,Math.floor(t[0]*e),0),n=Math.min(e,Math.ceil(t[1]*e),e);return[Math.min(r,n),Math.max(r,n)]}t.exports=function(t,e){var r,n,l,g,b,_=e.context,w=e.pick,T=e.regl,k=T._gl,A=k.getParameter(k.ALIASED_LINE_WIDTH_RANGE),M=Math.max(A[0],Math.min(A[1],e.viewModel.plotGlPixelRatio)),S={currentRafs:{},drawCompleted:!0,clearOnly:!1},E=function(t){for(var e={},r=0;r<=o;r+=4)e[y(r)]=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)});return e}(T),L=T.texture(c),C=[];O(e);var P=T({profile:!1,blend:{enable:_,func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:1,dstAlpha:1},equation:{rgb:"add",alpha:"add"},color:[0,0,0,0]},depth:{enable:!_,mask:!0,func:"less",range:[0,1]},cull:{enable:!0,face:"back"},scissor:{enable:!0,box:{x:T.prop("scissorX"),y:T.prop("scissorY"),width:T.prop("scissorWidth"),height:T.prop("scissorHeight")}},viewport:{x:T.prop("viewportX"),y:T.prop("viewportY"),width:T.prop("viewportWidth"),height:T.prop("viewportHeight")},dither:!1,vert:i,frag:a,primitive:"lines",lineWidth:M,attributes:E,uniforms:{resolution:T.prop("resolution"),viewBoxPos:T.prop("viewBoxPos"),viewBoxSize:T.prop("viewBoxSize"),dim0A:T.prop("dim0A"),dim1A:T.prop("dim1A"),dim0B:T.prop("dim0B"),dim1B:T.prop("dim1B"),dim0C:T.prop("dim0C"),dim1C:T.prop("dim1C"),dim0D:T.prop("dim0D"),dim1D:T.prop("dim1D"),loA:T.prop("loA"),hiA:T.prop("hiA"),loB:T.prop("loB"),hiB:T.prop("hiB"),loC:T.prop("loC"),hiC:T.prop("hiC"),loD:T.prop("loD"),hiD:T.prop("hiD"),palette:L,contextColor:T.prop("contextColor"),maskTexture:T.prop("maskTexture"),drwLayer:T.prop("drwLayer"),maskHeight:T.prop("maskHeight")},offset:T.prop("offset"),count:T.prop("count")});function O(t){r=t.model,n=t.viewModel,l=n.dimensions.slice(),g=l[0]?l[0].values.length:0;var e=r.lines,i=w?e.color.map((function(t,r){return r/e.color.length})):e.color,a=function(t,e,r){for(var n,i=new Array(t*(o+4)),a=0,s=0;s<t;s++){for(var l=0;l<o;l++)i[a++]=l<e.length?e[l].paddedUnitValues[s]:.5;i[a++]=d(s,2),i[a++]=d(s,1),i[a++]=d(s,0),i[a++]=(n=r[s],Math.max(1e-6,Math.min(.999999,n)))}return i}(g,l,i);!function(t,e,r){for(var n=0;n<=o;n+=4)t[y(n)](v(n/4,e,r))}(E,g,a),_||w||(L=T.texture(s.extendFlat({data:p(r.unitToColor,255)},c)))}return{render:function(t,e,n){var i,a,o,s=t.length,u=1/0,c=-1/0;for(i=0;i<s;i++)t[i].dim0.canvasX<u&&(u=t[i].dim0.canvasX,a=i),t[i].dim1.canvasX>c&&(c=t[i].dim1.canvasX,o=i);0===s&&f(T,0,0,r.canvasWidth,r.canvasHeight);var p=function(t){var e,r,n,i=[[],[]];for(n=0;n<64;n++){var a=!t&&n<l.length?l[n].brush.filter.getBounds():[-1/0,1/0];i[0][n]=a[0],i[1][n]=a[1]}var o=new Array(16384);for(e=0;e<16384;e++)o[e]=255;if(!t)for(e=0;e<l.length;e++){var s=e%8,u=(e-s)/8,c=Math.pow(2,s),f=l[e].brush.filter.get();if(!(f.length<2)){var h=x(f[0])[1];for(r=1;r<f.length;r++){var p=x(f[r]);for(n=h+1;n<p[0];n++)o[8*n+u]&=~c;h=Math.max(h,p[1])}}}var d={shape:[8,2048],format:"alpha",type:"uint8",mag:"nearest",min:"nearest",data:o};return b?b(d):b=T.texture(d),{maskTexture:b,maskHeight:2048,loA:i[0].slice(0,16),loB:i[0].slice(16,32),loC:i[0].slice(32,48),loD:i[0].slice(48,64),hiA:i[1].slice(0,16),hiB:i[1].slice(16,32),hiC:i[1].slice(32,48),hiD:i[1].slice(48,64)}}(_);for(i=0;i<s;i++){var d=t[i],v=d.dim0.crossfilterDimensionIndex,y=d.dim1.crossfilterDimensionIndex,k=d.canvasX,A=d.canvasY,M=k+d.panelSizeX,E=d.plotGlPixelRatio;if(e||!C[v]||C[v][0]!==k||C[v][1]!==M){C[v]=[k,M];var L=m(r,a,o,i,v,y,k,A,d.panelSizeX,d.panelSizeY,d.dim0.crossfilterDimensionIndex,_?0:w?2:1,p,E);S.clearOnly=n;var O=e?r.lines.blockLineCount:g;h(T,P,S,O,g,L)}}},readPixel:function(t,e){return T.read({x:t,y:e,width:1,height:1,data:u}),u},readPixels:function(t,e,r,n){var i=new Uint8Array(4*r*n);return T.read({x:t,y:e,width:r,height:n,data:i}),i},destroy:function(){for(var e in t.style["pointer-events"]="none",L.destroy(),b&&b.destroy(),E)E[e].destroy()},update:O}}},94397:function(t){"use strict";t.exports=function(t,e,r,n){var i,a;for(n||(n=1/0),i=0;i<e.length;i++)(a=e[i]).visible&&(n=Math.min(n,a[r].length));for(n===1/0&&(n=0),t._length=n,i=0;i<e.length;i++)(a=e[i]).visible&&(a._length=n);return n}},17171:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.numberFormat,o=r(36652),s=r(89298),l=i.strRotate,u=i.strTranslate,c=r(63893),f=r(91424),h=r(21081),p=r(28984),d=p.keyFun,v=p.repeat,g=p.unwrap,y=r(1602),m=r(25706),x=r(57920),b=r(83398);function _(t,e,r){return i.aggNums(t,null,e,r)}function w(t,e){return k(_(Math.min,t,e),_(Math.max,t,e))}function T(t){var e=t.range;return e?k(e[0],e[1]):w(t.values,t._length)}function k(t,e){return!isNaN(t)&&isFinite(t)||(t=0),!isNaN(e)&&isFinite(e)||(e=0),t===e&&(0===t?(t-=1,e+=1):(t*=.9,e*=1.1)),[t,e]}function A(t,e,r,i,o){var s,l,u=T(r);return i?n.scale.ordinal().domain(i.map((s=a(r.tickformat),l=o,l?function(t,e){var r=l[e];return null==r?s(t):r}:s))).range(i.map((function(r){var n=(r-u[0])/(u[1]-u[0]);return t-e+n*(2*e-t)}))):n.scale.linear().domain(u).range([t-e,e])}function M(t){if(t.tickvals){var e=T(t);return n.scale.ordinal().domain(t.tickvals).range(t.tickvals.map((function(t){return(t-e[0])/(e[1]-e[0])})))}}function S(t){var e=t.map((function(t){return t[0]})),r=t.map((function(t){var e=o(t[1]);return n.rgb("rgb("+e[0]+","+e[1]+","+e[2]+")")})),i="rgb".split("").map((function(t){return n.scale.linear().clamp(!0).domain(e).range(r.map((i=t,function(t){return t[i]})));var i}));return function(t){return i.map((function(e){return e(t)}))}}function E(t){return t.dimensions.some((function(t){return t.brush.filterSpecified}))}function L(t,e,r){var a=g(e),s=a.trace,l=y.convertTypedArray(a.lineColor),u=s.line,c={color:o(s.unselected.line.color),opacity:s.unselected.line.opacity},f=h.extractOpts(u),p=f.reversescale?h.flipScale(a.cscale):a.cscale,d=s.domain,v=s.dimensions,x=t.width,b=s.labelangle,_=s.labelside,w=s.labelfont,k=s.tickfont,A=s.rangefont,M=i.extendDeepNoArrays({},u,{color:l.map(n.scale.linear().domain(T({values:l,range:[f.min,f.max],_length:s._length}))),blockLineCount:m.blockLineCount,canvasOverdrag:m.overdrag*m.canvasPixelRatio}),E=Math.floor(x*(d.x[1]-d.x[0])),L=Math.floor(t.height*(d.y[1]-d.y[0])),C=t.margin||{l:80,r:80,t:100,b:80},P=E,O=L;return{key:r,colCount:v.filter(y.isVisible).length,dimensions:v,tickDistance:m.tickDistance,unitToColor:S(p),lines:M,deselectedLines:c,labelAngle:b,labelSide:_,labelFont:w,tickFont:k,rangeFont:A,layoutWidth:x,layoutHeight:t.height,domain:d,translateX:d.x[0]*x,translateY:t.height-d.y[1]*t.height,pad:C,canvasWidth:P*m.canvasPixelRatio+2*M.canvasOverdrag,canvasHeight:O*m.canvasPixelRatio,width:P,height:O,canvasPixelRatio:m.canvasPixelRatio}}function C(t,e,r){var o=r.width,s=r.height,l=r.dimensions,u=r.canvasPixelRatio,c=function(t){return o*t/Math.max(1,r.colCount-1)},f=m.verticalPadding/s,h=function(t,e){return n.scale.linear().range([e,t-e])}(s,m.verticalPadding),p={key:r.key,xScale:c,model:r,inBrushDrag:!1},d={};return p.dimensions=l.filter(y.isVisible).map((function(o,l){var v=function(t,e){return n.scale.linear().domain(T(t)).range([e,1-e])}(o,f),g=d[o.label];d[o.label]=(g||0)+1;var b=o.label+(g?"__"+g:""),_=o.constraintrange,w=_&&_.length;w&&!Array.isArray(_[0])&&(_=[_]);var k=w?_.map((function(t){return t.map(v)})):[[-1/0,1/0]],S=o.values;S.length>o._length&&(S=S.slice(0,o._length));var L,C=o.tickvals;function P(t,e){return{val:t,text:L[e]}}function O(t,e){return t.val-e.val}if(Array.isArray(C)&&C.length){L=o.ticktext,Array.isArray(L)&&L.length?L.length>C.length?L=L.slice(0,C.length):C.length>L.length&&(C=C.slice(0,L.length)):L=C.map(a(o.tickformat));for(var I=1;I<C.length;I++)if(C[I]<C[I-1]){for(var D=C.map(P).sort(O),z=0;z<C.length;z++)C[z]=D[z].val,L[z]=D[z].text;break}}else C=void 0;return S=y.convertTypedArray(S),{key:b,label:o.label,tickFormat:o.tickformat,tickvals:C,ticktext:L,ordinal:y.isOrdinal(o),multiselect:o.multiselect,xIndex:l,crossfilterDimensionIndex:l,visibleIndex:o._index,height:s,values:S,paddedUnitValues:S.map(v),unitTickvals:C&&C.map(v),xScale:c,x:c(l),canvasX:c(l)*u,unitToPaddedPx:h,domainScale:A(s,m.verticalPadding,o,C,L),ordinalScale:M(o),parent:p,model:r,brush:x.makeBrush(t,w,k,(function(){t.linePickActive(!1)}),(function(){var e=p;e.focusLayer&&e.focusLayer.render(e.panels,!0);var r=E(e);!t.contextShown()&&r?(e.contextLayer&&e.contextLayer.render(e.panels,!0),t.contextShown(!0)):t.contextShown()&&!r&&(e.contextLayer&&e.contextLayer.render(e.panels,!0,!0),t.contextShown(!1))}),(function(r){if(p.focusLayer.render(p.panels,!0),p.pickLayer&&p.pickLayer.render(p.panels,!0),t.linePickActive(!0),e&&e.filterChanged){var n=v.invert,a=r.map((function(t){return t.map(n).sort(i.sorterAsc)})).sort((function(t,e){return t[0]-e[0]}));e.filterChanged(p.key,o._index,a)}}))}})),p}function P(t){t.classed(m.cn.axisExtentText,!0).attr("text-anchor","middle").style("cursor","default")}function O(t,e){var r="top"===e?1:-1,n=t*Math.PI/180;return{dir:r,dx:Math.sin(n),dy:Math.cos(n),degrees:t}}function I(t,e,r){for(var n=e.panels||(e.panels=[]),i=t.data(),a=0;a<i.length-1;a++){var o=n[a]||(n[a]={}),s=i[a],l=i[a+1];o.dim0=s,o.dim1=l,o.canvasX=s.canvasX,o.panelSizeX=l.canvasX-s.canvasX,o.panelSizeY=e.model.canvasHeight,o.y=0,o.canvasY=0,o.plotGlPixelRatio=r}}function D(t,e){return s.tickText(t._ax,e,!1).text}function z(t,e){if(t.ordinal)return"";var r=t.domainScale.domain(),n=r[e?r.length-1:0];return D(t.model.dimensions[t.visibleIndex],n)}t.exports=function(t,e,r,a){var o=t._context.staticPlot,h=t._fullLayout,p=h._toppaper,_=h._glcontainer,T=t._context.plotGlPixelRatio,A=t._fullLayout.paper_bgcolor;!function(t){for(var e=0;e<t.length;e++)for(var r=0;r<t[e].length;r++)for(var n=t[e][r].trace,i=n.dimensions,a=0;a<i.length;a++){var o=i[a].values,l=i[a]._ax;l&&(l.range?l.range=k(l.range[0],l.range[1]):l.range=w(o,n._length),l.dtick||(l.dtick=.01*(Math.abs(l.range[1]-l.range[0])||1)),l.tickformat=i[a].tickformat,s.calcTicks(l),l.cleanRange())}}(e);var M,S,R=(M=!0,S=!1,{linePickActive:function(t){return arguments.length?M=!!t:M},contextShown:function(t){return arguments.length?S=!!t:S}}),F=e.filter((function(t){return g(t).trace.visible})).map(L.bind(0,r)).map(C.bind(0,R,a));_.each((function(t,e){return i.extendFlat(t,F[e])}));var B=_.selectAll(".gl-canvas").each((function(t){t.viewModel=F[0],t.viewModel.plotGlPixelRatio=T,t.viewModel.paperColor=A,t.model=t.viewModel?t.viewModel.model:null})),N=null;B.filter((function(t){return t.pick})).style("pointer-events",o?"none":"auto").on("mousemove",(function(t){if(R.linePickActive()&&t.lineLayer&&a&&a.hover){var e=n.event,r=this.width,i=this.height,o=n.mouse(this),s=o[0],l=o[1];if(s<0||l<0||s>=r||l>=i)return;var u=t.lineLayer.readPixel(s,i-1-l),c=0!==u[3],f=c?u[2]+256*(u[1]+256*u[0]):null,h={x:s,y:l,clientX:e.clientX,clientY:e.clientY,dataIndex:t.model.key,curveNumber:f};f!==N&&(c?a.hover(h):a.unhover&&a.unhover(h),N=f)}})),B.style("opacity",(function(t){return t.pick?0:1})),p.style("background","rgba(255, 255, 255, 0)");var j=p.selectAll("."+m.cn.parcoords).data(F,d);j.exit().remove(),j.enter().append("g").classed(m.cn.parcoords,!0).style("shape-rendering","crispEdges").style("pointer-events","none"),j.attr("transform",(function(t){return u(t.model.translateX,t.model.translateY)}));var U=j.selectAll("."+m.cn.parcoordsControlView).data(v,d);U.enter().append("g").classed(m.cn.parcoordsControlView,!0),U.attr("transform",(function(t){return u(t.model.pad.l,t.model.pad.t)}));var V=U.selectAll("."+m.cn.yAxis).data((function(t){return t.dimensions}),d);V.enter().append("g").classed(m.cn.yAxis,!0),U.each((function(t){I(V,t,T)})),B.each((function(t){if(t.viewModel){!t.lineLayer||a?t.lineLayer=b(this,t):t.lineLayer.update(t),(t.key||0===t.key)&&(t.viewModel[t.key]=t.lineLayer);var e=!t.context||a;t.lineLayer.render(t.viewModel.panels,e)}})),V.attr("transform",(function(t){return u(t.xScale(t.xIndex),0)})),V.call(n.behavior.drag().origin((function(t){return t})).on("drag",(function(t){var e=t.parent;R.linePickActive(!1),t.x=Math.max(-m.overdrag,Math.min(t.model.width+m.overdrag,n.event.x)),t.canvasX=t.x*t.model.canvasPixelRatio,V.sort((function(t,e){return t.x-e.x})).each((function(e,r){e.xIndex=r,e.x=t===e?e.x:e.xScale(e.xIndex),e.canvasX=e.x*e.model.canvasPixelRatio})),I(V,e,T),V.filter((function(e){return 0!==Math.abs(t.xIndex-e.xIndex)})).attr("transform",(function(t){return u(t.xScale(t.xIndex),0)})),n.select(this).attr("transform",u(t.x,0)),V.each((function(r,n,i){i===t.parent.key&&(e.dimensions[n]=r)})),e.contextLayer&&e.contextLayer.render(e.panels,!1,!E(e)),e.focusLayer.render&&e.focusLayer.render(e.panels)})).on("dragend",(function(t){var e=t.parent;t.x=t.xScale(t.xIndex),t.canvasX=t.x*t.model.canvasPixelRatio,I(V,e,T),n.select(this).attr("transform",(function(t){return u(t.x,0)})),e.contextLayer&&e.contextLayer.render(e.panels,!1,!E(e)),e.focusLayer&&e.focusLayer.render(e.panels),e.pickLayer&&e.pickLayer.render(e.panels,!0),R.linePickActive(!0),a&&a.axesMoved&&a.axesMoved(e.key,e.dimensions.map((function(t){return t.crossfilterDimensionIndex})))}))),V.exit().remove();var H=V.selectAll("."+m.cn.axisOverlays).data(v,d);H.enter().append("g").classed(m.cn.axisOverlays,!0),H.selectAll("."+m.cn.axis).remove();var q=H.selectAll("."+m.cn.axis).data(v,d);q.enter().append("g").classed(m.cn.axis,!0),q.each((function(t){var e=t.model.height/t.model.tickDistance,r=t.domainScale,i=r.domain();n.select(this).call(n.svg.axis().orient("left").tickSize(4).outerTickSize(2).ticks(e,t.tickFormat).tickValues(t.ordinal?i:null).tickFormat((function(e){return y.isOrdinal(t)?e:D(t.model.dimensions[t.visibleIndex],e)})).scale(r)),f.font(q.selectAll("text"),t.model.tickFont)})),q.selectAll(".domain, .tick>line").attr("fill","none").attr("stroke","black").attr("stroke-opacity",.25).attr("stroke-width","1px"),q.selectAll("text").style("text-shadow",c.makeTextShadow(A)).style("cursor","default");var G=H.selectAll("."+m.cn.axisHeading).data(v,d);G.enter().append("g").classed(m.cn.axisHeading,!0);var Z=G.selectAll("."+m.cn.axisTitle).data(v,d);Z.enter().append("text").classed(m.cn.axisTitle,!0).attr("text-anchor","middle").style("cursor","ew-resize").style("pointer-events",o?"none":"auto"),Z.text((function(t){return t.label})).each((function(e){var r=n.select(this);f.font(r,e.model.labelFont),c.convertToTspans(r,t)})).attr("transform",(function(t){var e=O(t.model.labelAngle,t.model.labelSide),r=m.axisTitleOffset;return(e.dir>0?"":u(0,2*r+t.model.height))+l(e.degrees)+u(-r*e.dx,-r*e.dy)})).attr("text-anchor",(function(t){var e=O(t.model.labelAngle,t.model.labelSide);return 2*Math.abs(e.dx)>Math.abs(e.dy)?e.dir*e.dx<0?"start":"end":"middle"}));var Y=H.selectAll("."+m.cn.axisExtent).data(v,d);Y.enter().append("g").classed(m.cn.axisExtent,!0);var W=Y.selectAll("."+m.cn.axisExtentTop).data(v,d);W.enter().append("g").classed(m.cn.axisExtentTop,!0),W.attr("transform",u(0,-m.axisExtentOffset));var X=W.selectAll("."+m.cn.axisExtentTopText).data(v,d);X.enter().append("text").classed(m.cn.axisExtentTopText,!0).call(P),X.text((function(t){return z(t,!0)})).each((function(t){f.font(n.select(this),t.model.rangeFont)}));var J=Y.selectAll("."+m.cn.axisExtentBottom).data(v,d);J.enter().append("g").classed(m.cn.axisExtentBottom,!0),J.attr("transform",(function(t){return u(0,t.model.height+m.axisExtentOffset)}));var K=J.selectAll("."+m.cn.axisExtentBottomText).data(v,d);K.enter().append("text").classed(m.cn.axisExtentBottomText,!0).attr("dy","0.75em").call(P),K.text((function(t){return z(t,!1)})).each((function(t){f.font(n.select(this),t.model.rangeFont)})),x.ensureAxisBrush(H,A,t)}},21341:function(t,e,r){"use strict";var n=r(17171),i=r(79749),a=r(1602).isVisible,o={};function s(t,e,r){var n=e.indexOf(r),i=t.indexOf(n);return-1===i&&(i+=e.length),i}(t.exports=function(t,e){var r=t._fullLayout;if(i(t,[],o)){var l={},u={},c={},f={},h=r._size;e.forEach((function(e,r){var n=e[0].trace;c[r]=n.index;var i=f[r]=n._fullInput.index;l[r]=t.data[i].dimensions,u[r]=t.data[i].dimensions.slice()})),n(t,e,{width:h.w,height:h.h,margin:{t:h.t,r:h.r,b:h.b,l:h.l}},{filterChanged:function(e,n,i){var a=u[e][n],o=i.map((function(t){return t.slice()})),s="dimensions["+n+"].constraintrange",l=r._tracePreGUI[t._fullData[c[e]]._fullInput.uid];if(void 0===l[s]){var h=a.constraintrange;l[s]=h||null}var p=t._fullData[c[e]].dimensions[n];o.length?(1===o.length&&(o=o[0]),a.constraintrange=o,p.constraintrange=o.slice(),o=[o]):(delete a.constraintrange,delete p.constraintrange,o=null);var d={};d[s]=o,t.emit("plotly_restyle",[d,[f[e]]])},hover:function(e){t.emit("plotly_hover",e)},unhover:function(e){t.emit("plotly_unhover",e)},axesMoved:function(e,r){var n=function(t,e){return function(r,n){return s(t,e,r)-s(t,e,n)}}(r,u[e].filter(a));l[e].sort(n),u[e].filter((function(t){return!a(t)})).sort((function(t){return u[e].indexOf(t)})).forEach((function(t){l[e].splice(l[e].indexOf(t),1),l[e].splice(u[e].indexOf(t),0,t)})),t.emit("plotly_restyle",[{dimensions:[l[e]]},[f[e]]])}})}}).reglPrecompiled=o},34e3:function(t,e,r){"use strict";var n=r(9012),i=r(27670).Y,a=r(41940),o=r(22399),s=r(5386).f,l=r(5386).s,u=r(1426).extendFlat,c=a({editType:"plot",arrayOk:!0,colorEditType:"plot"});t.exports={labels:{valType:"data_array",editType:"calc"},label0:{valType:"number",dflt:0,editType:"calc"},dlabel:{valType:"number",dflt:1,editType:"calc"},values:{valType:"data_array",editType:"calc"},marker:{colors:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:o.defaultLine,arrayOk:!0,editType:"style"},width:{valType:"number",min:0,dflt:0,arrayOk:!0,editType:"style"},editType:"calc"},editType:"calc"},text:{valType:"data_array",editType:"plot"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"style"},scalegroup:{valType:"string",dflt:"",editType:"calc"},textinfo:{valType:"flaglist",flags:["label","text","value","percent"],extras:["none"],editType:"calc"},hoverinfo:u({},n.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:s({},{keys:["label","color","value","percent","text"]}),texttemplate:l({editType:"plot"},{keys:["label","color","value","percent","text"]}),textposition:{valType:"enumerated",values:["inside","outside","auto","none"],dflt:"auto",arrayOk:!0,editType:"plot"},textfont:u({},c,{}),insidetextorientation:{valType:"enumerated",values:["horizontal","radial","tangential","auto"],dflt:"auto",editType:"plot"},insidetextfont:u({},c,{}),outsidetextfont:u({},c,{}),automargin:{valType:"boolean",dflt:!1,editType:"plot"},title:{text:{valType:"string",dflt:"",editType:"plot"},font:u({},c,{}),position:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"plot"},editType:"plot"},domain:i({name:"pie",trace:!0,editType:"calc"}),hole:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},sort:{valType:"boolean",dflt:!0,editType:"calc"},direction:{valType:"enumerated",values:["clockwise","counterclockwise"],dflt:"counterclockwise",editType:"calc"},rotation:{valType:"angle",dflt:0,editType:"calc"},pull:{valType:"number",min:0,max:1,dflt:0,arrayOk:!0,editType:"calc"},_deprecated:{title:{valType:"string",dflt:"",editType:"calc"},titlefont:u({},c,{}),titleposition:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"calc"}}}},13584:function(t,e,r){"use strict";var n=r(74875);e.name="pie",e.plot=function(t,r,i,a){n.plotBasePlot(e.name,t,r,i,a)},e.clean=function(t,r,i,a){n.cleanBasePlot(e.name,t,r,i,a)}},32354:function(t,e,r){"use strict";var n=r(92770),i=r(84267),a=r(7901),o={};function s(t){return function(e,r){return!!e&&!!(e=i(e)).isValid()&&(e=a.addOpacity(e,e.getAlpha()),t[r]||(t[r]=e),e)}}function l(t,e){var r,n=JSON.stringify(t),a=e[n];if(!a){for(a=t.slice(),r=0;r<t.length;r++)a.push(i(t[r]).lighten(20).toHexString());for(r=0;r<t.length;r++)a.push(i(t[r]).darken(20).toHexString());e[n]=a}return a}t.exports={calc:function(t,e){var r,i,a=[],o=t._fullLayout,l=o.hiddenlabels||[],u=e.labels,c=e.marker.colors||[],f=e.values,h=e._length,p=e._hasValues&&h;if(e.dlabel)for(u=new Array(h),r=0;r<h;r++)u[r]=String(e.label0+r*e.dlabel);var d={},v=s(o["_"+e.type+"colormap"]),g=0,y=!1;for(r=0;r<h;r++){var m,x,b;if(p){if(m=f[r],!n(m))continue;m=+m}else m=1;void 0!==(x=u[r])&&""!==x||(x=r);var _=d[x=String(x)];void 0===_?(d[x]=a.length,(b=-1!==l.indexOf(x))||(g+=m),a.push({v:m,label:x,color:v(c[r],x),i:r,pts:[r],hidden:b})):(y=!0,(i=a[_]).v+=m,i.pts.push(r),i.hidden||(g+=m),!1===i.color&&c[r]&&(i.color=v(c[r],x)))}return a=a.filter((function(t){return t.v>=0})),("funnelarea"===e.type?y:e.sort)&&a.sort((function(t,e){return e.v-t.v})),a[0]&&(a[0].vTotal=g),a},crossTraceCalc:function(t,e){var r=(e||{}).type;r||(r="pie");var n=t._fullLayout,i=t.calcdata,a=n[r+"colorway"],s=n["_"+r+"colormap"];n["extend"+r+"colors"]&&(a=l(a,o));for(var u=0,c=0;c<i.length;c++){var f=i[c];if(f[0].trace.type===r)for(var h=0;h<f.length;h++){var p=f[h];!1===p.color&&(s[p.label]?p.color=s[p.label]:(s[p.label]=p.color=a[u%a.length],u++))}}},makePullColorFn:s,generateExtendedColors:l}},37434:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(34e3),o=r(27670).c,s=r(90769).handleText;function l(t,e){var r=Array.isArray(t),a=i.isArrayOrTypedArray(e),o=Math.min(r?t.length:1/0,a?e.length:1/0);if(isFinite(o)||(o=0),o&&a){for(var s,l=0;l<o;l++){var u=e[l];if(n(u)&&u>0){s=!0;break}}s||(o=0)}return{hasLabels:r,hasValues:a,len:o}}t.exports={handleLabelsAndValues:l,supplyDefaults:function(t,e,r,n){function u(r,n){return i.coerce(t,e,a,r,n)}var c=l(u("labels"),u("values")),f=c.len;if(e._hasLabels=c.hasLabels,e._hasValues=c.hasValues,!e._hasLabels&&e._hasValues&&(u("label0"),u("dlabel")),f){e._length=f,u("marker.line.width")&&u("marker.line.color"),u("marker.colors"),u("scalegroup");var h,p=u("text"),d=u("texttemplate");if(d||(h=u("textinfo",Array.isArray(p)?"text+percent":"percent")),u("hovertext"),u("hovertemplate"),d||h&&"none"!==h){var v=u("textposition");s(t,e,n,u,v,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),(Array.isArray(v)||"auto"===v||"outside"===v)&&u("automargin"),("inside"===v||"auto"===v||Array.isArray(v))&&u("insidetextorientation")}o(e,n,u);var g=u("hole");if(u("title.text")){var y=u("title.position",g?"middle center":"top center");g||"middle center"!==y||(e.title.position="top center"),i.coerceFont(u,"title.font",n.font)}u("sort"),u("direction"),u("rotation"),u("pull")}else e.visible=!1}}},20007:function(t,e,r){"use strict";var n=r(23469).appendArrayMultiPointValues;t.exports=function(t,e){var r={curveNumber:e.index,pointNumbers:t.pts,data:e._input,fullData:e,label:t.label,color:t.color,value:t.v,percent:t.percent,text:t.text,bbox:t.bbox,v:t.v};return 1===t.pts.length&&(r.pointNumber=r.i=t.pts[0]),n(r,e,t.pts),"funnelarea"===e.type&&(delete r.v,delete r.i),r}},53581:function(t,e,r){"use strict";var n=r(71828);function i(t){return-1!==t.indexOf("e")?t.replace(/[.]?0+e/,"e"):-1!==t.indexOf(".")?t.replace(/[.]?0+$/,""):t}e.formatPiePercent=function(t,e){var r=i((100*t).toPrecision(3));return n.numSeparate(r,e)+"%"},e.formatPieValue=function(t,e){var r=i(t.toPrecision(10));return n.numSeparate(r,e)},e.getFirstFilled=function(t,e){if(Array.isArray(t))for(var r=0;r<e.length;r++){var n=t[e[r]];if(n||0===n||""===n)return n}},e.castOption=function(t,r){return Array.isArray(t)?e.getFirstFilled(t,r):t||void 0},e.getRotationAngle=function(t){return("auto"===t?0:t)*Math.PI/180}},58810:function(t,e,r){"use strict";t.exports={attributes:r(34e3),supplyDefaults:r(37434).supplyDefaults,supplyLayoutDefaults:r(92097),layoutAttributes:r(92774),calc:r(32354).calc,crossTraceCalc:r(32354).crossTraceCalc,plot:r(14575).plot,style:r(68357),styleOne:r(63463),moduleType:"trace",name:"pie",basePlotModule:r(13584),categories:["pie-like","pie","showLegend"],meta:{}}},92774:function(t){"use strict";t.exports={hiddenlabels:{valType:"data_array",editType:"calc"},piecolorway:{valType:"colorlist",editType:"calc"},extendpiecolors:{valType:"boolean",dflt:!0,editType:"calc"}}},92097:function(t,e,r){"use strict";var n=r(71828),i=r(92774);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("hiddenlabels"),r("piecolorway",e.colorway),r("extendpiecolors")}},14575:function(t,e,r){"use strict";var n=r(39898),i=r(74875),a=r(30211),o=r(7901),s=r(91424),l=r(71828),u=l.strScale,c=l.strTranslate,f=r(63893),h=r(72597),p=h.recordMinTextSize,d=h.clearMinTextSize,v=r(97313).TEXTPAD,g=r(53581),y=r(20007),m=r(71828).isValidTextValue;function x(t,e,r){var i=r[0],o=i.cx,s=i.cy,u=i.trace,c="funnelarea"===u.type;"_hasHoverLabel"in u||(u._hasHoverLabel=!1),"_hasHoverEvent"in u||(u._hasHoverEvent=!1),t.on("mouseover",(function(t){var r=e._fullLayout,f=e._fullData[u.index];if(!e._dragging&&!1!==r.hovermode){var h=f.hoverinfo;if(Array.isArray(h)&&(h=a.castHoverinfo({hoverinfo:[g.castOption(h,t.pts)],_module:u._module},r,0)),"all"===h&&(h="label+text+value+percent+name"),f.hovertemplate||"none"!==h&&"skip"!==h&&h){var p=t.rInscribed||0,d=o+t.pxmid[0]*(1-p),v=s+t.pxmid[1]*(1-p),m=r.separators,x=[];if(h&&-1!==h.indexOf("label")&&x.push(t.label),t.text=g.castOption(f.hovertext||f.text,t.pts),h&&-1!==h.indexOf("text")){var b=t.text;l.isValidTextValue(b)&&x.push(b)}t.value=t.v,t.valueLabel=g.formatPieValue(t.v,m),h&&-1!==h.indexOf("value")&&x.push(t.valueLabel),t.percent=t.v/i.vTotal,t.percentLabel=g.formatPiePercent(t.percent,m),h&&-1!==h.indexOf("percent")&&x.push(t.percentLabel);var _=f.hoverlabel,w=_.font,T=[];a.loneHover({trace:u,x0:d-p*i.r,x1:d+p*i.r,y:v,_x0:c?o+t.TL[0]:d-p*i.r,_x1:c?o+t.TR[0]:d+p*i.r,_y0:c?s+t.TL[1]:v-p*i.r,_y1:c?s+t.BL[1]:v+p*i.r,text:x.join("<br>"),name:f.hovertemplate||-1!==h.indexOf("name")?f.name:void 0,idealAlign:t.pxmid[0]<0?"left":"right",color:g.castOption(_.bgcolor,t.pts)||t.color,borderColor:g.castOption(_.bordercolor,t.pts),fontFamily:g.castOption(w.family,t.pts),fontSize:g.castOption(w.size,t.pts),fontColor:g.castOption(w.color,t.pts),nameLength:g.castOption(_.namelength,t.pts),textAlign:g.castOption(_.align,t.pts),hovertemplate:g.castOption(f.hovertemplate,t.pts),hovertemplateLabels:t,eventData:[y(t,f)]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:e,inOut_bbox:T}),t.bbox=T[0],u._hasHoverLabel=!0}u._hasHoverEvent=!0,e.emit("plotly_hover",{points:[y(t,f)],event:n.event})}})),t.on("mouseout",(function(t){var r=e._fullLayout,i=e._fullData[u.index],o=n.select(this).datum();u._hasHoverEvent&&(t.originalEvent=n.event,e.emit("plotly_unhover",{points:[y(o,i)],event:n.event}),u._hasHoverEvent=!1),u._hasHoverLabel&&(a.loneUnhover(r._hoverlayer.node()),u._hasHoverLabel=!1)})),t.on("click",(function(t){var r=e._fullLayout,i=e._fullData[u.index];e._dragging||!1===r.hovermode||(e._hoverdata=[y(t,i)],a.click(e,n.event))}))}function b(t,e,r){var n=g.castOption(t.insidetextfont.color,e.pts);!n&&t._input.textfont&&(n=g.castOption(t._input.textfont.color,e.pts));var i=g.castOption(t.insidetextfont.family,e.pts)||g.castOption(t.textfont.family,e.pts)||r.family,a=g.castOption(t.insidetextfont.size,e.pts)||g.castOption(t.textfont.size,e.pts)||r.size;return{color:n||o.contrast(e.color),family:i,size:a}}function _(t,e){for(var r,n,i=0;i<t.length;i++)if((n=(r=t[i][0]).trace).title.text){var a=n.title.text;n._meta&&(a=l.templateString(a,n._meta));var o=s.tester.append("text").attr("data-notex",1).text(a).call(s.font,n.title.font).call(f.convertToTspans,e),u=s.bBox(o.node(),!0);r.titleBox={width:u.width,height:u.height},o.remove()}}function w(t,e,r){var n=r.r||e.rpx1,i=e.rInscribed;if(e.startangle===e.stopangle)return{rCenter:1-i,scale:0,rotate:0,textPosAngle:0};var a,o=e.ring,s=1===o&&Math.abs(e.startangle-e.stopangle)===2*Math.PI,l=e.halfangle,u=e.midangle,c=r.trace.insidetextorientation,f="horizontal"===c,h="tangential"===c,p="radial"===c,d="auto"===c,v=[];if(!d){var g,y=function(r,i){if(function(t,e){var r=t.startangle,n=t.stopangle;return r>e&&e>n||r<e&&e<n}(e,r)){var s=Math.abs(r-e.startangle),l=Math.abs(r-e.stopangle),u=s<l?s:l;(a="tan"===i?k(t,n,o,u,0):T(t,n,o,u,Math.PI/2)).textPosAngle=r,v.push(a)}};if(f||h){for(g=4;g>=-4;g-=2)y(Math.PI*g,"tan");for(g=4;g>=-4;g-=2)y(Math.PI*(g+1),"tan")}if(f||p){for(g=4;g>=-4;g-=2)y(Math.PI*(g+1.5),"rad");for(g=4;g>=-4;g-=2)y(Math.PI*(g+.5),"rad")}}if(s||d||f){var m=Math.sqrt(t.width*t.width+t.height*t.height);if((a={scale:i*n*2/m,rCenter:1-i,rotate:0}).textPosAngle=(e.startangle+e.stopangle)/2,a.scale>=1)return a;v.push(a)}(d||p)&&((a=T(t,n,o,l,u)).textPosAngle=(e.startangle+e.stopangle)/2,v.push(a)),(d||h)&&((a=k(t,n,o,l,u)).textPosAngle=(e.startangle+e.stopangle)/2,v.push(a));for(var x=0,b=0,_=0;_<v.length;_++){var w=v[_].scale;if(b<w&&(b=w,x=_),!d&&b>=1)break}return v[x]}function T(t,e,r,n,i){e=Math.max(0,e-2*v);var a=t.width/t.height,o=S(a,n,e,r);return{scale:2*o/t.height,rCenter:A(a,o/e),rotate:M(i)}}function k(t,e,r,n,i){e=Math.max(0,e-2*v);var a=t.height/t.width,o=S(a,n,e,r);return{scale:2*o/t.width,rCenter:A(a,o/e),rotate:M(i+Math.PI/2)}}function A(t,e){return Math.cos(e)-t*e}function M(t){return(180/Math.PI*t+720)%180-90}function S(t,e,r,n){var i=t+1/(2*Math.tan(e));return r*Math.min(1/(Math.sqrt(i*i+.5)+i),n/(Math.sqrt(t*t+n/2)+t))}function E(t,e){return t.v!==e.vTotal||e.trace.hole?Math.min(1/(1+1/Math.sin(t.halfangle)),t.ring/2):1}function L(t,e){var r=e.pxmid[0],n=e.pxmid[1],i=t.width/2,a=t.height/2;return r<0&&(i*=-1),n<0&&(a*=-1),{scale:1,rCenter:1,rotate:0,x:i+Math.abs(a)*(i>0?1:-1)/2,y:a/(1+r*r/(n*n)),outside:!0}}function C(t,e){var r,n,i,a=t.trace,o={x:t.cx,y:t.cy},s={tx:0,ty:0};s.ty+=a.title.font.size,i=O(a),-1!==a.title.position.indexOf("top")?(o.y-=(1+i)*t.r,s.ty-=t.titleBox.height):-1!==a.title.position.indexOf("bottom")&&(o.y+=(1+i)*t.r);var l,u=t.r/(void 0===(l=t.trace.aspectratio)?1:l),c=e.w*(a.domain.x[1]-a.domain.x[0])/2;return-1!==a.title.position.indexOf("left")?(c+=u,o.x-=(1+i)*u,s.tx+=t.titleBox.width/2):-1!==a.title.position.indexOf("center")?c*=2:-1!==a.title.position.indexOf("right")&&(c+=u,o.x+=(1+i)*u,s.tx-=t.titleBox.width/2),r=c/t.titleBox.width,n=P(t,e)/t.titleBox.height,{x:o.x,y:o.y,scale:Math.min(r,n),tx:s.tx,ty:s.ty}}function P(t,e){var r=t.trace,n=e.h*(r.domain.y[1]-r.domain.y[0]);return Math.min(t.titleBox.height,n/2)}function O(t){var e,r=t.pull;if(!r)return 0;if(Array.isArray(r))for(r=0,e=0;e<t.pull.length;e++)t.pull[e]>r&&(r=t.pull[e]);return r}function I(t,e){for(var r=[],n=0;n<t.length;n++){var i=t[n][0],a=i.trace,o=a.domain,s=e.w*(o.x[1]-o.x[0]),l=e.h*(o.y[1]-o.y[0]);a.title.text&&"middle center"!==a.title.position&&(l-=P(i,e));var u=s/2,c=l/2;"funnelarea"!==a.type||a.scalegroup||(c/=a.aspectratio),i.r=Math.min(u,c)/(1+O(a)),i.cx=e.l+e.w*(a.domain.x[1]+a.domain.x[0])/2,i.cy=e.t+e.h*(1-a.domain.y[0])-l/2,a.title.text&&-1!==a.title.position.indexOf("bottom")&&(i.cy-=P(i,e)),a.scalegroup&&-1===r.indexOf(a.scalegroup)&&r.push(a.scalegroup)}!function(t,e){for(var r,n,i,a=0;a<e.length;a++){var o=1/0,s=e[a];for(n=0;n<t.length;n++)if((i=(r=t[n][0]).trace).scalegroup===s){var l;if("pie"===i.type)l=r.r*r.r;else if("funnelarea"===i.type){var u,c;i.aspectratio>1?c=(u=r.r)/i.aspectratio:u=(c=r.r)*i.aspectratio,l=(u*=(1+i.baseratio)/2)*c}o=Math.min(o,l/r.vTotal)}for(n=0;n<t.length;n++)if((i=(r=t[n][0]).trace).scalegroup===s){var f=o*r.vTotal;"funnelarea"===i.type&&(f/=(1+i.baseratio)/2,f/=i.aspectratio),r.r=Math.sqrt(f)}}}(t,r)}function D(t,e){return[t*Math.sin(e),-t*Math.cos(e)]}function z(t,e,r){var n=t._fullLayout,i=r.trace,a=i.texttemplate,o=i.textinfo;if(!a&&o&&"none"!==o){var s,u=o.split("+"),c=function(t){return-1!==u.indexOf(t)},f=c("label"),h=c("text"),p=c("value"),d=c("percent"),v=n.separators;if(s=f?[e.label]:[],h){var y=g.getFirstFilled(i.text,e.pts);m(y)&&s.push(y)}p&&s.push(g.formatPieValue(e.v,v)),d&&s.push(g.formatPiePercent(e.v/r.vTotal,v)),e.text=s.join("<br>")}if(a){var x=l.castOption(i,e.i,"texttemplate");if(x){var b=function(t){return{label:t.label,value:t.v,valueLabel:g.formatPieValue(t.v,n.separators),percent:t.v/r.vTotal,percentLabel:g.formatPiePercent(t.v/r.vTotal,n.separators),color:t.color,text:t.text,customdata:l.castOption(i,t.i,"customdata")}}(e),_=g.getFirstFilled(i.text,e.pts);(m(_)||""===_)&&(b.text=_),e.text=l.texttemplateString(x,b,t._fullLayout._d3locale,b,i._meta||{})}else e.text=""}}function R(t,e){var r=t.rotate*Math.PI/180,n=Math.cos(r),i=Math.sin(r),a=(e.left+e.right)/2,o=(e.top+e.bottom)/2;t.textX=a*n-o*i,t.textY=a*i+o*n,t.noCenter=!0}t.exports={plot:function(t,e){var r=t._context.staticPlot,a=t._fullLayout,h=a._size;d("pie",a),_(e,t),I(e,h);var v=l.makeTraceGroups(a._pielayer,e,"trace").each((function(e){var d=n.select(this),v=e[0],y=v.trace;!function(t){var e,r,n,i=t[0],a=i.r,o=i.trace,s=g.getRotationAngle(o.rotation),l=2*Math.PI/i.vTotal,u="px0",c="px1";if("counterclockwise"===o.direction){for(e=0;e<t.length&&t[e].hidden;e++);if(e===t.length)return;s+=l*t[e].v,l*=-1,u="px1",c="px0"}for(n=D(a,s),e=0;e<t.length;e++)(r=t[e]).hidden||(r[u]=n,r.startangle=s,s+=l*r.v/2,r.pxmid=D(a,s),r.midangle=s,n=D(a,s+=l*r.v/2),r.stopangle=s,r[c]=n,r.largeArc=r.v>i.vTotal/2?1:0,r.halfangle=Math.PI*Math.min(r.v/i.vTotal,.5),r.ring=1-o.hole,r.rInscribed=E(r,i))}(e),d.attr("stroke-linejoin","round"),d.each((function(){var m=n.select(this).selectAll("g.slice").data(e);m.enter().append("g").classed("slice",!0),m.exit().remove();var _=[[[],[]],[[],[]]],T=!1;m.each((function(i,o){if(i.hidden)n.select(this).selectAll("path,g").remove();else{i.pointNumber=i.i,i.curveNumber=y.index,_[i.pxmid[1]<0?0:1][i.pxmid[0]<0?0:1].push(i);var u=v.cx,c=v.cy,h=n.select(this),d=h.selectAll("path.surface").data([i]);if(d.enter().append("path").classed("surface",!0).style({"pointer-events":r?"none":"all"}),h.call(x,t,e),y.pull){var m=+g.castOption(y.pull,i.pts)||0;m>0&&(u+=m*i.pxmid[0],c+=m*i.pxmid[1])}i.cxFinal=u,i.cyFinal=c;var k=y.hole;if(i.v===v.vTotal){var A="M"+(u+i.px0[0])+","+(c+i.px0[1])+P(i.px0,i.pxmid,!0,1)+P(i.pxmid,i.px0,!0,1)+"Z";k?d.attr("d","M"+(u+k*i.px0[0])+","+(c+k*i.px0[1])+P(i.px0,i.pxmid,!1,k)+P(i.pxmid,i.px0,!1,k)+"Z"+A):d.attr("d",A)}else{var M=P(i.px0,i.px1,!0,1);if(k){var S=1-k;d.attr("d","M"+(u+k*i.px1[0])+","+(c+k*i.px1[1])+P(i.px1,i.px0,!1,k)+"l"+S*i.px0[0]+","+S*i.px0[1]+M+"Z")}else d.attr("d","M"+u+","+c+"l"+i.px0[0]+","+i.px0[1]+M+"Z")}z(t,i,v);var E=g.castOption(y.textposition,i.pts),C=h.selectAll("g.slicetext").data(i.text&&"none"!==E?[0]:[]);C.enter().append("g").classed("slicetext",!0),C.exit().remove(),C.each((function(){var r=l.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),h=l.ensureUniformFontSize(t,"outside"===E?function(t,e,r){return{color:g.castOption(t.outsidetextfont.color,e.pts)||g.castOption(t.textfont.color,e.pts)||r.color,family:g.castOption(t.outsidetextfont.family,e.pts)||g.castOption(t.textfont.family,e.pts)||r.family,size:g.castOption(t.outsidetextfont.size,e.pts)||g.castOption(t.textfont.size,e.pts)||r.size}}(y,i,a.font):b(y,i,a.font));r.text(i.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(s.font,h).call(f.convertToTspans,t);var d,m=s.bBox(r.node());if("outside"===E)d=L(m,i);else if(d=w(m,i,v),"auto"===E&&d.scale<1){var x=l.ensureUniformFontSize(t,y.outsidetextfont);r.call(s.font,x),d=L(m=s.bBox(r.node()),i)}var _=d.textPosAngle,k=void 0===_?i.pxmid:D(v.r,_);if(d.targetX=u+k[0]*d.rCenter+(d.x||0),d.targetY=c+k[1]*d.rCenter+(d.y||0),R(d,m),d.outside){var A=d.targetY;i.yLabelMin=A-m.height/2,i.yLabelMid=A,i.yLabelMax=A+m.height/2,i.labelExtraX=0,i.labelExtraY=0,T=!0}d.fontSize=h.size,p(y.type,d,a),e[o].transform=d,l.setTransormAndDisplay(r,d)}))}function P(t,e,r,n){var a=n*(e[0]-t[0]),o=n*(e[1]-t[1]);return"a"+n*v.r+","+n*v.r+" 0 "+i.largeArc+(r?" 1 ":" 0 ")+a+","+o}}));var k=n.select(this).selectAll("g.titletext").data(y.title.text?[0]:[]);if(k.enter().append("g").classed("titletext",!0),k.exit().remove(),k.each((function(){var e,r=l.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),i=y.title.text;y._meta&&(i=l.templateString(i,y._meta)),r.text(i).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(s.font,y.title.font).call(f.convertToTspans,t),e="middle center"===y.title.position?function(t){var e=Math.sqrt(t.titleBox.width*t.titleBox.width+t.titleBox.height*t.titleBox.height);return{x:t.cx,y:t.cy,scale:t.trace.hole*t.r*2/e,tx:0,ty:-t.titleBox.height/2+t.trace.title.font.size}}(v):C(v,h),r.attr("transform",c(e.x,e.y)+u(Math.min(1,e.scale))+c(e.tx,e.ty))})),T&&function(t,e){var r,n,i,a,o,s,l,u,c,f,h,p,d;function v(t,e){return t.pxmid[1]-e.pxmid[1]}function y(t,e){return e.pxmid[1]-t.pxmid[1]}function m(t,r){r||(r={});var i,u,c,h,p=r.labelExtraY+(n?r.yLabelMax:r.yLabelMin),d=n?t.yLabelMin:t.yLabelMax,v=n?t.yLabelMax:t.yLabelMin,y=t.cyFinal+o(t.px0[1],t.px1[1]),m=p-d;if(m*l>0&&(t.labelExtraY=m),Array.isArray(e.pull))for(u=0;u<f.length;u++)(c=f[u])===t||(g.castOption(e.pull,t.pts)||0)>=(g.castOption(e.pull,c.pts)||0)||((t.pxmid[1]-c.pxmid[1])*l>0?(m=c.cyFinal+o(c.px0[1],c.px1[1])-d-t.labelExtraY)*l>0&&(t.labelExtraY+=m):(v+t.labelExtraY-y)*l>0&&(i=3*s*Math.abs(u-f.indexOf(t)),(h=c.cxFinal+a(c.px0[0],c.px1[0])+i-(t.cxFinal+t.pxmid[0])-t.labelExtraX)*s>0&&(t.labelExtraX+=h)))}for(n=0;n<2;n++)for(i=n?v:y,o=n?Math.max:Math.min,l=n?1:-1,r=0;r<2;r++){for(a=r?Math.max:Math.min,s=r?1:-1,(u=t[n][r]).sort(i),c=t[1-n][r],f=c.concat(u),p=[],h=0;h<u.length;h++)void 0!==u[h].yLabelMid&&p.push(u[h]);for(d=!1,h=0;n&&h<c.length;h++)if(void 0!==c[h].yLabelMid){d=c[h];break}for(h=0;h<p.length;h++){var x=h&&p[h-1];d&&!h&&(x=d),m(p[h],x)}}}(_,y),function(t,e){t.each((function(t){var r=n.select(this);if(t.labelExtraX||t.labelExtraY){var i=r.select("g.slicetext text");t.transform.targetX+=t.labelExtraX,t.transform.targetY+=t.labelExtraY,l.setTransormAndDisplay(i,t.transform);var a=t.cxFinal+t.pxmid[0],s="M"+a+","+(t.cyFinal+t.pxmid[1]),u=(t.yLabelMax-t.yLabelMin)*(t.pxmid[0]<0?-1:1)/4;if(t.labelExtraX){var c=t.labelExtraX*t.pxmid[1]/t.pxmid[0],f=t.yLabelMid+t.labelExtraY-(t.cyFinal+t.pxmid[1]);Math.abs(c)>Math.abs(f)?s+="l"+f*t.pxmid[0]/t.pxmid[1]+","+f+"H"+(a+t.labelExtraX+u):s+="l"+t.labelExtraX+","+c+"v"+(f-c)+"h"+u}else s+="V"+(t.yLabelMid+t.labelExtraY)+"h"+u;l.ensureSingle(r,"path","textline").call(o.stroke,e.outsidetextfont.color).attr({"stroke-width":Math.min(2,e.outsidetextfont.size/8),d:s,fill:"none"})}else r.select("path.textline").remove()}))}(m,y),T&&y.automargin){var A=s.bBox(d.node()),M=y.domain,S=h.w*(M.x[1]-M.x[0]),E=h.h*(M.y[1]-M.y[0]),P=(.5*S-v.r)/h.w,O=(.5*E-v.r)/h.h;i.autoMargin(t,"pie."+y.uid+".automargin",{xl:M.x[0]-P,xr:M.x[1]+P,yb:M.y[0]-O,yt:M.y[1]+O,l:Math.max(v.cx-v.r-A.left,0),r:Math.max(A.right-(v.cx+v.r),0),b:Math.max(A.bottom-(v.cy+v.r),0),t:Math.max(v.cy-v.r-A.top,0),pad:5})}}))}));setTimeout((function(){v.selectAll("tspan").each((function(){var t=n.select(this);t.attr("dy")&&t.attr("dy",t.attr("dy"))}))}),0)},formatSliceLabel:z,transformInsideText:w,determineInsideTextFont:b,positionTitleOutside:C,prerenderTitles:_,layoutAreas:I,attachFxHandlers:x,computeTransform:R}},68357:function(t,e,r){"use strict";var n=r(39898),i=r(63463),a=r(72597).resizeText;t.exports=function(t){var e=t._fullLayout._pielayer.selectAll(".trace");a(t,e,"pie"),e.each((function(t){var e=t[0].trace,r=n.select(this);r.style({opacity:e.opacity}),r.selectAll("path.surface").each((function(t){n.select(this).call(i,t,e)}))}))}},63463:function(t,e,r){"use strict";var n=r(7901),i=r(53581).castOption;t.exports=function(t,e,r){var a=r.marker.line,o=i(a.color,e.pts)||n.defaultLine,s=i(a.width,e.pts)||0;t.style("stroke-width",s).call(n.fill,e.color).call(n.stroke,o)}},10959:function(t,e,r){"use strict";var n=r(82196);t.exports={x:n.x,y:n.y,xy:{valType:"data_array",editType:"calc"},indices:{valType:"data_array",editType:"calc"},xbounds:{valType:"data_array",editType:"calc"},ybounds:{valType:"data_array",editType:"calc"},text:n.text,marker:{color:{valType:"color",arrayOk:!1,editType:"calc"},opacity:{valType:"number",min:0,max:1,dflt:1,arrayOk:!1,editType:"calc"},blend:{valType:"boolean",dflt:null,editType:"calc"},sizemin:{valType:"number",min:.1,max:2,dflt:.5,editType:"calc"},sizemax:{valType:"number",min:.1,dflt:20,editType:"calc"},border:{color:{valType:"color",arrayOk:!1,editType:"calc"},arearatio:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},editType:"calc"},editType:"calc"},transforms:void 0}},42743:function(t,e,r){"use strict";var n=r(9330).gl_pointcloud2d,i=r(78614),a=r(71739).findExtremes,o=r(34603);function s(t,e){this.scene=t,this.uid=e,this.type="pointcloud",this.pickXData=[],this.pickYData=[],this.xData=[],this.yData=[],this.textLabels=[],this.color="rgb(0, 0, 0)",this.name="",this.hoverinfo="all",this.idToIndex=new Int32Array(0),this.bounds=[0,0,0,0],this.pointcloudOptions={positions:new Float32Array(0),idToIndex:this.idToIndex,sizemin:.5,sizemax:12,color:[0,0,0,1],areaRatio:1,borderColor:[0,0,0,1]},this.pointcloud=n(t.glplot,this.pointcloudOptions),this.pointcloud._trace=this}var l=s.prototype;l.handlePick=function(t){var e=this.idToIndex[t.pointId];return{trace:this,dataCoord:t.dataCoord,traceCoord:this.pickXYData?[this.pickXYData[2*e],this.pickXYData[2*e+1]]:[this.pickXData[e],this.pickYData[e]],textLabel:Array.isArray(this.textLabels)?this.textLabels[e]:this.textLabels,color:this.color,name:this.name,pointIndex:e,hoverinfo:this.hoverinfo}},l.update=function(t){this.index=t.index,this.textLabels=t.text,this.name=t.name,this.hoverinfo=t.hoverinfo,this.bounds=[1/0,1/0,-1/0,-1/0],this.updateFast(t),this.color=o(t,{})},l.updateFast=function(t){var e,r,n,o,s,l,u=this.xData=this.pickXData=t.x,c=this.yData=this.pickYData=t.y,f=this.pickXYData=t.xy,h=t.xbounds&&t.ybounds,p=t.indices,d=this.bounds;if(f){if(n=f,e=f.length>>>1,h)d[0]=t.xbounds[0],d[2]=t.xbounds[1],d[1]=t.ybounds[0],d[3]=t.ybounds[1];else for(l=0;l<e;l++)o=n[2*l],s=n[2*l+1],o<d[0]&&(d[0]=o),o>d[2]&&(d[2]=o),s<d[1]&&(d[1]=s),s>d[3]&&(d[3]=s);if(p)r=p;else for(r=new Int32Array(e),l=0;l<e;l++)r[l]=l}else for(e=u.length,n=new Float32Array(2*e),r=new Int32Array(e),l=0;l<e;l++)o=u[l],s=c[l],r[l]=l,n[2*l]=o,n[2*l+1]=s,o<d[0]&&(d[0]=o),o>d[2]&&(d[2]=o),s<d[1]&&(d[1]=s),s>d[3]&&(d[3]=s);this.idToIndex=r,this.pointcloudOptions.idToIndex=r,this.pointcloudOptions.positions=n;var v=i(t.marker.color),g=i(t.marker.border.color),y=t.opacity*t.marker.opacity;v[3]*=y,this.pointcloudOptions.color=v;var m=t.marker.blend;null===m&&(m=u.length<100||c.length<100),this.pointcloudOptions.blend=m,g[3]*=y,this.pointcloudOptions.borderColor=g;var x=t.marker.sizemin,b=Math.max(t.marker.sizemax,t.marker.sizemin);this.pointcloudOptions.sizeMin=x,this.pointcloudOptions.sizeMax=b,this.pointcloudOptions.areaRatio=t.marker.border.arearatio,this.pointcloud.update(this.pointcloudOptions);var _=this.scene.xaxis,w=this.scene.yaxis,T=b/2||.5;t._extremes[_._id]=a(_,[d[0],d[2]],{ppad:T}),t._extremes[w._id]=a(w,[d[1],d[3]],{ppad:T})},l.dispose=function(){this.pointcloud.dispose()},t.exports=function(t,e){var r=new s(t,e.uid);return r.update(e),r}},33876:function(t,e,r){"use strict";var n=r(71828),i=r(10959);t.exports=function(t,e,r){function a(r,a){return n.coerce(t,e,i,r,a)}a("x"),a("y"),a("xbounds"),a("ybounds"),t.xy&&t.xy instanceof Float32Array&&(e.xy=t.xy),t.indices&&t.indices instanceof Int32Array&&(e.indices=t.indices),a("text"),a("marker.color",r),a("marker.opacity"),a("marker.blend"),a("marker.sizemin"),a("marker.sizemax"),a("marker.border.color",r),a("marker.border.arearatio"),e._length=null}},20593:function(t,e,r){"use strict";["*pointcloud* trace is deprecated!","Please consider switching to the *scattergl* trace type."].join(" "),t.exports={attributes:r(10959),supplyDefaults:r(33876),calc:r(36563),plot:r(42743),moduleType:"trace",name:"pointcloud",basePlotModule:r(4796),categories:["gl","gl2d","showLegend"],meta:{}}},39953:function(t,e,r){"use strict";var n=r(41940),i=r(9012),a=r(22399),o=r(77914),s=r(27670).Y,l=r(5386).f,u=r(50693),c=r(44467).templatedArray,f=r(12663).descriptionOnlyNumbers,h=r(1426).extendFlat,p=r(30962).overrideAll;(t.exports=p({hoverinfo:h({},i.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:o.hoverlabel,domain:s({name:"sankey",trace:!0}),orientation:{valType:"enumerated",values:["v","h"],dflt:"h"},valueformat:{valType:"string",dflt:".3s",description:f("value")},valuesuffix:{valType:"string",dflt:""},arrangement:{valType:"enumerated",values:["snap","perpendicular","freeform","fixed"],dflt:"snap"},textfont:n({}),customdata:void 0,node:{label:{valType:"data_array",dflt:[]},groups:{valType:"info_array",impliedEdits:{x:[],y:[]},dimensions:2,freeLength:!0,dflt:[],items:{valType:"number",editType:"calc"}},x:{valType:"data_array",dflt:[]},y:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:a.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:.5,arrayOk:!0}},pad:{valType:"number",arrayOk:!1,min:0,dflt:20},thickness:{valType:"number",arrayOk:!1,min:1,dflt:20},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:o.hoverlabel,hovertemplate:l({},{keys:["value","label"]})},link:{arrowlen:{valType:"number",min:0,dflt:0},label:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:a.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:0,arrayOk:!0}},source:{valType:"data_array",dflt:[]},target:{valType:"data_array",dflt:[]},value:{valType:"data_array",dflt:[]},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:o.hoverlabel,hovertemplate:l({},{keys:["value","label"]}),colorscales:c("concentrationscales",{editType:"calc",label:{valType:"string",editType:"calc",dflt:""},cmax:{valType:"number",editType:"calc",dflt:1},cmin:{valType:"number",editType:"calc",dflt:0},colorscale:h(u().colorscale,{dflt:[[0,"white"],[1,"black"]]})})}},"calc","nested")).transforms=void 0},75536:function(t,e,r){"use strict";var n=r(30962).overrideAll,i=r(27659).a0,a=r(60436),o=r(528),s=r(6964),l=r(28569),u=r(47322).prepSelect,c=r(71828),f=r(73972),h="sankey";function p(t,e){var r=t._fullData[e],n=t._fullLayout,i=n.dragmode,a="pan"===n.dragmode?"move":"crosshair",o=r._bgRect;if(o&&"pan"!==i&&"zoom"!==i){s(o,a);var h={_id:"x",c2p:c.identity,_offset:r._sankey.translateX,_length:r._sankey.width},p={_id:"y",c2p:c.identity,_offset:r._sankey.translateY,_length:r._sankey.height},d={gd:t,element:o.node(),plotinfo:{id:e,xaxis:h,yaxis:p,fillRangeItems:c.noop},subplot:e,xaxes:[h],yaxes:[p],doneFnCompleted:function(r){var n,i=t._fullData[e],a=i.node.groups.slice(),o=[];function s(t){for(var e=i._sankey.graph.nodes,r=0;r<e.length;r++)if(e[r].pointNumber===t)return e[r]}for(var l=0;l<r.length;l++){var u=s(r[l].pointNumber);if(u)if(u.group){for(var c=0;c<u.childrenNodes.length;c++)o.push(u.childrenNodes[c].pointNumber);a[u.pointNumber-i.node._count]=!1}else o.push(u.pointNumber)}n=a.filter(Boolean).concat([o]),f.call("_guiRestyle",t,{"node.groups":[n]},e)},prepFn:function(t,e,r){u(t,e,r,d,i)}};l.init(d)}}e.name=h,e.baseLayoutAttrOverrides=n({hoverlabel:o.hoverlabel},"plot","nested"),e.plot=function(t){var r=i(t.calcdata,h)[0];a(t,r),e.updateFx(t)},e.clean=function(t,e,r,n){var i=n._has&&n._has(h),a=e._has&&e._has(h);i&&!a&&(n._paperdiv.selectAll(".sankey").remove(),n._paperdiv.selectAll(".bgsankey").remove())},e.updateFx=function(t){for(var e=0;e<t._fullData.length;e++)p(t,e)}},92930:function(t,e,r){"use strict";var n=r(68664),i=r(71828),a=r(28984).wrap,o=i.isArrayOrTypedArray,s=i.isIndex,l=r(21081);t.exports=function(t,e){var r=function(t){var e,r=t.node,a=t.link,u=[],c=o(a.color),f=o(a.customdata),h={},p={},d=a.colorscales.length;for(e=0;e<d;e++){var v=a.colorscales[e],g=l.extractScale(v,{cLetter:"c"}),y=l.makeColorScaleFunc(g);p[v.label]=y}var m=0;for(e=0;e<a.value.length;e++)a.source[e]>m&&(m=a.source[e]),a.target[e]>m&&(m=a.target[e]);var x,b=m+1;t.node._count=b;var _=t.node.groups,w={};for(e=0;e<_.length;e++){var T=_[e];for(x=0;x<T.length;x++){var k=T[x],A=b+e;w.hasOwnProperty(k)?i.warn("Node "+k+" is already part of a group."):w[k]=A}}var M={source:[],target:[]};for(e=0;e<a.value.length;e++){var S=a.value[e],E=a.source[e],L=a.target[e];if(S>0&&s(E,b)&&s(L,b)&&(!w.hasOwnProperty(E)||!w.hasOwnProperty(L)||w[E]!==w[L])){w.hasOwnProperty(L)&&(L=w[L]),w.hasOwnProperty(E)&&(E=w[E]),L=+L,h[E=+E]=h[L]=!0;var C="";a.label&&a.label[e]&&(C=a.label[e]);var P=null;C&&p.hasOwnProperty(C)&&(P=p[C]),u.push({pointNumber:e,label:C,color:c?a.color[e]:a.color,customdata:f?a.customdata[e]:a.customdata,concentrationscale:P,source:E,target:L,value:+S}),M.source.push(E),M.target.push(L)}}var O=b+_.length,I=o(r.color),D=o(r.customdata),z=[];for(e=0;e<O;e++)if(h[e]){var R=r.label[e];z.push({group:e>b-1,childrenNodes:[],pointNumber:e,label:R,color:I?r.color[e]:r.color,customdata:D?r.customdata[e]:r.customdata})}var F=!1;return function(t,e,r){for(var a=i.init2dArray(t,0),o=0;o<Math.min(e.length,r.length);o++)if(i.isIndex(e[o],t)&&i.isIndex(r[o],t)){if(e[o]===r[o])return!0;a[e[o]].push(r[o])}return n(a).components.some((function(t){return t.length>1}))}(O,M.source,M.target)&&(F=!0),{circular:F,links:u,nodes:z,groups:_,groupLookup:w}}(e);return a({circular:r.circular,_nodes:r.nodes,_links:r.links,_groups:r.groups,_groupLookup:r.groupLookup})}},85247:function(t){"use strict";t.exports={nodeTextOffsetHorizontal:4,nodeTextOffsetVertical:3,nodePadAcross:10,sankeyIterations:50,forceIterations:5,forceTicksPerFrame:10,duration:500,ease:"linear",cn:{sankey:"sankey",sankeyLinks:"sankey-links",sankeyLink:"sankey-link",sankeyNodeSet:"sankey-node-set",sankeyNode:"sankey-node",nodeRect:"node-rect",nodeLabel:"node-label"}}},26857:function(t,e,r){"use strict";var n=r(71828),i=r(39953),a=r(7901),o=r(84267),s=r(27670).c,l=r(38048),u=r(44467),c=r(85501);function f(t,e){function r(r,a){return n.coerce(t,e,i.link.colorscales,r,a)}r("label"),r("cmin"),r("cmax"),r("colorscale")}t.exports=function(t,e,r,h){function p(r,a){return n.coerce(t,e,i,r,a)}var d=n.extendDeep(h.hoverlabel,t.hoverlabel),v=t.node,g=u.newContainer(e,"node");function y(t,e){return n.coerce(v,g,i.node,t,e)}y("label"),y("groups"),y("x"),y("y"),y("pad"),y("thickness"),y("line.color"),y("line.width"),y("hoverinfo",t.hoverinfo),l(v,g,y,d),y("hovertemplate");var m=h.colorway;y("color",g.label.map((function(t,e){return a.addOpacity(function(t){return m[t%m.length]}(e),.8)}))),y("customdata");var x=t.link||{},b=u.newContainer(e,"link");function _(t,e){return n.coerce(x,b,i.link,t,e)}_("label"),_("arrowlen"),_("source"),_("target"),_("value"),_("line.color"),_("line.width"),_("hoverinfo",t.hoverinfo),l(x,b,_,d),_("hovertemplate");var w,T=o(h.paper_bgcolor).getLuminance()<.333?"rgba(255, 255, 255, 0.6)":"rgba(0, 0, 0, 0.2)";_("color",n.repeat(T,b.value.length)),_("customdata"),c(x,b,{name:"colorscales",handleItemDefaults:f}),s(e,h,p),p("orientation"),p("valueformat"),p("valuesuffix"),g.x.length&&g.y.length&&(w="freeform"),p("arrangement",w),n.coerceFont(p,"textfont",n.extendFlat({},h.font)),e._length=null}},29396:function(t,e,r){"use strict";t.exports={attributes:r(39953),supplyDefaults:r(26857),calc:r(92930),plot:r(60436),moduleType:"trace",name:"sankey",basePlotModule:r(75536),selectPoints:r(84564),categories:["noOpacity"],meta:{}}},60436:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.numberFormat,o=r(3393),s=r(30211),l=r(7901),u=r(85247).cn,c=i._;function f(t){return""!==t}function h(t,e){return t.filter((function(t){return t.key===e.traceId}))}function p(t,e){n.select(t).select("path").style("fill-opacity",e),n.select(t).select("rect").style("fill-opacity",e)}function d(t){n.select(t).select("text.name").style("fill","black")}function v(t){return function(e){return-1!==t.node.sourceLinks.indexOf(e.link)||-1!==t.node.targetLinks.indexOf(e.link)}}function g(t){return function(e){return-1!==e.node.sourceLinks.indexOf(t.link)||-1!==e.node.targetLinks.indexOf(t.link)}}function y(t,e,r){e&&r&&h(r,e).selectAll("."+u.sankeyLink).filter(v(e)).call(x.bind(0,e,r,!1))}function m(t,e,r){e&&r&&h(r,e).selectAll("."+u.sankeyLink).filter(v(e)).call(b.bind(0,e,r,!1))}function x(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",(function(t){if(!t.link.concentrationscale)return.4})),i&&h(e,t).selectAll("."+u.sankeyLink).filter((function(t){return t.link.label===i})).style("fill-opacity",(function(t){if(!t.link.concentrationscale)return.4})),r&&h(e,t).selectAll("."+u.sankeyNode).filter(g(t)).call(y)}function b(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",(function(t){return t.tinyColorAlpha})),i&&h(e,t).selectAll("."+u.sankeyLink).filter((function(t){return t.link.label===i})).style("fill-opacity",(function(t){return t.tinyColorAlpha})),r&&h(e,t).selectAll(u.sankeyNode).filter(g(t)).call(m)}function _(t,e){var r=t.hoverlabel||{},n=i.nestedProperty(r,e).get();return!Array.isArray(n)&&n}t.exports=function(t,e){for(var r=t._fullLayout,i=r._paper,h=r._size,v=0;v<t._fullData.length;v++)if(t._fullData[v].visible&&t._fullData[v].type===u.sankey&&!t._fullData[v]._viewInitial){var g=t._fullData[v].node;t._fullData[v]._viewInitial={node:{groups:g.groups.slice(),x:g.x.slice(),y:g.y.slice()}}}var w=c(t,"source:")+" ",T=c(t,"target:")+" ",k=c(t,"concentration:")+" ",A=c(t,"incoming flow count:")+" ",M=c(t,"outgoing flow count:")+" ";o(t,i,e,{width:h.w,height:h.h,margin:{t:h.t,r:h.r,b:h.b,l:h.l}},{linkEvents:{hover:function(e,r,i){!1!==t._fullLayout.hovermode&&(n.select(e).call(x.bind(0,r,i,!0)),"skip"!==r.link.trace.link.hoverinfo&&(r.link.fullData=r.link.trace,t.emit("plotly_hover",{event:n.event,points:[r.link]})))},follow:function(e,i){if(!1!==t._fullLayout.hovermode){var o=i.link.trace.link;if("none"!==o.hoverinfo&&"skip"!==o.hoverinfo){for(var u=[],c=0,h=0;h<i.flow.links.length;h++){var v=i.flow.links[h];if("closest"!==t._fullLayout.hovermode||i.link.pointNumber===v.pointNumber){i.link.pointNumber===v.pointNumber&&(c=h),v.fullData=v.trace,o=i.link.trace.link;var g=m(v),y={valueLabel:a(i.valueFormat)(v.value)+i.valueSuffix};u.push({x:g[0],y:g[1],name:y.valueLabel,text:[v.label||"",w+v.source.label,T+v.target.label,v.concentrationscale?k+a("%0.2f")(v.flow.labelConcentration):""].filter(f).join("<br>"),color:_(o,"bgcolor")||l.addOpacity(v.color,1),borderColor:_(o,"bordercolor"),fontFamily:_(o,"font.family"),fontSize:_(o,"font.size"),fontColor:_(o,"font.color"),nameLength:_(o,"namelength"),textAlign:_(o,"align"),idealAlign:n.event.x<g[0]?"right":"left",hovertemplate:o.hovertemplate,hovertemplateLabels:y,eventData:[v]})}}s.loneHover(u,{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:t,anchorIndex:c}).each((function(){i.link.concentrationscale||p(this,.65),d(this)}))}}function m(t){var e,r;t.circular?(e=(t.circularPathData.leftInnerExtent+t.circularPathData.rightInnerExtent)/2,r=t.circularPathData.verticalFullExtent):(e=(t.source.x1+t.target.x0)/2,r=(t.y0+t.y1)/2);var n=[e,r];return"v"===t.trace.orientation&&n.reverse(),n[0]+=i.parent.translateX,n[1]+=i.parent.translateY,n}},unhover:function(e,i,a){!1!==t._fullLayout.hovermode&&(n.select(e).call(b.bind(0,i,a,!0)),"skip"!==i.link.trace.link.hoverinfo&&(i.link.fullData=i.link.trace,t.emit("plotly_unhover",{event:n.event,points:[i.link]})),s.loneUnhover(r._hoverlayer.node()))},select:function(e,r){var i=r.link;i.originalEvent=n.event,t._hoverdata=[i],s.click(t,{target:!0})}},nodeEvents:{hover:function(e,r,i){!1!==t._fullLayout.hovermode&&(n.select(e).call(y,r,i),"skip"!==r.node.trace.node.hoverinfo&&(r.node.fullData=r.node.trace,t.emit("plotly_hover",{event:n.event,points:[r.node]})))},follow:function(e,i){if(!1!==t._fullLayout.hovermode){var o=i.node.trace.node;if("none"!==o.hoverinfo&&"skip"!==o.hoverinfo){var l=n.select(e).select("."+u.nodeRect),c=t._fullLayout._paperdiv.node().getBoundingClientRect(),h=l.node().getBoundingClientRect(),v=h.left-2-c.left,g=h.right+2-c.left,y=h.top+h.height/4-c.top,m={valueLabel:a(i.valueFormat)(i.node.value)+i.valueSuffix};i.node.fullData=i.node.trace,t._fullLayout._calcInverseTransform(t);var x=t._fullLayout._invScaleX,b=t._fullLayout._invScaleY,w=s.loneHover({x0:x*v,x1:x*g,y:b*y,name:a(i.valueFormat)(i.node.value)+i.valueSuffix,text:[i.node.label,A+i.node.targetLinks.length,M+i.node.sourceLinks.length].filter(f).join("<br>"),color:_(o,"bgcolor")||i.tinyColorHue,borderColor:_(o,"bordercolor"),fontFamily:_(o,"font.family"),fontSize:_(o,"font.size"),fontColor:_(o,"font.color"),nameLength:_(o,"namelength"),textAlign:_(o,"align"),idealAlign:"left",hovertemplate:o.hovertemplate,hovertemplateLabels:m,eventData:[i.node]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:t});p(w,.85),d(w)}}},unhover:function(e,i,a){!1!==t._fullLayout.hovermode&&(n.select(e).call(m,i,a),"skip"!==i.node.trace.node.hoverinfo&&(i.node.fullData=i.node.trace,t.emit("plotly_unhover",{event:n.event,points:[i.node]})),s.loneUnhover(r._hoverlayer.node()))},select:function(e,r,i){var a=r.node;a.originalEvent=n.event,t._hoverdata=[a],n.select(e).call(m,r,i),s.click(t,{target:!0})}}})}},3393:function(t,e,r){"use strict";var n=r(49887),i=r(29502).k4,a=r(39898),o=r(30838),s=r(86781),l=r(85247),u=r(84267),c=r(7901),f=r(91424),h=r(71828),p=h.strTranslate,d=h.strRotate,v=r(28984),g=v.keyFun,y=v.repeat,m=v.unwrap,x=r(63893),b=r(73972),_=r(18783),w=_.CAP_SHIFT,T=_.LINE_SPACING;function k(t,e,r){var n,i=m(e),a=i.trace,c=a.domain,f="h"===a.orientation,p=a.node.pad,d=a.node.thickness,v=t.width*(c.x[1]-c.x[0]),g=t.height*(c.y[1]-c.y[0]),y=i._nodes,x=i._links,b=i.circular;(n=b?s.sankeyCircular().circularLinkGap(0):o.sankey()).iterations(l.sankeyIterations).size(f?[v,g]:[g,v]).nodeWidth(d).nodePadding(p).nodeId((function(t){return t.pointNumber})).nodes(y).links(x);var _,w,T,k=n();for(var A in n.nodePadding()<p&&h.warn("node.pad was reduced to ",n.nodePadding()," to fit within the figure."),i._groupLookup){var M,S=parseInt(i._groupLookup[A]);for(_=0;_<k.nodes.length;_++)if(k.nodes[_].pointNumber===S){M=k.nodes[_];break}if(M){var E={pointNumber:parseInt(A),x0:M.x0,x1:M.x1,y0:M.y0,y1:M.y1,partOfGroup:!0,sourceLinks:[],targetLinks:[]};k.nodes.unshift(E),M.childrenNodes.unshift(E)}}if(function(){for(_=0;_<k.nodes.length;_++){var t,e,r=k.nodes[_],n={};for(w=0;w<r.targetLinks.length;w++)t=(e=r.targetLinks[w]).source.pointNumber+":"+e.target.pointNumber,n.hasOwnProperty(t)||(n[t]=[]),n[t].push(e);var i=Object.keys(n);for(w=0;w<i.length;w++){var a=n[t=i[w]],o=0,s={};for(T=0;T<a.length;T++)s[(e=a[T]).label]||(s[e.label]=0),s[e.label]+=e.value,o+=e.value;for(T=0;T<a.length;T++)(e=a[T]).flow={value:o,labelConcentration:s[e.label]/o,concentration:e.value/o,links:a},e.concentrationscale&&(e.color=u(e.concentrationscale(e.flow.labelConcentration)))}var l=0;for(w=0;w<r.sourceLinks.length;w++)l+=r.sourceLinks[w].value;for(w=0;w<r.sourceLinks.length;w++)(e=r.sourceLinks[w]).concentrationOut=e.value/l;var c=0;for(w=0;w<r.targetLinks.length;w++)c+=r.targetLinks[w].value;for(w=0;w<r.targetLinks.length;w++)(e=r.targetLinks[w]).concenrationIn=e.value/c}}(),a.node.x.length&&a.node.y.length){for(_=0;_<Math.min(a.node.x.length,a.node.y.length,k.nodes.length);_++)if(a.node.x[_]&&a.node.y[_]){var L=[a.node.x[_]*v,a.node.y[_]*g];k.nodes[_].x0=L[0]-d/2,k.nodes[_].x1=L[0]+d/2;var C=k.nodes[_].y1-k.nodes[_].y0;k.nodes[_].y0=L[1]-C/2,k.nodes[_].y1=L[1]+C/2}"snap"===a.arrangement&&function(t){var e,r,n=t.map((function(t,e){return{x0:t.x0,index:e}})).sort((function(t,e){return t.x0-e.x0})),i=[],a=-1,o=-1/0;for(_=0;_<n.length;_++){var s=t[n[_].index];s.x0>o+d&&(a+=1,e=s.x0),o=s.x0,i[a]||(i[a]=[]),i[a].push(s),r=e-s.x0,s.x0+=r,s.x1+=r}return i}(y=k.nodes).forEach((function(t){var e,r,n,i=0,a=t.length;for(t.sort((function(t,e){return t.y0-e.y0})),n=0;n<a;++n)(e=t[n]).y0>=i||(r=i-e.y0)>1e-6&&(e.y0+=r,e.y1+=r),i=e.y1+p})),n.update(k)}return{circular:b,key:r,trace:a,guid:h.randstr(),horizontal:f,width:v,height:g,nodePad:a.node.pad,nodeLineColor:a.node.line.color,nodeLineWidth:a.node.line.width,linkLineColor:a.link.line.color,linkLineWidth:a.link.line.width,linkArrowLength:a.link.arrowlen,valueFormat:a.valueformat,valueSuffix:a.valuesuffix,textFont:a.textfont,translateX:c.x[0]*t.width+t.margin.l,translateY:t.height-c.y[1]*t.height+t.margin.t,dragParallel:f?g:v,dragPerpendicular:f?v:g,arrangement:a.arrangement,sankey:n,graph:k,forceLayouts:{},interactionState:{dragInProgress:!1,hovered:!1}}}function A(t,e,r){var n=u(e.color),i=e.source.label+"|"+e.target.label+"__"+r;return e.trace=t.trace,e.curveNumber=t.trace.index,{circular:t.circular,key:i,traceId:t.key,pointNumber:e.pointNumber,link:e,tinyColorHue:c.tinyRGB(n),tinyColorAlpha:n.getAlpha(),linkPath:M,linkLineColor:t.linkLineColor,linkLineWidth:t.linkLineWidth,linkArrowLength:t.linkArrowLength,valueFormat:t.valueFormat,valueSuffix:t.valueSuffix,sankey:t.sankey,parent:t,interactionState:t.interactionState,flow:e.flow}}function M(){return function(t){var e=t.linkArrowLength;if(t.link.circular)return function(t,e){var r=t.width/2,n=t.circularPathData;return"top"===t.circularLinkType?"M "+(n.targetX-e)+" "+(n.targetY+r)+" L"+(n.rightInnerExtent-e)+" "+(n.targetY+r)+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightSmallArcRadius+r)+" 0 0 1 "+(n.rightFullExtent-r-e)+" "+(n.targetY-n.rightSmallArcRadius)+"L"+(n.rightFullExtent-r-e)+" "+n.verticalRightInnerExtent+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightLargeArcRadius+r)+" 0 0 1 "+(n.rightInnerExtent-e)+" "+(n.verticalFullExtent-r)+"L"+n.leftInnerExtent+" "+(n.verticalFullExtent-r)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftLargeArcRadius+r)+" 0 0 1 "+(n.leftFullExtent+r)+" "+n.verticalLeftInnerExtent+"L"+(n.leftFullExtent+r)+" "+(n.sourceY-n.leftSmallArcRadius)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftSmallArcRadius+r)+" 0 0 1 "+n.leftInnerExtent+" "+(n.sourceY+r)+"L"+n.sourceX+" "+(n.sourceY+r)+"L"+n.sourceX+" "+(n.sourceY-r)+"L"+n.leftInnerExtent+" "+(n.sourceY-r)+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftSmallArcRadius-r)+" 0 0 0 "+(n.leftFullExtent-r)+" "+(n.sourceY-n.leftSmallArcRadius)+"L"+(n.leftFullExtent-r)+" "+n.verticalLeftInnerExtent+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftLargeArcRadius-r)+" 0 0 0 "+n.leftInnerExtent+" "+(n.verticalFullExtent+r)+"L"+(n.rightInnerExtent-e)+" "+(n.verticalFullExtent+r)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightLargeArcRadius-r)+" 0 0 0 "+(n.rightFullExtent+r-e)+" "+n.verticalRightInnerExtent+"L"+(n.rightFullExtent+r-e)+" "+(n.targetY-n.rightSmallArcRadius)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightSmallArcRadius-r)+" 0 0 0 "+(n.rightInnerExtent-e)+" "+(n.targetY-r)+"L"+(n.targetX-e)+" "+(n.targetY-r)+(e>0?"L"+n.targetX+" "+n.targetY:"")+"Z":"M "+(n.targetX-e)+" "+(n.targetY-r)+" L"+(n.rightInnerExtent-e)+" "+(n.targetY-r)+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightSmallArcRadius+r)+" 0 0 0 "+(n.rightFullExtent-r-e)+" "+(n.targetY+n.rightSmallArcRadius)+"L"+(n.rightFullExtent-r-e)+" "+n.verticalRightInnerExtent+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightLargeArcRadius+r)+" 0 0 0 "+(n.rightInnerExtent-e)+" "+(n.verticalFullExtent+r)+"L"+n.leftInnerExtent+" "+(n.verticalFullExtent+r)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftLargeArcRadius+r)+" 0 0 0 "+(n.leftFullExtent+r)+" "+n.verticalLeftInnerExtent+"L"+(n.leftFullExtent+r)+" "+(n.sourceY+n.leftSmallArcRadius)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftSmallArcRadius+r)+" 0 0 0 "+n.leftInnerExtent+" "+(n.sourceY-r)+"L"+n.sourceX+" "+(n.sourceY-r)+"L"+n.sourceX+" "+(n.sourceY+r)+"L"+n.leftInnerExtent+" "+(n.sourceY+r)+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftSmallArcRadius-r)+" 0 0 1 "+(n.leftFullExtent-r)+" "+(n.sourceY+n.leftSmallArcRadius)+"L"+(n.leftFullExtent-r)+" "+n.verticalLeftInnerExtent+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftLargeArcRadius-r)+" 0 0 1 "+n.leftInnerExtent+" "+(n.verticalFullExtent-r)+"L"+(n.rightInnerExtent-e)+" "+(n.verticalFullExtent-r)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightLargeArcRadius-r)+" 0 0 1 "+(n.rightFullExtent+r-e)+" "+n.verticalRightInnerExtent+"L"+(n.rightFullExtent+r-e)+" "+(n.targetY+n.rightSmallArcRadius)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightSmallArcRadius-r)+" 0 0 1 "+(n.rightInnerExtent-e)+" "+(n.targetY+r)+"L"+(n.targetX-e)+" "+(n.targetY+r)+(e>0?"L"+n.targetX+" "+n.targetY:"")+"Z"}(t.link,e);var r=Math.abs((t.link.target.x0-t.link.source.x1)/2);e>r&&(e=r);var n=t.link.source.x1,a=t.link.target.x0-e,o=i(n,a),s=o(.5),l=o(.5),u=t.link.y0-t.link.width/2,c=t.link.y0+t.link.width/2,f=t.link.y1-t.link.width/2,h=t.link.y1+t.link.width/2,p="M"+n+","+u,d="C"+s+","+u+" "+l+","+f+" "+a+","+f,v="C"+l+","+h+" "+s+","+c+" "+n+","+c,g=e>0?"L"+(a+e)+","+(f+t.link.width/2):"";return p+d+(g+="L"+a+","+h)+v+"Z"}}function S(t,e){var r=u(e.color),n=l.nodePadAcross,i=t.nodePad/2;e.dx=e.x1-e.x0,e.dy=e.y1-e.y0;var a=e.dx,o=Math.max(.5,e.dy),s="node_"+e.pointNumber;return e.group&&(s=h.randstr()),e.trace=t.trace,e.curveNumber=t.trace.index,{index:e.pointNumber,key:s,partOfGroup:e.partOfGroup||!1,group:e.group,traceId:t.key,trace:t.trace,node:e,nodePad:t.nodePad,nodeLineColor:t.nodeLineColor,nodeLineWidth:t.nodeLineWidth,textFont:t.textFont,size:t.horizontal?t.height:t.width,visibleWidth:Math.ceil(a),visibleHeight:o,zoneX:-n,zoneY:-i,zoneWidth:a+2*n,zoneHeight:o+2*i,labelY:t.horizontal?e.dy/2+1:e.dx/2+1,left:1===e.originalLayer,sizeAcross:t.width,forceLayouts:t.forceLayouts,horizontal:t.horizontal,darkBackground:r.getBrightness()<=128,tinyColorHue:c.tinyRGB(r),tinyColorAlpha:r.getAlpha(),valueFormat:t.valueFormat,valueSuffix:t.valueSuffix,sankey:t.sankey,graph:t.graph,arrangement:t.arrangement,uniqueNodeLabelPathId:[t.guid,t.key,s].join("_"),interactionState:t.interactionState,figure:t}}function E(t){t.attr("transform",(function(t){return p(t.node.x0.toFixed(3),t.node.y0.toFixed(3))}))}function L(t){t.call(E)}function C(t,e){t.call(L),e.attr("d",M())}function P(t){t.attr("width",(function(t){return t.node.x1-t.node.x0})).attr("height",(function(t){return t.visibleHeight}))}function O(t){return t.link.width>1||t.linkLineWidth>0}function I(t){return p(t.translateX,t.translateY)+(t.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)")}function D(t,e,r){t.on(".basic",null).on("mouseover.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.hover(this,t,e),t.interactionState.hovered=[this,t])})).on("mousemove.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.follow(this,t),t.interactionState.hovered=[this,t])})).on("mouseout.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.unhover(this,t,e),t.interactionState.hovered=!1)})).on("click.basic",(function(t){t.interactionState.hovered&&(r.unhover(this,t,e),t.interactionState.hovered=!1),t.interactionState.dragInProgress||t.partOfGroup||r.select(this,t,e)}))}function z(t,e,r,i){var o=a.behavior.drag().origin((function(t){return{x:t.node.x0+t.visibleWidth/2,y:t.node.y0+t.visibleHeight/2}})).on("dragstart",(function(a){if("fixed"!==a.arrangement&&(h.ensureSingle(i._fullLayout._infolayer,"g","dragcover",(function(t){i._fullLayout._dragCover=t})),h.raiseToTop(this),a.interactionState.dragInProgress=a.node,F(a.node),a.interactionState.hovered&&(r.nodeEvents.unhover.apply(0,a.interactionState.hovered),a.interactionState.hovered=!1),"snap"===a.arrangement)){var o=a.traceId+"|"+a.key;a.forceLayouts[o]?a.forceLayouts[o].alpha(1):function(t,e,r,i){!function(t){for(var e=0;e<t.length;e++)t[e].y=(t[e].y0+t[e].y1)/2,t[e].x=(t[e].x0+t[e].x1)/2}(r.graph.nodes);var a=r.graph.nodes.filter((function(t){return t.originalX===r.node.originalX})).filter((function(t){return!t.partOfGroup}));r.forceLayouts[e]=n.forceSimulation(a).alphaDecay(0).force("collide",n.forceCollide().radius((function(t){return t.dy/2+r.nodePad/2})).strength(1).iterations(l.forceIterations)).force("constrain",function(t,e,r,n){return function(){for(var t=0,i=0;i<r.length;i++){var a=r[i];a===n.interactionState.dragInProgress?(a.x=a.lastDraggedX,a.y=a.lastDraggedY):(a.vx=(a.originalX-a.x)/l.forceTicksPerFrame,a.y=Math.min(n.size-a.dy/2,Math.max(a.dy/2,a.y))),t=Math.max(t,Math.abs(a.vx),Math.abs(a.vy))}!n.interactionState.dragInProgress&&t<.1&&n.forceLayouts[e].alpha()>0&&n.forceLayouts[e].alpha(0)}}(0,e,a,r)).stop()}(0,o,a),function(t,e,r,n,i){window.requestAnimationFrame((function a(){var o;for(o=0;o<l.forceTicksPerFrame;o++)r.forceLayouts[n].tick();if(function(t){for(var e=0;e<t.length;e++)t[e].y0=t[e].y-t[e].dy/2,t[e].y1=t[e].y0+t[e].dy,t[e].x0=t[e].x-t[e].dx/2,t[e].x1=t[e].x0+t[e].dx}(r.graph.nodes),r.sankey.update(r.graph),C(t.filter(B(r)),e),r.forceLayouts[n].alpha()>0)window.requestAnimationFrame(a);else{var s=r.node.originalX;r.node.x0=s-r.visibleWidth/2,r.node.x1=s+r.visibleWidth/2,R(r,i)}}))}(t,e,a,o,i)}})).on("drag",(function(r){if("fixed"!==r.arrangement){var n=a.event.x,i=a.event.y;"snap"===r.arrangement?(r.node.x0=n-r.visibleWidth/2,r.node.x1=n+r.visibleWidth/2,r.node.y0=i-r.visibleHeight/2,r.node.y1=i+r.visibleHeight/2):("freeform"===r.arrangement&&(r.node.x0=n-r.visibleWidth/2,r.node.x1=n+r.visibleWidth/2),i=Math.max(0,Math.min(r.size-r.visibleHeight/2,i)),r.node.y0=i-r.visibleHeight/2,r.node.y1=i+r.visibleHeight/2),F(r.node),"snap"!==r.arrangement&&(r.sankey.update(r.graph),C(t.filter(B(r)),e))}})).on("dragend",(function(t){if("fixed"!==t.arrangement){t.interactionState.dragInProgress=!1;for(var e=0;e<t.node.childrenNodes.length;e++)t.node.childrenNodes[e].x=t.node.x,t.node.childrenNodes[e].y=t.node.y;"snap"!==t.arrangement&&R(t,i)}}));t.on(".drag",null).call(o)}function R(t,e){for(var r=[],n=[],i=0;i<t.graph.nodes.length;i++){var a=(t.graph.nodes[i].x0+t.graph.nodes[i].x1)/2,o=(t.graph.nodes[i].y0+t.graph.nodes[i].y1)/2;r.push(a/t.figure.width),n.push(o/t.figure.height)}b.call("_guiRestyle",e,{"node.x":[r],"node.y":[n]},t.trace.index).then((function(){e._fullLayout._dragCover&&e._fullLayout._dragCover.remove()}))}function F(t){t.lastDraggedX=t.x0+t.dx/2,t.lastDraggedY=t.y0+t.dy/2}function B(t){return function(e){return e.node.originalX===t.node.originalX}}t.exports=function(t,e,r,n,i){var o=t._context.staticPlot,s=!1;h.ensureSingle(t._fullLayout._infolayer,"g","first-render",(function(){s=!0}));var v=t._fullLayout._dragCover,b=r.filter((function(t){return m(t).trace.visible})).map(k.bind(null,n)),_=e.selectAll("."+l.cn.sankey).data(b,g);_.exit().remove(),_.enter().append("g").classed(l.cn.sankey,!0).style("box-sizing","content-box").style("position","absolute").style("left",0).style("shape-rendering","geometricPrecision").style("pointer-events",o?"none":"auto").attr("transform",I),_.each((function(e,r){t._fullData[r]._sankey=e;var n="bgsankey-"+e.trace.uid+"-"+r;h.ensureSingle(t._fullLayout._draggers,"rect",n),t._fullData[r]._bgRect=a.select("."+n),t._fullData[r]._bgRect.style("pointer-events",o?"none":"all").attr("width",e.width).attr("height",e.height).attr("x",e.translateX).attr("y",e.translateY).classed("bgsankey",!0).style({fill:"transparent","stroke-width":0})})),_.transition().ease(l.ease).duration(l.duration).attr("transform",I);var L=_.selectAll("."+l.cn.sankeyLinks).data(y,g);L.enter().append("g").classed(l.cn.sankeyLinks,!0).style("fill","none");var C=L.selectAll("."+l.cn.sankeyLink).data((function(t){return t.graph.links.filter((function(t){return t.value})).map(A.bind(null,t))}),g);C.enter().append("path").classed(l.cn.sankeyLink,!0).call(D,_,i.linkEvents),C.style("stroke",(function(t){return O(t)?c.tinyRGB(u(t.linkLineColor)):t.tinyColorHue})).style("stroke-opacity",(function(t){return O(t)?c.opacity(t.linkLineColor):t.tinyColorAlpha})).style("fill",(function(t){return t.tinyColorHue})).style("fill-opacity",(function(t){return t.tinyColorAlpha})).style("stroke-width",(function(t){return O(t)?t.linkLineWidth:1})).attr("d",M()),C.style("opacity",(function(){return t._context.staticPlot||s||v?1:0})).transition().ease(l.ease).duration(l.duration).style("opacity",1),C.exit().transition().ease(l.ease).duration(l.duration).style("opacity",0).remove();var R=_.selectAll("."+l.cn.sankeyNodeSet).data(y,g);R.enter().append("g").classed(l.cn.sankeyNodeSet,!0),R.style("cursor",(function(t){switch(t.arrangement){case"fixed":return"default";case"perpendicular":return"ns-resize";default:return"move"}}));var F=R.selectAll("."+l.cn.sankeyNode).data((function(t){var e=t.graph.nodes;return function(t){var e,r=[];for(e=0;e<t.length;e++)t[e].originalX=(t[e].x0+t[e].x1)/2,t[e].originalY=(t[e].y0+t[e].y1)/2,-1===r.indexOf(t[e].originalX)&&r.push(t[e].originalX);for(r.sort((function(t,e){return t-e})),e=0;e<t.length;e++)t[e].originalLayerIndex=r.indexOf(t[e].originalX),t[e].originalLayer=t[e].originalLayerIndex/(r.length-1)}(e),e.map(S.bind(null,t))}),g);F.enter().append("g").classed(l.cn.sankeyNode,!0).call(E).style("opacity",(function(e){return!t._context.staticPlot&&!s||e.partOfGroup?0:1})),F.call(D,_,i.nodeEvents).call(z,C,i,t),F.transition().ease(l.ease).duration(l.duration).call(E).style("opacity",(function(t){return t.partOfGroup?0:1})),F.exit().transition().ease(l.ease).duration(l.duration).style("opacity",0).remove();var B=F.selectAll("."+l.cn.nodeRect).data(y);B.enter().append("rect").classed(l.cn.nodeRect,!0).call(P),B.style("stroke-width",(function(t){return t.nodeLineWidth})).style("stroke",(function(t){return c.tinyRGB(u(t.nodeLineColor))})).style("stroke-opacity",(function(t){return c.opacity(t.nodeLineColor)})).style("fill",(function(t){return t.tinyColorHue})).style("fill-opacity",(function(t){return t.tinyColorAlpha})),B.transition().ease(l.ease).duration(l.duration).call(P);var N=F.selectAll("."+l.cn.nodeLabel).data(y);N.enter().append("text").classed(l.cn.nodeLabel,!0).style("cursor","default"),N.attr("data-notex",1).text((function(t){return t.node.label})).each((function(e){var r=a.select(this);f.font(r,e.textFont),x.convertToTspans(r,t)})).style("text-shadow",x.makeTextShadow(t._fullLayout.paper_bgcolor)).attr("text-anchor",(function(t){return t.horizontal&&t.left?"end":"start"})).attr("transform",(function(t){var e=a.select(this),r=x.lineCount(e),n=t.textFont.size*((r-1)*T-w),i=t.nodeLineWidth/2+3,o=((t.horizontal?t.visibleHeight:t.visibleWidth)-n)/2;t.horizontal&&(t.left?i=-i:i+=t.visibleWidth);var s=t.horizontal?"":"scale(-1,1)"+d(90);return p(t.horizontal?i:o,t.horizontal?o:i)+s})),N.transition().ease(l.ease).duration(l.duration)}},84564:function(t){"use strict";t.exports=function(t,e){for(var r=[],n=t.cd[0].trace,i=n._sankey.graph.nodes,a=0;a<i.length;a++){var o=i[a];if(!o.partOfGroup){var s=[(o.x0+o.x1)/2,(o.y0+o.y1)/2];"v"===n.orientation&&s.reverse(),e&&e.contains(s,!1,a,t)&&r.push({pointNumber:o.pointNumber})}}return r}},75225:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){for(var r=0;r<t.length;r++)t[r].i=r;n.mergeArray(e.text,t,"tx"),n.mergeArray(e.texttemplate,t,"txt"),n.mergeArray(e.hovertext,t,"htx"),n.mergeArray(e.customdata,t,"data"),n.mergeArray(e.textposition,t,"tp"),e.textfont&&(n.mergeArrayCastPositive(e.textfont.size,t,"ts"),n.mergeArray(e.textfont.color,t,"tc"),n.mergeArray(e.textfont.family,t,"tf"));var i=e.marker;if(i){n.mergeArrayCastPositive(i.size,t,"ms"),n.mergeArrayCastPositive(i.opacity,t,"mo"),n.mergeArray(i.symbol,t,"mx"),n.mergeArray(i.angle,t,"ma"),n.mergeArray(i.standoff,t,"mf"),n.mergeArray(i.color,t,"mc");var a=i.line;i.line&&(n.mergeArray(a.color,t,"mlc"),n.mergeArrayCastPositive(a.width,t,"mlw"));var o=i.gradient;o&&"none"!==o.type&&(n.mergeArray(o.type,t,"mgt"),n.mergeArray(o.color,t,"mgc"))}}},82196:function(t,e,r){"use strict";var n=r(12663).axisHoverFormat,i=r(5386).s,a=r(5386).f,o=r(50693),s=r(41940),l=r(79952).P,u=r(79952).u,c=r(91424),f=r(47581),h=r(1426).extendFlat;t.exports={x:{valType:"data_array",editType:"calc+clearAxisTypes",anim:!0},x0:{valType:"any",dflt:0,editType:"calc+clearAxisTypes",anim:!0},dx:{valType:"number",dflt:1,editType:"calc",anim:!0},y:{valType:"data_array",editType:"calc+clearAxisTypes",anim:!0},y0:{valType:"any",dflt:0,editType:"calc+clearAxisTypes",anim:!0},dy:{valType:"number",dflt:1,editType:"calc",anim:!0},xperiod:{valType:"any",dflt:0,editType:"calc"},yperiod:{valType:"any",dflt:0,editType:"calc"},xperiod0:{valType:"any",editType:"calc"},yperiod0:{valType:"any",editType:"calc"},xperiodalignment:{valType:"enumerated",values:["start","middle","end"],dflt:"middle",editType:"calc"},yperiodalignment:{valType:"enumerated",values:["start","middle","end"],dflt:"middle",editType:"calc"},xhoverformat:n("x"),yhoverformat:n("y"),offsetgroup:{valType:"string",dflt:"",editType:"calc"},alignmentgroup:{valType:"string",dflt:"",editType:"calc"},stackgroup:{valType:"string",dflt:"",editType:"calc"},orientation:{valType:"enumerated",values:["v","h"],editType:"calc"},groupnorm:{valType:"enumerated",values:["","fraction","percent"],dflt:"",editType:"calc"},stackgaps:{valType:"enumerated",values:["infer zero","interpolate"],dflt:"infer zero",editType:"calc"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},texttemplate:i({},{}),hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"style"},mode:{valType:"flaglist",flags:["lines","markers","text"],extras:["none"],editType:"calc"},hoveron:{valType:"flaglist",flags:["points","fills"],editType:"style"},hovertemplate:a({},{keys:f.eventDataKeys}),line:{color:{valType:"color",editType:"style",anim:!0},width:{valType:"number",min:0,dflt:2,editType:"style",anim:!0},shape:{valType:"enumerated",values:["linear","spline","hv","vh","hvh","vhv"],dflt:"linear",editType:"plot"},smoothing:{valType:"number",min:0,max:1.3,dflt:1,editType:"plot"},dash:h({},l,{editType:"style"}),backoff:{valType:"number",min:0,dflt:"auto",arrayOk:!0,editType:"plot"},simplify:{valType:"boolean",dflt:!0,editType:"plot"},editType:"plot"},connectgaps:{valType:"boolean",dflt:!1,editType:"calc"},cliponaxis:{valType:"boolean",dflt:!0,editType:"plot"},fill:{valType:"enumerated",values:["none","tozeroy","tozerox","tonexty","tonextx","toself","tonext"],editType:"calc"},fillcolor:{valType:"color",editType:"style",anim:!0},fillpattern:u,marker:h({symbol:{valType:"enumerated",values:c.symbolList,dflt:"circle",arrayOk:!0,editType:"style"},opacity:{valType:"number",min:0,max:1,arrayOk:!0,editType:"style",anim:!0},angle:{valType:"angle",dflt:0,arrayOk:!0,editType:"plot",anim:!1},angleref:{valType:"enumerated",values:["previous","up"],dflt:"up",editType:"plot",anim:!1},standoff:{valType:"number",min:0,dflt:0,arrayOk:!0,editType:"plot",anim:!0},size:{valType:"number",min:0,dflt:6,arrayOk:!0,editType:"calc",anim:!0},maxdisplayed:{valType:"number",min:0,dflt:0,editType:"plot"},sizeref:{valType:"number",dflt:1,editType:"calc"},sizemin:{valType:"number",min:0,dflt:0,editType:"calc"},sizemode:{valType:"enumerated",values:["diameter","area"],dflt:"diameter",editType:"calc"},line:h({width:{valType:"number",min:0,arrayOk:!0,editType:"style",anim:!0},editType:"calc"},o("marker.line",{anim:!0})),gradient:{type:{valType:"enumerated",values:["radial","horizontal","vertical","none"],arrayOk:!0,dflt:"none",editType:"calc"},color:{valType:"color",arrayOk:!0,editType:"calc"},editType:"calc"},editType:"calc"},o("marker",{anim:!0})),selected:{marker:{opacity:{valType:"number",min:0,max:1,editType:"style"},color:{valType:"color",editType:"style"},size:{valType:"number",min:0,editType:"style"},editType:"style"},textfont:{color:{valType:"color",editType:"style"},editType:"style"},editType:"style"},unselected:{marker:{opacity:{valType:"number",min:0,max:1,editType:"style"},color:{valType:"color",editType:"style"},size:{valType:"number",min:0,editType:"style"},editType:"style"},textfont:{color:{valType:"color",editType:"style"},editType:"style"},editType:"style"},textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right"],dflt:"middle center",arrayOk:!0,editType:"calc"},textfont:s({editType:"calc",colorEditType:"style",arrayOk:!0})}},47761:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(89298),o=r(42973),s=r(50606).BADNUM,l=r(34098),u=r(36922),c=r(75225),f=r(66279);function h(t,e,r,n,i,o,s){var u=e._length,c=t._fullLayout,f=r._id,h=n._id,p=c._firstScatter[v(e)]===e.uid,d=(g(e,c,r,n)||{}).orientation,y=e.fill;r._minDtick=0,n._minDtick=0;var m={padded:!0},x={padded:!0};s&&(m.ppad=x.ppad=s);var b=u<2||i[0]!==i[u-1]||o[0]!==o[u-1];b&&("tozerox"===y||"tonextx"===y&&(p||"h"===d))?m.tozero=!0:(e.error_y||{}).visible||"tonexty"!==y&&"tozeroy"!==y&&(l.hasMarkers(e)||l.hasText(e))||(m.padded=!1,m.ppad=0),b&&("tozeroy"===y||"tonexty"===y&&(p||"v"===d))?x.tozero=!0:"tonextx"!==y&&"tozerox"!==y||(x.padded=!1),f&&(e._extremes[f]=a.findExtremes(r,i,m)),h&&(e._extremes[h]=a.findExtremes(n,o,x))}function p(t,e){if(l.hasMarkers(t)){var r,n=t.marker,o=1.6*(t.marker.sizeref||1);if(r="area"===t.marker.sizemode?function(t){return Math.max(Math.sqrt((t||0)/o),3)}:function(t){return Math.max((t||0)/o,3)},i.isArrayOrTypedArray(n.size)){var s={type:"linear"};a.setConvert(s);for(var u=s.makeCalcdata(t.marker,"size"),c=new Array(e),f=0;f<e;f++)c[f]=r(u[f]);return c}return r(n.size)}}function d(t,e){var r=v(e),n=t._firstScatter;n[r]||(n[r]=e.uid)}function v(t){var e=t.stackgroup;return t.xaxis+t.yaxis+t.type+(e?"-"+e:"")}function g(t,e,r,n){var i=t.stackgroup;if(i){var a=e._scatterStackOpts[r._id+n._id][i],o="v"===a.orientation?n:r;return"linear"===o.type||"log"===o.type?a:void 0}}t.exports={calc:function(t,e){var r,l,v,y,m,x,b=t._fullLayout,_=e._xA=a.getFromId(t,e.xaxis||"x","x"),w=e._yA=a.getFromId(t,e.yaxis||"y","y"),T=_.makeCalcdata(e,"x"),k=w.makeCalcdata(e,"y"),A=o(e,_,"x",T),M=o(e,w,"y",k),S=A.vals,E=M.vals,L=e._length,C=new Array(L),P=e.ids,O=g(e,b,_,w),I=!1;d(b,e);var D,z="x",R="y";O?(i.pushUnique(O.traceIndices,e._expandedIndex),(r="v"===O.orientation)?(R="s",D="x"):(z="s",D="y"),m="interpolate"===O.stackgaps):h(t,e,_,w,S,E,p(e,L));var F=!!e.xperiodalignment,B=!!e.yperiodalignment;for(l=0;l<L;l++){var N=C[l]={},j=n(S[l]),U=n(E[l]);j&&U?(N[z]=S[l],N[R]=E[l],F&&(N.orig_x=T[l],N.xEnd=A.ends[l],N.xStart=A.starts[l]),B&&(N.orig_y=k[l],N.yEnd=M.ends[l],N.yStart=M.starts[l])):O&&(r?j:U)?(N[D]=r?S[l]:E[l],N.gap=!0,m?(N.s=s,I=!0):N.s=0):N[z]=N[R]=s,P&&(N.id=String(P[l]))}if(c(C,e),u(t,e),f(C,e),O){for(l=0;l<C.length;)C[l][D]===s?C.splice(l,1):l++;if(i.sort(C,(function(t,e){return t[D]-e[D]||t.i-e.i})),I){for(l=0;l<C.length-1&&C[l].gap;)l++;for((x=C[l].s)||(x=C[l].s=0),v=0;v<l;v++)C[v].s=x;for(y=C.length-1;y>l&&C[y].gap;)y--;for(x=C[y].s,v=C.length-1;v>y;v--)C[v].s=x;for(;l<y;)if(C[++l].gap){for(v=l+1;C[v].gap;)v++;for(var V=C[l-1][D],H=C[l-1].s,q=(C[v].s-H)/(C[v][D]-V);l<v;)C[l].s=H+(C[l][D]-V)*q,l++}}}return C},calcMarkerSize:p,calcAxisExpansion:h,setFirstScatter:d,getStackOpts:g}},66279:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){n.isArrayOrTypedArray(e.selectedpoints)&&n.tagSelected(t,e)}},36922:function(t,e,r){"use strict";var n=r(52075).hasColorscale,i=r(78803),a=r(34098);t.exports=function(t,e){a.hasLines(e)&&n(e,"line")&&i(t,e,{vals:e.line.color,containerStr:"line",cLetter:"c"}),a.hasMarkers(e)&&(n(e,"marker")&&i(t,e,{vals:e.marker.color,containerStr:"marker",cLetter:"c"}),n(e,"marker.line")&&i(t,e,{vals:e.marker.line.color,containerStr:"marker.line",cLetter:"c"}))}},47581:function(t){"use strict";t.exports={PTS_LINESONLY:20,minTolerance:.2,toleranceGrowth:10,maxScreensAway:20,eventDataKeys:[]}},72626:function(t,e,r){"use strict";var n=r(47761),i=r(11661).setGroupPositions;function a(t,e,r,n,i,a,o){i[n]=!0;var s={i:null,gap:!0,s:0};if(s[o]=r,t.splice(e,0,s),e&&r===t[e-1][o]){var l=t[e-1];s.s=l.s,s.i=l.i,s.gap=l.gap}else a&&(s.s=function(t,e,r,n){var i=t[e-1],a=t[e+1];return a?i?i.s+(a.s-i.s)*(r-i[n])/(a[n]-i[n]):a.s:i.s}(t,e,r,o));e||(t[0].t=t[1].t,t[0].trace=t[1].trace,delete t[1].t,delete t[1].trace)}t.exports=function(t,e){"group"===t._fullLayout.scattermode&&function(t,e){for(var r=e.xaxis,n=e.yaxis,a=t._fullLayout,o=t._fullData,s=t.calcdata,l=[],u=[],c=0;c<o.length;c++){var f=o[c];!0===f.visible&&"scatter"===f.type&&f.xaxis===r._id&&f.yaxis===n._id&&("h"===f.orientation?l.push(s[c]):"v"===f.orientation&&u.push(s[c]))}var h={mode:a.scattermode,gap:a.scattergap};i(t,r,n,u,h),i(t,n,r,l,h)}(t,e);var r=e.xaxis,o=e.yaxis,s=r._id+o._id,l=t._fullLayout._scatterStackOpts[s];if(l){var u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k=t.calcdata;for(var A in l){var M=(m=l[A]).traceIndices;if(M.length){for(x="interpolate"===m.stackgaps,b=m.groupnorm,"v"===m.orientation?(_="x",w="y"):(_="y",w="x"),T=new Array(M.length),u=0;u<T.length;u++)T[u]=!1;d=k[M[0]];var S=new Array(d.length);for(u=0;u<d.length;u++)S[u]=d[u][_];for(u=1;u<M.length;u++){for(p=k[M[u]],c=f=0;c<p.length;c++){for(v=p[c][_];v>S[f]&&f<S.length;f++)a(p,c,S[f],u,T,x,_),c++;if(v!==S[f]){for(h=0;h<u;h++)a(k[M[h]],f,v,h,T,x,_);S.splice(f,0,v)}f++}for(;f<S.length;f++)a(p,c,S[f],u,T,x,_),c++}var E=S.length;for(c=0;c<d.length;c++){for(g=d[c][w]=d[c].s,u=1;u<M.length;u++)(p=k[M[u]])[0].trace._rawLength=p[0].trace._length,p[0].trace._length=E,g+=p[c].s,p[c][w]=g;if(b)for(y=("fraction"===b?g:g/100)||1,u=0;u<M.length;u++){var L=k[M[u]][c];L[w]/=y,L.sNorm=L.s/y}}for(u=0;u<M.length;u++){var C=(p=k[M[u]])[0].trace,P=n.calcMarkerSize(C,C._rawLength),O=Array.isArray(P);if(P&&T[u]||O){var I=P;for(P=new Array(E),c=0;c<E;c++)P[c]=p[c].gap?0:O?I[p[c].i]:I}var D=new Array(E),z=new Array(E);for(c=0;c<E;c++)D[c]=p[c].x,z[c]=p[c].y;n.calcAxisExpansion(t,C,r,o,D,z,P),p[0].t.orientation=m.orientation}}}}}},34936:function(t,e,r){"use strict";var n=r(71828),i=r(26125),a=r(82196);t.exports=function(t,e){var r,o,s;function l(t){return n.coerce(o._input,o,a,t)}if("group"===e.scattermode)for(s=0;s<t.length;s++)"scatter"===(o=t[s]).type&&(r=o._input,i(r,o,e,l));for(s=0;s<t.length;s++){var u=t[s];if("scatter"===u.type){var c=u.fill;if("none"!==c&&"toself"!==c&&(u.opacity=void 0,"tonexty"===c||"tonextx"===c))for(var f=s-1;f>=0;f--){var h=t[f];if("scatter"===h.type&&h.xaxis===u.xaxis&&h.yaxis===u.yaxis){h.opacity=void 0;break}}}}}},17438:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(82196),o=r(47581),s=r(34098),l=r(67513),u=r(73927),c=r(565),f=r(49508),h=r(11058),p=r(94039),d=r(82410),v=r(28908),g=r(71828).coercePattern;t.exports=function(t,e,r,y){function m(r,i){return n.coerce(t,e,a,r,i)}var x=l(t,e,y,m);if(x||(e.visible=!1),e.visible){u(t,e,y,m),m("xhoverformat"),m("yhoverformat");var b=c(t,e,y,m);"group"===y.scattermode&&void 0===e.orientation&&m("orientation","v");var _=!b&&x<o.PTS_LINESONLY?"lines+markers":"lines";m("text"),m("hovertext"),m("mode",_),s.hasLines(e)&&(h(t,e,r,y,m,{backoff:!0}),p(t,e,m),m("connectgaps"),m("line.simplify")),s.hasMarkers(e)&&f(t,e,r,y,m,{gradient:!0}),s.hasText(e)&&(m("texttemplate"),d(t,e,y,m));var w=[];(s.hasMarkers(e)||s.hasText(e))&&(m("cliponaxis"),m("marker.maxdisplayed"),w.push("points")),m("fill",b?b.fillDflt:"none"),"none"!==e.fill&&(v(t,e,r,m),s.hasLines(e)||p(t,e,m),g(m,"fillpattern",e.fillcolor,!1));var T=(e.line||{}).color,k=(e.marker||{}).color;"tonext"!==e.fill&&"toself"!==e.fill||w.push("fills"),m("hoveron",w.join("+")||"points"),"fills"!==e.hoveron&&m("hovertemplate");var A=i.getComponentMethod("errorbars","supplyDefaults");A(t,e,T||k||r,{axis:"y"}),A(t,e,T||k||r,{axis:"x",inherit:"y"}),n.coerceSelectionMarkerOpacity(e,m)}}},28908:function(t,e,r){"use strict";var n=r(7901),i=r(71828).isArrayOrTypedArray;t.exports=function(t,e,r,a){var o=!1;if(e.marker){var s=e.marker.color,l=(e.marker.line||{}).color;s&&!i(s)?o=s:l&&!i(l)&&(o=l)}a("fillcolor",n.addOpacity((e.line||{}).color||o||r,.5))}},8225:function(t,e,r){"use strict";var n=r(89298);t.exports=function(t,e,r){var i={},a={_fullLayout:r},o=n.getFromTrace(a,e,"x"),s=n.getFromTrace(a,e,"y"),l=t.orig_x;void 0===l&&(l=t.x);var u=t.orig_y;return void 0===u&&(u=t.y),i.xLabel=n.tickText(o,o.c2l(l),!0).text,i.yLabel=n.tickText(s,s.c2l(u),!0).text,i}},34603:function(t,e,r){"use strict";var n=r(7901),i=r(34098);t.exports=function(t,e){var r,a;if("lines"===t.mode)return(r=t.line.color)&&n.opacity(r)?r:t.fillcolor;if("none"===t.mode)return t.fill?t.fillcolor:"";var o=e.mcc||(t.marker||{}).color,s=e.mlcc||((t.marker||{}).line||{}).color;return(a=o&&n.opacity(o)?o:s&&n.opacity(s)&&(e.mlw||((t.marker||{}).line||{}).width)?s:"")?n.opacity(a)<.3?n.addOpacity(a,.3):a:(r=(t.line||{}).color)&&n.opacity(r)&&i.hasLines(t)&&t.line.width?r:t.fillcolor}},26125:function(t,e,r){"use strict";var n=r(99082).getAxisGroup;t.exports=function(t,e,r,i){var a=e.orientation,o=e[{v:"x",h:"y"}[a]+"axis"],s=n(r,o)+a,l=r._alignmentOpts||{},u=i("alignmentgroup"),c=l[s];c||(c=l[s]={});var f=c[u];f?f.traces.push(e):f=c[u]={traces:[e],alignmentIndex:Object.keys(c).length,offsetGroups:{}};var h=i("offsetgroup"),p=f.offsetGroups,d=p[h];h&&(d||(d=p[h]={offsetIndex:Object.keys(p).length}),e._offsetIndex=d.offsetIndex)}},33720:function(t,e,r){"use strict";var n=r(71828),i=r(30211),a=r(73972),o=r(34603),s=r(7901),l=n.fillText;t.exports=function(t,e,r,u){var c=t.cd,f=c[0].trace,h=t.xa,p=t.ya,d=h.c2p(e),v=p.c2p(r),g=[d,v],y=f.hoveron||"",m=-1!==f.mode.indexOf("markers")?3:.5,x=!!f.xperiodalignment,b=!!f.yperiodalignment;if(-1!==y.indexOf("points")){var _=function(t){var e=Math.max(m,t.mrc||0),r=h.c2p(t.x)-d,n=p.c2p(t.y)-v;return Math.max(Math.sqrt(r*r+n*n)-e,1-m/e)},w=i.getDistanceFunction(u,(function(t){if(x){var e=h.c2p(t.xStart),r=h.c2p(t.xEnd);return d>=Math.min(e,r)&&d<=Math.max(e,r)?0:1/0}var n=Math.max(3,t.mrc||0),i=1-1/n,a=Math.abs(h.c2p(t.x)-d);return a<n?i*a/n:a-n+i}),(function(t){if(b){var e=p.c2p(t.yStart),r=p.c2p(t.yEnd);return v>=Math.min(e,r)&&v<=Math.max(e,r)?0:1/0}var n=Math.max(3,t.mrc||0),i=1-1/n,a=Math.abs(p.c2p(t.y)-v);return a<n?i*a/n:a-n+i}),_);if(i.getClosest(c,w,t),!1!==t.index){var T=c[t.index],k=h.c2p(T.x,!0),A=p.c2p(T.y,!0),M=T.mrc||1;t.index=T.i;var S=c[0].t.orientation,E=S&&(T.sNorm||T.s),L="h"===S?E:void 0!==T.orig_x?T.orig_x:T.x,C="v"===S?E:void 0!==T.orig_y?T.orig_y:T.y;return n.extendFlat(t,{color:o(f,T),x0:k-M,x1:k+M,xLabelVal:L,y0:A-M,y1:A+M,yLabelVal:C,spikeDistance:_(T),hovertemplate:f.hovertemplate}),l(T,f,t),a.getComponentMethod("errorbars","hoverInfo")(T,f,t),[t]}}if(-1!==y.indexOf("fills")&&f._polygons){var P,O,I,D,z,R,F,B,N,j=f._polygons,U=[],V=!1,H=1/0,q=-1/0,G=1/0,Z=-1/0;for(P=0;P<j.length;P++)(I=j[P]).contains(g)&&(V=!V,U.push(I),G=Math.min(G,I.ymin),Z=Math.max(Z,I.ymax));if(V){var Y=((G=Math.max(G,0))+(Z=Math.min(Z,p._length)))/2;for(P=0;P<U.length;P++)for(D=U[P].pts,O=1;O<D.length;O++)(B=D[O-1][1])>Y!=(N=D[O][1])>=Y&&(R=D[O-1][0],F=D[O][0],N-B&&(z=R+(F-R)*(Y-B)/(N-B),H=Math.min(H,z),q=Math.max(q,z)));H=Math.max(H,0),q=Math.min(q,h._length);var W=s.defaultLine;return s.opacity(f.fillcolor)?W=f.fillcolor:s.opacity((f.line||{}).color)&&(W=f.line.color),n.extendFlat(t,{distance:t.maxHoverDistance,x0:H,x1:q,y0:Y,y1:Y,color:W,hovertemplate:!1}),delete t.index,f.text&&!Array.isArray(f.text)?t.text=String(f.text):t.text=f.name,[t]}}}},67368:function(t,e,r){"use strict";var n=r(34098);t.exports={hasLines:n.hasLines,hasMarkers:n.hasMarkers,hasText:n.hasText,isBubble:n.isBubble,attributes:r(82196),layoutAttributes:r(21479),supplyDefaults:r(17438),crossTraceDefaults:r(34936),supplyLayoutDefaults:r(79334),calc:r(47761).calc,crossTraceCalc:r(72626),arraysToCalcdata:r(75225),plot:r(32663),colorbar:r(4898),formatLabels:r(8225),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(33720),selectPoints:r(98002),animatable:!0,moduleType:"trace",name:"scatter",basePlotModule:r(93612),categories:["cartesian","svg","symbols","errorBarsOK","showLegend","scatter-like","zoomScale"],meta:{}}},21479:function(t){"use strict";t.exports={scattermode:{valType:"enumerated",values:["group","overlay"],dflt:"overlay",editType:"calc"},scattergap:{valType:"number",min:0,max:1,editType:"calc"}}},79334:function(t,e,r){"use strict";var n=r(71828),i=r(21479);t.exports=function(t,e){var r,a="group"===e.barmode;"group"===e.scattermode&&("scattergap",r=a?e.bargap:.2,n.coerce(t,e,i,"scattergap",r))}},11058:function(t,e,r){"use strict";var n=r(71828).isArrayOrTypedArray,i=r(52075).hasColorscale,a=r(1586);t.exports=function(t,e,r,o,s,l){l||(l={});var u=(t.marker||{}).color;s("line.color",r),i(t,"line")?a(t,e,o,s,{prefix:"line.",cLetter:"c"}):s("line.color",!n(u)&&u||r),s("line.width"),l.noDash||s("line.dash"),l.backoff&&s("line.backoff")}},34621:function(t,e,r){"use strict";var n=r(91424),i=r(50606),a=i.BADNUM,o=i.LOG_CLIP,s=o+.5,l=o-.5,u=r(71828),c=u.segmentsIntersect,f=u.constrain,h=r(47581);t.exports=function(t,e){var r,i,o,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S,E=e.trace||{},L=e.xaxis,C=e.yaxis,P="log"===L.type,O="log"===C.type,I=L._length,D=C._length,z=e.backoff,R=E.marker,F=e.connectGaps,B=e.baseTolerance,N=e.shape,j="linear"===N,U=E.fill&&"none"!==E.fill,V=[],H=h.minTolerance,q=t.length,G=new Array(q),Z=0;function Y(r){var n=t[r];if(!n)return!1;var i=e.linearized?L.l2p(n.x):L.c2p(n.x),o=e.linearized?C.l2p(n.y):C.c2p(n.y);if(i===a){if(P&&(i=L.c2p(n.x,!0)),i===a)return!1;O&&o===a&&(i*=Math.abs(L._m*D*(L._m>0?s:l)/(C._m*I*(C._m>0?s:l)))),i*=1e3}if(o===a){if(O&&(o=C.c2p(n.y,!0)),o===a)return!1;o*=1e3}return[i,o]}function W(t,e,r,n){var i=r-t,a=n-e,o=.5-t,s=.5-e,l=i*i+a*a,u=i*o+a*s;if(u>0&&u<l){var c=o*a-s*i;if(c*c<l)return!0}}function X(t,e){var r=t[0]/I,n=t[1]/D,i=Math.max(0,-r,r-1,-n,n-1);return i&&void 0!==M&&W(r,n,M,S)&&(i=0),i&&e&&W(r,n,e[0]/I,e[1]/D)&&(i=0),(1+h.toleranceGrowth*i)*B}function J(t,e){var r=t[0]-e[0],n=t[1]-e[1];return Math.sqrt(r*r+n*n)}var K,$,Q,tt,et,rt,nt,it=h.maxScreensAway,at=-I*it,ot=I*(1+it),st=-D*it,lt=D*(1+it),ut=[[at,st,ot,st],[ot,st,ot,lt],[ot,lt,at,lt],[at,lt,at,st]];function ct(t){if(t[0]<at||t[0]>ot||t[1]<st||t[1]>lt)return[f(t[0],at,ot),f(t[1],st,lt)]}function ft(t,e){return t[0]===e[0]&&(t[0]===at||t[0]===ot)||t[1]===e[1]&&(t[1]===st||t[1]===lt)||void 0}function ht(t,e,r){return function(n,i){var a=ct(n),o=ct(i),s=[];if(a&&o&&ft(a,o))return s;a&&s.push(a),o&&s.push(o);var l=2*u.constrain((n[t]+i[t])/2,e,r)-((a||n)[t]+(o||i)[t]);return l&&((a&&o?l>0==a[t]>o[t]?a:o:a||o)[t]+=l),s}}function pt(t){var e=t[0],r=t[1],n=e===G[Z-1][0],i=r===G[Z-1][1];if(!n||!i)if(Z>1){var a=e===G[Z-2][0],o=r===G[Z-2][1];n&&(e===at||e===ot)&&a?o?Z--:G[Z-1]=t:i&&(r===st||r===lt)&&o?a?Z--:G[Z-1]=t:G[Z++]=t}else G[Z++]=t}function dt(t){G[Z-1][0]!==t[0]&&G[Z-1][1]!==t[1]&&pt([Q,tt]),pt(t),et=null,Q=tt=0}"linear"===N||"spline"===N?nt=function(t,e){for(var r=[],n=0,i=0;i<4;i++){var a=ut[i],o=c(t[0],t[1],e[0],e[1],a[0],a[1],a[2],a[3]);o&&(!n||Math.abs(o.x-r[0][0])>1||Math.abs(o.y-r[0][1])>1)&&(o=[o.x,o.y],n&&J(o,t)<J(r[0],t)?r.unshift(o):r.push(o),n++)}return r}:"hv"===N||"vh"===N?nt=function(t,e){var r=[],n=ct(t),i=ct(e);return n&&i&&ft(n,i)||(n&&r.push(n),i&&r.push(i)),r}:"hvh"===N?nt=ht(0,at,ot):"vhv"===N&&(nt=ht(1,st,lt));var vt=u.isArrayOrTypedArray(R);function gt(e){if(e&&z&&(e.i=r,e.d=t,e.trace=E,e.marker=vt?R[e.i]:R,e.backoff=z),M=e[0]/I,S=e[1]/D,K=e[0]<at?at:e[0]>ot?ot:0,$=e[1]<st?st:e[1]>lt?lt:0,K||$){if(Z)if(et){var n=nt(et,e);n.length>1&&(dt(n[0]),G[Z++]=n[1])}else rt=nt(G[Z-1],e)[0],G[Z++]=rt;else G[Z++]=[K||e[0],$||e[1]];var i=G[Z-1];K&&$&&(i[0]!==K||i[1]!==$)?(et&&(Q!==K&&tt!==$?pt(Q&&tt?(a=et,s=(o=e)[0]-a[0],l=(o[1]-a[1])/s,(a[1]*o[0]-o[1]*a[0])/s>0?[l>0?at:ot,lt]:[l>0?ot:at,st]):[Q||K,tt||$]):Q&&tt&&pt([Q,tt])),pt([K,$])):Q-K&&tt-$&&pt([K||Q,$||tt]),et=e,Q=K,tt=$}else et&&dt(nt(et,e)[0]),G[Z++]=e;var a,o,s,l}for(r=0;r<q;r++)if(i=Y(r)){for(Z=0,et=null,gt(i),r++;r<q;r++){if(!(p=Y(r))){if(F)continue;break}if(j&&e.simplify){var yt=Y(r+1);if(x=J(p,i),U&&(0===Z||Z===q-1)||!(x<X(p,yt)*H)){for(y=[(p[0]-i[0])/x,(p[1]-i[1])/x],d=i,b=x,_=T=k=0,g=!1,o=p,r++;r<t.length;r++){if(v=yt,yt=Y(r+1),!v){if(F)continue;break}if(A=(m=[v[0]-i[0],v[1]-i[1]])[0]*y[1]-m[1]*y[0],T=Math.min(T,A),(k=Math.max(k,A))-T>X(v,yt))break;o=v,(w=m[0]*y[0]+m[1]*y[1])>b?(b=w,p=v,g=!1):w<_&&(_=w,d=v,g=!0)}if(g?(gt(p),o!==d&&gt(d)):(d!==i&&gt(d),o!==p&&gt(p)),gt(o),r>=t.length||!v)break;gt(v),i=v}}else gt(p)}et&&pt([Q||et[0],tt||et[1]]),V.push(G.slice(0,Z))}var mt=N.slice(N.length-1);if(z&&"h"!==mt&&"v"!==mt){for(var xt=!1,bt=-1,_t=[],wt=0;wt<V.length;wt++)for(var Tt=0;Tt<V[wt].length-1;Tt++){var kt=V[wt][Tt],At=V[wt][Tt+1],Mt=n.applyBackoff(At,kt);Mt[0]===At[0]&&Mt[1]===At[1]||(xt=!0),_t[bt+1]||(_t[++bt]=[kt,[Mt[0],Mt[1]]])}return xt?_t:V}return V}},94039:function(t){"use strict";t.exports=function(t,e,r){"spline"===r("line.shape")&&r("line.smoothing")}},68687:function(t){"use strict";var e={tonextx:1,tonexty:1,tonext:1};t.exports=function(t,r,n){var i,a,o,s,l,u={},c=!1,f=-1,h=0,p=-1;for(a=0;a<n.length;a++)(o=(i=n[a][0].trace).stackgroup||"")?o in u?l=u[o]:(l=u[o]=h,h++):i.fill in e&&p>=0?l=p:(l=p=h,h++),l<f&&(c=!0),i._groupIndex=f=l;var d=n.slice();c&&d.sort((function(t,e){var r=t[0].trace,n=e[0].trace;return r._groupIndex-n._groupIndex||r.index-n.index}));var v={};for(a=0;a<d.length;a++)o=(i=d[a][0].trace).stackgroup||"",!0===i.visible?(i._nexttrace=null,i.fill in e&&(s=v[o],i._prevtrace=s||null,s&&(s._nexttrace=i)),i._ownfill=i.fill&&("tozero"===i.fill.substr(0,6)||"toself"===i.fill||"to"===i.fill.substr(0,2)&&!i._prevtrace),v[o]=i):i._prevtrace=i._nexttrace=i._ownfill=null;return d}},39984:function(t,e,r){"use strict";var n=r(92770);t.exports=function(t,e){e||(e=2);var r=t.marker,i=r.sizeref||1,a=r.sizemin||0,o="area"===r.sizemode?function(t){return Math.sqrt(t/i)}:function(t){return t/i};return function(t){var r=o(t/e);return n(r)&&r>0?Math.max(r,a):0}}},4898:function(t){"use strict";t.exports={container:"marker",min:"cmin",max:"cmax"}},49508:function(t,e,r){"use strict";var n=r(7901),i=r(52075).hasColorscale,a=r(1586),o=r(34098);t.exports=function(t,e,r,s,l,u){var c=o.isBubble(t),f=(t.line||{}).color;u=u||{},f&&(r=f),l("marker.symbol"),l("marker.opacity",c?.7:1),l("marker.size"),u.noAngle||(l("marker.angle"),u.noAngleRef||l("marker.angleref"),u.noStandOff||l("marker.standoff")),l("marker.color",r),i(t,"marker")&&a(t,e,s,l,{prefix:"marker.",cLetter:"c"}),u.noSelect||(l("selected.marker.color"),l("unselected.marker.color"),l("selected.marker.size"),l("unselected.marker.size")),u.noLine||(l("marker.line.color",f&&!Array.isArray(f)&&e.marker.color!==f?f:c?n.background:n.defaultLine),i(t,"marker.line")&&a(t,e,s,l,{prefix:"marker.line.",cLetter:"c"}),l("marker.line.width",c?1:0)),c&&(l("marker.sizeref"),l("marker.sizemin"),l("marker.sizemode")),u.gradient&&"none"!==l("marker.gradient.type")&&l("marker.gradient.color")}},73927:function(t,e,r){"use strict";var n=r(71828).dateTick0,i=r(50606).ONEWEEK;function a(t,e){return n(e,t%i==0?1:0)}t.exports=function(t,e,r,n,i){if(i||(i={x:!0,y:!0}),i.x){var o=n("xperiod");o&&(n("xperiod0",a(o,e.xcalendar)),n("xperiodalignment"))}if(i.y){var s=n("yperiod");s&&(n("yperiod0",a(s,e.ycalendar)),n("yperiodalignment"))}}},32663:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(71828),o=a.ensureSingle,s=a.identity,l=r(91424),u=r(34098),c=r(34621),f=r(68687),h=r(61082).tester;function p(t,e,r,f,p,d,v){var g;!function(t,e,r,i,o){var s=r.xaxis,l=r.yaxis,c=n.extent(a.simpleMap(s.range,s.r2c)),f=n.extent(a.simpleMap(l.range,l.r2c)),h=i[0].trace;if(u.hasMarkers(h)){var p=h.marker.maxdisplayed;if(0!==p){var d=i.filter((function(t){return t.x>=c[0]&&t.x<=c[1]&&t.y>=f[0]&&t.y<=f[1]})),v=Math.ceil(d.length/p),g=0;o.forEach((function(t,r){var n=t[0].trace;u.hasMarkers(n)&&n.marker.maxdisplayed>0&&r<e&&g++}));var y=Math.round(g*v/3+Math.floor(g/3)*v/7.1);i.forEach((function(t){delete t.vis})),d.forEach((function(t,e){0===Math.round((e+y)%v)&&(t.vis=!0)}))}}}(0,e,r,f,p);var y=!!v&&v.duration>0;function m(t){return y?t.transition():t}var x=r.xaxis,b=r.yaxis,_=f[0].trace,w=_.line,T=n.select(d),k=o(T,"g","errorbars"),A=o(T,"g","lines"),M=o(T,"g","points"),S=o(T,"g","text");if(i.getComponentMethod("errorbars","plot")(t,k,r,v),!0===_.visible){var E,L;m(T).style("opacity",_.opacity);var C=_.fill.charAt(_.fill.length-1);"x"!==C&&"y"!==C&&(C=""),f[0][r.isRangePlot?"nodeRangePlot3":"node3"]=T;var P,O,I="",D=[],z=_._prevtrace;z&&(I=z._prevRevpath||"",L=z._nextFill,D=z._polygons);var R,F,B,N,j,U,V,H="",q="",G=[],Z=a.noop;if(E=_._ownFill,u.hasLines(_)||"none"!==_.fill){for(L&&L.datum(f),-1!==["hv","vh","hvh","vhv"].indexOf(w.shape)?(R=l.steps(w.shape),F=l.steps(w.shape.split("").reverse().join(""))):R=F="spline"===w.shape?function(t){var e=t[t.length-1];return t.length>1&&t[0][0]===e[0]&&t[0][1]===e[1]?l.smoothclosed(t.slice(1),w.smoothing):l.smoothopen(t,w.smoothing)}:function(t){return"M"+t.join("L")},B=function(t){return F(t.reverse())},G=c(f,{xaxis:x,yaxis:b,trace:_,connectGaps:_.connectgaps,baseTolerance:Math.max(w.width||1,3)/4,shape:w.shape,backoff:w.backoff,simplify:w.simplify,fill:_.fill}),V=_._polygons=new Array(G.length),g=0;g<G.length;g++)_._polygons[g]=h(G[g]);G.length&&(N=G[0][0],U=(j=G[G.length-1])[j.length-1]),Z=function(t){return function(e){if(P=R(e),O=B(e),H?C?(H+="L"+P.substr(1),q=O+"L"+q.substr(1)):(H+="Z"+P,q=O+"Z"+q):(H=P,q=O),u.hasLines(_)){var r=n.select(this);if(r.datum(f),t)m(r.style("opacity",0).attr("d",P).call(l.lineGroupStyle)).style("opacity",1);else{var i=m(r);i.attr("d",P),l.singleLineStyle(f,i)}}}}}var Y=A.selectAll(".js-line").data(G);m(Y.exit()).style("opacity",0).remove(),Y.each(Z(!1)),Y.enter().append("path").classed("js-line",!0).style("vector-effect","non-scaling-stroke").call(l.lineGroupStyle).each(Z(!0)),l.setClipUrl(Y,r.layerClipId,t),G.length?(E?(E.datum(f),N&&U&&(C?("y"===C?N[1]=U[1]=b.c2p(0,!0):"x"===C&&(N[0]=U[0]=x.c2p(0,!0)),m(E).attr("d","M"+U+"L"+N+"L"+H.substr(1)).call(l.singleFillStyle,t)):m(E).attr("d",H+"Z").call(l.singleFillStyle,t))):L&&("tonext"===_.fill.substr(0,6)&&H&&I?("tonext"===_.fill?m(L).attr("d",H+"Z"+I+"Z").call(l.singleFillStyle,t):m(L).attr("d",H+"L"+I.substr(1)+"Z").call(l.singleFillStyle,t),_._polygons=_._polygons.concat(D)):(X(L),_._polygons=null)),_._prevRevpath=q,_._prevPolygons=V):(E?X(E):L&&X(L),_._polygons=_._prevRevpath=_._prevPolygons=null),M.datum(f),S.datum(f),function(e,i,a){var o,c=a[0].trace,f=u.hasMarkers(c),h=u.hasText(c),p=tt(c),d=et,v=et;if(f||h){var g=s,_=c.stackgroup,w=_&&"infer zero"===t._fullLayout._scatterStackOpts[x._id+b._id][_].stackgaps;c.marker.maxdisplayed||c._needsCull?g=w?K:J:_&&!w&&(g=$),f&&(d=g),h&&(v=g)}var T,k=(o=e.selectAll("path.point").data(d,p)).enter().append("path").classed("point",!0);y&&k.call(l.pointStyle,c,t).call(l.translatePoints,x,b).style("opacity",0).transition().style("opacity",1),o.order(),f&&(T=l.makePointStyleFns(c)),o.each((function(e){var i=n.select(this),a=m(i);l.translatePoint(e,a,x,b)?(l.singlePointStyle(e,a,c,T,t),r.layerClipId&&l.hideOutsideRangePoint(e,a,x,b,c.xcalendar,c.ycalendar),c.customdata&&i.classed("plotly-customdata",null!==e.data&&void 0!==e.data)):a.remove()})),y?o.exit().transition().style("opacity",0).remove():o.exit().remove(),(o=i.selectAll("g").data(v,p)).enter().append("g").classed("textpoint",!0).append("text"),o.order(),o.each((function(t){var e=n.select(this),i=m(e.select("text"));l.translatePoint(t,i,x,b)?r.layerClipId&&l.hideOutsideRangePoint(t,e,x,b,c.xcalendar,c.ycalendar):e.remove()})),o.selectAll("text").call(l.textPointStyle,c,t).each((function(t){var e=x.c2p(t.x),r=b.c2p(t.y);n.select(this).selectAll("tspan.line").each((function(){m(n.select(this)).attr({x:e,y:r})}))})),o.exit().remove()}(M,S,f);var W=!1===_.cliponaxis?null:r.layerClipId;l.setClipUrl(M,W,t),l.setClipUrl(S,W,t)}function X(t){m(t).attr("d","M0,0Z")}function J(t){return t.filter((function(t){return!t.gap&&t.vis}))}function K(t){return t.filter((function(t){return t.vis}))}function $(t){return t.filter((function(t){return!t.gap}))}function Q(t){return t.id}function tt(t){if(t.ids)return Q}function et(){return!1}}t.exports=function(t,e,r,i,a,u){var c,h,d=!a,v=!!a&&a.duration>0,g=f(t,e,r);(c=i.selectAll("g.trace").data(g,(function(t){return t[0].trace.uid}))).enter().append("g").attr("class",(function(t){return"trace scatter trace"+t[0].trace.uid})).style("stroke-miterlimit",2),c.order(),function(t,e,r){e.each((function(e){var i=o(n.select(this),"g","fills");l.setClipUrl(i,r.layerClipId,t);var a=e[0].trace,u=[];a._ownfill&&u.push("_ownFill"),a._nexttrace&&u.push("_nextFill");var c=i.selectAll("g").data(u,s);c.enter().append("g"),c.exit().each((function(t){a[t]=null})).remove(),c.order().each((function(t){a[t]=o(n.select(this),"path","js-fill")}))}))}(t,c,e),v?(u&&(h=u()),n.transition().duration(a.duration).ease(a.easing).each("end",(function(){h&&h()})).each("interrupt",(function(){h&&h()})).each((function(){i.selectAll("g.trace").each((function(r,n){p(t,n,e,r,g,this,a)}))}))):c.each((function(r,n){p(t,n,e,r,g,this,a)})),d&&c.exit().remove(),i.selectAll("path:not([d])").remove()}},98002:function(t,e,r){"use strict";var n=r(34098);t.exports=function(t,e){var r,i,a,o,s=t.cd,l=t.xaxis,u=t.yaxis,c=[],f=s[0].trace;if(!n.hasMarkers(f)&&!n.hasText(f))return[];if(!1===e)for(r=0;r<s.length;r++)s[r].selected=0;else for(r=0;r<s.length;r++)i=s[r],a=l.c2p(i.x),o=u.c2p(i.y),null!==i.i&&e.contains([a,o],!1,r,t)?(c.push({pointNumber:i.i,x:l.c2d(i.x),y:u.c2d(i.y)}),i.selected=1):i.selected=0;return c}},565:function(t){"use strict";var e=["orientation","groupnorm","stackgaps"];t.exports=function(t,r,n,i){var a=n._scatterStackOpts,o=i("stackgroup");if(o){var s=r.xaxis+r.yaxis,l=a[s];l||(l=a[s]={});var u=l[o],c=!1;u?u.traces.push(r):(u=l[o]={traceIndices:[],traces:[r]},c=!0);for(var f={orientation:r.x&&!r.y?"h":"v"},h=0;h<e.length;h++){var p=e[h],d=p+"Found";if(!u[d]){var v=void 0!==t[p],g="orientation"===p;if((v||c)&&(u[p]=i(p,f[p]),g&&(u.fillDflt="h"===u[p]?"tonextx":"tonexty"),v&&(u[d]=!0,!c&&(delete u.traces[0][p],g))))for(var y=0;y<u.traces.length-1;y++){var m=u.traces[y];m._input.fill!==m.fill&&(m.fill=u.fillDflt)}}}return u}}},16296:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(73972);function o(t,e,r){i.pointStyle(t.selectAll("path.point"),e,r)}function s(t,e,r){i.textPointStyle(t.selectAll("text"),e,r)}t.exports={style:function(t){var e=n.select(t).selectAll("g.trace.scatter");e.style("opacity",(function(t){return t[0].trace.opacity})),e.selectAll("g.points").each((function(e){o(n.select(this),e.trace||e[0].trace,t)})),e.selectAll("g.text").each((function(e){s(n.select(this),e.trace||e[0].trace,t)})),e.selectAll("g.trace path.js-line").call(i.lineGroupStyle),e.selectAll("g.trace path.js-fill").call(i.fillGroupStyle,t),a.getComponentMethod("errorbars","style")(e)},stylePoints:o,styleText:s,styleOnSelect:function(t,e,r){var n=e[0].trace;n.selectedpoints?(i.selectedPointStyle(r.selectAll("path.point"),n),i.selectedTextStyle(r.selectAll("text"),n)):(o(r,n,t),s(r,n,t))}}},34098:function(t,e,r){"use strict";var n=r(71828);t.exports={hasLines:function(t){return t.visible&&t.mode&&-1!==t.mode.indexOf("lines")},hasMarkers:function(t){return t.visible&&(t.mode&&-1!==t.mode.indexOf("markers")||"splom"===t.type)},hasText:function(t){return t.visible&&t.mode&&-1!==t.mode.indexOf("text")},isBubble:function(t){return n.isPlainObject(t.marker)&&n.isArrayOrTypedArray(t.marker.size)}}},82410:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e,r,i,a){a=a||{},i("textposition"),n.coerceFont(i,"textfont",r.font),a.noSelect||(i("selected.textfont.color"),i("unselected.textfont.color"))}},67513:function(t,e,r){"use strict";var n=r(71828),i=r(73972);t.exports=function(t,e,r,a){var o,s=a("x"),l=a("y");if(i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y"],r),s){var u=n.minRowLength(s);l?o=Math.min(u,n.minRowLength(l)):(o=u,a("y0"),a("dy"))}else{if(!l)return 0;o=n.minRowLength(l),a("x0"),a("dx")}return e._length=o,o}},44542:function(t,e,r){"use strict";var n=r(82196),i=r(50693),a=r(12663).axisHoverFormat,o=r(5386).f,s=r(5386).s,l=r(9012),u=r(29659),c=r(87381),f=r(1426).extendFlat,h=r(30962).overrideAll,p=r(78607),d=n.line,v=n.marker,g=v.line,y=f({width:d.width,dash:{valType:"enumerated",values:p(u),dflt:"solid"}},i("line")),m=t.exports=h({x:n.x,y:n.y,z:{valType:"data_array"},text:f({},n.text,{}),texttemplate:s({},{}),hovertext:f({},n.hovertext,{}),hovertemplate:o(),xhoverformat:a("x"),yhoverformat:a("y"),zhoverformat:a("z"),mode:f({},n.mode,{dflt:"lines+markers"}),surfaceaxis:{valType:"enumerated",values:[-1,0,1,2],dflt:-1},surfacecolor:{valType:"color"},projection:{x:{show:{valType:"boolean",dflt:!1},opacity:{valType:"number",min:0,max:1,dflt:1},scale:{valType:"number",min:0,max:10,dflt:2/3}},y:{show:{valType:"boolean",dflt:!1},opacity:{valType:"number",min:0,max:1,dflt:1},scale:{valType:"number",min:0,max:10,dflt:2/3}},z:{show:{valType:"boolean",dflt:!1},opacity:{valType:"number",min:0,max:1,dflt:1},scale:{valType:"number",min:0,max:10,dflt:2/3}}},connectgaps:n.connectgaps,line:y,marker:f({symbol:{valType:"enumerated",values:p(c),dflt:"circle",arrayOk:!0},size:f({},v.size,{dflt:8}),sizeref:v.sizeref,sizemin:v.sizemin,sizemode:v.sizemode,opacity:f({},v.opacity,{arrayOk:!1}),colorbar:v.colorbar,line:f({width:f({},g.width,{arrayOk:!1})},i("marker.line"))},i("marker")),textposition:f({},n.textposition,{dflt:"top center"}),textfont:{color:n.textfont.color,size:n.textfont.size,family:f({},n.textfont.family,{arrayOk:!1})},opacity:l.opacity,hoverinfo:f({},l.hoverinfo)},"calc","nested");m.x.editType=m.y.editType=m.z.editType="calc+clearAxisTypes"},36563:function(t,e,r){"use strict";var n=r(75225),i=r(36922);t.exports=function(t,e){var r=[{x:!1,y:!1,trace:e,t:{}}];return n(r,e),i(t,e),r}},67336:function(t,e,r){"use strict";var n=r(73972);function i(t,e,r,i){if(!e||!e.visible)return null;for(var a=n.getComponentMethod("errorbars","makeComputeError")(e),o=new Array(t.length),s=0;s<t.length;s++){var l=a(+t[s],s);if("log"===i.type){var u=i.c2l(t[s]),c=t[s]-l[0],f=t[s]+l[1];if(o[s]=[(i.c2l(c,!0)-u)*r,(i.c2l(f,!0)-u)*r],c>0){var h=i.c2l(c);i._lowerLogErrorBound||(i._lowerLogErrorBound=h),i._lowerErrorBound=Math.min(i._lowerLogErrorBound,h)}}else o[s]=[-l[0]*r,l[1]*r]}return o}t.exports=function(t,e,r){var n=[i(t.x,t.error_x,e[0],r.xaxis),i(t.y,t.error_y,e[1],r.yaxis),i(t.z,t.error_z,e[2],r.zaxis)],a=function(t){for(var e=0;e<t.length;e++)if(t[e])return t[e].length;return 0}(n);if(0===a)return null;for(var o=new Array(a),s=0;s<a;s++){for(var l=[[0,0,0],[0,0,0]],u=0;u<3;u++)if(n[u])for(var c=0;c<2;c++)l[c][u]=n[u][s][c];o[s]=l}return o}},58925:function(t,e,r){"use strict";var n=r(9330).gl_line3d,i=r(9330).gl_scatter3d,a=r(9330).gl_error3d,o=r(9330).gl_mesh3d,s=r(9330).delaunay_triangulate,l=r(71828),u=r(78614),c=r(81697).formatColor,f=r(39984),h=r(29659),p=r(87381),d=r(89298),v=r(23469).appendArrayPointValue,g=r(67336);function y(t,e){this.scene=t,this.uid=e,this.linePlot=null,this.scatterPlot=null,this.errorBars=null,this.textMarkers=null,this.delaunayMesh=null,this.color=null,this.mode="",this.dataPoints=[],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.textLabels=null,this.data=null}var m=y.prototype;function x(t){return null==t?0:t.indexOf("left")>-1?-1:t.indexOf("right")>-1?1:0}function b(t){return null==t?0:t.indexOf("top")>-1?-1:t.indexOf("bottom")>-1?1:0}function _(t,e){return e(4*t)}function w(t){return p[t]}function T(t,e,r,n,i){var a=null;if(l.isArrayOrTypedArray(t)){a=[];for(var o=0;o<e;o++)void 0===t[o]?a[o]=n:a[o]=r(t[o],i)}else a=r(t,l.identity);return a}function k(t){if(l.isArrayOrTypedArray(t)){var e=t[0];return l.isArrayOrTypedArray(e)&&(t=e),"rgb("+t.slice(0,3).map((function(t){return Math.round(255*t)}))+")"}return null}function A(t){return l.isArrayOrTypedArray(t)?4===t.length&&"number"==typeof t[0]?k(t):t.map(k):null}m.handlePick=function(t){if(t.object&&(t.object===this.linePlot||t.object===this.delaunayMesh||t.object===this.textMarkers||t.object===this.scatterPlot)){var e=t.index=t.data.index;return t.object.highlight&&t.object.highlight(null),this.scatterPlot&&(t.object=this.scatterPlot,this.scatterPlot.highlight(t.data)),t.textLabel="",this.textLabels&&(Array.isArray(this.textLabels)?(this.textLabels[e]||0===this.textLabels[e])&&(t.textLabel=this.textLabels[e]):t.textLabel=this.textLabels),t.traceCoordinate=[this.data.x[e],this.data.y[e],this.data.z[e]],!0}},m.update=function(t){var e,r,p,y,m=this.scene.glplot.gl,k=h.solid;this.data=t;var M=function(t,e){var r,n,i,a,o,s,h=[],p=t.fullSceneLayout,y=t.dataScale,m=p.xaxis,k=p.yaxis,A=p.zaxis,M=e.marker,S=e.line,E=e.x||[],L=e.y||[],C=e.z||[],P=E.length,O=e.xcalendar,I=e.ycalendar,D=e.zcalendar;for(o=0;o<P;o++)r=m.d2l(E[o],0,O)*y[0],n=k.d2l(L[o],0,I)*y[1],i=A.d2l(C[o],0,D)*y[2],h[o]=[r,n,i];if(Array.isArray(e.text))s=e.text;else if(void 0!==e.text)for(s=new Array(P),o=0;o<P;o++)s[o]=e.text;function z(t,e){var r=p[t];return d.tickText(r,r.d2l(e),!0).text}var R=e.texttemplate;if(R){var F=t.fullLayout._d3locale,B=Array.isArray(R),N=B?Math.min(R.length,P):P,j=B?function(t){return R[t]}:function(){return R};for(s=new Array(N),o=0;o<N;o++){var U={x:E[o],y:L[o],z:C[o]},V={xLabel:z("xaxis",E[o]),yLabel:z("yaxis",L[o]),zLabel:z("zaxis",C[o])},H={};v(H,e,o);var q=e._meta||{};s[o]=l.texttemplateString(j(o),V,F,H,U,q)}}if(a={position:h,mode:e.mode,text:s},"line"in e&&(a.lineColor=c(S,1,P),a.lineWidth=S.width,a.lineDashes=S.dash),"marker"in e){var G=f(e);a.scatterColor=c(M,1,P),a.scatterSize=T(M.size,P,_,20,G),a.scatterMarker=T(M.symbol,P,w,"●"),a.scatterLineWidth=M.line.width,a.scatterLineColor=c(M.line,1,P),a.scatterAngle=0}"textposition"in e&&(a.textOffset=function(t){var e=[0,0];if(Array.isArray(t))for(var r=0;r<t.length;r++)e[r]=[0,0],t[r]&&(e[r][0]=x(t[r]),e[r][1]=b(t[r]));else e[0]=x(t),e[1]=b(t);return e}(e.textposition),a.textColor=c(e.textfont,1,P),a.textSize=T(e.textfont.size,P,l.identity,12),a.textFont=e.textfont.family,a.textAngle=0);var Z=["x","y","z"];for(a.project=[!1,!1,!1],a.projectScale=[1,1,1],a.projectOpacity=[1,1,1],o=0;o<3;++o){var Y=e.projection[Z[o]];(a.project[o]=Y.show)&&(a.projectOpacity[o]=Y.opacity,a.projectScale[o]=Y.scale)}a.errorBounds=g(e,y,p);var W=function(t){for(var e=[0,0,0],r=[[0,0,0],[0,0,0],[0,0,0]],n=[1,1,1],i=0;i<3;i++){var a=t[i];a&&!1!==a.copy_zstyle&&!1!==t[2].visible&&(a=t[2]),a&&a.visible&&(e[i]=a.width/2,r[i]=u(a.color),n[i]=a.thickness)}return{capSize:e,color:r,lineWidth:n}}([e.error_x,e.error_y,e.error_z]);return a.errorColor=W.color,a.errorLineWidth=W.lineWidth,a.errorCapSize=W.capSize,a.delaunayAxis=e.surfaceaxis,a.delaunayColor=u(e.surfacecolor),a}(this.scene,t);"mode"in M&&(this.mode=M.mode),"lineDashes"in M&&M.lineDashes in h&&(k=h[M.lineDashes]),this.color=A(M.scatterColor)||A(M.lineColor),this.dataPoints=M.position,e={gl:this.scene.glplot.gl,position:M.position,color:M.lineColor,lineWidth:M.lineWidth||1,dashes:k[0],dashScale:k[1],opacity:t.opacity,connectGaps:t.connectgaps},-1!==this.mode.indexOf("lines")?this.linePlot?this.linePlot.update(e):(this.linePlot=n(e),this.linePlot._trace=this,this.scene.glplot.add(this.linePlot)):this.linePlot&&(this.scene.glplot.remove(this.linePlot),this.linePlot.dispose(),this.linePlot=null);var S=t.opacity;if(t.marker&&t.marker.opacity&&(S*=t.marker.opacity),r={gl:this.scene.glplot.gl,position:M.position,color:M.scatterColor,size:M.scatterSize,glyph:M.scatterMarker,opacity:S,orthographic:!0,lineWidth:M.scatterLineWidth,lineColor:M.scatterLineColor,project:M.project,projectScale:M.projectScale,projectOpacity:M.projectOpacity},-1!==this.mode.indexOf("markers")?this.scatterPlot?this.scatterPlot.update(r):(this.scatterPlot=i(r),this.scatterPlot._trace=this,this.scatterPlot.highlightScale=1,this.scene.glplot.add(this.scatterPlot)):this.scatterPlot&&(this.scene.glplot.remove(this.scatterPlot),this.scatterPlot.dispose(),this.scatterPlot=null),y={gl:this.scene.glplot.gl,position:M.position,glyph:M.text,color:M.textColor,size:M.textSize,angle:M.textAngle,alignment:M.textOffset,font:M.textFont,orthographic:!0,lineWidth:0,project:!1,opacity:t.opacity},this.textLabels=t.hovertext||t.text,-1!==this.mode.indexOf("text")?this.textMarkers?this.textMarkers.update(y):(this.textMarkers=i(y),this.textMarkers._trace=this,this.textMarkers.highlightScale=1,this.scene.glplot.add(this.textMarkers)):this.textMarkers&&(this.scene.glplot.remove(this.textMarkers),this.textMarkers.dispose(),this.textMarkers=null),p={gl:this.scene.glplot.gl,position:M.position,color:M.errorColor,error:M.errorBounds,lineWidth:M.errorLineWidth,capSize:M.errorCapSize,opacity:t.opacity},this.errorBars?M.errorBounds?this.errorBars.update(p):(this.scene.glplot.remove(this.errorBars),this.errorBars.dispose(),this.errorBars=null):M.errorBounds&&(this.errorBars=a(p),this.errorBars._trace=this,this.scene.glplot.add(this.errorBars)),M.delaunayAxis>=0){var E=function(t,e,r){var n,i=(r+1)%3,a=(r+2)%3,o=[],l=[];for(n=0;n<t.length;++n){var u=t[n];!isNaN(u[i])&&isFinite(u[i])&&!isNaN(u[a])&&isFinite(u[a])&&(o.push([u[i],u[a]]),l.push(n))}var c=s(o);for(n=0;n<c.length;++n)for(var f=c[n],h=0;h<f.length;++h)f[h]=l[f[h]];return{positions:t,cells:c,meshColor:e}}(M.position,M.delaunayColor,M.delaunayAxis);E.opacity=t.opacity,this.delaunayMesh?this.delaunayMesh.update(E):(E.gl=m,this.delaunayMesh=o(E),this.delaunayMesh._trace=this,this.scene.glplot.add(this.delaunayMesh))}else this.delaunayMesh&&(this.scene.glplot.remove(this.delaunayMesh),this.delaunayMesh.dispose(),this.delaunayMesh=null)},m.dispose=function(){this.linePlot&&(this.scene.glplot.remove(this.linePlot),this.linePlot.dispose()),this.scatterPlot&&(this.scene.glplot.remove(this.scatterPlot),this.scatterPlot.dispose()),this.errorBars&&(this.scene.glplot.remove(this.errorBars),this.errorBars.dispose()),this.textMarkers&&(this.scene.glplot.remove(this.textMarkers),this.textMarkers.dispose()),this.delaunayMesh&&(this.scene.glplot.remove(this.delaunayMesh),this.delaunayMesh.dispose())},t.exports=function(t,e){var r=new y(t,e.uid);return r.update(e),r}},21428:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(34098),o=r(49508),s=r(11058),l=r(82410),u=r(44542);t.exports=function(t,e,r,c){function f(r,n){return i.coerce(t,e,u,r,n)}var h=function(t,e,r,i){var a=0,o=r("x"),s=r("y"),l=r("z");return n.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y","z"],i),o&&s&&l&&(a=Math.min(o.length,s.length,l.length),e._length=e._xlength=e._ylength=e._zlength=a),a}(t,e,f,c);if(h){f("text"),f("hovertext"),f("hovertemplate"),f("xhoverformat"),f("yhoverformat"),f("zhoverformat"),f("mode"),a.hasLines(e)&&(f("connectgaps"),s(t,e,r,c,f)),a.hasMarkers(e)&&o(t,e,r,c,f,{noSelect:!0,noAngle:!0}),a.hasText(e)&&(f("texttemplate"),l(t,e,c,f,{noSelect:!0}));var p=(e.line||{}).color,d=(e.marker||{}).color;f("surfaceaxis")>=0&&f("surfacecolor",p||d);for(var v=["x","y","z"],g=0;g<3;++g){var y="projection."+v[g];f(y+".show")&&(f(y+".opacity"),f(y+".scale"))}var m=n.getComponentMethod("errorbars","supplyDefaults");m(t,e,p||d||r,{axis:"z"}),m(t,e,p||d||r,{axis:"y",inherit:"z"}),m(t,e,p||d||r,{axis:"x",inherit:"z"})}else e.visible=!1}},13551:function(t,e,r){"use strict";t.exports={plot:r(58925),attributes:r(44542),markerSymbols:r(87381),supplyDefaults:r(21428),colorbar:[{container:"marker",min:"cmin",max:"cmax"},{container:"line",min:"cmin",max:"cmax"}],calc:r(36563),moduleType:"trace",name:"scatter3d",basePlotModule:r(58547),categories:["gl3d","symbols","showLegend","scatter-like"],meta:{}}},97001:function(t,e,r){"use strict";var n=r(82196),i=r(9012),a=r(5386).f,o=r(5386).s,s=r(50693),l=r(1426).extendFlat,u=n.marker,c=n.line,f=u.line;t.exports={carpet:{valType:"string",editType:"calc"},a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},mode:l({},n.mode,{dflt:"markers"}),text:l({},n.text,{}),texttemplate:o({editType:"plot"},{keys:["a","b","text"]}),hovertext:l({},n.hovertext,{}),line:{color:c.color,width:c.width,dash:c.dash,backoff:c.backoff,shape:l({},c.shape,{values:["linear","spline"]}),smoothing:c.smoothing,editType:"calc"},connectgaps:n.connectgaps,fill:l({},n.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:n.fillcolor,marker:l({symbol:u.symbol,opacity:u.opacity,maxdisplayed:u.maxdisplayed,angle:u.angle,angleref:u.angleref,standoff:u.standoff,size:u.size,sizeref:u.sizeref,sizemin:u.sizemin,sizemode:u.sizemode,line:l({width:f.width,editType:"calc"},s("marker.line")),gradient:u.gradient,editType:"calc"},s("marker")),textfont:n.textfont,textposition:n.textposition,selected:n.selected,unselected:n.unselected,hoverinfo:l({},i.hoverinfo,{flags:["a","b","text","name"]}),hoveron:n.hoveron,hovertemplate:a()}},34618:function(t,e,r){"use strict";var n=r(92770),i=r(36922),a=r(75225),o=r(66279),s=r(47761).calcMarkerSize,l=r(22882);t.exports=function(t,e){var r=e._carpetTrace=l(t,e);if(r&&r.visible&&"legendonly"!==r.visible){var u;e.xaxis=r.xaxis,e.yaxis=r.yaxis;var c,f,h=e._length,p=new Array(h),d=!1;for(u=0;u<h;u++)if(c=e.a[u],f=e.b[u],n(c)&&n(f)){var v=r.ab2xy(+c,+f,!0),g=r.isVisible(+c,+f);g||(d=!0),p[u]={x:v[0],y:v[1],a:c,b:f,vis:g}}else p[u]={x:!1,y:!1};return e._needsCull=d,p[0].carpet=r,p[0].trace=e,s(e,h),i(t,e),a(p,e),o(p,e),p}}},98965:function(t,e,r){"use strict";var n=r(71828),i=r(47581),a=r(34098),o=r(49508),s=r(11058),l=r(94039),u=r(82410),c=r(28908),f=r(97001);t.exports=function(t,e,r,h){function p(r,i){return n.coerce(t,e,f,r,i)}p("carpet"),e.xaxis="x",e.yaxis="y";var d=p("a"),v=p("b"),g=Math.min(d.length,v.length);if(g){e._length=g,p("text"),p("texttemplate"),p("hovertext"),p("mode",g<i.PTS_LINESONLY?"lines+markers":"lines"),a.hasLines(e)&&(s(t,e,r,h,p,{backoff:!0}),l(t,e,p),p("connectgaps")),a.hasMarkers(e)&&o(t,e,r,h,p,{gradient:!0}),a.hasText(e)&&u(t,e,h,p);var y=[];(a.hasMarkers(e)||a.hasText(e))&&(p("marker.maxdisplayed"),y.push("points")),p("fill"),"none"!==e.fill&&(c(t,e,r,p),a.hasLines(e)||l(t,e,p)),"tonext"!==e.fill&&"toself"!==e.fill||y.push("fills"),"fills"!==p("hoveron",y.join("+")||"points")&&p("hovertemplate"),n.coerceSelectionMarkerOpacity(e,p)}else e.visible=!1}},16165:function(t){"use strict";t.exports=function(t,e,r,n,i){var a=n[i];return t.a=a.a,t.b=a.b,t.y=a.y,t}},48953:function(t){"use strict";t.exports=function(t,e){var r={},n=e._carpet,i=n.ab2ij([t.a,t.b]),a=Math.floor(i[0]),o=i[0]-a,s=Math.floor(i[1]),l=i[1]-s,u=n.evalxy([],a,s,o,l);return r.yLabel=u[1].toFixed(3),r}},22931:function(t,e,r){"use strict";var n=r(33720),i=r(71828).fillText;t.exports=function(t,e,r,a){var o=n(t,e,r,a);if(o&&!1!==o[0].index){var s=o[0];if(void 0===s.index){var l=1-s.y0/t.ya._length,u=t.xa._length,c=u*l/2,f=u-c;return s.x0=Math.max(Math.min(s.x0,f),c),s.x1=Math.max(Math.min(s.x1,f),c),o}var h=s.cd[s.index];s.a=h.a,s.b=h.b,s.xLabelVal=void 0,s.yLabelVal=void 0;var p=s.trace,d=p._carpet,v=p._module.formatLabels(h,p);s.yLabel=v.yLabel,delete s.text;var g=[];if(!p.hovertemplate){var y=(h.hi||p.hoverinfo).split("+");-1!==y.indexOf("all")&&(y=["a","b","text"]),-1!==y.indexOf("a")&&m(d.aaxis,h.a),-1!==y.indexOf("b")&&m(d.baxis,h.b),g.push("y: "+s.yLabel),-1!==y.indexOf("text")&&i(h,p,g),s.extraText=g.join("<br>")}return o}function m(t,e){var r;r=t.labelprefix&&t.labelprefix.length>0?t.labelprefix.replace(/ = $/,""):t._hovertitle,g.push(r+": "+e.toFixed(3)+t.labelsuffix)}}},46858:function(t,e,r){"use strict";t.exports={attributes:r(97001),supplyDefaults:r(98965),colorbar:r(4898),formatLabels:r(48953),calc:r(34618),plot:r(1913),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(22931),selectPoints:r(98002),eventData:r(16165),moduleType:"trace",name:"scattercarpet",basePlotModule:r(93612),categories:["svg","carpet","symbols","showLegend","carpetDependent","zoomScale"],meta:{}}},1913:function(t,e,r){"use strict";var n=r(32663),i=r(89298),a=r(91424);t.exports=function(t,e,r,o){var s,l,u,c=r[0][0].carpet,f=i.getFromId(t,c.xaxis||"x"),h=i.getFromId(t,c.yaxis||"y"),p={xaxis:f,yaxis:h,plot:e.plot};for(s=0;s<r.length;s++)(l=r[s][0].trace)._xA=f,l._yA=h;for(n(t,p,r,o),s=0;s<r.length;s++)l=r[s][0].trace,u=o.selectAll("g.trace"+l.uid+" .js-line"),a.setClipUrl(u,r[s][0].carpet._clipPathId,t)}},19316:function(t,e,r){"use strict";var n=r(5386).f,i=r(5386).s,a=r(82196),o=r(9012),s=r(50693),l=r(79952).P,u=r(1426).extendFlat,c=r(30962).overrideAll,f=a.marker,h=a.line,p=f.line;t.exports=c({lon:{valType:"data_array"},lat:{valType:"data_array"},locations:{valType:"data_array"},locationmode:{valType:"enumerated",values:["ISO-3","USA-states","country names","geojson-id"],dflt:"ISO-3"},geojson:{valType:"any",editType:"calc"},featureidkey:{valType:"string",editType:"calc",dflt:"id"},mode:u({},a.mode,{dflt:"markers"}),text:u({},a.text,{}),texttemplate:i({editType:"plot"},{keys:["lat","lon","location","text"]}),hovertext:u({},a.hovertext,{}),textfont:a.textfont,textposition:a.textposition,line:{color:h.color,width:h.width,dash:l},connectgaps:a.connectgaps,marker:u({symbol:f.symbol,opacity:f.opacity,angle:f.angle,angleref:u({},f.angleref,{values:["previous","up","north"]}),standoff:f.standoff,size:f.size,sizeref:f.sizeref,sizemin:f.sizemin,sizemode:f.sizemode,colorbar:f.colorbar,line:u({width:p.width},s("marker.line")),gradient:f.gradient},s("marker")),fill:{valType:"enumerated",values:["none","toself"],dflt:"none"},fillcolor:a.fillcolor,selected:a.selected,unselected:a.unselected,hoverinfo:u({},o.hoverinfo,{flags:["lon","lat","location","text","name"]}),hovertemplate:n()},"calc","nested")},84622:function(t,e,r){"use strict";var n=r(92770),i=r(50606).BADNUM,a=r(36922),o=r(75225),s=r(66279),l=r(71828)._;function u(t){return t&&"string"==typeof t}t.exports=function(t,e){var r,c=Array.isArray(e.locations),f=c?e.locations.length:e._length,h=new Array(f);r=e.geojson?function(t){return u(t)||n(t)}:u;for(var p=0;p<f;p++){var d=h[p]={};if(c){var v=e.locations[p];d.loc=r(v)?v:null}else{var g=e.lon[p],y=e.lat[p];n(g)&&n(y)?d.lonlat=[+g,+y]:d.lonlat=[i,i]}}return o(h,e),a(t,e),s(h,e),f&&(h[0].t={labels:{lat:l(t,"lat:")+" ",lon:l(t,"lon:")+" "}}),h}},10659:function(t,e,r){"use strict";var n=r(71828),i=r(34098),a=r(49508),o=r(11058),s=r(82410),l=r(28908),u=r(19316);t.exports=function(t,e,r,c){function f(r,i){return n.coerce(t,e,u,r,i)}var h,p=f("locations");if(p&&p.length){var d,v=f("geojson");("string"==typeof v&&""!==v||n.isPlainObject(v))&&(d="geojson-id"),"geojson-id"===f("locationmode",d)&&f("featureidkey"),h=p.length}else{var g=f("lon")||[],y=f("lat")||[];h=Math.min(g.length,y.length)}h?(e._length=h,f("text"),f("hovertext"),f("hovertemplate"),f("mode"),i.hasLines(e)&&(o(t,e,r,c,f),f("connectgaps")),i.hasMarkers(e)&&a(t,e,r,c,f,{gradient:!0}),i.hasText(e)&&(f("texttemplate"),s(t,e,c,f)),f("fill"),"none"!==e.fill&&l(t,e,r,f),n.coerceSelectionMarkerOpacity(e,f)):e.visible=!1}},84084:function(t){"use strict";t.exports=function(t,e,r,n,i){t.lon=e.lon,t.lat=e.lat,t.location=e.loc?e.loc:null;var a=n[i];return a.fIn&&a.fIn.properties&&(t.properties=a.fIn.properties),t}},82719:function(t,e,r){"use strict";var n=r(89298);t.exports=function(t,e,r){var i={},a=r[e.geo]._subplot.mockAxis,o=t.lonlat;return i.lonLabel=n.tickText(a,a.c2l(o[0]),!0).text,i.latLabel=n.tickText(a,a.c2l(o[1]),!0).text,i}},14977:function(t,e,r){"use strict";var n=r(30211),i=r(50606).BADNUM,a=r(34603),o=r(71828).fillText,s=r(19316);t.exports=function(t,e,r){var l=t.cd,u=l[0].trace,c=t.xa,f=t.ya,h=t.subplot,p=h.projection.isLonLatOverEdges,d=h.project;if(n.getClosest(l,(function(t){var n=t.lonlat;if(n[0]===i)return 1/0;if(p(n))return 1/0;var a=d(n),o=d([e,r]),s=Math.abs(a[0]-o[0]),l=Math.abs(a[1]-o[1]),u=Math.max(3,t.mrc||0);return Math.max(Math.sqrt(s*s+l*l)-u,1-3/u)}),t),!1!==t.index){var v=l[t.index],g=v.lonlat,y=[c.c2p(g),f.c2p(g)],m=v.mrc||1;t.x0=y[0]-m,t.x1=y[0]+m,t.y0=y[1]-m,t.y1=y[1]+m,t.loc=v.loc,t.lon=g[0],t.lat=g[1];var x={};x[u.geo]={_subplot:h};var b=u._module.formatLabels(v,u,x);return t.lonLabel=b.lonLabel,t.latLabel=b.latLabel,t.color=a(u,v),t.extraText=function(t,e,r,n){if(!t.hovertemplate){var i=e.hi||t.hoverinfo,a="all"===i?s.hoverinfo.flags:i.split("+"),l=-1!==a.indexOf("location")&&Array.isArray(t.locations),u=-1!==a.indexOf("lon"),c=-1!==a.indexOf("lat"),f=-1!==a.indexOf("text"),h=[];return l?h.push(e.loc):u&&c?h.push("("+p(r.latLabel)+", "+p(r.lonLabel)+")"):u?h.push(n.lon+p(r.lonLabel)):c&&h.push(n.lat+p(r.latLabel)),f&&o(e,t,h),h.join("<br>")}function p(t){return t+"°"}}(u,v,t,l[0].t.labels),t.hovertemplate=u.hovertemplate,[t]}}},17988:function(t,e,r){"use strict";t.exports={attributes:r(19316),supplyDefaults:r(10659),colorbar:r(4898),formatLabels:r(82719),calc:r(84622),calcGeoJSON:r(89171).calcGeoJSON,plot:r(89171).plot,style:r(33095),styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(14977),eventData:r(84084),selectPoints:r(20548),moduleType:"trace",name:"scattergeo",basePlotModule:r(44622),categories:["geo","symbols","showLegend","scatter-like"],meta:{}}},89171:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(90973).getTopojsonFeatures,o=r(18214),s=r(41327),l=r(71739).findExtremes,u=r(50606).BADNUM,c=r(47761).calcMarkerSize,f=r(34098),h=r(33095);t.exports={calcGeoJSON:function(t,e){var r,n,i=t[0].trace,o=e[i.geo],f=o._subplot,h=i._length;if(Array.isArray(i.locations)){var p=i.locationmode,d="geojson-id"===p?s.extractTraceFeature(t):a(i,f.topojson);for(r=0;r<h;r++){n=t[r];var v="geojson-id"===p?n.fOut:s.locationToFeature(p,n.loc,d);n.lonlat=v?v.properties.ct:[u,u]}}var g,y,m={padded:!0};if("geojson"===o.fitbounds&&"geojson-id"===i.locationmode){var x=s.computeBbox(s.getTraceGeojson(i));g=[x[0],x[2]],y=[x[1],x[3]]}else{for(g=new Array(h),y=new Array(h),r=0;r<h;r++)n=t[r],g[r]=n.lonlat[0],y[r]=n.lonlat[1];m.ppad=c(i,h)}i._extremes.lon=l(o.lonaxis._ax,g,m),i._extremes.lat=l(o.lataxis._ax,y,m)},plot:function(t,e,r){var a=e.layers.frontplot.select(".scatterlayer"),s=i.makeTraceGroups(a,r,"trace scattergeo");function l(t,e){t.lonlat[0]===u&&n.select(e).remove()}s.selectAll("*").remove(),s.each((function(e){var r=n.select(this),a=e[0].trace;if(f.hasLines(a)||"none"!==a.fill){var s=o.calcTraceToLineCoords(e),u="none"!==a.fill?o.makePolygon(s):o.makeLine(s);r.selectAll("path.js-line").data([{geojson:u,trace:a}]).enter().append("path").classed("js-line",!0).style("stroke-miterlimit",2)}f.hasMarkers(a)&&r.selectAll("path.point").data(i.identity).enter().append("path").classed("point",!0).each((function(t){l(t,this)})),f.hasText(a)&&r.selectAll("g").data(i.identity).enter().append("g").append("text").each((function(t){l(t,this)})),h(t,e)}))}}},20548:function(t,e,r){"use strict";var n=r(34098),i=r(50606).BADNUM;t.exports=function(t,e){var r,a,o,s,l,u=t.cd,c=t.xaxis,f=t.yaxis,h=[],p=u[0].trace;if(!n.hasMarkers(p)&&!n.hasText(p))return[];if(!1===e)for(l=0;l<u.length;l++)u[l].selected=0;else for(l=0;l<u.length;l++)(a=(r=u[l]).lonlat)[0]!==i&&(o=c.c2p(a),s=f.c2p(a),e.contains([o,s],null,l,t)?(h.push({pointNumber:l,lon:a[0],lat:a[1]}),r.selected=1):r.selected=0);return h}},33095:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(7901),o=r(16296),s=o.stylePoints,l=o.styleText;t.exports=function(t,e){e&&function(t,e){var r=e[0].trace,o=e[0].node3;o.style("opacity",e[0].trace.opacity),s(o,r,t),l(o,r,t),o.selectAll("path.js-line").style("fill","none").each((function(t){var e=n.select(this),r=t.trace,o=r.line||{};e.call(a.stroke,o.color).call(i.dashLine,o.dash||"",o.width||0),"none"!==r.fill&&e.call(a.fill,r.fillcolor)}))}(t,e)}},42341:function(t,e,r){"use strict";var n=r(9012),i=r(82196),a=r(12663).axisHoverFormat,o=r(50693),s=r(78607),l=r(1426).extendFlat,u=r(30962).overrideAll,c=r(78232).DASHES,f=i.line,h=i.marker,p=h.line,d=t.exports=u({x:i.x,x0:i.x0,dx:i.dx,y:i.y,y0:i.y0,dy:i.dy,xperiod:i.xperiod,yperiod:i.yperiod,xperiod0:i.xperiod0,yperiod0:i.yperiod0,xperiodalignment:i.xperiodalignment,yperiodalignment:i.yperiodalignment,xhoverformat:a("x"),yhoverformat:a("y"),text:i.text,hovertext:i.hovertext,textposition:i.textposition,textfont:i.textfont,mode:{valType:"flaglist",flags:["lines","markers","text"],extras:["none"]},line:{color:f.color,width:f.width,shape:{valType:"enumerated",values:["linear","hv","vh","hvh","vhv"],dflt:"linear",editType:"plot"},dash:{valType:"enumerated",values:s(c),dflt:"solid"}},marker:l({},o("marker"),{symbol:h.symbol,angle:h.angle,size:h.size,sizeref:h.sizeref,sizemin:h.sizemin,sizemode:h.sizemode,opacity:h.opacity,colorbar:h.colorbar,line:l({},o("marker.line"),{width:p.width})}),connectgaps:i.connectgaps,fill:l({},i.fill,{dflt:"none"}),fillcolor:i.fillcolor,selected:{marker:i.selected.marker,textfont:i.selected.textfont},unselected:{marker:i.unselected.marker,textfont:i.unselected.textfont},opacity:n.opacity},"calc","nested");d.x.editType=d.y.editType=d.x0.editType=d.y0.editType="calc+clearAxisTypes",d.hovertemplate=i.hovertemplate,d.texttemplate=i.texttemplate},72156:function(t,e,r){"use strict";var n=r(20794);t.exports={moduleType:"trace",name:"scattergl",basePlotModule:r(93612),categories:["gl","regl","cartesian","symbols","errorBarsOK","showLegend","scatter-like"],attributes:r(42341),supplyDefaults:r(47148),crossTraceDefaults:r(34936),colorbar:r(4898),formatLabels:r(68101),calc:r(45032),hoverPoints:n.hoverPoints,selectPoints:r(58147),meta:{}}},45032:function(t,e,r){"use strict";var n=r(88294),i=r(71828),a=r(41675),o=r(71739).findExtremes,s=r(42973),l=r(47761),u=l.calcMarkerSize,c=l.calcAxisExpansion,f=l.setFirstScatter,h=r(36922),p=r(19635),d=r(38967),v=r(50606).BADNUM,g=r(78232).TOO_MANY_POINTS;function y(t,e,r){var n=t._extremes[e._id],i=o(e,r._bnds,{padded:!0});n.min=n.min.concat(i.min),n.max=n.max.concat(i.max)}t.exports=function(t,e){var r,o=t._fullLayout,l=e._xA=a.getFromId(t,e.xaxis,"x"),m=e._yA=a.getFromId(t,e.yaxis,"y"),x=o._plots[e.xaxis+e.yaxis],b=e._length,_=b>=g,w=2*b,T={},k=l.makeCalcdata(e,"x"),A=m.makeCalcdata(e,"y"),M=s(e,l,"x",k),S=s(e,m,"y",A),E=M.vals,L=S.vals;e._x=E,e._y=L,e.xperiodalignment&&(e._origX=k,e._xStarts=M.starts,e._xEnds=M.ends),e.yperiodalignment&&(e._origY=A,e._yStarts=S.starts,e._yEnds=S.ends);var C=new Array(w),P=new Array(b);for(r=0;r<b;r++)C[2*r]=E[r]===v?NaN:E[r],C[2*r+1]=L[r]===v?NaN:L[r],P[r]=r;if("log"===l.type)for(r=0;r<w;r+=2)C[r]=l.c2l(C[r]);if("log"===m.type)for(r=1;r<w;r+=2)C[r]=m.c2l(C[r]);_&&"log"!==l.type&&"log"!==m.type?T.tree=n(C):T.ids=P,h(t,e);var O,I=function(t,e,r,n,a,o){var s=p.style(t,r);if(s.marker&&(s.marker.positions=n),s.line&&n.length>1&&i.extendFlat(s.line,p.linePositions(t,r,n)),s.errorX||s.errorY){var l=p.errorBarPositions(t,r,n,a,o);s.errorX&&i.extendFlat(s.errorX,l.x),s.errorY&&i.extendFlat(s.errorY,l.y)}return s.text&&(i.extendFlat(s.text,{positions:n},p.textPosition(t,r,s.text,s.marker)),i.extendFlat(s.textSel,{positions:n},p.textPosition(t,r,s.text,s.markerSel)),i.extendFlat(s.textUnsel,{positions:n},p.textPosition(t,r,s.text,s.markerUnsel))),s}(t,0,e,C,E,L),D=d(t,x);return f(o,e),_?I.marker&&(O=I.marker.sizeAvg||Math.max(I.marker.size,3)):O=u(e,b),c(t,e,l,m,E,L,O),I.errorX&&y(e,l,I.errorX),I.errorY&&y(e,m,I.errorY),I.fill&&!D.fill2d&&(D.fill2d=!0),I.marker&&!D.scatter2d&&(D.scatter2d=!0),I.line&&!D.line2d&&(D.line2d=!0),!I.errorX&&!I.errorY||D.error2d||(D.error2d=!0),I.text&&!D.glText&&(D.glText=!0),I.marker&&(I.marker.snap=b),D.lineOptions.push(I.line),D.errorXOptions.push(I.errorX),D.errorYOptions.push(I.errorY),D.fillOptions.push(I.fill),D.markerOptions.push(I.marker),D.markerSelectedOptions.push(I.markerSel),D.markerUnselectedOptions.push(I.markerUnsel),D.textOptions.push(I.text),D.textSelectedOptions.push(I.textSel),D.textUnselectedOptions.push(I.textUnsel),D.selectBatch.push([]),D.unselectBatch.push([]),T._scene=D,T.index=D.count,T.x=E,T.y=L,T.positions=C,D.count++,[{x:!1,y:!1,t:T,trace:e}]}},78232:function(t){"use strict";t.exports={TOO_MANY_POINTS:1e5,SYMBOL_SDF_SIZE:200,SYMBOL_SIZE:20,SYMBOL_STROKE:1,DOT_RE:/-dot/,OPEN_RE:/-open/,DASHES:{solid:[1],dot:[1,1],dash:[4,1],longdash:[8,1],dashdot:[4,1,1,1],longdashdot:[8,1,1,1]}}},19635:function(t,e,r){"use strict";var n=r(92770),i=r(82019),a=r(25075),o=r(73972),s=r(71828),l=r(91424),u=r(41675),c=r(81697).formatColor,f=r(34098),h=r(39984),p=r(68645),d=r(78232),v=r(37822).DESELECTDIM,g={start:1,left:1,end:-1,right:-1,middle:0,center:0,bottom:1,top:-1},y=r(23469).appendArrayPointValue;function m(t,e){var r,i=t._fullLayout,a=e._length,o=e.textfont,l=e.textposition,u=Array.isArray(l)?l:[l],c=o.color,f=o.size,h=o.family,p={},d=t._context.plotGlPixelRatio,v=e.texttemplate;if(v){p.text=[];var g=i._d3locale,m=Array.isArray(v),x=m?Math.min(v.length,a):a,b=m?function(t){return v[t]}:function(){return v};for(r=0;r<x;r++){var _={i:r},w=e._module.formatLabels(_,e,i),T={};y(T,e,r);var k=e._meta||{};p.text.push(s.texttemplateString(b(r),w,g,T,_,k))}}else Array.isArray(e.text)&&e.text.length<a?p.text=e.text.slice():p.text=e.text;if(Array.isArray(p.text))for(r=p.text.length;r<a;r++)p.text[r]="";for(p.opacity=e.opacity,p.font={},p.align=[],p.baseline=[],r=0;r<u.length;r++){var A=u[r].split(/\s+/);switch(A[1]){case"left":p.align.push("right");break;case"right":p.align.push("left");break;default:p.align.push(A[1])}switch(A[0]){case"top":p.baseline.push("bottom");break;case"bottom":p.baseline.push("top");break;default:p.baseline.push(A[0])}}if(Array.isArray(c))for(p.color=new Array(a),r=0;r<a;r++)p.color[r]=c[r];else p.color=c;if(s.isArrayOrTypedArray(f)||Array.isArray(h))for(p.font=new Array(a),r=0;r<a;r++){var M=p.font[r]={};M.size=(s.isTypedArray(f)?f[r]:Array.isArray(f)?n(f[r])?f[r]:0:f)*d,M.family=Array.isArray(h)?h[r]:h}else p.font={size:f*d,family:h};return p}function x(t,e){var r,n,i=e._length,o=e.marker,l={},u=s.isArrayOrTypedArray(o.symbol),f=s.isArrayOrTypedArray(o.angle),d=s.isArrayOrTypedArray(o.color),v=s.isArrayOrTypedArray(o.line.color),g=s.isArrayOrTypedArray(o.opacity),y=s.isArrayOrTypedArray(o.size),m=s.isArrayOrTypedArray(o.line.width);if(u||(n=p.isOpenSymbol(o.symbol)),u||d||v||g||f){l.symbols=new Array(i),l.angles=new Array(i),l.colors=new Array(i),l.borderColors=new Array(i);var x=o.symbol,b=o.angle,_=c(o,o.opacity,i),w=c(o.line,o.opacity,i);if(!Array.isArray(w[0])){var T=w;for(w=Array(i),r=0;r<i;r++)w[r]=T}if(!Array.isArray(_[0])){var k=_;for(_=Array(i),r=0;r<i;r++)_[r]=k}if(!Array.isArray(x)){var A=x;for(x=Array(i),r=0;r<i;r++)x[r]=A}if(!Array.isArray(b)){var M=b;for(b=Array(i),r=0;r<i;r++)b[r]=M}for(l.symbols=x,l.angles=b,l.colors=_,l.borderColors=w,r=0;r<i;r++)u&&(n=p.isOpenSymbol(o.symbol[r])),n&&(w[r]=_[r].slice(),_[r]=_[r].slice(),_[r][3]=0);for(l.opacity=e.opacity,l.markers=new Array(i),r=0;r<i;r++)l.markers[r]=E({mx:l.symbols[r],ma:l.angles[r]},e)}else n?(l.color=a(o.color,"uint8"),l.color[3]=0,l.borderColor=a(o.color,"uint8")):(l.color=a(o.color,"uint8"),l.borderColor=a(o.line.color,"uint8")),l.opacity=e.opacity*o.opacity,l.marker=E({mx:o.symbol,ma:o.angle},e);var S,L=h(e,1);if(y||m){var C,P=l.sizes=new Array(i),O=l.borderSizes=new Array(i),I=0;if(y){for(r=0;r<i;r++)P[r]=L(o.size[r]),I+=P[r];C=I/i}else for(S=L(o.size),r=0;r<i;r++)P[r]=S;if(m)for(r=0;r<i;r++)O[r]=o.line.width[r];else for(S=o.line.width,r=0;r<i;r++)O[r]=S;l.sizeAvg=C}else l.size=L(o&&o.size||10),l.borderSizes=L(o.line.width);return l}function b(t,e,r){var n=e.marker,i={};return r?(r.marker&&r.marker.symbol?i=x(0,s.extendFlat({},n,r.marker)):r.marker&&(r.marker.size&&(i.size=r.marker.size),r.marker.color&&(i.colors=r.marker.color),void 0!==r.marker.opacity&&(i.opacity=r.marker.opacity)),i):i}function _(t,e,r){var n={};if(!r)return n;if(r.textfont){var i={opacity:1,text:e.text,texttemplate:e.texttemplate,textposition:e.textposition,textfont:s.extendFlat({},e.textfont)};r.textfont&&s.extendFlat(i.textfont,r.textfont),n=m(t,i)}return n}function w(t,e,r){var n={capSize:2*e.width*r,lineWidth:e.thickness*r,color:e.color};return e.copy_ystyle&&(n=t.error_y),n}var T=d.SYMBOL_SDF_SIZE,k=d.SYMBOL_SIZE,A=d.SYMBOL_STROKE,M={},S=l.symbolFuncs[0](.05*k);function E(t,e){var r,n,a=t.mx;if("circle"===a)return null;var o=l.symbolNumber(a),s=l.symbolFuncs[o%100],u=!!l.symbolNoDot[o%100],c=!!l.symbolNoFill[o%100],f=p.isDotSymbol(a);if(t.ma&&(a+="_"+t.ma),M[a])return M[a];var h=l.getMarkerAngle(t,e);return r=f&&!u?s(1.1*k,h)+S:s(k,h),n=i(r,{w:T,h:T,viewBox:[-k,-k,k,k],stroke:c?A:-A}),M[a]=n,n||null}t.exports={style:function(t,e){var r,n={marker:void 0,markerSel:void 0,markerUnsel:void 0,line:void 0,fill:void 0,errorX:void 0,errorY:void 0,text:void 0,textSel:void 0,textUnsel:void 0},i=t._context.plotGlPixelRatio;if(!0!==e.visible)return n;if(f.hasText(e)&&(n.text=m(t,e),n.textSel=_(t,e,e.selected),n.textUnsel=_(t,e,e.unselected)),f.hasMarkers(e)&&(n.marker=x(0,e),n.markerSel=b(0,e,e.selected),n.markerUnsel=b(0,e,e.unselected),!e.unselected&&s.isArrayOrTypedArray(e.marker.opacity))){var a=e.marker.opacity;for(n.markerUnsel.opacity=new Array(a.length),r=0;r<a.length;r++)n.markerUnsel.opacity[r]=v*a[r]}if(f.hasLines(e)){n.line={overlay:!0,thickness:e.line.width*i,color:e.line.color,opacity:e.opacity};var o=(d.DASHES[e.line.dash]||[1]).slice();for(r=0;r<o.length;++r)o[r]*=e.line.width*i;n.line.dashes=o}return e.error_x&&e.error_x.visible&&(n.errorX=w(e,e.error_x,i)),e.error_y&&e.error_y.visible&&(n.errorY=w(e,e.error_y,i)),e.fill&&"none"!==e.fill&&(n.fill={closed:!0,fill:e.fillcolor,thickness:0}),n},markerStyle:x,markerSelection:b,linePositions:function(t,e,r){var n,i,a=r.length,o=a/2;if(f.hasLines(e)&&o)if("hv"===e.line.shape){for(n=[],i=0;i<o-1;i++)isNaN(r[2*i])||isNaN(r[2*i+1])?n.push(NaN,NaN,NaN,NaN):(n.push(r[2*i],r[2*i+1]),isNaN(r[2*i+2])||isNaN(r[2*i+3])?n.push(NaN,NaN):n.push(r[2*i+2],r[2*i+1]));n.push(r[a-2],r[a-1])}else if("hvh"===e.line.shape){for(n=[],i=0;i<o-1;i++)if(isNaN(r[2*i])||isNaN(r[2*i+1])||isNaN(r[2*i+2])||isNaN(r[2*i+3]))isNaN(r[2*i])||isNaN(r[2*i+1])?n.push(NaN,NaN):n.push(r[2*i],r[2*i+1]),n.push(NaN,NaN);else{var s=(r[2*i]+r[2*i+2])/2;n.push(r[2*i],r[2*i+1],s,r[2*i+1],s,r[2*i+3])}n.push(r[a-2],r[a-1])}else if("vhv"===e.line.shape){for(n=[],i=0;i<o-1;i++)if(isNaN(r[2*i])||isNaN(r[2*i+1])||isNaN(r[2*i+2])||isNaN(r[2*i+3]))isNaN(r[2*i])||isNaN(r[2*i+1])?n.push(NaN,NaN):n.push(r[2*i],r[2*i+1]),n.push(NaN,NaN);else{var l=(r[2*i+1]+r[2*i+3])/2;n.push(r[2*i],r[2*i+1],r[2*i],l,r[2*i+2],l)}n.push(r[a-2],r[a-1])}else if("vh"===e.line.shape){for(n=[],i=0;i<o-1;i++)isNaN(r[2*i])||isNaN(r[2*i+1])?n.push(NaN,NaN,NaN,NaN):(n.push(r[2*i],r[2*i+1]),isNaN(r[2*i+2])||isNaN(r[2*i+3])?n.push(NaN,NaN):n.push(r[2*i],r[2*i+3]));n.push(r[a-2],r[a-1])}else n=r;var u=!1;for(i=0;i<n.length;i++)if(isNaN(n[i])){u=!0;break}var c=u||n.length>d.TOO_MANY_POINTS||f.hasMarkers(e)?"rect":"round";if(u&&e.connectgaps){var h=n[0],p=n[1];for(i=0;i<n.length;i+=2)isNaN(n[i])||isNaN(n[i+1])?(n[i]=h,n[i+1]=p):(h=n[i],p=n[i+1])}return{join:c,positions:n}},errorBarPositions:function(t,e,r,i,a){var s=o.getComponentMethod("errorbars","makeComputeError"),l=u.getFromId(t,e.xaxis,"x"),c=u.getFromId(t,e.yaxis,"y"),f=r.length/2,h={};function p(t,i){var a=i._id.charAt(0),o=e["error_"+a];if(o&&o.visible&&("linear"===i.type||"log"===i.type)){for(var l=s(o),u={x:0,y:1}[a],c={x:[0,1,2,3],y:[2,3,0,1]}[a],p=new Float64Array(4*f),d=1/0,v=-1/0,g=0,y=0;g<f;g++,y+=4){var m=t[g];if(n(m)){var x=r[2*g+u],b=l(m,g),_=b[0],w=b[1];if(n(_)&&n(w)){var T=m-_,k=m+w;p[y+c[0]]=x-i.c2l(T),p[y+c[1]]=i.c2l(k)-x,p[y+c[2]]=0,p[y+c[3]]=0,d=Math.min(d,m-_),v=Math.max(v,m+w)}}}h[a]={positions:r,errors:p,_bnds:[d,v]}}}return p(i,l),p(a,c),h},textPosition:function(t,e,r,n){var i,a=e._length,o={};if(f.hasMarkers(e)){var s=r.font,l=r.align,u=r.baseline;for(o.offset=new Array(a),i=0;i<a;i++){var c=n.sizes?n.sizes[i]:n.size,h=Array.isArray(s)?s[i].size:s.size,p=Array.isArray(l)?l.length>1?l[i]:l[0]:l,d=Array.isArray(u)?u.length>1?u[i]:u[0]:u,v=g[p],y=g[d],m=c?c/.8+1:0,x=-y*m-.5*y;o.offset[i]=[v*m/h,x/h]}}return o}}},47148:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(68645),o=r(42341),s=r(47581),l=r(34098),u=r(67513),c=r(73927),f=r(49508),h=r(11058),p=r(28908),d=r(82410);t.exports=function(t,e,r,v){function g(r,i){return n.coerce(t,e,o,r,i)}var y=!!t.marker&&a.isOpenSymbol(t.marker.symbol),m=l.isBubble(t),x=u(t,e,v,g);if(x){c(t,e,v,g),g("xhoverformat"),g("yhoverformat");var b=x<s.PTS_LINESONLY?"lines+markers":"lines";g("text"),g("hovertext"),g("hovertemplate"),g("mode",b),l.hasLines(e)&&(g("connectgaps"),h(t,e,r,v,g),g("line.shape")),l.hasMarkers(e)&&(f(t,e,r,v,g,{noAngleRef:!0,noStandOff:!0}),g("marker.line.width",y||m?1:0)),l.hasText(e)&&(g("texttemplate"),d(t,e,v,g));var _=(e.line||{}).color,w=(e.marker||{}).color;g("fill"),"none"!==e.fill&&p(t,e,r,g);var T=i.getComponentMethod("errorbars","supplyDefaults");T(t,e,_||w||r,{axis:"y"}),T(t,e,_||w||r,{axis:"x",inherit:"y"}),n.coerceSelectionMarkerOpacity(e,g)}else e.visible=!1}},5345:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(37822).DESELECTDIM;t.exports={styleTextSelection:function(t){var e,r,o=t[0],s=o.trace,l=o.t,u=l._scene,c=l.index,f=u.selectBatch[c],h=u.unselectBatch[c],p=u.textOptions[c],d=u.textSelectedOptions[c]||{},v=u.textUnselectedOptions[c]||{},g=n.extendFlat({},p);if(f.length||h.length){var y=d.color,m=v.color,x=p.color,b=Array.isArray(x);for(g.color=new Array(s._length),e=0;e<f.length;e++)r=f[e],g.color[r]=y||(b?x[r]:x);for(e=0;e<h.length;e++){r=h[e];var _=b?x[r]:x;g.color[r]=m||(y?_:i.addOpacity(_,a))}}u.glText[c].update(g)}}},68101:function(t,e,r){"use strict";var n=r(8225);t.exports=function(t,e,r){var i=t.i;return"x"in t||(t.x=e._x[i]),"y"in t||(t.y=e._y[i]),n(t,e,r)}},68645:function(t,e,r){"use strict";var n=r(78232);e.isOpenSymbol=function(t){return"string"==typeof t?n.OPEN_RE.test(t):t%200>100},e.isDotSymbol=function(t){return"string"==typeof t?n.DOT_RE.test(t):t>200}},20794:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(34603);function o(t,e,r,o){var s=t.xa,l=t.ya,u=t.distance,c=t.dxy,f=t.index,h={pointNumber:f,x:e[f],y:r[f]};h.tx=Array.isArray(o.text)?o.text[f]:o.text,h.htx=Array.isArray(o.hovertext)?o.hovertext[f]:o.hovertext,h.data=Array.isArray(o.customdata)?o.customdata[f]:o.customdata,h.tp=Array.isArray(o.textposition)?o.textposition[f]:o.textposition;var p=o.textfont;p&&(h.ts=i.isArrayOrTypedArray(p.size)?p.size[f]:p.size,h.tc=Array.isArray(p.color)?p.color[f]:p.color,h.tf=Array.isArray(p.family)?p.family[f]:p.family);var d=o.marker;d&&(h.ms=i.isArrayOrTypedArray(d.size)?d.size[f]:d.size,h.mo=i.isArrayOrTypedArray(d.opacity)?d.opacity[f]:d.opacity,h.mx=i.isArrayOrTypedArray(d.symbol)?d.symbol[f]:d.symbol,h.ma=i.isArrayOrTypedArray(d.angle)?d.angle[f]:d.angle,h.mc=i.isArrayOrTypedArray(d.color)?d.color[f]:d.color);var v=d&&d.line;v&&(h.mlc=Array.isArray(v.color)?v.color[f]:v.color,h.mlw=i.isArrayOrTypedArray(v.width)?v.width[f]:v.width);var g=d&&d.gradient;g&&"none"!==g.type&&(h.mgt=Array.isArray(g.type)?g.type[f]:g.type,h.mgc=Array.isArray(g.color)?g.color[f]:g.color);var y=s.c2p(h.x,!0),m=l.c2p(h.y,!0),x=h.mrc||1,b=o.hoverlabel;b&&(h.hbg=Array.isArray(b.bgcolor)?b.bgcolor[f]:b.bgcolor,h.hbc=Array.isArray(b.bordercolor)?b.bordercolor[f]:b.bordercolor,h.hts=i.isArrayOrTypedArray(b.font.size)?b.font.size[f]:b.font.size,h.htc=Array.isArray(b.font.color)?b.font.color[f]:b.font.color,h.htf=Array.isArray(b.font.family)?b.font.family[f]:b.font.family,h.hnl=i.isArrayOrTypedArray(b.namelength)?b.namelength[f]:b.namelength);var _=o.hoverinfo;_&&(h.hi=Array.isArray(_)?_[f]:_);var w=o.hovertemplate;w&&(h.ht=Array.isArray(w)?w[f]:w);var T={};T[t.index]=h;var k=o._origX,A=o._origY,M=i.extendFlat({},t,{color:a(o,h),x0:y-x,x1:y+x,xLabelVal:k?k[f]:h.x,y0:m-x,y1:m+x,yLabelVal:A?A[f]:h.y,cd:T,distance:u,spikeDistance:c,hovertemplate:h.ht});return h.htx?M.text=h.htx:h.tx?M.text=h.tx:o.text&&(M.text=o.text),i.fillText(h,o,M),n.getComponentMethod("errorbars","hoverInfo")(h,o,M),M}t.exports={hoverPoints:function(t,e,r,n){var i,a,s,l,u,c,f,h,p,d,v=t.cd,g=v[0].t,y=v[0].trace,m=t.xa,x=t.ya,b=g.x,_=g.y,w=m.c2p(e),T=x.c2p(r),k=t.distance;if(g.tree){var A=m.p2c(w-k),M=m.p2c(w+k),S=x.p2c(T-k),E=x.p2c(T+k);i="x"===n?g.tree.range(Math.min(A,M),Math.min(x._rl[0],x._rl[1]),Math.max(A,M),Math.max(x._rl[0],x._rl[1])):g.tree.range(Math.min(A,M),Math.min(S,E),Math.max(A,M),Math.max(S,E))}else i=g.ids;var L=k;if("x"===n){var C=!!y.xperiodalignment,P=!!y.yperiodalignment;for(c=0;c<i.length;c++){if(l=b[a=i[c]],f=Math.abs(m.c2p(l)-w),C){var O=m.c2p(y._xStarts[a]),I=m.c2p(y._xEnds[a]);f=w>=Math.min(O,I)&&w<=Math.max(O,I)?0:1/0}if(f<L){if(L=f,u=_[a],h=x.c2p(u)-T,P){var D=x.c2p(y._yStarts[a]),z=x.c2p(y._yEnds[a]);h=T>=Math.min(D,z)&&T<=Math.max(D,z)?0:1/0}d=Math.sqrt(f*f+h*h),s=i[c]}}}else for(c=i.length-1;c>-1;c--)l=b[a=i[c]],u=_[a],f=m.c2p(l)-w,h=x.c2p(u)-T,(p=Math.sqrt(f*f+h*h))<L&&(L=d=p,s=a);return t.index=s,t.distance=L,t.dxy=d,void 0===s?[t]:[o(t,b,_,y)]},calcHover:o}},68868:function(t,e,r){"use strict";var n=r(72156);n.plot=r(26787),t.exports=n},26787:function(t,e,r){"use strict";var n=r(11870),i=r(46075),a=r(3593),o=r(42505),s=r(71828),l=r(64505).selectMode,u=r(79749),c=r(34098),f=r(68687),h=r(5345).styleTextSelection,p={};function d(t,e,r,n){var i=t._size,a=t.width*n,o=t.height*n,s=i.l*n,l=i.b*n,u=i.r*n,c=i.t*n,f=i.w*n,h=i.h*n;return[s+e.domain[0]*f,l+r.domain[0]*h,a-u-(1-e.domain[1])*f,o-c-(1-r.domain[1])*h]}(t.exports=function(t,e,r){if(r.length){var v,g,y=t._fullLayout,m=e._scene,x=e.xaxis,b=e.yaxis;if(m)if(u(t,["ANGLE_instanced_arrays","OES_element_index_uint"],p)){var _=m.count,w=y._glcanvas.data()[0].regl;if(f(t,e,r),m.dirty){if(!0===m.error2d&&(m.error2d=a(w)),!0===m.line2d&&(m.line2d=i(w)),!0===m.scatter2d&&(m.scatter2d=n(w)),!0===m.fill2d&&(m.fill2d=i(w)),!0===m.glText)for(m.glText=new Array(_),v=0;v<_;v++)m.glText[v]=new o(w);if(m.glText){if(_>m.glText.length){var T=_-m.glText.length;for(v=0;v<T;v++)m.glText.push(new o(w))}else if(_<m.glText.length){var k=m.glText.length-_;m.glText.splice(_,k).forEach((function(t){t.destroy()}))}for(v=0;v<_;v++)m.glText[v].update(m.textOptions[v])}if(m.line2d&&(m.line2d.update(m.lineOptions),m.lineOptions=m.lineOptions.map((function(t){if(t&&t.positions){for(var e=t.positions,r=0;r<e.length&&(isNaN(e[r])||isNaN(e[r+1]));)r+=2;for(var n=e.length-2;n>r&&(isNaN(e[n])||isNaN(e[n+1]));)n-=2;t.positions=e.slice(r,n+2)}return t})),m.line2d.update(m.lineOptions)),m.error2d){var A=(m.errorXOptions||[]).concat(m.errorYOptions||[]);m.error2d.update(A)}m.scatter2d&&m.scatter2d.update(m.markerOptions),m.fillOrder=s.repeat(null,_),m.fill2d&&(m.fillOptions=m.fillOptions.map((function(t,e){var n=r[e];if(t&&n&&n[0]&&n[0].trace){var i,a,o=n[0],s=o.trace,l=o.t,u=m.lineOptions[e],c=[];s._ownfill&&c.push(e),s._nexttrace&&c.push(e+1),c.length&&(m.fillOrder[e]=c);var f,h,p=[],d=u&&u.positions||l.positions;if("tozeroy"===s.fill){for(f=0;f<d.length&&isNaN(d[f+1]);)f+=2;for(h=d.length-2;h>f&&isNaN(d[h+1]);)h-=2;0!==d[f+1]&&(p=[d[f],0]),p=p.concat(d.slice(f,h+2)),0!==d[h+1]&&(p=p.concat([d[h],0]))}else if("tozerox"===s.fill){for(f=0;f<d.length&&isNaN(d[f]);)f+=2;for(h=d.length-2;h>f&&isNaN(d[h]);)h-=2;0!==d[f]&&(p=[0,d[f+1]]),p=p.concat(d.slice(f,h+2)),0!==d[h]&&(p=p.concat([0,d[h+1]]))}else if("toself"===s.fill||"tonext"===s.fill){for(p=[],i=0,t.splitNull=!0,a=0;a<d.length;a+=2)(isNaN(d[a])||isNaN(d[a+1]))&&((p=p.concat(d.slice(i,a))).push(d[i],d[i+1]),p.push(null,null),i=a+2);p=p.concat(d.slice(i)),i&&p.push(d[i],d[i+1])}else{var v=s._nexttrace;if(v){var g=m.lineOptions[e+1];if(g){var y=g.positions;if("tonexty"===s.fill){for(p=d.slice(),e=Math.floor(y.length/2);e--;){var x=y[2*e],b=y[2*e+1];isNaN(x)||isNaN(b)||p.push(x,b)}t.fill=v.fillcolor}}}}if(s._prevtrace&&"tonext"===s._prevtrace.fill){var _=m.lineOptions[e-1].positions,w=p.length/2,T=[i=w];for(a=0;a<_.length;a+=2)(isNaN(_[a])||isNaN(_[a+1]))&&(T.push(a/2+w+1),i=a+2);p=p.concat(_),t.hole=T}return t.fillmode=s.fill,t.opacity=s.opacity,t.positions=p,t}})),m.fill2d.update(m.fillOptions))}var M=y.dragmode,S=l(M),E=y.clickmode.indexOf("select")>-1;for(v=0;v<_;v++){var L=r[v][0],C=L.trace,P=L.t,O=P.index,I=C._length,D=P.x,z=P.y;if(C.selectedpoints||S||E){if(S||(S=!0),C.selectedpoints){var R=m.selectBatch[O]=s.selIndices2selPoints(C),F={};for(g=0;g<R.length;g++)F[R[g]]=1;var B=[];for(g=0;g<I;g++)F[g]||B.push(g);m.unselectBatch[O]=B}var N=P.xpx=new Array(I),j=P.ypx=new Array(I);for(g=0;g<I;g++)N[g]=x.c2p(D[g]),j[g]=b.c2p(z[g])}else P.xpx=P.ypx=null}if(S){if(m.select2d||(m.select2d=n(y._glcanvas.data()[1].regl)),m.scatter2d){var U=new Array(_);for(v=0;v<_;v++)U[v]=m.selectBatch[v].length||m.unselectBatch[v].length?m.markerUnselectedOptions[v]:{};m.scatter2d.update(U)}m.select2d&&(m.select2d.update(m.markerOptions),m.select2d.update(m.markerSelectedOptions)),m.glText&&r.forEach((function(t){var e=((t||[])[0]||{}).trace||{};c.hasText(e)&&h(t)}))}else m.scatter2d&&m.scatter2d.update(m.markerOptions);var V={viewport:d(y,x,b,t._context.plotGlPixelRatio),range:[(x._rl||x.range)[0],(b._rl||b.range)[0],(x._rl||x.range)[1],(b._rl||b.range)[1]]},H=s.repeat(V,m.count);m.fill2d&&m.fill2d.update(H),m.line2d&&m.line2d.update(H),m.error2d&&m.error2d.update(H.concat(H)),m.scatter2d&&m.scatter2d.update(H),m.select2d&&m.select2d.update(H),m.glText&&m.glText.forEach((function(t){t.update(V)}))}else m.init()}}).reglPrecompiled=p},38967:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){var r=e._scene,i={count:0,dirty:!0,lineOptions:[],fillOptions:[],markerOptions:[],markerSelectedOptions:[],markerUnselectedOptions:[],errorXOptions:[],errorYOptions:[],textOptions:[],textSelectedOptions:[],textUnselectedOptions:[],selectBatch:[],unselectBatch:[]},a={fill2d:!1,scatter2d:!1,error2d:!1,line2d:!1,glText:!1,select2d:!1};return e._scene||((r=e._scene={}).init=function(){n.extendFlat(r,a,i)},r.init(),r.update=function(t){var e=n.repeat(t,r.count);if(r.fill2d&&r.fill2d.update(e),r.scatter2d&&r.scatter2d.update(e),r.line2d&&r.line2d.update(e),r.error2d&&r.error2d.update(e.concat(e)),r.select2d&&r.select2d.update(e),r.glText)for(var i=0;i<r.count;i++)r.glText[i].update(t)},r.draw=function(){for(var t=r.count,e=r.fill2d,i=r.error2d,a=r.line2d,o=r.scatter2d,s=r.glText,l=r.select2d,u=r.selectBatch,c=r.unselectBatch,f=0;f<t;f++){if(e&&r.fillOrder[f]&&e.draw(r.fillOrder[f]),a&&r.lineOptions[f]&&a.draw(f),i&&(r.errorXOptions[f]&&i.draw(f),r.errorYOptions[f]&&i.draw(f+t)),o&&r.markerOptions[f])if(c[f].length){var h=n.repeat([],r.count);h[f]=c[f],o.draw(h)}else u[f].length||o.draw(f);s[f]&&r.textOptions[f]&&s[f].render()}l&&l.draw(u),r.dirty=!1},r.destroy=function(){r.fill2d&&r.fill2d.destroy&&r.fill2d.destroy(),r.scatter2d&&r.scatter2d.destroy&&r.scatter2d.destroy(),r.error2d&&r.error2d.destroy&&r.error2d.destroy(),r.line2d&&r.line2d.destroy&&r.line2d.destroy(),r.select2d&&r.select2d.destroy&&r.select2d.destroy(),r.glText&&r.glText.forEach((function(t){t.destroy&&t.destroy()})),r.lineOptions=null,r.fillOptions=null,r.markerOptions=null,r.markerSelectedOptions=null,r.markerUnselectedOptions=null,r.errorXOptions=null,r.errorYOptions=null,r.textOptions=null,r.textSelectedOptions=null,r.textUnselectedOptions=null,r.selectBatch=null,r.unselectBatch=null,e._scene=null}),r.dirty||n.extendFlat(r,i),r}},58147:function(t,e,r){"use strict";var n=r(34098),i=r(5345).styleTextSelection;t.exports=function(t,e){var r=t.cd,a=t.xaxis,o=t.yaxis,s=[],l=r[0].trace,u=r[0].t,c=l._length,f=u.x,h=u.y,p=u._scene,d=u.index;if(!p)return s;var v=n.hasText(l),g=n.hasMarkers(l),y=!g&&!v;if(!0!==l.visible||y)return s;var m=[],x=[];if(!1!==e&&!e.degenerate)for(var b=0;b<c;b++)e.contains([u.xpx[b],u.ypx[b]],!1,b,t)?(m.push(b),s.push({pointNumber:b,x:a.c2d(f[b]),y:o.c2d(h[b])})):x.push(b);if(g){var _=p.scatter2d;if(m.length||x.length){if(!p.selectBatch[d].length&&!p.unselectBatch[d].length){var w=new Array(p.count);w[d]=p.markerUnselectedOptions[d],_.update.apply(_,w)}}else{var T=new Array(p.count);T[d]=p.markerOptions[d],_.update.apply(_,T)}}return p.selectBatch[d]=m,p.unselectBatch[d]=x,v&&i(r),s}},99181:function(t,e,r){"use strict";var n=r(5386).f,i=r(5386).s,a=r(19316),o=r(82196),s=r(23585),l=r(9012),u=r(50693),c=r(1426).extendFlat,f=r(30962).overrideAll,h=r(23585),p=a.line,d=a.marker;t.exports=f({lon:a.lon,lat:a.lat,cluster:{enabled:{valType:"boolean"},maxzoom:c({},h.layers.maxzoom,{}),step:{valType:"number",arrayOk:!0,dflt:-1,min:-1},size:{valType:"number",arrayOk:!0,dflt:20,min:0},color:{valType:"color",arrayOk:!0},opacity:c({},d.opacity,{dflt:1})},mode:c({},o.mode,{dflt:"markers"}),text:c({},o.text,{}),texttemplate:i({editType:"plot"},{keys:["lat","lon","text"]}),hovertext:c({},o.hovertext,{}),line:{color:p.color,width:p.width},connectgaps:o.connectgaps,marker:c({symbol:{valType:"string",dflt:"circle",arrayOk:!0},angle:{valType:"number",dflt:"auto",arrayOk:!0},allowoverlap:{valType:"boolean",dflt:!1},opacity:d.opacity,size:d.size,sizeref:d.sizeref,sizemin:d.sizemin,sizemode:d.sizemode},u("marker")),fill:a.fill,fillcolor:o.fillcolor,textfont:s.layers.symbol.textfont,textposition:s.layers.symbol.textposition,below:{valType:"string"},selected:{marker:o.selected.marker},unselected:{marker:o.unselected.marker},hoverinfo:c({},l.hoverinfo,{flags:["lon","lat","text","name"]}),hovertemplate:n()},"calc","nested")},15790:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(50606).BADNUM,o=r(18214),s=r(21081),l=r(91424),u=r(39984),c=r(34098),f=r(13056),h=r(23469).appendArrayPointValue,p=r(63893).NEWLINES,d=r(63893).BR_TAG_ALL;function v(t){return{type:t,geojson:o.makeBlank(),layout:{visibility:"none"},filter:null,paint:{}}}function g(t,e){return i.isArrayOrTypedArray(t)?e?function(e){return n(t[e])?+t[e]:0}:function(e){return t[e]}:t?function(){return t}:y}function y(){return""}function m(t){return t[0]===a}function x(t,e){var r;if(i.isArrayOrTypedArray(t)&&i.isArrayOrTypedArray(e)){r=["step",["get","point_count"],t[0]];for(var n=1;n<t.length;n++)r.push(e[n-1],t[n])}else r=t;return r}t.exports=function(t,e){var r,a=e[0].trace,b=!0===a.visible&&0!==a._length,_="none"!==a.fill,w=c.hasLines(a),T=c.hasMarkers(a),k=c.hasText(a),A=T&&"circle"===a.marker.symbol,M=T&&"circle"!==a.marker.symbol,S=a.cluster&&a.cluster.enabled,E=v("fill"),L=v("line"),C=v("circle"),P=v("symbol"),O={fill:E,line:L,circle:C,symbol:P};if(!b)return O;if((_||w)&&(r=o.calcTraceToLineCoords(e)),_&&(E.geojson=o.makePolygon(r),E.layout.visibility="visible",i.extendFlat(E.paint,{"fill-color":a.fillcolor})),w&&(L.geojson=o.makeLine(r),L.layout.visibility="visible",i.extendFlat(L.paint,{"line-width":a.line.width,"line-color":a.line.color,"line-opacity":a.opacity})),A){var I=function(t){var e,r,a,o,c=t[0].trace,f=c.marker,h=c.selectedpoints,p=i.isArrayOrTypedArray(f.color),d=i.isArrayOrTypedArray(f.size),v=i.isArrayOrTypedArray(f.opacity);function g(t){return c.opacity*t}p&&(r=s.hasColorscale(c,"marker")?s.makeColorScaleFuncFromTrace(f):i.identity),d&&(a=u(c)),v&&(o=function(t){return g(n(t)?+i.constrain(t,0,1):0)});var y,x,b=[];for(e=0;e<t.length;e++){var _=t[e],w=_.lonlat;if(!m(w)){var T={};r&&(T.mcc=_.mcc=r(_.mc)),a&&(T.mrc=_.mrc=a(_.ms)),o&&(T.mo=o(_.mo)),h&&(T.selected=_.selected||0),b.push({type:"Feature",id:e+1,geometry:{type:"Point",coordinates:w},properties:T})}}if(h)for(y=l.makeSelectedPointStyleFns(c),e=0;e<b.length;e++){var k=b[e].properties;y.selectedOpacityFn&&(k.mo=g(y.selectedOpacityFn(k))),y.selectedColorFn&&(k.mcc=y.selectedColorFn(k)),y.selectedSizeFn&&(k.mrc=y.selectedSizeFn(k))}return{geojson:{type:"FeatureCollection",features:b},mcc:p||y&&y.selectedColorFn?{type:"identity",property:"mcc"}:f.color,mrc:d||y&&y.selectedSizeFn?{type:"identity",property:"mrc"}:(x=f.size,x/2),mo:v||y&&y.selectedOpacityFn?{type:"identity",property:"mo"}:g(f.opacity)}}(e);C.geojson=I.geojson,C.layout.visibility="visible",S&&(C.filter=["!",["has","point_count"]],O.cluster={type:"circle",filter:["has","point_count"],layout:{visibility:"visible"},paint:{"circle-color":x(a.cluster.color,a.cluster.step),"circle-radius":x(a.cluster.size,a.cluster.step),"circle-opacity":x(a.cluster.opacity,a.cluster.step)}},O.clusterCount={type:"symbol",filter:["has","point_count"],paint:{},layout:{"text-field":"{point_count_abbreviated}","text-font":["Open Sans Regular","Arial Unicode MS Regular"],"text-size":12}}),i.extendFlat(C.paint,{"circle-color":I.mcc,"circle-radius":I.mrc,"circle-opacity":I.mo})}if(A&&S&&(C.filter=["!",["has","point_count"]]),(M||k)&&(P.geojson=function(t,e){for(var r=e._fullLayout,n=t[0].trace,a=n.marker||{},o=a.symbol,s=a.angle,l="circle"!==o?g(o):y,u="auto"!==s?g(s,!0):y,f=c.hasText(n)?g(n.text):y,v=[],x=0;x<t.length;x++){var b=t[x];if(!m(b.lonlat)){var _,w=n.texttemplate;if(w){var T=Array.isArray(w)?w[x]||"":w,k=n._module.formatLabels(b,n,r),A={};h(A,n,b.i);var M=n._meta||{};_=i.texttemplateString(T,k,r._d3locale,A,b,M)}else _=f(x);_&&(_=_.replace(p,"").replace(d,"\n")),v.push({type:"Feature",geometry:{type:"Point",coordinates:b.lonlat},properties:{symbol:l(x),angle:u(x),text:_}})}}return{type:"FeatureCollection",features:v}}(e,t),i.extendFlat(P.layout,{visibility:"visible","icon-image":"{symbol}-15","text-field":"{text}"}),M&&(i.extendFlat(P.layout,{"icon-size":a.marker.size/10}),"angle"in a.marker&&"auto"!==a.marker.angle&&i.extendFlat(P.layout,{"icon-rotate":{type:"identity",property:"angle"},"icon-rotation-alignment":"map"}),P.layout["icon-allow-overlap"]=a.marker.allowoverlap,i.extendFlat(P.paint,{"icon-opacity":a.opacity*a.marker.opacity,"icon-color":a.marker.color})),k)){var D=(a.marker||{}).size,z=f(a.textposition,D);i.extendFlat(P.layout,{"text-size":a.textfont.size,"text-anchor":z.anchor,"text-offset":z.offset}),i.extendFlat(P.paint,{"text-color":a.textfont.color,"text-opacity":a.opacity})}return O}},76645:function(t,e,r){"use strict";var n=r(71828),i=r(34098),a=r(49508),o=r(11058),s=r(82410),l=r(28908),u=r(99181);t.exports=function(t,e,r,c){function f(r,i){return n.coerce(t,e,u,r,i)}function h(r,i){return n.coerce2(t,e,u,r,i)}var p=function(t,e,r){var n=r("lon")||[],i=r("lat")||[],a=Math.min(n.length,i.length);return e._length=a,a}(0,e,f);if(p){if(f("text"),f("texttemplate"),f("hovertext"),f("hovertemplate"),f("mode"),f("below"),i.hasLines(e)&&(o(t,e,r,c,f,{noDash:!0}),f("connectgaps")),i.hasMarkers(e)){a(t,e,r,c,f,{noLine:!0,noAngle:!0}),f("marker.allowoverlap"),f("marker.angle");var d=e.marker;"circle"!==d.symbol&&(n.isArrayOrTypedArray(d.size)&&(d.size=d.size[0]),n.isArrayOrTypedArray(d.color)&&(d.color=d.color[0]))}var v=h("cluster.maxzoom"),g=h("cluster.step"),y=h("cluster.color",e.marker&&e.marker.color||r),m=h("cluster.size"),x=h("cluster.opacity");f("cluster.enabled",!1!==v||!1!==g||!1!==y||!1!==m||!1!==x),i.hasText(e)&&s(t,e,c,f,{noSelect:!0}),f("fill"),"none"!==e.fill&&l(t,e,r,f),n.coerceSelectionMarkerOpacity(e,f)}else e.visible=!1}},53353:function(t){"use strict";t.exports=function(t,e){return t.lon=e.lon,t.lat=e.lat,t}},15636:function(t,e,r){"use strict";var n=r(89298);t.exports=function(t,e,r){var i={},a=r[e.subplot]._subplot.mockAxis,o=t.lonlat;return i.lonLabel=n.tickText(a,a.c2l(o[0]),!0).text,i.latLabel=n.tickText(a,a.c2l(o[1]),!0).text,i}},28178:function(t,e,r){"use strict";var n=r(30211),i=r(71828),a=r(34603),o=i.fillText,s=r(50606).BADNUM,l=r(77734).traceLayerPrefix;function u(t,e,r){if(!t.hovertemplate){var n=(e.hi||t.hoverinfo).split("+"),i=-1!==n.indexOf("all"),a=-1!==n.indexOf("lon"),s=-1!==n.indexOf("lat"),l=e.lonlat,u=[];return i||a&&s?u.push("("+c(l[1])+", "+c(l[0])+")"):a?u.push(r.lon+c(l[0])):s&&u.push(r.lat+c(l[1])),(i||-1!==n.indexOf("text"))&&o(e,t,u),u.join("<br>")}function c(t){return t+"°"}}t.exports={hoverPoints:function(t,e,r){var o=t.cd,c=o[0].trace,f=t.xa,h=t.ya,p=t.subplot,d=[],v=l+c.uid+"-circle",g=c.cluster&&c.cluster.enabled;if(g){var y=p.map.queryRenderedFeatures(null,{layers:[v]});d=y.map((function(t){return t.id}))}var m=360*(e>=0?Math.floor((e+180)/360):Math.ceil((e-180)/360)),x=e-m;if(n.getClosest(o,(function(t){var e=t.lonlat;if(e[0]===s)return 1/0;if(g&&-1===d.indexOf(t.i+1))return 1/0;var n=i.modHalf(e[0],360),a=e[1],o=p.project([n,a]),l=o.x-f.c2p([x,a]),u=o.y-h.c2p([n,r]),c=Math.max(3,t.mrc||0);return Math.max(Math.sqrt(l*l+u*u)-c,1-3/c)}),t),!1!==t.index){var b=o[t.index],_=b.lonlat,w=[i.modHalf(_[0],360)+m,_[1]],T=f.c2p(w),k=h.c2p(w),A=b.mrc||1;t.x0=T-A,t.x1=T+A,t.y0=k-A,t.y1=k+A;var M={};M[c.subplot]={_subplot:p};var S=c._module.formatLabels(b,c,M);return t.lonLabel=S.lonLabel,t.latLabel=S.latLabel,t.color=a(c,b),t.extraText=u(c,b,o[0].t.labels),t.hovertemplate=c.hovertemplate,[t]}},getExtraText:u}},20467:function(t,e,r){"use strict";t.exports={attributes:r(99181),supplyDefaults:r(76645),colorbar:r(4898),formatLabels:r(15636),calc:r(84622),plot:r(86951),hoverPoints:r(28178).hoverPoints,eventData:r(53353),selectPoints:r(86387),styleOnSelect:function(t,e){e&&e[0].trace._glTrace.update(e)},moduleType:"trace",name:"scattermapbox",basePlotModule:r(50101),categories:["mapbox","gl","symbols","showLegend","scatter-like"],meta:{}}},86951:function(t,e,r){"use strict";var n=r(71828),i=r(15790),a=r(77734).traceLayerPrefix,o={cluster:["cluster","clusterCount","circle"],nonCluster:["fill","line","circle","symbol"]};function s(t,e,r,n){this.type="scattermapbox",this.subplot=t,this.uid=e,this.clusterEnabled=r,this.isHidden=n,this.sourceIds={fill:"source-"+e+"-fill",line:"source-"+e+"-line",circle:"source-"+e+"-circle",symbol:"source-"+e+"-symbol",cluster:"source-"+e+"-circle",clusterCount:"source-"+e+"-circle"},this.layerIds={fill:a+e+"-fill",line:a+e+"-line",circle:a+e+"-circle",symbol:a+e+"-symbol",cluster:a+e+"-cluster",clusterCount:a+e+"-cluster-count"},this.below=null}var l=s.prototype;l.addSource=function(t,e,r){var i={type:"geojson",data:e.geojson};r&&r.enabled&&n.extendFlat(i,{cluster:!0,clusterMaxZoom:r.maxzoom}),this.subplot.map.addSource(this.sourceIds[t],i)},l.setSourceData=function(t,e){this.subplot.map.getSource(this.sourceIds[t]).setData(e.geojson)},l.addLayer=function(t,e,r){var n={type:e.type,id:this.layerIds[t],source:this.sourceIds[t],layout:e.layout,paint:e.paint};e.filter&&(n.filter=e.filter),this.subplot.addLayer(n,r)},l.update=function(t){var e=t[0].trace,r=this.subplot,n=r.map,a=i(r.gd,t),s=r.belowLookup["trace-"+this.uid],l=!(!e.cluster||!e.cluster.enabled),u=!!this.clusterEnabled,c=this;function f(t){u?function(t){for(var e=o.cluster,r=e.length-1;r>=0;r--){var i=e[r];n.removeLayer(c.layerIds[i])}t||n.removeSource(c.sourceIds.circle)}(t):function(t){for(var e=o.nonCluster,r=e.length-1;r>=0;r--){var i=e[r];n.removeLayer(c.layerIds[i]),t||n.removeSource(c.sourceIds[i])}}(t)}function h(t){l?function(t){t||c.addSource("circle",a.circle,e.cluster);for(var r=o.cluster,n=0;n<r.length;n++){var i=r[n],l=a[i];c.addLayer(i,l,s)}}(t):function(t){for(var e=o.nonCluster,r=0;r<e.length;r++){var n=e[r],i=a[n];t||c.addSource(n,i),c.addLayer(n,i,s)}}(t)}function p(){for(var t=l?o.cluster:o.nonCluster,e=0;e<t.length;e++){var n=t[e],i=a[n];i&&(r.setOptions(c.layerIds[n],"setLayoutProperty",i.layout),"visible"===i.layout.visibility&&("cluster"!==n&&c.setSourceData(n,i),r.setOptions(c.layerIds[n],"setPaintProperty",i.paint)))}}var d=this.isHidden,v=!0!==e.visible;v?d||f():d?v||h():u!==l?(f(),h()):this.below!==s?(f(!0),h(!0),p()):p(),this.clusterEnabled=l,this.isHidden=v,this.below=s,t[0].trace._glTrace=this},l.dispose=function(){for(var t=this.subplot.map,e=this.clusterEnabled?o.cluster:o.nonCluster,r=e.length-1;r>=0;r--){var n=e[r];t.removeLayer(this.layerIds[n]),t.removeSource(this.sourceIds[n])}},t.exports=function(t,e){var r,n,a,l=e[0].trace,u=l.cluster&&l.cluster.enabled,c=!0!==l.visible,f=new s(t,l.uid,u,c),h=i(t.gd,e),p=f.below=t.belowLookup["trace-"+l.uid];if(u)for(f.addSource("circle",h.circle,l.cluster),r=0;r<o.cluster.length;r++)a=h[n=o.cluster[r]],f.addLayer(n,a,p);else for(r=0;r<o.nonCluster.length;r++)a=h[n=o.nonCluster[r]],f.addSource(n,a,l.cluster),f.addLayer(n,a,p);return e[0].trace._glTrace=f,f}},86387:function(t,e,r){"use strict";var n=r(71828),i=r(34098),a=r(50606).BADNUM;t.exports=function(t,e){var r,o=t.cd,s=t.xaxis,l=t.yaxis,u=[],c=o[0].trace;if(!i.hasMarkers(c))return[];if(!1===e)for(r=0;r<o.length;r++)o[r].selected=0;else for(r=0;r<o.length;r++){var f=o[r],h=f.lonlat;if(h[0]!==a){var p=[n.modHalf(h[0],360),h[1]],d=[s.c2p(p),l.c2p(p)];e.contains(d,null,r,t)?(u.push({pointNumber:r,lon:h[0],lat:h[1]}),f.selected=1):f.selected=0}}return u}},81245:function(t,e,r){"use strict";var n=r(5386).f,i=r(5386).s,a=r(1426).extendFlat,o=r(82196),s=r(9012),l=o.line;t.exports={mode:o.mode,r:{valType:"data_array",editType:"calc+clearAxisTypes"},theta:{valType:"data_array",editType:"calc+clearAxisTypes"},r0:{valType:"any",dflt:0,editType:"calc+clearAxisTypes"},dr:{valType:"number",dflt:1,editType:"calc"},theta0:{valType:"any",dflt:0,editType:"calc+clearAxisTypes"},dtheta:{valType:"number",editType:"calc"},thetaunit:{valType:"enumerated",values:["radians","degrees","gradians"],dflt:"degrees",editType:"calc+clearAxisTypes"},text:o.text,texttemplate:i({editType:"plot"},{keys:["r","theta","text"]}),hovertext:o.hovertext,line:{color:l.color,width:l.width,dash:l.dash,backoff:l.backoff,shape:a({},l.shape,{values:["linear","spline"]}),smoothing:l.smoothing,editType:"calc"},connectgaps:o.connectgaps,marker:o.marker,cliponaxis:a({},o.cliponaxis,{dflt:!1}),textposition:o.textposition,textfont:o.textfont,fill:a({},o.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:o.fillcolor,hoverinfo:a({},s.hoverinfo,{flags:["r","theta","text","name"]}),hoveron:o.hoveron,hovertemplate:n(),selected:o.selected,unselected:o.unselected}},26442:function(t,e,r){"use strict";var n=r(92770),i=r(50606).BADNUM,a=r(89298),o=r(36922),s=r(75225),l=r(66279),u=r(47761).calcMarkerSize;t.exports=function(t,e){for(var r=t._fullLayout,c=e.subplot,f=r[c].radialaxis,h=r[c].angularaxis,p=f.makeCalcdata(e,"r"),d=h.makeCalcdata(e,"theta"),v=e._length,g=new Array(v),y=0;y<v;y++){var m=p[y],x=d[y],b=g[y]={};n(m)&&n(x)?(b.r=m,b.theta=x):b.r=i}var _=u(e,v);return e._extremes.x=a.findExtremes(f,p,{ppad:_}),o(t,e),s(g,e),l(g,e),g}},22184:function(t,e,r){"use strict";var n=r(71828),i=r(34098),a=r(49508),o=r(11058),s=r(94039),l=r(82410),u=r(28908),c=r(47581).PTS_LINESONLY,f=r(81245);function h(t,e,r,n){var i,a=n("r"),o=n("theta");if(a)o?i=Math.min(a.length,o.length):(i=a.length,n("theta0"),n("dtheta"));else{if(!o)return 0;i=e.theta.length,n("r0"),n("dr")}return e._length=i,i}t.exports={handleRThetaDefaults:h,supplyDefaults:function(t,e,r,p){function d(r,i){return n.coerce(t,e,f,r,i)}var v=h(0,e,0,d);if(v){d("thetaunit"),d("mode",v<c?"lines+markers":"lines"),d("text"),d("hovertext"),"fills"!==e.hoveron&&d("hovertemplate"),i.hasLines(e)&&(o(t,e,r,p,d,{backoff:!0}),s(t,e,d),d("connectgaps")),i.hasMarkers(e)&&a(t,e,r,p,d,{gradient:!0}),i.hasText(e)&&(d("texttemplate"),l(t,e,p,d));var g=[];(i.hasMarkers(e)||i.hasText(e))&&(d("cliponaxis"),d("marker.maxdisplayed"),g.push("points")),d("fill"),"none"!==e.fill&&(u(t,e,r,d),i.hasLines(e)||s(t,e,d)),"tonext"!==e.fill&&"toself"!==e.fill||g.push("fills"),d("hoveron",g.join("+")||"points"),n.coerceSelectionMarkerOpacity(e,d)}else e.visible=!1}}},98608:function(t,e,r){"use strict";var n=r(71828),i=r(89298);t.exports=function(t,e,r){var a,o,s={},l=r[e.subplot]._subplot;l?(a=l.radialAxis,o=l.angularAxis):(a=(l=r[e.subplot]).radialaxis,o=l.angularaxis);var u=a.c2l(t.r);s.rLabel=i.tickText(a,u,!0).text;var c="degrees"===o.thetaunit?n.rad2deg(t.theta):t.theta;return s.thetaLabel=i.tickText(o,c,!0).text,s}},59150:function(t,e,r){"use strict";var n=r(33720);function i(t,e,r,n){var i=r.radialAxis,a=r.angularAxis;i._hovertitle="r",a._hovertitle="θ";var o={};o[e.subplot]={_subplot:r};var s=e._module.formatLabels(t,e,o);n.rLabel=s.rLabel,n.thetaLabel=s.thetaLabel;var l=t.hi||e.hoverinfo,u=[];function c(t,e){u.push(t._hovertitle+": "+e)}if(!e.hovertemplate){var f=l.split("+");-1!==f.indexOf("all")&&(f=["r","theta","text"]),-1!==f.indexOf("r")&&c(i,n.rLabel),-1!==f.indexOf("theta")&&c(a,n.thetaLabel),-1!==f.indexOf("text")&&n.text&&(u.push(n.text),delete n.text),n.extraText=u.join("<br>")}}t.exports={hoverPoints:function(t,e,r,a){var o=n(t,e,r,a);if(o&&!1!==o[0].index){var s=o[0];if(void 0===s.index)return o;var l=t.subplot,u=s.cd[s.index],c=s.trace;if(l.isPtInside(u))return s.xLabelVal=void 0,s.yLabelVal=void 0,i(u,c,l,s),s.hovertemplate=c.hovertemplate,o}},makeHoverPointText:i}},91271:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"scatterpolar",basePlotModule:r(23580),categories:["polar","symbols","showLegend","scatter-like"],attributes:r(81245),supplyDefaults:r(22184).supplyDefaults,colorbar:r(4898),formatLabels:r(98608),calc:r(26442),plot:r(45162),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(59150).hoverPoints,selectPoints:r(98002),meta:{}}},45162:function(t,e,r){"use strict";var n=r(32663),i=r(50606).BADNUM;t.exports=function(t,e,r){for(var a=e.layers.frontplot.select("g.scatterlayer"),o=e.xaxis,s=e.yaxis,l={xaxis:o,yaxis:s,plot:e.framework,layerClipId:e._hasClipOnAxisFalse?e.clipIds.forTraces:null},u=e.radialAxis,c=e.angularAxis,f=0;f<r.length;f++)for(var h=r[f],p=0;p<h.length;p++){0===p&&(h[0].trace._xA=o,h[0].trace._yA=s);var d=h[p],v=d.r;if(v===i)d.x=d.y=i;else{var g=u.c2g(v),y=c.c2g(d.theta);d.x=g*Math.cos(y),d.y=g*Math.sin(y)}}n(t,l,r,a)}},53286:function(t,e,r){"use strict";var n=r(81245),i=r(42341),a=r(5386).s;t.exports={mode:n.mode,r:n.r,theta:n.theta,r0:n.r0,dr:n.dr,theta0:n.theta0,dtheta:n.dtheta,thetaunit:n.thetaunit,text:n.text,texttemplate:a({editType:"plot"},{keys:["r","theta","text"]}),hovertext:n.hovertext,hovertemplate:n.hovertemplate,line:i.line,connectgaps:i.connectgaps,marker:i.marker,fill:i.fill,fillcolor:i.fillcolor,textposition:i.textposition,textfont:i.textfont,hoverinfo:n.hoverinfo,selected:n.selected,unselected:n.unselected}},65746:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"scatterpolargl",basePlotModule:r(23580),categories:["gl","regl","polar","symbols","showLegend","scatter-like"],attributes:r(53286),supplyDefaults:r(75485),colorbar:r(4898),formatLabels:r(46255),calc:r(37499),hoverPoints:r(29347).hoverPoints,selectPoints:r(58147),meta:{}}},37499:function(t,e,r){"use strict";var n=r(36922),i=r(47761).calcMarkerSize,a=r(19635),o=r(89298),s=r(78232).TOO_MANY_POINTS;t.exports=function(t,e){var r=t._fullLayout,l=e.subplot,u=r[l].radialaxis,c=r[l].angularaxis,f=e._r=u.makeCalcdata(e,"r"),h=e._theta=c.makeCalcdata(e,"theta"),p=e._length,d={};p<f.length&&(f=f.slice(0,p)),p<h.length&&(h=h.slice(0,p)),d.r=f,d.theta=h,n(t,e);var v,g=d.opts=a.style(t,e);return p<s?v=i(e,p):g.marker&&(v=2*(g.marker.sizeAvg||Math.max(g.marker.size,3))),e._extremes.x=o.findExtremes(u,f,{ppad:v}),[{x:!1,y:!1,t:d,trace:e}]}},75485:function(t,e,r){"use strict";var n=r(71828),i=r(34098),a=r(22184).handleRThetaDefaults,o=r(49508),s=r(11058),l=r(82410),u=r(28908),c=r(47581).PTS_LINESONLY,f=r(53286);t.exports=function(t,e,r,h){function p(r,i){return n.coerce(t,e,f,r,i)}var d=a(t,e,h,p);d?(p("thetaunit"),p("mode",d<c?"lines+markers":"lines"),p("text"),p("hovertext"),"fills"!==e.hoveron&&p("hovertemplate"),i.hasLines(e)&&(s(t,e,r,h,p),p("connectgaps")),i.hasMarkers(e)&&o(t,e,r,h,p,{noAngleRef:!0,noStandOff:!0}),i.hasText(e)&&(p("texttemplate"),l(t,e,h,p)),p("fill"),"none"!==e.fill&&u(t,e,r,p),n.coerceSelectionMarkerOpacity(e,p)):e.visible=!1}},46255:function(t,e,r){"use strict";var n=r(98608);t.exports=function(t,e,r){var i=t.i;return"r"in t||(t.r=e._r[i]),"theta"in t||(t.theta=e._theta[i]),n(t,e,r)}},29347:function(t,e,r){"use strict";var n=r(20794),i=r(59150).makeHoverPointText;t.exports={hoverPoints:function(t,e,r,a){var o=t.cd[0].t,s=o.r,l=o.theta,u=n.hoverPoints(t,e,r,a);if(u&&!1!==u[0].index){var c=u[0];if(void 0===c.index)return u;var f=t.subplot,h=c.cd[c.index],p=c.trace;if(h.r=s[c.index],h.theta=l[c.index],f.isPtInside(h))return c.xLabelVal=void 0,c.yLabelVal=void 0,i(h,p,f,c),u}}}},21461:function(t,e,r){"use strict";var n=r(65746);n.plot=r(49741),t.exports=n},49741:function(t,e,r){"use strict";var n=r(88294),i=r(92770),a=r(26787),o=r(38967),s=r(19635),l=r(71828),u=r(78232).TOO_MANY_POINTS;t.exports=function(t,e,r){if(r.length){var c=e.radialAxis,f=e.angularAxis,h=o(t,e);return r.forEach((function(r){if(r&&r[0]&&r[0].trace){var a,o=r[0],p=o.trace,d=o.t,v=p._length,g=d.r,y=d.theta,m=d.opts,x=g.slice(),b=y.slice();for(a=0;a<g.length;a++)e.isPtInside({r:g[a],theta:y[a]})||(x[a]=NaN,b[a]=NaN);var _=new Array(2*v),w=Array(v),T=Array(v);for(a=0;a<v;a++){var k,A,M=x[a];if(i(M)){var S=c.c2g(M),E=f.c2g(b[a],p.thetaunit);k=S*Math.cos(E),A=S*Math.sin(E)}else k=A=NaN;w[a]=_[2*a]=k,T[a]=_[2*a+1]=A}d.tree=n(_),m.marker&&v>=u&&(m.marker.cluster=d.tree),m.marker&&(m.markerSel.positions=m.markerUnsel.positions=m.marker.positions=_),m.line&&_.length>1&&l.extendFlat(m.line,s.linePositions(t,p,_)),m.text&&(l.extendFlat(m.text,{positions:_},s.textPosition(t,p,m.text,m.marker)),l.extendFlat(m.textSel,{positions:_},s.textPosition(t,p,m.text,m.markerSel)),l.extendFlat(m.textUnsel,{positions:_},s.textPosition(t,p,m.text,m.markerUnsel))),m.fill&&!h.fill2d&&(h.fill2d=!0),m.marker&&!h.scatter2d&&(h.scatter2d=!0),m.line&&!h.line2d&&(h.line2d=!0),m.text&&!h.glText&&(h.glText=!0),h.lineOptions.push(m.line),h.fillOptions.push(m.fill),h.markerOptions.push(m.marker),h.markerSelectedOptions.push(m.markerSel),h.markerUnselectedOptions.push(m.markerUnsel),h.textOptions.push(m.text),h.textSelectedOptions.push(m.textSel),h.textUnselectedOptions.push(m.textUnsel),h.selectBatch.push([]),h.unselectBatch.push([]),d.x=w,d.y=T,d.rawx=w,d.rawy=T,d.r=g,d.theta=y,d.positions=_,d._scene=h,d.index=h.count,h.count++}})),a(t,e,r)}},t.exports.reglPrecompiled={}},48300:function(t,e,r){"use strict";var n=r(5386).f,i=r(5386).s,a=r(1426).extendFlat,o=r(82196),s=r(9012),l=o.line;t.exports={mode:o.mode,real:{valType:"data_array",editType:"calc+clearAxisTypes"},imag:{valType:"data_array",editType:"calc+clearAxisTypes"},text:o.text,texttemplate:i({editType:"plot"},{keys:["real","imag","text"]}),hovertext:o.hovertext,line:{color:l.color,width:l.width,dash:l.dash,backoff:l.backoff,shape:a({},l.shape,{values:["linear","spline"]}),smoothing:l.smoothing,editType:"calc"},connectgaps:o.connectgaps,marker:o.marker,cliponaxis:a({},o.cliponaxis,{dflt:!1}),textposition:o.textposition,textfont:o.textfont,fill:a({},o.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:o.fillcolor,hoverinfo:a({},s.hoverinfo,{flags:["real","imag","text","name"]}),hoveron:o.hoveron,hovertemplate:n(),selected:o.selected,unselected:o.unselected}},30621:function(t,e,r){"use strict";var n=r(92770),i=r(50606).BADNUM,a=r(36922),o=r(75225),s=r(66279),l=r(47761).calcMarkerSize;t.exports=function(t,e){for(var r=t._fullLayout,u=e.subplot,c=r[u].realaxis,f=r[u].imaginaryaxis,h=c.makeCalcdata(e,"real"),p=f.makeCalcdata(e,"imag"),d=e._length,v=new Array(d),g=0;g<d;g++){var y=h[g],m=p[g],x=v[g]={};n(y)&&n(m)?(x.real=y,x.imag=m):x.real=i}return l(e,d),a(t,e),o(v,e),s(v,e),v}},65269:function(t,e,r){"use strict";var n=r(71828),i=r(34098),a=r(49508),o=r(11058),s=r(94039),l=r(82410),u=r(28908),c=r(47581).PTS_LINESONLY,f=r(48300);t.exports=function(t,e,r,h){function p(r,i){return n.coerce(t,e,f,r,i)}var d=function(t,e,r,n){var i,a=n("real"),o=n("imag");return a&&o&&(i=Math.min(a.length,o.length)),e._length=i,i}(0,e,0,p);if(d){p("mode",d<c?"lines+markers":"lines"),p("text"),p("hovertext"),"fills"!==e.hoveron&&p("hovertemplate"),i.hasLines(e)&&(o(t,e,r,h,p,{backoff:!0}),s(t,e,p),p("connectgaps")),i.hasMarkers(e)&&a(t,e,r,h,p,{gradient:!0}),i.hasText(e)&&(p("texttemplate"),l(t,e,h,p));var v=[];(i.hasMarkers(e)||i.hasText(e))&&(p("cliponaxis"),p("marker.maxdisplayed"),v.push("points")),p("fill"),"none"!==e.fill&&(u(t,e,r,p),i.hasLines(e)||s(t,e,p)),"tonext"!==e.fill&&"toself"!==e.fill||v.push("fills"),p("hoveron",v.join("+")||"points"),n.coerceSelectionMarkerOpacity(e,p)}else e.visible=!1}},62047:function(t,e,r){"use strict";var n=r(89298);t.exports=function(t,e,r){var i={},a=r[e.subplot]._subplot;return i.realLabel=n.tickText(a.radialAxis,t.real,!0).text,i.imagLabel=n.tickText(a.angularAxis,t.imag,!0).text,i}},11350:function(t,e,r){"use strict";var n=r(33720);function i(t,e,r,n){var i=r.radialAxis,a=r.angularAxis;i._hovertitle="real",a._hovertitle="imag";var o={};o[e.subplot]={_subplot:r};var s=e._module.formatLabels(t,e,o);n.realLabel=s.realLabel,n.imagLabel=s.imagLabel;var l=t.hi||e.hoverinfo,u=[];function c(t,e){u.push(t._hovertitle+": "+e)}if(!e.hovertemplate){var f=l.split("+");-1!==f.indexOf("all")&&(f=["real","imag","text"]),-1!==f.indexOf("real")&&c(i,n.realLabel),-1!==f.indexOf("imag")&&c(a,n.imagLabel),-1!==f.indexOf("text")&&n.text&&(u.push(n.text),delete n.text),n.extraText=u.join("<br>")}}t.exports={hoverPoints:function(t,e,r,a){var o=n(t,e,r,a);if(o&&!1!==o[0].index){var s=o[0];if(void 0===s.index)return o;var l=t.subplot,u=s.cd[s.index],c=s.trace;if(l.isPtInside(u))return s.xLabelVal=void 0,s.yLabelVal=void 0,i(u,c,l,s),s.hovertemplate=c.hovertemplate,o}},makeHoverPointText:i}},85956:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"scattersmith",basePlotModule:r(7504),categories:["smith","symbols","showLegend","scatter-like"],attributes:r(48300),supplyDefaults:r(65269),colorbar:r(4898),formatLabels:r(62047),calc:r(30621),plot:r(12480),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(11350).hoverPoints,selectPoints:r(98002),meta:{}}},12480:function(t,e,r){"use strict";var n=r(32663),i=r(50606).BADNUM,a=r(23893).smith;t.exports=function(t,e,r){for(var o=e.layers.frontplot.select("g.scatterlayer"),s=e.xaxis,l=e.yaxis,u={xaxis:s,yaxis:l,plot:e.framework,layerClipId:e._hasClipOnAxisFalse?e.clipIds.forTraces:null},c=0;c<r.length;c++)for(var f=r[c],h=0;h<f.length;h++){0===h&&(f[0].trace._xA=s,f[0].trace._yA=l);var p=f[h],d=p.real;if(d===i)p.x=p.y=i;else{var v=a([d,p.imag]);p.x=v[0],p.y=v[1]}}n(t,u,r,o)}},50413:function(t,e,r){"use strict";var n=r(5386).f,i=r(5386).s,a=r(82196),o=r(9012),s=r(50693),l=r(79952).P,u=r(1426).extendFlat,c=a.marker,f=a.line,h=c.line;t.exports={a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},c:{valType:"data_array",editType:"calc"},sum:{valType:"number",dflt:0,min:0,editType:"calc"},mode:u({},a.mode,{dflt:"markers"}),text:u({},a.text,{}),texttemplate:i({editType:"plot"},{keys:["a","b","c","text"]}),hovertext:u({},a.hovertext,{}),line:{color:f.color,width:f.width,dash:l,backoff:f.backoff,shape:u({},f.shape,{values:["linear","spline"]}),smoothing:f.smoothing,editType:"calc"},connectgaps:a.connectgaps,cliponaxis:a.cliponaxis,fill:u({},a.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:a.fillcolor,marker:u({symbol:c.symbol,opacity:c.opacity,angle:c.angle,angleref:c.angleref,standoff:c.standoff,maxdisplayed:c.maxdisplayed,size:c.size,sizeref:c.sizeref,sizemin:c.sizemin,sizemode:c.sizemode,line:u({width:h.width,editType:"calc"},s("marker.line")),gradient:c.gradient,editType:"calc"},s("marker")),textfont:a.textfont,textposition:a.textposition,selected:a.selected,unselected:a.unselected,hoverinfo:u({},o.hoverinfo,{flags:["a","b","c","text","name"]}),hoveron:a.hoveron,hovertemplate:n()}},54337:function(t,e,r){"use strict";var n=r(92770),i=r(36922),a=r(75225),o=r(66279),s=r(47761).calcMarkerSize,l=["a","b","c"],u={a:["b","c"],b:["a","c"],c:["a","b"]};t.exports=function(t,e){var r,c,f,h,p,d,v=t._fullLayout[e.subplot].sum,g=e.sum||v,y={a:e.a,b:e.b,c:e.c};for(r=0;r<l.length;r++)if(!y[f=l[r]]){for(p=y[u[f][0]],d=y[u[f][1]],h=new Array(p.length),c=0;c<p.length;c++)h[c]=g-p[c]-d[c];y[f]=h}var m,x,b,_,w,T,k=e._length,A=new Array(k);for(r=0;r<k;r++)m=y.a[r],x=y.b[r],b=y.c[r],n(m)&&n(x)&&n(b)?(1!=(_=v/((m=+m)+(x=+x)+(b=+b)))&&(m*=_,x*=_,b*=_),T=m,w=b-x,A[r]={x:w,y:T,a:m,b:x,c:b}):A[r]={x:!1,y:!1};return s(e,k),i(t,e),a(A,e),o(A,e),A}},46008:function(t,e,r){"use strict";var n=r(71828),i=r(47581),a=r(34098),o=r(49508),s=r(11058),l=r(94039),u=r(82410),c=r(28908),f=r(50413);t.exports=function(t,e,r,h){function p(r,i){return n.coerce(t,e,f,r,i)}var d,v=p("a"),g=p("b"),y=p("c");if(v?(d=v.length,g?(d=Math.min(d,g.length),y&&(d=Math.min(d,y.length))):d=y?Math.min(d,y.length):0):g&&y&&(d=Math.min(g.length,y.length)),d){e._length=d,p("sum"),p("text"),p("hovertext"),"fills"!==e.hoveron&&p("hovertemplate"),p("mode",d<i.PTS_LINESONLY?"lines+markers":"lines"),a.hasLines(e)&&(s(t,e,r,h,p,{backoff:!0}),l(t,e,p),p("connectgaps")),a.hasMarkers(e)&&o(t,e,r,h,p,{gradient:!0}),a.hasText(e)&&(p("texttemplate"),u(t,e,h,p));var m=[];(a.hasMarkers(e)||a.hasText(e))&&(p("cliponaxis"),p("marker.maxdisplayed"),m.push("points")),p("fill"),"none"!==e.fill&&(c(t,e,r,p),a.hasLines(e)||l(t,e,p)),"tonext"!==e.fill&&"toself"!==e.fill||m.push("fills"),p("hoveron",m.join("+")||"points"),n.coerceSelectionMarkerOpacity(e,p)}else e.visible=!1}},4524:function(t){"use strict";t.exports=function(t,e,r,n,i){if(e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),n[i]){var a=n[i];t.a=a.a,t.b=a.b,t.c=a.c}else t.a=e.a,t.b=e.b,t.c=e.c;return t}},93645:function(t,e,r){"use strict";var n=r(89298);t.exports=function(t,e,r){var i={},a=r[e.subplot]._subplot;return i.aLabel=n.tickText(a.aaxis,t.a,!0).text,i.bLabel=n.tickText(a.baxis,t.b,!0).text,i.cLabel=n.tickText(a.caxis,t.c,!0).text,i}},47250:function(t,e,r){"use strict";var n=r(33720);t.exports=function(t,e,r,i){var a=n(t,e,r,i);if(a&&!1!==a[0].index){var o=a[0];if(void 0===o.index){var s=1-o.y0/t.ya._length,l=t.xa._length,u=l*s/2,c=l-u;return o.x0=Math.max(Math.min(o.x0,c),u),o.x1=Math.max(Math.min(o.x1,c),u),a}var f=o.cd[o.index],h=o.trace,p=o.subplot;o.a=f.a,o.b=f.b,o.c=f.c,o.xLabelVal=void 0,o.yLabelVal=void 0;var d={};d[h.subplot]={_subplot:p};var v=h._module.formatLabels(f,h,d);o.aLabel=v.aLabel,o.bLabel=v.bLabel,o.cLabel=v.cLabel;var g=f.hi||h.hoverinfo,y=[];if(!h.hovertemplate){var m=g.split("+");-1!==m.indexOf("all")&&(m=["a","b","c"]),-1!==m.indexOf("a")&&x(p.aaxis,o.aLabel),-1!==m.indexOf("b")&&x(p.baxis,o.bLabel),-1!==m.indexOf("c")&&x(p.caxis,o.cLabel)}return o.extraText=y.join("<br>"),o.hovertemplate=h.hovertemplate,a}function x(t,e){y.push(t._hovertitle+": "+e)}}},52979:function(t,e,r){"use strict";t.exports={attributes:r(50413),supplyDefaults:r(46008),colorbar:r(4898),formatLabels:r(93645),calc:r(54337),plot:r(7507),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(47250),selectPoints:r(98002),eventData:r(4524),moduleType:"trace",name:"scatterternary",basePlotModule:r(61639),categories:["ternary","symbols","showLegend","scatter-like"],meta:{}}},7507:function(t,e,r){"use strict";var n=r(32663);t.exports=function(t,e,r){var i=e.plotContainer;i.select(".scatterlayer").selectAll("*").remove();for(var a=e.xaxis,o=e.yaxis,s={xaxis:a,yaxis:o,plot:i,layerClipId:e._hasClipOnAxisFalse?e.clipIdRelative:null},l=e.layers.frontplot.select("g.scatterlayer"),u=0;u<r.length;u++){var c=r[u];c.length&&(c[0].trace._xA=a,c[0].trace._yA=o)}n(t,s,r,l)}},46880:function(t,e,r){"use strict";var n=r(82196),i=r(50693),a=r(12663).axisHoverFormat,o=r(5386).f,s=r(42341),l=r(85555).idRegex,u=r(44467).templatedArray,c=r(1426).extendFlat,f=n.marker,h=f.line,p=c(i("marker.line",{editTypeOverride:"calc"}),{width:c({},h.width,{editType:"calc"}),editType:"calc"}),d=c(i("marker"),{symbol:f.symbol,angle:f.angle,size:c({},f.size,{editType:"markerSize"}),sizeref:f.sizeref,sizemin:f.sizemin,sizemode:f.sizemode,opacity:f.opacity,colorbar:f.colorbar,line:p,editType:"calc"});function v(t){return{valType:"info_array",freeLength:!0,editType:"calc",items:{valType:"subplotid",regex:l[t],editType:"plot"}}}d.color.editType=d.cmin.editType=d.cmax.editType="style",t.exports={dimensions:u("dimension",{visible:{valType:"boolean",dflt:!0,editType:"calc"},label:{valType:"string",editType:"calc"},values:{valType:"data_array",editType:"calc+clearAxisTypes"},axis:{type:{valType:"enumerated",values:["linear","log","date","category"],editType:"calc+clearAxisTypes"},matches:{valType:"boolean",dflt:!1,editType:"calc"},editType:"calc+clearAxisTypes"},editType:"calc+clearAxisTypes"}),text:c({},s.text,{}),hovertext:c({},s.hovertext,{}),hovertemplate:o(),xhoverformat:a("x"),yhoverformat:a("y"),marker:d,xaxes:v("x"),yaxes:v("y"),diagonal:{visible:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},showupperhalf:{valType:"boolean",dflt:!0,editType:"calc"},showlowerhalf:{valType:"boolean",dflt:!0,editType:"calc"},selected:{marker:s.selected.marker,editType:"calc"},unselected:{marker:s.unselected.marker,editType:"calc"},opacity:s.opacity}},65017:function(t,e,r){"use strict";var n=r(73972),i=r(83312);t.exports={moduleType:"trace",name:"splom",categories:["gl","regl","cartesian","symbols","showLegend","scatter-like"],attributes:r(46880),supplyDefaults:r(25784),colorbar:r(4898),calc:r(87625),plot:r(79410),hoverPoints:r(8567).hoverPoints,selectPoints:r(8689),editStyle:r(28801),meta:{}},n.register(i)},16947:function(t,e,r){"use strict";var n=r(46075),i=r(73972),a=r(79749),o=r(27659).a0,s=r(93612),l=r(41675).getFromId,u=r(89298).shouldShowZeroLine,c="splom",f={};function h(t,e,r){for(var n=r.matrixOptions.data.length,i=e._visibleDims,a=r.viewOpts.ranges=new Array(n),o=0;o<i.length;o++){var s=i[o],u=a[o]=new Array(4),c=l(t,e._diag[s][0]);c&&(u[0]=c.r2l(c.range[0]),u[2]=c.r2l(c.range[1]));var f=l(t,e._diag[s][1]);f&&(u[1]=f.r2l(f.range[0]),u[3]=f.r2l(f.range[1]))}r.selectBatch.length||r.unselectBatch.length?r.matrix.update({ranges:a},{ranges:a}):r.matrix.update({ranges:a})}function p(t){var e=t._fullLayout,r=e._glcanvas.data()[0].regl,i=e._splomGrid;i||(i=e._splomGrid=n(r)),i.update(function(t){var e,r=t._context.plotGlPixelRatio,n=t._fullLayout,i=n._size,a=[0,0,n.width*r,n.height*r],o={};function s(t,e,n,i,s,l){n*=r,i*=r,s*=r,l*=r;var u=e[t+"color"],c=e[t+"width"],f=String(u+c);f in o?o[f].data.push(NaN,NaN,n,i,s,l):o[f]={data:[n,i,s,l],join:"rect",thickness:c*r,color:u,viewport:a,range:a,overlay:!1}}for(e in n._splomSubplots){var l,c,f=n._plots[e],h=f.xaxis,p=f.yaxis,d=h._gridVals,v=p._gridVals,g=h._offset,y=h._length,m=p._length,x=i.b+p.domain[0]*i.h,b=-p._m,_=-b*p.r2l(p.range[0],p.calendar);if(h.showgrid)for(e=0;e<d.length;e++)l=g+h.l2p(d[e].x),s("grid",h,l,x,l,x+m);if(p.showgrid)for(e=0;e<v.length;e++)s("grid",p,g,c=x+_+b*v[e].x,g+y,c);u(t,h,p)&&(l=g+h.l2p(0),s("zeroline",h,l,x,l,x+m)),u(t,p,h)&&s("zeroline",p,g,c=x+_+0,g+y,c)}var w=[];for(e in o)w.push(o[e]);return w}(t))}t.exports={name:c,attr:s.attr,attrRegex:s.attrRegex,layoutAttributes:s.layoutAttributes,supplyLayoutDefaults:s.supplyLayoutDefaults,drawFramework:s.drawFramework,plot:function(t){var e=t._fullLayout,r=i.getModule(c),n=o(t.calcdata,r)[0];a(t,["ANGLE_instanced_arrays","OES_element_index_uint"],f)&&(e._hasOnlyLargeSploms&&p(t),r.plot(t,{},n))},drag:function(t){var e=t.calcdata,r=t._fullLayout;r._hasOnlyLargeSploms&&p(t);for(var n=0;n<e.length;n++){var i=e[n][0].trace,a=r._splomScenes[i.uid];"splom"===i.type&&a&&a.matrix&&h(t,i,a)}},updateGrid:p,clean:function(t,e,r,n){var i,a={};if(n._splomScenes){for(i=0;i<t.length;i++){var o=t[i];"splom"===o.type&&(a[o.uid]=1)}for(i=0;i<r.length;i++){var l=r[i];if(!a[l.uid]){var u=n._splomScenes[l.uid];u&&u.destroy&&u.destroy(),n._splomScenes[l.uid]=null,delete n._splomScenes[l.uid]}}}0===Object.keys(n._splomScenes||{}).length&&delete n._splomScenes,n._splomGrid&&!e._hasOnlyLargeSploms&&n._hasOnlyLargeSploms&&(n._splomGrid.destroy(),n._splomGrid=null,delete n._splomGrid),s.clean(t,e,r,n)},updateFx:s.updateFx,toSVG:s.toSVG,reglPrecompiled:f}},87625:function(t,e,r){"use strict";var n=r(71828),i=r(41675),a=r(47761).calcMarkerSize,o=r(47761).calcAxisExpansion,s=r(36922),l=r(19635).markerSelection,u=r(19635).markerStyle,c=r(10164),f=r(50606).BADNUM,h=r(78232).TOO_MANY_POINTS;t.exports=function(t,e){var r,p,d,v,g,y,m=e.dimensions,x=e._length,b={},_=b.cdata=[],w=b.data=[],T=e._visibleDims=[];function k(t,r){for(var i=t.makeCalcdata({v:r.values,vcalendar:e.calendar},"v"),a=0;a<i.length;a++)i[a]=i[a]===f?NaN:i[a];_.push(i),w.push("log"===t.type?n.simpleMap(i,t.c2l):i)}for(r=0;r<m.length;r++)if((d=m[r]).visible){if(v=i.getFromId(t,e._diag[r][0]),g=i.getFromId(t,e._diag[r][1]),v&&g&&v.type!==g.type){n.log("Skipping splom dimension "+r+" with conflicting axis types");continue}v?(k(v,d),g&&"category"===g.type&&(g._categories=v._categories.slice())):k(g,d),T.push(r)}for(s(t,e),n.extendFlat(b,u(t,e)),y=_.length*x>h?b.sizeAvg||Math.max(b.size,3):a(e,x),p=0;p<T.length;p++)d=m[r=T[p]],v=i.getFromId(t,e._diag[r][0])||{},g=i.getFromId(t,e._diag[r][1])||{},o(t,e,v,g,_[p],_[p],y);var A=c(t,e);return A.matrix||(A.matrix=!0),A.matrixOptions=b,A.selectedOptions=l(t,e,e.selected),A.unselectedOptions=l(t,e,e.unselected),[{x:!1,y:!1,t:{},trace:e}]}},25784:function(t,e,r){"use strict";var n=r(71828),i=r(85501),a=r(46880),o=r(34098),s=r(49508),l=r(94397),u=r(68645).isOpenSymbol;function c(t,e){function r(r,i){return n.coerce(t,e,a.dimensions,r,i)}r("label");var i=r("values");i&&i.length?r("visible"):e.visible=!1,r("axis.type"),r("axis.matches")}t.exports=function(t,e,r,f){function h(r,i){return n.coerce(t,e,a,r,i)}var p=i(t,e,{name:"dimensions",handleItemDefaults:c}),d=h("diagonal.visible"),v=h("showupperhalf"),g=h("showlowerhalf");if(l(e,p,"values")&&(d||v||g)){h("text"),h("hovertext"),h("hovertemplate"),h("xhoverformat"),h("yhoverformat"),s(t,e,r,f,h,{noAngleRef:!0,noStandOff:!0});var y=u(e.marker.symbol),m=o.isBubble(e);h("marker.line.width",y||m?1:0),function(t,e,r,n){var i,a,o=e.dimensions,s=o.length,l=e.showupperhalf,u=e.showlowerhalf,c=e.diagonal.visible,f=new Array(s),h=new Array(s);for(i=0;i<s;i++){var p=i?i+1:"";f[i]="x"+p,h[i]="y"+p}var d=n("xaxes",f),v=n("yaxes",h),g=e._diag=new Array(s);e._xaxes={},e._yaxes={};var y=[],m=[];function x(t,n,i,a){if(t){var o=t.charAt(0),s=r._splomAxes[o];if(e["_"+o+"axes"][t]=1,a.push(t),!(t in s)){var l=s[t]={};i&&(l.label=i.label||"",i.visible&&i.axis&&(i.axis.type&&(l.type=i.axis.type),i.axis.matches&&(l.matches=n)))}}}var b=!c&&!u,_=!c&&!l;for(e._axesDim={},i=0;i<s;i++){var w=o[i],T=0===i,k=i===s-1,A=T&&b||k&&_?void 0:d[i],M=T&&_||k&&b?void 0:v[i];x(A,M,w,y),x(M,A,w,m),g[i]=[A,M],e._axesDim[A]=i,e._axesDim[M]=i}for(i=0;i<y.length;i++)for(a=0;a<m.length;a++){var S=y[i]+m[a];i>a&&l||i<a&&u?r._splomSubplots[S]=1:i!==a||!c&&u&&l||(r._splomSubplots[S]=1)}(!u||!c&&l&&u)&&(r._splomGridDflt.xside="bottom",r._splomGridDflt.yside="left")}(0,e,f,h),n.coerceSelectionMarkerOpacity(e,h)}else e.visible=!1}},28801:function(t,e,r){"use strict";var n=r(71828),i=r(36922),a=r(19635).markerStyle;t.exports=function(t,e){var r=e.trace,o=t._fullLayout._splomScenes[r.uid];if(o){i(t,r),n.extendFlat(o.matrixOptions,a(t,r));var s=n.extendFlat({},o.matrixOptions,o.viewOpts);o.matrix.update(s,null)}}},35948:function(t,e){"use strict";e.getDimIndex=function(t,e){for(var r=e._id,n={x:0,y:1}[r.charAt(0)],i=t._visibleDims,a=0;a<i.length;a++){var o=i[a];if(t._diag[o][n]===r)return a}return!1}},8567:function(t,e,r){"use strict";var n=r(35948),i=r(20794).calcHover;t.exports={hoverPoints:function(t,e,r){var a=t.cd[0].trace,o=t.scene.matrixOptions.cdata,s=t.xa,l=t.ya,u=s.c2p(e),c=l.c2p(r),f=t.distance,h=n.getDimIndex(a,s),p=n.getDimIndex(a,l);if(!1===h||!1===p)return[t];for(var d,v,g=o[h],y=o[p],m=f,x=0;x<g.length;x++){var b=g[x],_=y[x],w=s.c2p(b)-u,T=l.c2p(_)-c,k=Math.sqrt(w*w+T*T);k<m&&(m=v=k,d=x)}return t.index=d,t.distance=m,t.dxy=v,void 0===d?[t]:[i(t,g,y,a)]}}},6419:function(t,e,r){"use strict";var n=r(65017);n.basePlotModule=r(16947),t.exports=n},79410:function(t,e,r){"use strict";var n=r(60487),i=r(71828),a=r(41675),o=r(64505).selectMode;function s(t,e){var r,s,l,u,c,f=t._fullLayout,h=f._size,p=e.trace,d=e.t,v=f._splomScenes[p.uid],g=v.matrixOptions,y=g.cdata,m=f._glcanvas.data()[0].regl,x=f.dragmode;if(0!==y.length){g.lower=p.showupperhalf,g.upper=p.showlowerhalf,g.diagonal=p.diagonal.visible;var b=p._visibleDims,_=y.length,w=v.viewOpts={};for(w.ranges=new Array(_),w.domains=new Array(_),c=0;c<b.length;c++){l=b[c];var T=w.ranges[c]=new Array(4),k=w.domains[c]=new Array(4);(r=a.getFromId(t,p._diag[l][0]))&&(T[0]=r._rl[0],T[2]=r._rl[1],k[0]=r.domain[0],k[2]=r.domain[1]),(s=a.getFromId(t,p._diag[l][1]))&&(T[1]=s._rl[0],T[3]=s._rl[1],k[1]=s.domain[0],k[3]=s.domain[1])}var A=t._context.plotGlPixelRatio,M=h.l*A,S=h.b*A,E=h.w*A,L=h.h*A;w.viewport=[M,S,E+M,L+S],!0===v.matrix&&(v.matrix=n(m));var C=f.clickmode.indexOf("select")>-1,P=!0;if(o(x)||p.selectedpoints||C){var O=p._length;if(p.selectedpoints){v.selectBatch=p.selectedpoints;var I=p.selectedpoints,D={};for(l=0;l<I.length;l++)D[I[l]]=!0;var z=[];for(l=0;l<O;l++)D[l]||z.push(l);v.unselectBatch=z}var R=d.xpx=new Array(_),F=d.ypx=new Array(_);for(c=0;c<b.length;c++){if(l=b[c],r=a.getFromId(t,p._diag[l][0]))for(R[c]=new Array(O),u=0;u<O;u++)R[c][u]=r.c2p(y[c][u]);if(s=a.getFromId(t,p._diag[l][1]))for(F[c]=new Array(O),u=0;u<O;u++)F[c][u]=s.c2p(y[c][u])}if(v.selectBatch.length||v.unselectBatch.length){var B=i.extendFlat({},g,v.unselectedOptions,w),N=i.extendFlat({},g,v.selectedOptions,w);v.matrix.update(B,N),P=!1}}else d.xpx=d.ypx=null;if(P){var j=i.extendFlat({},g,w);v.matrix.update(j,null)}}}t.exports=function(t,e,r){if(r.length)for(var n=0;n<r.length;n++)s(t,r[n][0])}},10164:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){var r=t._fullLayout,i=e.uid,a=r._splomScenes;a||(a=r._splomScenes={});var o={dirty:!0,selectBatch:[],unselectBatch:[]},s=a[e.uid];return s||((s=a[i]=n.extendFlat({},o,{matrix:!1,selectBatch:[],unselectBatch:[]})).draw=function(){s.matrix&&s.matrix.draw&&(s.selectBatch.length||s.unselectBatch.length?s.matrix.draw(s.unselectBatch,s.selectBatch):s.matrix.draw()),s.dirty=!1},s.destroy=function(){s.matrix&&s.matrix.destroy&&s.matrix.destroy(),s.matrixOptions=null,s.selectBatch=null,s.unselectBatch=null,s=null}),s.dirty||n.extendFlat(s,o),s}},8689:function(t,e,r){"use strict";var n=r(71828),i=n.pushUnique,a=r(34098),o=r(35948);t.exports=function(t,e){var r=t.cd,s=r[0].trace,l=r[0].t,u=t.scene,c=u.matrixOptions.cdata,f=t.xaxis,h=t.yaxis,p=[];if(!u)return p;var d=!a.hasMarkers(s)&&!a.hasText(s);if(!0!==s.visible||d)return p;var v=o.getDimIndex(s,f),g=o.getDimIndex(s,h);if(!1===v||!1===g)return p;var y=l.xpx[v],m=l.ypx[g],x=c[v],b=c[g],_=(t.scene.selectBatch||[]).slice(),w=[];if(!1!==e&&!e.degenerate)for(var T=0;T<x.length;T++)e.contains([y[T],m[T]],null,T,t)?(p.push({pointNumber:T,x:x[T],y:b[T]}),i(_,T)):-1!==_.indexOf(T)?i(_,T):w.push(T);var k=u.matrixOptions;return _.length||w.length?u.selectBatch.length||u.unselectBatch.length||u.matrix.update(u.unselectedOptions,n.extendFlat({},k,u.selectedOptions,u.viewOpts)):u.matrix.update(k,null),u.selectBatch=_,u.unselectBatch=w,p}},21850:function(t,e,r){"use strict";var n=r(50693),i=r(12663).axisHoverFormat,a=r(5386).f,o=r(2418),s=r(9012),l=r(1426).extendFlat,u={x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},u:{valType:"data_array",editType:"calc"},v:{valType:"data_array",editType:"calc"},w:{valType:"data_array",editType:"calc"},starts:{x:{valType:"data_array",editType:"calc"},y:{valType:"data_array",editType:"calc"},z:{valType:"data_array",editType:"calc"},editType:"calc"},maxdisplayed:{valType:"integer",min:0,dflt:1e3,editType:"calc"},sizeref:{valType:"number",editType:"calc",min:0,dflt:1},text:{valType:"string",dflt:"",editType:"calc"},hovertext:{valType:"string",dflt:"",editType:"calc"},hovertemplate:a({editType:"calc"},{keys:["tubex","tubey","tubez","tubeu","tubev","tubew","norm","divergence"]}),uhoverformat:i("u",1),vhoverformat:i("v",1),whoverformat:i("w",1),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),showlegend:l({},s.showlegend,{dflt:!1})};l(u,n("",{colorAttr:"u/v/w norm",showScaleDflt:!0,editTypeOverride:"calc"})),["opacity","lightposition","lighting"].forEach((function(t){u[t]=o[t]})),u.hoverinfo=l({},s.hoverinfo,{editType:"calc",flags:["x","y","z","u","v","w","norm","divergence","text","name"],dflt:"x+y+z+norm+text+name"}),u.transforms=void 0,t.exports=u},88489:function(t,e,r){"use strict";var n=r(71828),i=r(78803);function a(t){var e,r,i,a,s,l,u,c,f,h,p,d,v=t._x,g=t._y,y=t._z,m=t._len,x=-1/0,b=1/0,_=-1/0,w=1/0,T=-1/0,k=1/0,A="";for(m&&(u=v[0],f=g[0],p=y[0]),m>1&&(c=v[m-1],h=g[m-1],d=y[m-1]),e=0;e<m;e++)x=Math.max(x,v[e]),b=Math.min(b,v[e]),_=Math.max(_,g[e]),w=Math.min(w,g[e]),T=Math.max(T,y[e]),k=Math.min(k,y[e]),a||v[e]===u||(a=!0,A+="x"),s||g[e]===f||(s=!0,A+="y"),l||y[e]===p||(l=!0,A+="z");a||(A+="x"),s||(A+="y"),l||(A+="z");var M=o(t._x),S=o(t._y),E=o(t._z);A=(A=(A=A.replace("x",(u>c?"-":"+")+"x")).replace("y",(f>h?"-":"+")+"y")).replace("z",(p>d?"-":"+")+"z");var L=function(){m=0,M=[],S=[],E=[]};(!m||m<M.length*S.length*E.length)&&L();var C=function(t){return"x"===t?v:"y"===t?g:y},P=function(t){return"x"===t?M:"y"===t?S:E},O=function(t){return t[m-1]<t[0]?-1:1},I=C(A[1]),D=C(A[3]),z=C(A[5]),R=P(A[1]).length,F=P(A[3]).length,B=P(A[5]).length,N=!1,j=function(t,e,r){return R*(F*t+e)+r},U=O(C(A[1])),V=O(C(A[3])),H=O(C(A[5]));for(e=0;e<B-1;e++){for(r=0;r<F-1;r++){for(i=0;i<R-1;i++){var q=j(e,r,i),G=j(e,r,i+1),Z=j(e,r+1,i),Y=j(e+1,r,i);if(I[q]*U<I[G]*U&&D[q]*V<D[Z]*V&&z[q]*H<z[Y]*H||(N=!0),N)break}if(N)break}if(N)break}return N&&(n.warn("Encountered arbitrary coordinates! Unable to input data grid."),L()),{xMin:b,yMin:w,zMin:k,xMax:x,yMax:_,zMax:T,Xs:M,Ys:S,Zs:E,len:m,fill:A}}function o(t){return n.distinctVals(t).vals}function s(t,e){if(void 0===e&&(e=t.length),n.isTypedArray(t))return t.subarray(0,e);for(var r=[],i=0;i<e;i++)r[i]=+t[i];return r}t.exports={calc:function(t,e){e._len=Math.min(e.u.length,e.v.length,e.w.length,e.x.length,e.y.length,e.z.length),e._u=s(e.u,e._len),e._v=s(e.v,e._len),e._w=s(e.w,e._len),e._x=s(e.x,e._len),e._y=s(e.y,e._len),e._z=s(e.z,e._len);var r=a(e);e._gridFill=r.fill,e._Xs=r.Xs,e._Ys=r.Ys,e._Zs=r.Zs,e._len=r.len;var n,o,l,u=0;e.starts&&(n=s(e.starts.x||[]),o=s(e.starts.y||[]),l=s(e.starts.z||[]),u=Math.min(n.length,o.length,l.length)),e._startsX=n||[],e._startsY=o||[],e._startsZ=l||[];var c,f=0,h=1/0;for(c=0;c<e._len;c++){var p=e._u[c],d=e._v[c],v=e._w[c],g=Math.sqrt(p*p+d*d+v*v);f=Math.max(f,g),h=Math.min(h,g)}for(i(t,e,{vals:[h,f],containerStr:"",cLetter:"c"}),c=0;c<u;c++){var y=n[c];r.xMax=Math.max(r.xMax,y),r.xMin=Math.min(r.xMin,y);var m=o[c];r.yMax=Math.max(r.yMax,m),r.yMin=Math.min(r.yMin,m);var x=l[c];r.zMax=Math.max(r.zMax,x),r.zMin=Math.min(r.zMin,x)}e._slen=u,e._normMax=f,e._xbnds=[r.xMin,r.xMax],e._ybnds=[r.yMin,r.yMax],e._zbnds=[r.zMin,r.zMax]},filter:s,processGrid:a}},90154:function(t,e,r){"use strict";var n=r(9330).gl_streamtube3d,i=n.createTubeMesh,a=r(71828),o=r(81697).parseColorScale,s=r(21081).extractOpts,l=r(90060),u={xaxis:0,yaxis:1,zaxis:2};function c(t,e){this.scene=t,this.uid=e,this.mesh=null,this.data=null}var f=c.prototype;function h(t){var e=t.length;return e>2?t.slice(1,e-1):2===e?[(t[0]+t[1])/2]:t}function p(t){var e=t.length;return 1===e?[.5,.5]:[t[1]-t[0],t[e-1]-t[e-2]]}function d(t,e){var r=t.fullSceneLayout,i=t.dataScale,c=e._len,f={};function d(t,e){var n=r[e],o=i[u[e]];return a.simpleMap(t,(function(t){return n.d2l(t)*o}))}if(f.vectors=l(d(e._u,"xaxis"),d(e._v,"yaxis"),d(e._w,"zaxis"),c),!c)return{positions:[],cells:[]};var v=d(e._Xs,"xaxis"),g=d(e._Ys,"yaxis"),y=d(e._Zs,"zaxis");if(f.meshgrid=[v,g,y],f.gridFill=e._gridFill,e._slen)f.startingPositions=l(d(e._startsX,"xaxis"),d(e._startsY,"yaxis"),d(e._startsZ,"zaxis"));else{for(var m=g[0],x=h(v),b=h(y),_=new Array(x.length*b.length),w=0,T=0;T<x.length;T++)for(var k=0;k<b.length;k++)_[w++]=[x[T],m,b[k]];f.startingPositions=_}f.colormap=o(e),f.tubeSize=e.sizeref,f.maxLength=e.maxdisplayed;var A=d(e._xbnds,"xaxis"),M=d(e._ybnds,"yaxis"),S=d(e._zbnds,"zaxis"),E=p(v),L=p(g),C=p(y),P=[[A[0]-E[0],M[0]-L[0],S[0]-C[0]],[A[1]+E[1],M[1]+L[1],S[1]+C[1]]],O=n(f,P),I=s(e);O.vertexIntensityBounds=[I.min/e._normMax,I.max/e._normMax];var D=e.lightposition;return O.lightPosition=[D.x,D.y,D.z],O.ambient=e.lighting.ambient,O.diffuse=e.lighting.diffuse,O.specular=e.lighting.specular,O.roughness=e.lighting.roughness,O.fresnel=e.lighting.fresnel,O.opacity=e.opacity,e._pad=O.tubeScale*e.sizeref*2,O}f.handlePick=function(t){var e=this.scene.fullSceneLayout,r=this.scene.dataScale;function n(t,n){var i=e[n],a=r[u[n]];return i.l2c(t)/a}if(t.object===this.mesh){var i=t.data.position,a=t.data.velocity;return t.traceCoordinate=[n(i[0],"xaxis"),n(i[1],"yaxis"),n(i[2],"zaxis"),n(a[0],"xaxis"),n(a[1],"yaxis"),n(a[2],"zaxis"),t.data.intensity*this.data._normMax,t.data.divergence],t.textLabel=this.data.hovertext||this.data.text,!0}},f.update=function(t){this.data=t;var e=d(this.scene,t);this.mesh.update(e)},f.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()},t.exports=function(t,e){var r=t.glplot.gl,n=d(t,e),a=i(r,n),o=new c(t,e.uid);return o.mesh=a,o.data=e,a._trace=o,t.glplot.add(a),o}},22459:function(t,e,r){"use strict";var n=r(71828),i=r(1586),a=r(21850);t.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s("u"),u=s("v"),c=s("w"),f=s("x"),h=s("y"),p=s("z");l&&l.length&&u&&u.length&&c&&c.length&&f&&f.length&&h&&h.length&&p&&p.length?(s("starts.x"),s("starts.y"),s("starts.z"),s("maxdisplayed"),s("sizeref"),s("lighting.ambient"),s("lighting.diffuse"),s("lighting.specular"),s("lighting.roughness"),s("lighting.fresnel"),s("lightposition.x"),s("lightposition.y"),s("lightposition.z"),i(t,e,o,s,{prefix:"",cLetter:"c"}),s("text"),s("hovertext"),s("hovertemplate"),s("uhoverformat"),s("vhoverformat"),s("whoverformat"),s("xhoverformat"),s("yhoverformat"),s("zhoverformat"),e._length=null):e.visible=!1}},61510:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"streamtube",basePlotModule:r(58547),categories:["gl3d","showLegend"],attributes:r(21850),supplyDefaults:r(22459),colorbar:{min:"cmin",max:"cmax"},calc:r(88489).calc,plot:r(90154),eventData:function(t,e){return t.tubex=t.x,t.tubey=t.y,t.tubez=t.z,t.tubeu=e.traceCoordinate[3],t.tubev=e.traceCoordinate[4],t.tubew=e.traceCoordinate[5],t.norm=e.traceCoordinate[6],t.divergence=e.traceCoordinate[7],delete t.x,delete t.y,delete t.z,t},meta:{}}},57564:function(t,e,r){"use strict";var n=r(9012),i=r(5386).f,a=r(5386).s,o=r(50693),s=r(27670).Y,l=r(34e3),u=r(7055),c=r(1426).extendFlat;t.exports={labels:{valType:"data_array",editType:"calc"},parents:{valType:"data_array",editType:"calc"},values:{valType:"data_array",editType:"calc"},branchvalues:{valType:"enumerated",values:["remainder","total"],dflt:"remainder",editType:"calc"},count:{valType:"flaglist",flags:["branches","leaves"],dflt:"leaves",editType:"calc"},level:{valType:"any",editType:"plot",anim:!0},maxdepth:{valType:"integer",editType:"plot",dflt:-1},marker:c({colors:{valType:"data_array",editType:"calc"},line:{color:c({},l.marker.line.color,{dflt:null}),width:c({},l.marker.line.width,{dflt:1}),editType:"calc"},editType:"calc"},o("marker",{colorAttr:"colors",anim:!1})),leaf:{opacity:{valType:"number",editType:"style",min:0,max:1},editType:"plot"},text:l.text,textinfo:{valType:"flaglist",flags:["label","text","value","current path","percent root","percent entry","percent parent"],extras:["none"],editType:"plot"},texttemplate:a({editType:"plot"},{keys:u.eventDataKeys.concat(["label","value"])}),hovertext:l.hovertext,hoverinfo:c({},n.hoverinfo,{flags:["label","text","value","name","current path","percent root","percent entry","percent parent"],dflt:"label+text+value+name"}),hovertemplate:i({},{keys:u.eventDataKeys}),textfont:l.textfont,insidetextorientation:l.insidetextorientation,insidetextfont:l.insidetextfont,outsidetextfont:c({},l.outsidetextfont,{}),rotation:{valType:"angle",dflt:0,editType:"plot"},sort:l.sort,root:{color:{valType:"color",editType:"calc",dflt:"rgba(0,0,0,0)"},editType:"calc"},domain:s({name:"sunburst",trace:!0,editType:"calc"})}},66888:function(t,e,r){"use strict";var n=r(74875);e.name="sunburst",e.plot=function(t,r,i,a){n.plotBasePlot(e.name,t,r,i,a)},e.clean=function(t,r,i,a){n.cleanBasePlot(e.name,t,r,i,a)}},52147:function(t,e,r){"use strict";var n=r(674),i=r(92770),a=r(71828),o=r(21081).makeColorScaleFuncFromTrace,s=r(32354).makePullColorFn,l=r(32354).generateExtendedColors,u=r(21081).calc,c=r(50606).ALMOST_EQUAL,f={},h={},p={};function d(t,e,r){var n=0,i=t.children;if(i){for(var a=i.length,o=0;o<a;o++)n+=d(i[o],e,r);r.branches&&n++}else r.leaves&&n++;return t.value=t.data.data.value=n,e._values||(e._values=[]),e._values[t.data.data.i]=n,n}e.calc=function(t,e){var r,l,f,h,p,v,g=t._fullLayout,y=e.ids,m=a.isArrayOrTypedArray(y),x=e.labels,b=e.parents,_=e.values,w=a.isArrayOrTypedArray(_),T=[],k={},A={},M=function(t){return t||"number"==typeof t},S=function(t){return!w||i(_[t])&&_[t]>=0};m?(r=Math.min(y.length,b.length),l=function(t){return M(y[t])&&S(t)},f=function(t){return String(y[t])}):(r=Math.min(x.length,b.length),l=function(t){return M(x[t])&&S(t)},f=function(t){return String(x[t])}),w&&(r=Math.min(r,_.length));for(var E=0;E<r;E++)if(l(E)){var L=f(E),C=M(b[E])?String(b[E]):"",P={i:E,id:L,pid:C,label:M(x[E])?String(x[E]):""};w&&(P.v=+_[E]),T.push(P),p=L,k[h=C]?k[h].push(p):k[h]=[p],A[p]=1}if(k[""]){if(k[""].length>1){for(var O=a.randstr(),I=0;I<T.length;I++)""===T[I].pid&&(T[I].pid=O);T.unshift({hasMultipleRoots:!0,id:O,pid:"",label:""})}}else{var D,z=[];for(D in k)A[D]||z.push(D);if(1!==z.length)return a.warn(["Multiple implied roots, cannot build",e.type,"hierarchy of",e.name+".","These roots include:",z.join(", ")].join(" "));D=z[0],T.unshift({hasImpliedRoot:!0,id:D,pid:"",label:D})}try{v=n.stratify().id((function(t){return t.id})).parentId((function(t){return t.pid}))(T)}catch(t){return a.warn(["Failed to build",e.type,"hierarchy of",e.name+".","Error:",t.message].join(" "))}var R=n.hierarchy(v),F=!1;if(w)switch(e.branchvalues){case"remainder":R.sum((function(t){return t.data.v}));break;case"total":R.each((function(t){var r=t.data.data,n=r.v;if(t.children){var i=t.children.reduce((function(t,e){return t+e.data.data.v}),0);if((r.hasImpliedRoot||r.hasMultipleRoots)&&(n=i),n<i*c)return F=!0,a.warn(["Total value for node",t.data.data.id,"of",e.name,"is smaller than the sum of its children.","\nparent value =",n,"\nchildren sum =",i].join(" "))}t.value=n}))}else d(R,e,{branches:-1!==e.count.indexOf("branches"),leaves:-1!==e.count.indexOf("leaves")});if(!F){var B,N;e.sort&&R.sort((function(t,e){return e.value-t.value}));var j=e.marker.colors||[],U=!!j.length;return e._hasColorscale?(U||(j=w?e.values:e._values),u(t,e,{vals:j,containerStr:"marker",cLetter:"c"}),N=o(e.marker)):B=s(g["_"+e.type+"colormap"]),R.each((function(t){var r=t.data.data;r.color=e._hasColorscale?N(j[r.i]):B(j[r.i],r.id)})),T[0].hierarchy=R,T}},e._runCrossTraceCalc=function(t,e){var r=e._fullLayout,n=e.calcdata,i=r[t+"colorway"],a=r["_"+t+"colormap"];r["extend"+t+"colors"]&&(i=l(i,"icicle"===t?p:"treemap"===t?h:f));var o,s=0;function u(t){var e=t.data.data,r=e.id;!1===e.color&&(a[r]?e.color=a[r]:t.parent?t.parent.parent?e.color=t.parent.data.data.color:(a[r]=e.color=i[s%i.length],s++):e.color=o)}for(var c=0;c<n.length;c++){var d=n[c][0];d.trace.type===t&&d.hierarchy&&(o=d.trace.root.color,d.hierarchy.each(u))}},e.crossTraceCalc=function(t){return e._runCrossTraceCalc("sunburst",t)}},7055:function(t){"use strict";t.exports={CLICK_TRANSITION_TIME:750,CLICK_TRANSITION_EASING:"linear",eventDataKeys:["currentPath","root","entry","percentRoot","percentEntry","percentParent"]}},17094:function(t,e,r){"use strict";var n=r(71828),i=r(57564),a=r(27670).c,o=r(90769).handleText,s=r(21081),l=s.hasColorscale,u=s.handleDefaults;t.exports=function(t,e,r,s){function c(r,a){return n.coerce(t,e,i,r,a)}var f=c("labels"),h=c("parents");if(f&&f.length&&h&&h.length){var p=c("values");p&&p.length?c("branchvalues"):c("count"),c("level"),c("maxdepth"),c("marker.line.width")&&c("marker.line.color",s.paper_bgcolor),c("marker.colors");var d=e._hasColorscale=l(t,"marker","colors")||(t.marker||{}).coloraxis;d&&u(t,e,s,c,{prefix:"marker.",cLetter:"c"}),c("leaf.opacity",d?1:.7);var v=c("text");c("texttemplate"),e.texttemplate||c("textinfo",Array.isArray(v)?"text+label":"label"),c("hovertext"),c("hovertemplate"),o(t,e,s,c,"auto",{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),c("insidetextorientation"),c("sort"),c("rotation"),c("root.color"),a(e,s,c),e._length=null}else e.visible=!1}},83523:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(23469).appendArrayPointValue,o=r(30211),s=r(71828),l=r(11086),u=r(2791),c=r(53581).formatPieValue;function f(t,e,r){for(var n=t.data.data,i={curveNumber:e.index,pointNumber:n.i,data:e._input,fullData:e},o=0;o<r.length;o++){var s=r[o];s in t&&(i[s]=t[s])}return"parentString"in t&&!u.isHierarchyRoot(t)&&(i.parent=t.parentString),a(i,e,n.i),i}t.exports=function(t,e,r,a,h){var p=a[0],d=p.trace,v=p.hierarchy,g="sunburst"===d.type,y="treemap"===d.type||"icicle"===d.type;"_hasHoverLabel"in d||(d._hasHoverLabel=!1),"_hasHoverEvent"in d||(d._hasHoverEvent=!1),t.on("mouseover",(function(i){var a=r._fullLayout;if(!r._dragging&&!1!==a.hovermode){var l,m=r._fullData[d.index],x=i.data.data,b=x.i,_=u.isHierarchyRoot(i),w=u.getParent(v,i),T=u.getValue(i),k=function(t){return s.castOption(m,b,t)},A=k("hovertemplate"),M=o.castHoverinfo(m,a,b),S=a.separators;if(A||M&&"none"!==M&&"skip"!==M){var E,L;g&&(E=p.cx+i.pxmid[0]*(1-i.rInscribed),L=p.cy+i.pxmid[1]*(1-i.rInscribed)),y&&(E=i._hoverX,L=i._hoverY);var C,P={},O=[],I=[],D=function(t){return-1!==O.indexOf(t)};M&&(O="all"===M?m._module.attributes.hoverinfo.flags:M.split("+")),P.label=x.label,D("label")&&P.label&&I.push(P.label),x.hasOwnProperty("v")&&(P.value=x.v,P.valueLabel=c(P.value,S),D("value")&&I.push(P.valueLabel)),P.currentPath=i.currentPath=u.getPath(i.data),D("current path")&&!_&&I.push(P.currentPath);var z=[],R=function(){-1===z.indexOf(C)&&(I.push(C),z.push(C))};P.percentParent=i.percentParent=T/u.getValue(w),P.parent=i.parentString=u.getPtLabel(w),D("percent parent")&&(C=u.formatPercent(P.percentParent,S)+" of "+P.parent,R()),P.percentEntry=i.percentEntry=T/u.getValue(e),P.entry=i.entry=u.getPtLabel(e),!D("percent entry")||_||i.onPathbar||(C=u.formatPercent(P.percentEntry,S)+" of "+P.entry,R()),P.percentRoot=i.percentRoot=T/u.getValue(v),P.root=i.root=u.getPtLabel(v),D("percent root")&&!_&&(C=u.formatPercent(P.percentRoot,S)+" of "+P.root,R()),P.text=k("hovertext")||k("text"),D("text")&&(C=P.text,s.isValidTextValue(C)&&I.push(C)),l=[f(i,m,h.eventDataKeys)];var F={trace:m,y:L,_x0:i._x0,_x1:i._x1,_y0:i._y0,_y1:i._y1,text:I.join("<br>"),name:A||D("name")?m.name:void 0,color:k("hoverlabel.bgcolor")||x.color,borderColor:k("hoverlabel.bordercolor"),fontFamily:k("hoverlabel.font.family"),fontSize:k("hoverlabel.font.size"),fontColor:k("hoverlabel.font.color"),nameLength:k("hoverlabel.namelength"),textAlign:k("hoverlabel.align"),hovertemplate:A,hovertemplateLabels:P,eventData:l};g&&(F.x0=E-i.rInscribed*i.rpx1,F.x1=E+i.rInscribed*i.rpx1,F.idealAlign=i.pxmid[0]<0?"left":"right"),y&&(F.x=E,F.idealAlign=E<0?"left":"right");var B=[];o.loneHover(F,{container:a._hoverlayer.node(),outerContainer:a._paper.node(),gd:r,inOut_bbox:B}),l[0].bbox=B[0],d._hasHoverLabel=!0}if(y){var N=t.select("path.surface");h.styleOne(N,i,m,{hovered:!0})}d._hasHoverEvent=!0,r.emit("plotly_hover",{points:l||[f(i,m,h.eventDataKeys)],event:n.event})}})),t.on("mouseout",(function(e){var i=r._fullLayout,a=r._fullData[d.index],s=n.select(this).datum();if(d._hasHoverEvent&&(e.originalEvent=n.event,r.emit("plotly_unhover",{points:[f(s,a,h.eventDataKeys)],event:n.event}),d._hasHoverEvent=!1),d._hasHoverLabel&&(o.loneUnhover(i._hoverlayer.node()),d._hasHoverLabel=!1),y){var l=t.select("path.surface");h.styleOne(l,s,a,{hovered:!1})}})),t.on("click",(function(t){var e=r._fullLayout,a=r._fullData[d.index],s=g&&(u.isHierarchyRoot(t)||u.isLeaf(t)),c=u.getPtId(t),p=u.isEntry(t)?u.findEntryWithChild(v,c):u.findEntryWithLevel(v,c),y=u.getPtId(p),m={points:[f(t,a,h.eventDataKeys)],event:n.event};s||(m.nextLevel=y);var x=l.triggerHandler(r,"plotly_"+d.type+"click",m);if(!1!==x&&e.hovermode&&(r._hoverdata=[f(t,a,h.eventDataKeys)],o.click(r,n.event)),!s&&!1!==x&&!r._dragging&&!r._transitioning){i.call("_storeDirectGUIEdit",a,e._tracePreGUI[a.uid],{level:a.level});var b={data:[{level:y}],traces:[d.index]},_={frame:{redraw:!1,duration:h.transitionTime},transition:{duration:h.transitionTime,easing:h.transitionEasing},mode:"immediate",fromcurrent:!0};o.loneUnhover(e._hoverlayer.node()),i.call("animate",r,b,_)}}))}},2791:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(6964),o=r(53581);function s(t){return t.data.data.pid}e.findEntryWithLevel=function(t,r){var n;return r&&t.eachAfter((function(t){if(e.getPtId(t)===r)return n=t.copy()})),n||t},e.findEntryWithChild=function(t,r){var n;return t.eachAfter((function(t){for(var i=t.children||[],a=0;a<i.length;a++){var o=i[a];if(e.getPtId(o)===r)return n=t.copy()}})),n||t},e.isEntry=function(t){return!t.parent},e.isLeaf=function(t){return!t.children},e.getPtId=function(t){return t.data.data.id},e.getPtLabel=function(t){return t.data.data.label},e.getValue=function(t){return t.value},e.isHierarchyRoot=function(t){return""===s(t)},e.setSliceCursor=function(t,r,n){var i=n.isTransitioning;if(!i){var o=t.datum();i=n.hideOnRoot&&e.isHierarchyRoot(o)||n.hideOnLeaves&&e.isLeaf(o)}a(t,i?null:"pointer")},e.getInsideTextFontKey=function(t,e,r,i,a){var o=(a||{}).onPathbar?"pathbar.textfont":"insidetextfont",s=r.data.data.i;return n.castOption(e,s,o+"."+t)||n.castOption(e,s,"textfont."+t)||i.size},e.getOutsideTextFontKey=function(t,e,r,i){var a=r.data.data.i;return n.castOption(e,a,"outsidetextfont."+t)||n.castOption(e,a,"textfont."+t)||i.size},e.isOutsideText=function(t,r){return!t._hasColorscale&&e.isHierarchyRoot(r)},e.determineTextFont=function(t,r,a,o){return e.isOutsideText(t,r)?function(t,r,n){return{color:e.getOutsideTextFontKey("color",t,r,n),family:e.getOutsideTextFontKey("family",t,r,n),size:e.getOutsideTextFontKey("size",t,r,n)}}(t,r,a):function(t,r,a,o){var s=(o||{}).onPathbar,l=r.data.data,u=l.i,c=n.castOption(t,u,(s?"pathbar.textfont":"insidetextfont")+".color");return!c&&t._input.textfont&&(c=n.castOption(t._input,u,"textfont.color")),{color:c||i.contrast(l.color),family:e.getInsideTextFontKey("family",t,r,a,o),size:e.getInsideTextFontKey("size",t,r,a,o)}}(t,r,a,o)},e.hasTransition=function(t){return!!(t&&t.duration>0)},e.getMaxDepth=function(t){return t.maxdepth>=0?t.maxdepth:1/0},e.isHeader=function(t,r){return!(e.isLeaf(t)||t.depth===r._maxDepth-1)},e.getParent=function(t,r){return e.findEntryWithLevel(t,s(r))},e.listPath=function(t,r){var n=t.parent;if(!n)return[];var i=r?[n.data[r]]:[n];return e.listPath(n,r).concat(i)},e.getPath=function(t){return e.listPath(t,"label").join("/")+"/"},e.formatValue=o.formatPieValue,e.formatPercent=function(t,e){var r=n.formatPercent(t,0);return"0%"===r&&(r=o.formatPiePercent(t,e)),r}},87619:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"sunburst",basePlotModule:r(66888),categories:[],animatable:!0,attributes:r(57564),layoutAttributes:r(2654),supplyDefaults:r(17094),supplyLayoutDefaults:r(57034),calc:r(52147).calc,crossTraceCalc:r(52147).crossTraceCalc,plot:r(24714).plot,style:r(29969).style,colorbar:r(4898),meta:{}}},2654:function(t){"use strict";t.exports={sunburstcolorway:{valType:"colorlist",editType:"calc"},extendsunburstcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},57034:function(t,e,r){"use strict";var n=r(71828),i=r(2654);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("sunburstcolorway",e.colorway),r("extendsunburstcolors")}},24714:function(t,e,r){"use strict";var n=r(39898),i=r(674),a=r(29502).sX,o=r(91424),s=r(71828),l=r(63893),u=r(72597),c=u.recordMinTextSize,f=u.clearMinTextSize,h=r(14575),p=r(53581).getRotationAngle,d=h.computeTransform,v=h.transformInsideText,g=r(29969).styleOne,y=r(16688).resizeText,m=r(83523),x=r(7055),b=r(2791);function _(t,r,u,f){var h=t._context.staticPlot,y=t._fullLayout,_=!y.uniformtext.mode&&b.hasTransition(f),T=n.select(u).selectAll("g.slice"),k=r[0],A=k.trace,M=k.hierarchy,S=b.findEntryWithLevel(M,A.level),E=b.getMaxDepth(A),L=y._size,C=A.domain,P=L.w*(C.x[1]-C.x[0]),O=L.h*(C.y[1]-C.y[0]),I=.5*Math.min(P,O),D=k.cx=L.l+L.w*(C.x[1]+C.x[0])/2,z=k.cy=L.t+L.h*(1-C.y[0])-O/2;if(!S)return T.remove();var R=null,F={};_&&T.each((function(t){F[b.getPtId(t)]={rpx0:t.rpx0,rpx1:t.rpx1,x0:t.x0,x1:t.x1,transform:t.transform},!R&&b.isEntry(t)&&(R=t)}));var B=function(t){return i.partition().size([2*Math.PI,t.height+1])(t)}(S).descendants(),N=S.height+1,j=0,U=E;k.hasMultipleRoots&&b.isHierarchyRoot(S)&&(B=B.slice(1),N-=1,j=1,U+=1),B=B.filter((function(t){return t.y1<=U}));var V=p(A.rotation);V&&B.forEach((function(t){t.x0+=V,t.x1+=V}));var H=Math.min(N,E),q=function(t){return(t-j)/H*I},G=function(t,e){return[t*Math.cos(e),-t*Math.sin(e)]},Z=function(t){return s.pathAnnulus(t.rpx0,t.rpx1,t.x0,t.x1,D,z)},Y=function(t){return D+w(t)[0]*(t.transform.rCenter||0)+(t.transform.x||0)},W=function(t){return z+w(t)[1]*(t.transform.rCenter||0)+(t.transform.y||0)};(T=T.data(B,b.getPtId)).enter().append("g").classed("slice",!0),_?T.exit().transition().each((function(){var t=n.select(this);t.select("path.surface").transition().attrTween("d",(function(t){var e=function(t){var e,r=b.getPtId(t),n=F[r],i=F[b.getPtId(S)];if(i){var o=(t.x1>i.x1?2*Math.PI:0)+V;e=t.rpx1<i.rpx1?{x0:t.x0,x1:t.x1,rpx0:0,rpx1:0}:{x0:o,x1:o,rpx0:t.rpx0,rpx1:t.rpx1}}else{var s,l=b.getPtId(t.parent);T.each((function(t){if(b.getPtId(t)===l)return s=t}));var u,c=s.children;c.forEach((function(t,e){if(b.getPtId(t)===r)return u=e}));var f=c.length,h=a(s.x0,s.x1);e={rpx0:I,rpx1:I,x0:h(u/f),x1:h((u+1)/f)}}return a(n,e)}(t);return function(t){return Z(e(t))}})),t.select("g.slicetext").attr("opacity",0)})).remove():T.exit().remove(),T.order();var X=null;if(_&&R){var J=b.getPtId(R);T.each((function(t){null===X&&b.getPtId(t)===J&&(X=t.x1)}))}var K=T;function $(t){var e=t.parent,r=F[b.getPtId(e)],n={};if(r){var i=e.children,o=i.indexOf(t),s=i.length,l=a(r.x0,r.x1);n.x0=l(o/s),n.x1=l(o/s)}else n.x0=n.x1=0;return n}_&&(K=K.transition().each("end",(function(){var e=n.select(this);b.setSliceCursor(e,t,{hideOnRoot:!0,hideOnLeaves:!0,isTransitioning:!1})}))),K.each((function(i){var u=n.select(this),f=s.ensureSingle(u,"path","surface",(function(t){t.style("pointer-events",h?"none":"all")}));i.rpx0=q(i.y0),i.rpx1=q(i.y1),i.xmid=(i.x0+i.x1)/2,i.pxmid=G(i.rpx1,i.xmid),i.midangle=-(i.xmid-Math.PI/2),i.startangle=-(i.x0-Math.PI/2),i.stopangle=-(i.x1-Math.PI/2),i.halfangle=.5*Math.min(s.angleDelta(i.x0,i.x1)||Math.PI,Math.PI),i.ring=1-i.rpx0/i.rpx1,i.rInscribed=function(t){return 0===t.rpx0&&s.isFullCircle([t.x0,t.x1])?1:Math.max(0,Math.min(1/(1+1/Math.sin(t.halfangle)),t.ring/2))}(i),_?f.transition().attrTween("d",(function(t){var e=function(t){var e,r=F[b.getPtId(t)],n={x0:t.x0,x1:t.x1,rpx0:t.rpx0,rpx1:t.rpx1};if(r)e=r;else if(R)if(t.parent)if(X){var i=(t.x1>X?2*Math.PI:0)+V;e={x0:i,x1:i}}else e={rpx0:I,rpx1:I},s.extendFlat(e,$(t));else e={rpx0:0,rpx1:0};else e={x0:V,x1:V};return a(e,n)}(t);return function(t){return Z(e(t))}})):f.attr("d",Z),u.call(m,S,t,r,{eventDataKeys:x.eventDataKeys,transitionTime:x.CLICK_TRANSITION_TIME,transitionEasing:x.CLICK_TRANSITION_EASING}).call(b.setSliceCursor,t,{hideOnRoot:!0,hideOnLeaves:!0,isTransitioning:t._transitioning}),f.call(g,i,A);var p=s.ensureSingle(u,"g","slicetext"),w=s.ensureSingle(p,"text","",(function(t){t.attr("data-notex",1)})),T=s.ensureUniformFontSize(t,b.determineTextFont(A,i,y.font));w.text(e.formatSliceLabel(i,S,A,r,y)).classed("slicetext",!0).attr("text-anchor","middle").call(o.font,T).call(l.convertToTspans,t);var M=o.bBox(w.node());i.transform=v(M,i,k),i.transform.targetX=Y(i),i.transform.targetY=W(i);var E=function(t,e){var r=t.transform;return d(r,e),r.fontSize=T.size,c(A.type,r,y),s.getTextTransform(r)};_?w.transition().attrTween("transform",(function(t){var e=function(t){var e,r=F[b.getPtId(t)],n=t.transform;if(r)e=r;else if(e={rpx1:t.rpx1,transform:{textPosAngle:n.textPosAngle,scale:0,rotate:n.rotate,rCenter:n.rCenter,x:n.x,y:n.y}},R)if(t.parent)if(X){var i=t.x1>X?2*Math.PI:0;e.x0=e.x1=i}else s.extendFlat(e,$(t));else e.x0=e.x1=V;else e.x0=e.x1=V;var o=a(e.transform.textPosAngle,t.transform.textPosAngle),l=a(e.rpx1,t.rpx1),u=a(e.x0,t.x0),f=a(e.x1,t.x1),h=a(e.transform.scale,n.scale),p=a(e.transform.rotate,n.rotate),d=0===n.rCenter?3:0===e.transform.rCenter?1/3:1,v=a(e.transform.rCenter,n.rCenter);return function(t){var e=l(t),r=u(t),i=f(t),a=function(t){return v(Math.pow(t,d))}(t),s={pxmid:G(e,(r+i)/2),rpx1:e,transform:{textPosAngle:o(t),rCenter:a,x:n.x,y:n.y}};return c(A.type,n,y),{transform:{targetX:Y(s),targetY:W(s),scale:h(t),rotate:p(t),rCenter:a}}}}(t);return function(t){return E(e(t),M)}})):w.attr("transform",E(i,M))}))}function w(t){return e=t.rpx1,r=t.transform.textPosAngle,[e*Math.sin(r),-e*Math.cos(r)];var e,r}e.plot=function(t,e,r,i){var a,o,s=t._fullLayout,l=s._sunburstlayer,u=!r,c=!s.uniformtext.mode&&b.hasTransition(r);f("sunburst",s),(a=l.selectAll("g.trace.sunburst").data(e,(function(t){return t[0].trace.uid}))).enter().append("g").classed("trace",!0).classed("sunburst",!0).attr("stroke-linejoin","round"),a.order(),c?(i&&(o=i()),n.transition().duration(r.duration).ease(r.easing).each("end",(function(){o&&o()})).each("interrupt",(function(){o&&o()})).each((function(){l.selectAll("g.trace").each((function(e){_(t,e,this,r)}))}))):(a.each((function(e){_(t,e,this,r)})),s.uniformtext.mode&&y(t,s._sunburstlayer.selectAll(".trace"),"sunburst")),u&&a.exit().remove()},e.formatSliceLabel=function(t,e,r,n,i){var a=r.texttemplate,o=r.textinfo;if(!(a||o&&"none"!==o))return"";var l=i.separators,u=n[0],c=t.data.data,f=u.hierarchy,h=b.isHierarchyRoot(t),p=b.getParent(f,t),d=b.getValue(t);if(!a){var v,g=o.split("+"),y=function(t){return-1!==g.indexOf(t)},m=[];if(y("label")&&c.label&&m.push(c.label),c.hasOwnProperty("v")&&y("value")&&m.push(b.formatValue(c.v,l)),!h){y("current path")&&m.push(b.getPath(t.data));var x=0;y("percent parent")&&x++,y("percent entry")&&x++,y("percent root")&&x++;var _=x>1;if(x){var w,T=function(t){v=b.formatPercent(w,l),_&&(v+=" of "+t),m.push(v)};y("percent parent")&&!h&&(w=d/b.getValue(p),T("parent")),y("percent entry")&&(w=d/b.getValue(e),T("entry")),y("percent root")&&(w=d/b.getValue(f),T("root"))}}return y("text")&&(v=s.castOption(r,c.i,"text"),s.isValidTextValue(v)&&m.push(v)),m.join("<br>")}var k=s.castOption(r,c.i,"texttemplate");if(!k)return"";var A={};c.label&&(A.label=c.label),c.hasOwnProperty("v")&&(A.value=c.v,A.valueLabel=b.formatValue(c.v,l)),A.currentPath=b.getPath(t.data),h||(A.percentParent=d/b.getValue(p),A.percentParentLabel=b.formatPercent(A.percentParent,l),A.parent=b.getPtLabel(p)),A.percentEntry=d/b.getValue(e),A.percentEntryLabel=b.formatPercent(A.percentEntry,l),A.entry=b.getPtLabel(e),A.percentRoot=d/b.getValue(f),A.percentRootLabel=b.formatPercent(A.percentRoot,l),A.root=b.getPtLabel(f),c.hasOwnProperty("color")&&(A.color=c.color);var M=s.castOption(r,c.i,"text");return(s.isValidTextValue(M)||""===M)&&(A.text=M),A.customdata=s.castOption(r,c.i,"customdata"),s.texttemplateString(k,A,i._d3locale,A,r._meta||{})}},29969:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(71828),o=r(72597).resizeText;function s(t,e,r){var n=e.data.data,o=!e.children,s=n.i,l=a.castOption(r,s,"marker.line.color")||i.defaultLine,u=a.castOption(r,s,"marker.line.width")||0;t.style("stroke-width",u).call(i.fill,n.color).call(i.stroke,l).style("opacity",o?r.leaf.opacity:null)}t.exports={style:function(t){var e=t._fullLayout._sunburstlayer.selectAll(".trace");o(t,e,"sunburst"),e.each((function(t){var e=n.select(this),r=t[0].trace;e.style("opacity",r.opacity),e.selectAll("path.surface").each((function(t){n.select(this).call(s,t,r)}))}))},styleOne:s}},54532:function(t,e,r){"use strict";var n=r(7901),i=r(50693),a=r(12663).axisHoverFormat,o=r(5386).f,s=r(9012),l=r(1426).extendFlat,u=r(30962).overrideAll;function c(t){return{show:{valType:"boolean",dflt:!1},start:{valType:"number",dflt:null,editType:"plot"},end:{valType:"number",dflt:null,editType:"plot"},size:{valType:"number",dflt:null,min:0,editType:"plot"},project:{x:{valType:"boolean",dflt:!1},y:{valType:"boolean",dflt:!1},z:{valType:"boolean",dflt:!1}},color:{valType:"color",dflt:n.defaultLine},usecolormap:{valType:"boolean",dflt:!1},width:{valType:"number",min:1,max:16,dflt:2},highlight:{valType:"boolean",dflt:!0},highlightcolor:{valType:"color",dflt:n.defaultLine},highlightwidth:{valType:"number",min:1,max:16,dflt:2}}}var f=t.exports=u(l({z:{valType:"data_array"},x:{valType:"data_array"},y:{valType:"data_array"},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:o(),xhoverformat:a("x"),yhoverformat:a("y"),zhoverformat:a("z"),connectgaps:{valType:"boolean",dflt:!1,editType:"calc"},surfacecolor:{valType:"data_array"}},i("",{colorAttr:"z or surfacecolor",showScaleDflt:!0,autoColorDflt:!1,editTypeOverride:"calc"}),{contours:{x:c(),y:c(),z:c()},hidesurface:{valType:"boolean",dflt:!1},lightposition:{x:{valType:"number",min:-1e5,max:1e5,dflt:10},y:{valType:"number",min:-1e5,max:1e5,dflt:1e4},z:{valType:"number",min:-1e5,max:1e5,dflt:0}},lighting:{ambient:{valType:"number",min:0,max:1,dflt:.8},diffuse:{valType:"number",min:0,max:1,dflt:.8},specular:{valType:"number",min:0,max:2,dflt:.05},roughness:{valType:"number",min:0,max:1,dflt:.5},fresnel:{valType:"number",min:0,max:5,dflt:.2}},opacity:{valType:"number",min:0,max:1,dflt:1},opacityscale:{valType:"any",editType:"calc"},_deprecated:{zauto:l({},i.zauto,{}),zmin:l({},i.zmin,{}),zmax:l({},i.zmax,{})},hoverinfo:l({},s.hoverinfo),showlegend:l({},s.showlegend,{dflt:!1})}),"calc","nested");f.x.editType=f.y.editType=f.z.editType="calc+clearAxisTypes",f.transforms=void 0},18396:function(t,e,r){"use strict";var n=r(78803);t.exports=function(t,e){e.surfacecolor?n(t,e,{vals:e.surfacecolor,containerStr:"",cLetter:"c"}):n(t,e,{vals:e.z,containerStr:"",cLetter:"c"})}},43768:function(t,e,r){"use strict";var n=r(9330).gl_surface3d,i=r(9330).ndarray,a=r(9330).ndarray_linear_interpolate.d2,o=r(824),s=r(43907),l=r(71828).isArrayOrTypedArray,u=r(81697).parseColorScale,c=r(78614),f=r(21081).extractOpts;function h(t,e,r){this.scene=t,this.uid=r,this.surface=e,this.data=null,this.showContour=[!1,!1,!1],this.contourStart=[null,null,null],this.contourEnd=[null,null,null],this.contourSize=[0,0,0],this.minValues=[1/0,1/0,1/0],this.maxValues=[-1/0,-1/0,-1/0],this.dataScaleX=1,this.dataScaleY=1,this.refineData=!0,this.objectOffset=[0,0,0]}var p=h.prototype;p.getXat=function(t,e,r,n){var i=l(this.data.x)?l(this.data.x[0])?this.data.x[e][t]:this.data.x[t]:t;return void 0===r?i:n.d2l(i,0,r)},p.getYat=function(t,e,r,n){var i=l(this.data.y)?l(this.data.y[0])?this.data.y[e][t]:this.data.y[e]:e;return void 0===r?i:n.d2l(i,0,r)},p.getZat=function(t,e,r,n){var i=this.data.z[e][t];return null===i&&this.data.connectgaps&&this.data._interpolatedZ&&(i=this.data._interpolatedZ[e][t]),void 0===r?i:n.d2l(i,0,r)},p.handlePick=function(t){if(t.object===this.surface){var e=(t.data.index[0]-1)/this.dataScaleX-1,r=(t.data.index[1]-1)/this.dataScaleY-1,n=Math.max(Math.min(Math.round(e),this.data.z[0].length-1),0),i=Math.max(Math.min(Math.round(r),this.data._ylength-1),0);t.index=[n,i],t.traceCoordinate=[this.getXat(n,i),this.getYat(n,i),this.getZat(n,i)],t.dataCoordinate=[this.getXat(n,i,this.data.xcalendar,this.scene.fullSceneLayout.xaxis),this.getYat(n,i,this.data.ycalendar,this.scene.fullSceneLayout.yaxis),this.getZat(n,i,this.data.zcalendar,this.scene.fullSceneLayout.zaxis)];for(var a=0;a<3;a++){null!=t.dataCoordinate[a]&&(t.dataCoordinate[a]*=this.scene.dataScale[a])}var o=this.data.hovertext||this.data.text;return Array.isArray(o)&&o[i]&&void 0!==o[i][n]?t.textLabel=o[i][n]:t.textLabel=o||"",t.data.dataCoordinate=t.dataCoordinate.slice(),this.surface.highlight(t.data),this.scene.glplot.spikes.position=t.dataCoordinate,!0}};var d=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999];function v(t,e){if(t<e)return 0;for(var r=0;0===Math.floor(t%e);)t/=e,r++;return r}function g(t){for(var e=[],r=0;r<d.length;r++){var n=d[r];e.push(v(t,n))}return e}function y(t){for(var e=g(t),r=t,n=0;n<d.length;n++)if(e[n]>0){r=d[n];break}return r}function m(t,e){if(!(t<1||e<1)){for(var r=g(t),n=g(e),i=1,a=0;a<d.length;a++)i*=Math.pow(d[a],Math.max(r[a],n[a]));return i}}p.calcXnums=function(t){var e,r=[];for(e=1;e<t;e++){var n=this.getXat(e-1,0),i=this.getXat(e,0);r[e-1]=i!==n&&null!=n&&null!=i?Math.abs(i-n):0}var a=0;for(e=1;e<t;e++)a+=r[e-1];for(e=1;e<t;e++)0===r[e-1]?r[e-1]=1:r[e-1]=Math.round(a/r[e-1]);return r},p.calcYnums=function(t){var e,r=[];for(e=1;e<t;e++){var n=this.getYat(0,e-1),i=this.getYat(0,e);r[e-1]=i!==n&&null!=n&&null!=i?Math.abs(i-n):0}var a=0;for(e=1;e<t;e++)a+=r[e-1];for(e=1;e<t;e++)0===r[e-1]?r[e-1]=1:r[e-1]=Math.round(a/r[e-1]);return r};var x=[1,2,4,6,12,24,36,48,60,120,180,240,360,720,840,1260],b=x[9],_=x[13];function w(t,e,r){var n=r[8]+r[2]*e[0]+r[5]*e[1];return t[0]=(r[6]+r[0]*e[0]+r[3]*e[1])/n,t[1]=(r[7]+r[1]*e[0]+r[4]*e[1])/n,t}function T(t,e,r){return function(t,e,r,n){for(var i=[0,0],o=t.shape[0],s=t.shape[1],l=0;l<o;l++)for(var u=0;u<s;u++)r(i,[l,u],n),t.set(l,u,a(e,i[0],i[1]))}(t,e,w,r),t}function k(t,e){for(var r=!1,n=0;n<t.length;n++)if(e===t[n]){r=!0;break}!1===r&&t.push(e)}p.estimateScale=function(t,e){for(var r=1+function(t){if(0!==t.length){for(var e=1,r=0;r<t.length;r++)e=m(e,t[r]);return e}}(0===e?this.calcXnums(t):this.calcYnums(t));r<b;)r*=2;for(;r>_;)r--,r/=y(r),++r<b&&(r=_);var n=Math.round(r/t);return n>1?n:1},p.refineCoords=function(t){for(var e=this.dataScaleX,r=this.dataScaleY,n=t[0].shape[0],a=t[0].shape[1],o=0|Math.floor(t[0].shape[0]*e+1),s=0|Math.floor(t[0].shape[1]*r+1),l=1+n+1,u=1+a+1,c=i(new Float32Array(l*u),[l,u]),f=[1/e,0,0,0,1/r,0,0,0,1],h=0;h<t.length;++h){this.surface.padField(c,t[h]);var p=i(new Float32Array(o*s),[o,s]);T(p,c,f),t[h]=p}},p.setContourLevels=function(){var t,e,r,n=[[],[],[]],i=[!1,!1,!1],a=!1;for(t=0;t<3;++t)if(this.showContour[t]&&(a=!0,this.contourSize[t]>0&&null!==this.contourStart[t]&&null!==this.contourEnd[t]&&this.contourEnd[t]>this.contourStart[t]))for(i[t]=!0,e=this.contourStart[t];e<this.contourEnd[t];e+=this.contourSize[t])r=e*this.scene.dataScale[t],k(n[t],r);if(a){var o=[[],[],[]];for(t=0;t<3;++t)this.showContour[t]&&(o[t]=i[t]?n[t]:this.scene.contourLevels[t]);this.surface.update({levels:o})}},p.update=function(t){var e,r,n,a,l=this.scene,h=l.fullSceneLayout,p=this.surface,d=u(t),v=l.dataScale,g=t.z[0].length,y=t._ylength,m=l.contourLevels;this.data=t;var x=[];for(e=0;e<3;e++)for(x[e]=[],r=0;r<g;r++)x[e][r]=[];for(r=0;r<g;r++)for(n=0;n<y;n++)x[0][r][n]=this.getXat(r,n,t.xcalendar,h.xaxis),x[1][r][n]=this.getYat(r,n,t.ycalendar,h.yaxis),x[2][r][n]=this.getZat(r,n,t.zcalendar,h.zaxis);if(t.connectgaps)for(t._emptypoints=s(x[2]),o(x[2],t._emptypoints),t._interpolatedZ=[],r=0;r<g;r++)for(t._interpolatedZ[r]=[],n=0;n<y;n++)t._interpolatedZ[r][n]=x[2][r][n];for(e=0;e<3;e++)for(r=0;r<g;r++)for(n=0;n<y;n++)null==(a=x[e][r][n])?x[e][r][n]=NaN:a=x[e][r][n]*=v[e];for(e=0;e<3;e++)for(r=0;r<g;r++)for(n=0;n<y;n++)null!=(a=x[e][r][n])&&(this.minValues[e]>a&&(this.minValues[e]=a),this.maxValues[e]<a&&(this.maxValues[e]=a));for(e=0;e<3;e++)this.objectOffset[e]=.5*(this.minValues[e]+this.maxValues[e]);for(e=0;e<3;e++)for(r=0;r<g;r++)for(n=0;n<y;n++)null!=(a=x[e][r][n])&&(x[e][r][n]-=this.objectOffset[e]);var b=[i(new Float32Array(g*y),[g,y]),i(new Float32Array(g*y),[g,y]),i(new Float32Array(g*y),[g,y])];for(e=0;e<3;e++)for(r=0;r<g;r++)for(n=0;n<y;n++)b[e].set(r,n,x[e][r][n]);x=[];var w={colormap:d,levels:[[],[],[]],showContour:[!0,!0,!0],showSurface:!t.hidesurface,contourProject:[[!1,!1,!1],[!1,!1,!1],[!1,!1,!1]],contourWidth:[1,1,1],contourColor:[[1,1,1,1],[1,1,1,1],[1,1,1,1]],contourTint:[1,1,1],dynamicColor:[[1,1,1,1],[1,1,1,1],[1,1,1,1]],dynamicWidth:[1,1,1],dynamicTint:[1,1,1],opacityscale:t.opacityscale,opacity:t.opacity},T=f(t);if(w.intensityBounds=[T.min,T.max],t.surfacecolor){var k=i(new Float32Array(g*y),[g,y]);for(r=0;r<g;r++)for(n=0;n<y;n++)k.set(r,n,t.surfacecolor[n][r]);b.push(k)}else w.intensityBounds[0]*=v[2],w.intensityBounds[1]*=v[2];(_<b[0].shape[0]||_<b[0].shape[1])&&(this.refineData=!1),!0===this.refineData&&(this.dataScaleX=this.estimateScale(b[0].shape[0],0),this.dataScaleY=this.estimateScale(b[0].shape[1],1),1===this.dataScaleX&&1===this.dataScaleY||this.refineCoords(b)),t.surfacecolor&&(w.intensity=b.pop());var A=[!0,!0,!0],M=["x","y","z"];for(e=0;e<3;++e){var S=t.contours[M[e]];A[e]=S.highlight,w.showContour[e]=S.show||S.highlight,w.showContour[e]&&(w.contourProject[e]=[S.project.x,S.project.y,S.project.z],S.show?(this.showContour[e]=!0,w.levels[e]=m[e],p.highlightColor[e]=w.contourColor[e]=c(S.color),S.usecolormap?p.highlightTint[e]=w.contourTint[e]=0:p.highlightTint[e]=w.contourTint[e]=1,w.contourWidth[e]=S.width,this.contourStart[e]=S.start,this.contourEnd[e]=S.end,this.contourSize[e]=S.size):(this.showContour[e]=!1,this.contourStart[e]=null,this.contourEnd[e]=null,this.contourSize[e]=0),S.highlight&&(w.dynamicColor[e]=c(S.highlightcolor),w.dynamicWidth[e]=S.highlightwidth))}(function(t){var e=t[0].rgb,r=t[t.length-1].rgb;return e[0]===r[0]&&e[1]===r[1]&&e[2]===r[2]&&e[3]===r[3]})(d)&&(w.vertexColor=!0),w.objectOffset=this.objectOffset,w.coords=b,p.update(w),p.visible=t.visible,p.enableDynamic=A,p.enableHighlight=A,p.snapToData=!0,"lighting"in t&&(p.ambientLight=t.lighting.ambient,p.diffuseLight=t.lighting.diffuse,p.specularLight=t.lighting.specular,p.roughness=t.lighting.roughness,p.fresnel=t.lighting.fresnel),"lightposition"in t&&(p.lightPosition=[t.lightposition.x,t.lightposition.y,t.lightposition.z])},p.dispose=function(){this.scene.glplot.remove(this.surface),this.surface.dispose()},t.exports=function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new h(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}},91831:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(1586),o=r(54532);function s(t,e,r,n){var i=n("opacityscale");"max"===i?e.opacityscale=[[0,.1],[1,1]]:"min"===i?e.opacityscale=[[0,1],[1,.1]]:"extremes"===i?e.opacityscale=function(t,e){for(var r=[],n=0;n<32;n++){var i=n/31,a=.1+.9*(1-Math.pow(Math.sin(1*i*Math.PI),2));r.push([i,Math.max(0,Math.min(1,a))])}return r}():function(t){var e=0;if(!Array.isArray(t)||t.length<2)return!1;if(!t[0]||!t[t.length-1])return!1;if(0!=+t[0][0]||1!=+t[t.length-1][0])return!1;for(var r=0;r<t.length;r++){var n=t[r];if(2!==n.length||+n[0]<e)return!1;e=+n[0]}return!0}(i)||(e.opacityscale=void 0)}function l(t,e,r){e in t&&!(r in t)&&(t[r]=t[e])}t.exports={supplyDefaults:function(t,e,r,u){var c,f;function h(r,n){return i.coerce(t,e,o,r,n)}var p=h("x"),d=h("y"),v=h("z");if(!v||!v.length||p&&p.length<1||d&&d.length<1)e.visible=!1;else{e._xlength=Array.isArray(p)&&i.isArrayOrTypedArray(p[0])?v.length:v[0].length,e._ylength=v.length,n.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y","z"],u),h("text"),h("hovertext"),h("hovertemplate"),h("xhoverformat"),h("yhoverformat"),h("zhoverformat"),["lighting.ambient","lighting.diffuse","lighting.specular","lighting.roughness","lighting.fresnel","lightposition.x","lightposition.y","lightposition.z","hidesurface","connectgaps","opacity"].forEach((function(t){h(t)}));var g=h("surfacecolor"),y=["x","y","z"];for(c=0;c<3;++c){var m="contours."+y[c],x=h(m+".show"),b=h(m+".highlight");if(x||b)for(f=0;f<3;++f)h(m+".project."+y[f]);x&&(h(m+".color"),h(m+".width"),h(m+".usecolormap")),b&&(h(m+".highlightcolor"),h(m+".highlightwidth")),h(m+".start"),h(m+".end"),h(m+".size")}g||(l(t,"zmin","cmin"),l(t,"zmax","cmax"),l(t,"zauto","cauto")),a(t,e,u,h,{prefix:"",cLetter:"c"}),s(0,e,0,h),e._length=null}},opacityscaleDefaults:s}},93601:function(t,e,r){"use strict";t.exports={attributes:r(54532),supplyDefaults:r(91831).supplyDefaults,colorbar:{min:"cmin",max:"cmax"},calc:r(18396),plot:r(43768),moduleType:"trace",name:"surface",basePlotModule:r(58547),categories:["gl3d","2dMap","showLegend"],meta:{}}},44464:function(t,e,r){"use strict";var n=r(50215),i=r(1426).extendFlat,a=r(30962).overrideAll,o=r(41940),s=r(27670).Y,l=r(12663).descriptionOnlyNumbers;(t.exports=a({domain:s({name:"table",trace:!0}),columnwidth:{valType:"number",arrayOk:!0,dflt:null},columnorder:{valType:"data_array"},header:{values:{valType:"data_array",dflt:[]},format:{valType:"data_array",dflt:[],description:l("cell value")},prefix:{valType:"string",arrayOk:!0,dflt:null},suffix:{valType:"string",arrayOk:!0,dflt:null},height:{valType:"number",dflt:28},align:i({},n.align,{arrayOk:!0}),line:{width:{valType:"number",arrayOk:!0,dflt:1},color:{valType:"color",arrayOk:!0,dflt:"grey"}},fill:{color:{valType:"color",arrayOk:!0,dflt:"white"}},font:i({},o({arrayOk:!0}))},cells:{values:{valType:"data_array",dflt:[]},format:{valType:"data_array",dflt:[],description:l("cell value")},prefix:{valType:"string",arrayOk:!0,dflt:null},suffix:{valType:"string",arrayOk:!0,dflt:null},height:{valType:"number",dflt:20},align:i({},n.align,{arrayOk:!0}),line:{width:{valType:"number",arrayOk:!0,dflt:1},color:{valType:"color",arrayOk:!0,dflt:"grey"}},fill:{color:{valType:"color",arrayOk:!0,dflt:"white"}},font:i({},o({arrayOk:!0}))}},"calc","from-root")).transforms=void 0},99469:function(t,e,r){"use strict";var n=r(27659).a0,i=r(36736),a="table";e.name=a,e.plot=function(t){var e=n(t.calcdata,a)[0];e.length&&i(t,e)},e.clean=function(t,e,r,n){var i=n._has&&n._has(a),o=e._has&&e._has(a);i&&!o&&n._paperdiv.selectAll(".table").remove()}},76333:function(t,e,r){"use strict";var n=r(28984).wrap;t.exports=function(){return n({})}},49850:function(t){"use strict";t.exports={cellPad:8,columnExtentOffset:10,columnTitleOffset:28,emptyHeaderHeight:16,latexCheck:/^\$.*\$$/,goldenRatio:1.618,lineBreaker:"<br>",maxDimensionCount:60,overdrag:45,releaseTransitionDuration:120,releaseTransitionEase:"cubic-out",scrollbarCaptureWidth:18,scrollbarHideDelay:1e3,scrollbarHideDuration:1e3,scrollbarOffset:5,scrollbarWidth:8,transitionDuration:100,transitionEase:"cubic-out",uplift:5,wrapSpacer:" ",wrapSplitCharacter:" ",cn:{table:"table",tableControlView:"table-control-view",scrollBackground:"scroll-background",yColumn:"y-column",columnBlock:"column-block",scrollAreaClip:"scroll-area-clip",scrollAreaClipRect:"scroll-area-clip-rect",columnBoundary:"column-boundary",columnBoundaryClippath:"column-boundary-clippath",columnBoundaryRect:"column-boundary-rect",columnCells:"column-cells",columnCell:"column-cell",cellRect:"cell-rect",cellText:"cell-text",cellTextHolder:"cell-text-holder",scrollbarKit:"scrollbar-kit",scrollbar:"scrollbar",scrollbarSlider:"scrollbar-slider",scrollbarGlyph:"scrollbar-glyph",scrollbarCaptureZone:"scrollbar-capture-zone"}}},51018:function(t,e,r){"use strict";var n=r(49850),i=r(1426).extendFlat,a=r(92770);function o(t){if(Array.isArray(t)){for(var e=0,r=0;r<t.length;r++)e=Math.max(e,o(t[r]));return e}return t}function s(t,e){return t+e}function l(t){var e,r=t.slice(),n=1/0,i=0;for(e=0;e<r.length;e++)Array.isArray(r[e])||(r[e]=[r[e]]),n=Math.min(n,r[e].length),i=Math.max(i,r[e].length);if(n!==i)for(e=0;e<r.length;e++){var a=i-r[e].length;a&&(r[e]=r[e].concat(u(a)))}return r}function u(t){for(var e=new Array(t),r=0;r<t;r++)e[r]="";return e}function c(t){return t.calcdata.columns.reduce((function(e,r){return r.xIndex<t.xIndex?e+r.columnWidth:e}),0)}function f(t,e){return Object.keys(t).map((function(r){return i({},t[r],{auxiliaryBlocks:e})}))}function h(t,e){for(var r,n={},i=0,a=0,o={firstRowIndex:null,lastRowIndex:null,rows:[]},s=0,l=0,u=0;u<t.length;u++)r=t[u],o.rows.push({rowIndex:u,rowHeight:r}),((a+=r)>=e||u===t.length-1)&&(n[i]=o,o.key=l++,o.firstRowIndex=s,o.lastRowIndex=u,o={firstRowIndex:null,lastRowIndex:null,rows:[]},i+=a,s=u+1,a=0);return n}t.exports=function(t,e){var r=l(e.cells.values),p=function(t){return t.slice(e.header.values.length,t.length)},d=l(e.header.values);d.length&&!d[0].length&&(d[0]=[""],d=l(d));var v=d.concat(p(r).map((function(){return u((d[0]||[""]).length)}))),g=e.domain,y=Math.floor(t._fullLayout._size.w*(g.x[1]-g.x[0])),m=Math.floor(t._fullLayout._size.h*(g.y[1]-g.y[0])),x=e.header.values.length?v[0].map((function(){return e.header.height})):[n.emptyHeaderHeight],b=r.length?r[0].map((function(){return e.cells.height})):[],_=x.reduce(s,0),w=h(b,m-_+n.uplift),T=f(h(x,_),[]),k=f(w,T),A={},M=e._fullInput.columnorder.concat(p(r.map((function(t,e){return e})))),S=v.map((function(t,r){var n=Array.isArray(e.columnwidth)?e.columnwidth[Math.min(r,e.columnwidth.length-1)]:e.columnwidth;return a(n)?Number(n):1})),E=S.reduce(s,0);S=S.map((function(t){return t/E*y}));var L=Math.max(o(e.header.line.width),o(e.cells.line.width)),C={key:e.uid+t._context.staticPlot,translateX:g.x[0]*t._fullLayout._size.w,translateY:t._fullLayout._size.h*(1-g.y[1]),size:t._fullLayout._size,width:y,maxLineWidth:L,height:m,columnOrder:M,groupHeight:m,rowBlocks:k,headerRowBlocks:T,scrollY:0,cells:i({},e.cells,{values:r}),headerCells:i({},e.header,{values:v}),gdColumns:v.map((function(t){return t[0]})),gdColumnsOriginalOrder:v.map((function(t){return t[0]})),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:v.map((function(t,e){var r=A[t];return A[t]=(r||0)+1,{key:t+"__"+A[t],label:t,specIndex:e,xIndex:M[e],xScale:c,x:void 0,calcdata:void 0,columnWidth:S[e]}}))};return C.columns.forEach((function(t){t.calcdata=C,t.x=c(t)})),C}},56269:function(t,e,r){"use strict";var n=r(1426).extendFlat;e.splitToPanels=function(t){var e=[0,0],r=n({},t,{key:"header",type:"header",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!0,values:t.calcdata.headerCells.values[t.specIndex],rowBlocks:t.calcdata.headerRowBlocks,calcdata:n({},t.calcdata,{cells:t.calcdata.headerCells})});return[n({},t,{key:"cells1",type:"cells",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),n({},t,{key:"cells2",type:"cells",page:1,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),r]},e.splitToCells=function(t){var e=function(t){var e=t.rowBlocks[t.page],r=e?e.rows[0].rowIndex:0;return[r,e?r+e.rows.length:0]}(t);return(t.values||[]).slice(e[0],e[1]).map((function(r,n){return{keyWithinBlock:n+("string"==typeof r&&r.match(/[<$&> ]/)?"_keybuster_"+Math.random():""),key:e[0]+n,column:t,calcdata:t.calcdata,page:t.page,rowBlocks:t.rowBlocks,value:r}}))}},39754:function(t,e,r){"use strict";var n=r(71828),i=r(44464),a=r(27670).c;t.exports=function(t,e,r,o){function s(r,a){return n.coerce(t,e,i,r,a)}a(e,o,s),s("columnwidth"),s("header.values"),s("header.format"),s("header.align"),s("header.prefix"),s("header.suffix"),s("header.height"),s("header.line.width"),s("header.line.color"),s("header.fill.color"),n.coerceFont(s,"header.font",n.extendFlat({},o.font)),function(t,e){for(var r=t.columnorder||[],n=t.header.values.length,i=r.slice(0,n),a=i.slice().sort((function(t,e){return t-e})),o=i.map((function(t){return a.indexOf(t)})),s=o.length;s<n;s++)o.push(s);e("columnorder",o)}(e,s),s("cells.values"),s("cells.format"),s("cells.align"),s("cells.prefix"),s("cells.suffix"),s("cells.height"),s("cells.line.width"),s("cells.line.color"),s("cells.fill.color"),n.coerceFont(s,"cells.font",n.extendFlat({},o.font)),e._length=null}},96595:function(t,e,r){"use strict";t.exports={attributes:r(44464),supplyDefaults:r(39754),calc:r(76333),plot:r(36736),moduleType:"trace",name:"table",basePlotModule:r(99469),categories:["noOpacity"],meta:{}}},36736:function(t,e,r){"use strict";var n=r(49850),i=r(39898),a=r(71828).numberFormat,o=r(28984),s=r(91424),l=r(63893),u=r(71828).raiseToTop,c=r(71828).strTranslate,f=r(71828).cancelTransition,h=r(51018),p=r(56269),d=r(7901);function v(t){return Math.ceil(t.calcdata.maxLineWidth/2)}function g(t,e){return"clip"+t._fullLayout._uid+"_scrollAreaBottomClip_"+e.key}function y(t,e){return"clip"+t._fullLayout._uid+"_columnBoundaryClippath_"+e.calcdata.key+"_"+e.specIndex}function m(t){return[].concat.apply([],t.map((function(t){return t}))).map((function(t){return t.__data__}))}function x(t,e,r){var a=t.selectAll("."+n.cn.scrollbarKit).data(o.repeat,o.keyFun);a.enter().append("g").classed(n.cn.scrollbarKit,!0).style("shape-rendering","geometricPrecision"),a.each((function(t){var e=t.scrollbarState;e.totalHeight=function(t){var e=t.rowBlocks;return z(e,e.length-1)+(e.length?R(e[e.length-1],1/0):1)}(t),e.scrollableAreaHeight=t.groupHeight-S(t),e.currentlyVisibleHeight=Math.min(e.totalHeight,e.scrollableAreaHeight),e.ratio=e.currentlyVisibleHeight/e.totalHeight,e.barLength=Math.max(e.ratio*e.currentlyVisibleHeight,n.goldenRatio*n.scrollbarWidth),e.barWiggleRoom=e.currentlyVisibleHeight-e.barLength,e.wiggleRoom=Math.max(0,e.totalHeight-e.scrollableAreaHeight),e.topY=0===e.barWiggleRoom?0:t.scrollY/e.wiggleRoom*e.barWiggleRoom,e.bottomY=e.topY+e.barLength,e.dragMultiplier=e.wiggleRoom/e.barWiggleRoom})).attr("transform",(function(t){var e=t.width+n.scrollbarWidth/2+n.scrollbarOffset;return c(e,S(t))}));var s=a.selectAll("."+n.cn.scrollbar).data(o.repeat,o.keyFun);s.enter().append("g").classed(n.cn.scrollbar,!0);var l=s.selectAll("."+n.cn.scrollbarSlider).data(o.repeat,o.keyFun);l.enter().append("g").classed(n.cn.scrollbarSlider,!0),l.attr("transform",(function(t){return c(0,t.scrollbarState.topY||0)}));var u=l.selectAll("."+n.cn.scrollbarGlyph).data(o.repeat,o.keyFun);u.enter().append("line").classed(n.cn.scrollbarGlyph,!0).attr("stroke","black").attr("stroke-width",n.scrollbarWidth).attr("stroke-linecap","round").attr("y1",n.scrollbarWidth/2),u.attr("y2",(function(t){return t.scrollbarState.barLength-n.scrollbarWidth/2})).attr("stroke-opacity",(function(t){return t.columnDragInProgress||!t.scrollbarState.barWiggleRoom||r?0:.4})),u.transition().delay(0).duration(0),u.transition().delay(n.scrollbarHideDelay).duration(n.scrollbarHideDuration).attr("stroke-opacity",0);var f=s.selectAll("."+n.cn.scrollbarCaptureZone).data(o.repeat,o.keyFun);f.enter().append("line").classed(n.cn.scrollbarCaptureZone,!0).attr("stroke","white").attr("stroke-opacity",.01).attr("stroke-width",n.scrollbarCaptureWidth).attr("stroke-linecap","butt").attr("y1",0).on("mousedown",(function(r){var n=i.event.y,a=this.getBoundingClientRect(),o=r.scrollbarState,s=n-a.top,l=i.scale.linear().domain([0,o.scrollableAreaHeight]).range([0,o.totalHeight]).clamp(!0);o.topY<=s&&s<=o.bottomY||L(e,t,null,l(s-o.barLength/2))(r)})).call(i.behavior.drag().origin((function(t){return i.event.stopPropagation(),t.scrollbarState.scrollbarScrollInProgress=!0,t})).on("drag",L(e,t)).on("dragend",(function(){}))),f.attr("y2",(function(t){return t.scrollbarState.scrollableAreaHeight})),e._context.staticPlot&&(u.remove(),f.remove())}function b(t,e,r,a){var l=function(t){var e=t.selectAll("."+n.cn.columnCells).data(o.repeat,o.keyFun);return e.enter().append("g").classed(n.cn.columnCells,!0),e.exit().remove(),e}(r),u=function(t){var e=t.selectAll("."+n.cn.columnCell).data(p.splitToCells,(function(t){return t.keyWithinBlock}));return e.enter().append("g").classed(n.cn.columnCell,!0),e.exit().remove(),e}(l);!function(t){t.each((function(t,e){var r=t.calcdata.cells.font,n=t.column.specIndex,i={size:T(r.size,n,e),color:T(r.color,n,e),family:T(r.family,n,e)};t.rowNumber=t.key,t.align=T(t.calcdata.cells.align,n,e),t.cellBorderWidth=T(t.calcdata.cells.line.width,n,e),t.font=i}))}(u);var c=function(t){var e=t.selectAll("."+n.cn.cellRect).data(o.repeat,(function(t){return t.keyWithinBlock}));return e.enter().append("rect").classed(n.cn.cellRect,!0),e}(u);!function(t){t.attr("width",(function(t){return t.column.columnWidth})).attr("stroke-width",(function(t){return t.cellBorderWidth})).each((function(t){var e=i.select(this);d.stroke(e,T(t.calcdata.cells.line.color,t.column.specIndex,t.rowNumber)),d.fill(e,T(t.calcdata.cells.fill.color,t.column.specIndex,t.rowNumber))}))}(c);var f=function(t){var e=t.selectAll("."+n.cn.cellTextHolder).data(o.repeat,(function(t){return t.keyWithinBlock}));return e.enter().append("g").classed(n.cn.cellTextHolder,!0).style("shape-rendering","geometricPrecision"),e}(u),h=function(t){var e=t.selectAll("."+n.cn.cellText).data(o.repeat,(function(t){return t.keyWithinBlock}));return e.enter().append("text").classed(n.cn.cellText,!0).style("cursor",(function(){return"auto"})).on("mousedown",(function(){i.event.stopPropagation()})),e}(f);!function(t){t.each((function(t){s.font(i.select(this),t.font)}))}(h),_(h,e,a,t),D(u)}function _(t,e,r,o){t.text((function(t){var e=t.column.specIndex,r=t.rowNumber,i=t.value,o="string"==typeof i,s=o&&i.match(/<br>/i),l=!o||s;t.mayHaveMarkup=o&&i.match(/[<&>]/);var u,c="string"==typeof(u=i)&&u.match(n.latexCheck);t.latex=c;var f,h,p=c?"":T(t.calcdata.cells.prefix,e,r)||"",d=c?"":T(t.calcdata.cells.suffix,e,r)||"",v=c?null:T(t.calcdata.cells.format,e,r)||null,g=p+(v?a(v)(t.value):t.value)+d;if(t.wrappingNeeded=!t.wrapped&&!l&&!c&&(f=w(g)),t.cellHeightMayIncrease=s||c||t.mayHaveMarkup||(void 0===f?w(g):f),t.needsConvertToTspans=t.mayHaveMarkup||t.wrappingNeeded||t.latex,t.wrappingNeeded){var y=(" "===n.wrapSplitCharacter?g.replace(/<a href=/gi,"<a_href="):g).split(n.wrapSplitCharacter),m=" "===n.wrapSplitCharacter?y.map((function(t){return t.replace(/<a_href=/gi,"<a href=")})):y;t.fragments=m.map((function(t){return{text:t,width:null}})),t.fragments.push({fragment:n.wrapSpacer,width:null}),h=m.join(n.lineBreaker)+n.lineBreaker+n.wrapSpacer}else delete t.fragments,h=g;return h})).attr("dy",(function(t){return t.needsConvertToTspans?0:"0.75em"})).each((function(t){var a=this,s=i.select(a),u=t.wrappingNeeded?P:O;t.needsConvertToTspans?l.convertToTspans(s,o,u(r,a,e,o,t)):i.select(a.parentNode).attr("transform",(function(t){return c(I(t),n.cellPad)})).attr("text-anchor",(function(t){return{left:"start",center:"middle",right:"end"}[t.align]}))}))}function w(t){return-1!==t.indexOf(n.wrapSplitCharacter)}function T(t,e,r){if(Array.isArray(t)){var n=t[Math.min(e,t.length-1)];return Array.isArray(n)?n[Math.min(r,n.length-1)]:n}return t}function k(t,e,r){t.transition().ease(n.releaseTransitionEase).duration(n.releaseTransitionDuration).attr("transform",c(e.x,r))}function A(t){return"cells"===t.type}function M(t){return"header"===t.type}function S(t){return(t.rowBlocks.length?t.rowBlocks[0].auxiliaryBlocks:[]).reduce((function(t,e){return t+R(e,1/0)}),0)}function E(t,e,r){var n=m(e)[0];if(void 0!==n){var i=n.rowBlocks,a=n.calcdata,o=z(i,i.length),s=n.calcdata.groupHeight-S(n),l=a.scrollY=Math.max(0,Math.min(o-s,a.scrollY)),u=function(t,e,r){for(var n=[],i=0,a=0;a<t.length;a++){for(var o=t[a],s=o.rows,l=0,u=0;u<s.length;u++)l+=s[u].rowHeight;o.allRowsHeight=l,e<i+l&&e+r>i&&n.push(a),i+=l}return n}(i,l,s);1===u.length&&(u[0]===i.length-1?u.unshift(u[0]-1):u.push(u[0]+1)),u[0]%2&&u.reverse(),e.each((function(t,e){t.page=u[e],t.scrollY=l})),e.attr("transform",(function(t){var e=z(t.rowBlocks,t.page)-t.scrollY;return c(0,e)})),t&&(C(t,r,e,u,n.prevPages,n,0),C(t,r,e,u,n.prevPages,n,1),x(r,t))}}function L(t,e,r,a){return function(o){var s=o.calcdata?o.calcdata:o,l=e.filter((function(t){return s.key===t.key})),u=r||s.scrollbarState.dragMultiplier,c=s.scrollY;s.scrollY=void 0===a?s.scrollY+u*i.event.dy:a;var f=l.selectAll("."+n.cn.yColumn).selectAll("."+n.cn.columnBlock).filter(A);return E(t,f,l),s.scrollY===c}}function C(t,e,r,n,i,a,o){n[o]!==i[o]&&(clearTimeout(a.currentRepaint[o]),a.currentRepaint[o]=setTimeout((function(){var a=r.filter((function(t,e){return e===o&&n[e]!==i[e]}));b(t,e,a,r),i[o]=n[o]})))}function P(t,e,r,a){return function(){var o=i.select(e.parentNode);o.each((function(t){var e=t.fragments;o.selectAll("tspan.line").each((function(t,r){e[r].width=this.getComputedTextLength()}));var r,i,a=e[e.length-1].width,s=e.slice(0,-1),l=[],u=0,c=t.column.columnWidth-2*n.cellPad;for(t.value="";s.length;)u+(i=(r=s.shift()).width+a)>c&&(t.value+=l.join(n.wrapSpacer)+n.lineBreaker,l=[],u=0),l.push(r.text),u+=i;u&&(t.value+=l.join(n.wrapSpacer)),t.wrapped=!0})),o.selectAll("tspan.line").remove(),_(o.select("."+n.cn.cellText),r,t,a),i.select(e.parentNode.parentNode).call(D)}}function O(t,e,r,a,o){return function(){if(!o.settledY){var s=i.select(e.parentNode),l=B(o),u=o.key-l.firstRowIndex,f=l.rows[u].rowHeight,h=o.cellHeightMayIncrease?e.parentNode.getBoundingClientRect().height+2*n.cellPad:f,p=Math.max(h,f);p-l.rows[u].rowHeight&&(l.rows[u].rowHeight=p,t.selectAll("."+n.cn.columnCell).call(D),E(null,t.filter(A),0),x(r,a,!0)),s.attr("transform",(function(){var t=this,e=t.parentNode.getBoundingClientRect(),r=i.select(t.parentNode).select("."+n.cn.cellRect).node().getBoundingClientRect(),a=t.transform.baseVal.consolidate(),s=r.top-e.top+(a?a.matrix.f:n.cellPad);return c(I(o,i.select(t.parentNode).select("."+n.cn.cellTextHolder).node().getBoundingClientRect().width),s)})),o.settledY=!0}}}function I(t,e){switch(t.align){case"left":default:return n.cellPad;case"right":return t.column.columnWidth-(e||0)-n.cellPad;case"center":return(t.column.columnWidth-(e||0))/2}}function D(t){t.attr("transform",(function(t){var e=t.rowBlocks[0].auxiliaryBlocks.reduce((function(t,e){return t+R(e,1/0)}),0),r=R(B(t),t.key);return c(0,r+e)})).selectAll("."+n.cn.cellRect).attr("height",(function(t){return(e=B(t),r=t.key,e.rows[r-e.firstRowIndex]).rowHeight;var e,r}))}function z(t,e){for(var r=0,n=e-1;n>=0;n--)r+=F(t[n]);return r}function R(t,e){for(var r=0,n=0;n<t.rows.length&&t.rows[n].rowIndex<e;n++)r+=t.rows[n].rowHeight;return r}function F(t){var e=t.allRowsHeight;if(void 0!==e)return e;for(var r=0,n=0;n<t.rows.length;n++)r+=t.rows[n].rowHeight;return t.allRowsHeight=r,r}function B(t){return t.rowBlocks[t.page]}t.exports=function(t,e){var r=!t._context.staticPlot,a=t._fullLayout._paper.selectAll("."+n.cn.table).data(e.map((function(e){var r=o.unwrap(e).trace;return h(t,r)})),o.keyFun);a.exit().remove(),a.enter().append("g").classed(n.cn.table,!0).attr("overflow","visible").style("box-sizing","content-box").style("position","absolute").style("left",0).style("overflow","visible").style("shape-rendering","crispEdges").style("pointer-events","all"),a.attr("width",(function(t){return t.width+t.size.l+t.size.r})).attr("height",(function(t){return t.height+t.size.t+t.size.b})).attr("transform",(function(t){return c(t.translateX,t.translateY)}));var l=a.selectAll("."+n.cn.tableControlView).data(o.repeat,o.keyFun),d=l.enter().append("g").classed(n.cn.tableControlView,!0).style("box-sizing","content-box");if(r){var _="onwheel"in document?"wheel":"mousewheel";d.on("mousemove",(function(e){l.filter((function(t){return e===t})).call(x,t)})).on(_,(function(e){if(!e.scrollbarState.wheeling){e.scrollbarState.wheeling=!0;var r=e.scrollY+i.event.deltaY;L(t,l,null,r)(e)||(i.event.stopPropagation(),i.event.preventDefault()),e.scrollbarState.wheeling=!1}})).call(x,t,!0)}l.attr("transform",(function(t){return c(t.size.l,t.size.t)}));var w=l.selectAll("."+n.cn.scrollBackground).data(o.repeat,o.keyFun);w.enter().append("rect").classed(n.cn.scrollBackground,!0).attr("fill","none"),w.attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})),l.each((function(e){s.setClipUrl(i.select(this),g(t,e),t)}));var T=l.selectAll("."+n.cn.yColumn).data((function(t){return t.columns}),o.keyFun);T.enter().append("g").classed(n.cn.yColumn,!0),T.exit().remove(),T.attr("transform",(function(t){return c(t.x,0)})),r&&T.call(i.behavior.drag().origin((function(e){return k(i.select(this),e,-n.uplift),u(this),e.calcdata.columnDragInProgress=!0,x(l.filter((function(t){return e.calcdata.key===t.key})),t),e})).on("drag",(function(t){var e=i.select(this),r=function(e){return(t===e?i.event.x:e.x)+e.columnWidth/2};t.x=Math.max(-n.overdrag,Math.min(t.calcdata.width+n.overdrag-t.columnWidth,i.event.x)),m(T).filter((function(e){return e.calcdata.key===t.calcdata.key})).sort((function(t,e){return r(t)-r(e)})).forEach((function(e,r){e.xIndex=r,e.x=t===e?e.x:e.xScale(e)})),T.filter((function(e){return t!==e})).transition().ease(n.transitionEase).duration(n.transitionDuration).attr("transform",(function(t){return c(t.x,0)})),e.call(f).attr("transform",c(t.x,-n.uplift))})).on("dragend",(function(e){var r=i.select(this),n=e.calcdata;e.x=e.xScale(e),e.calcdata.columnDragInProgress=!1,k(r,e,0),function(t,e,r){var n=e.gdColumnsOriginalOrder;e.gdColumns.sort((function(t,e){return r[n.indexOf(t)]-r[n.indexOf(e)]})),e.columnorder=r,t.emit("plotly_restyle")}(t,n,n.columns.map((function(t){return t.xIndex})))}))),T.each((function(e){s.setClipUrl(i.select(this),y(t,e),t)}));var S=T.selectAll("."+n.cn.columnBlock).data(p.splitToPanels,o.keyFun);S.enter().append("g").classed(n.cn.columnBlock,!0).attr("id",(function(t){return t.key})),S.style("cursor",(function(t){return t.dragHandle?"ew-resize":t.calcdata.scrollbarState.barWiggleRoom?"ns-resize":"default"}));var C=S.filter(M),P=S.filter(A);r&&P.call(i.behavior.drag().origin((function(t){return i.event.stopPropagation(),t})).on("drag",L(t,l,-1)).on("dragend",(function(){}))),b(t,l,C,S),b(t,l,P,S);var O=l.selectAll("."+n.cn.scrollAreaClip).data(o.repeat,o.keyFun);O.enter().append("clipPath").classed(n.cn.scrollAreaClip,!0).attr("id",(function(e){return g(t,e)}));var I=O.selectAll("."+n.cn.scrollAreaClipRect).data(o.repeat,o.keyFun);I.enter().append("rect").classed(n.cn.scrollAreaClipRect,!0).attr("x",-n.overdrag).attr("y",-n.uplift).attr("fill","none"),I.attr("width",(function(t){return t.width+2*n.overdrag})).attr("height",(function(t){return t.height+n.uplift})),T.selectAll("."+n.cn.columnBoundary).data(o.repeat,o.keyFun).enter().append("g").classed(n.cn.columnBoundary,!0);var D=T.selectAll("."+n.cn.columnBoundaryClippath).data(o.repeat,o.keyFun);D.enter().append("clipPath").classed(n.cn.columnBoundaryClippath,!0),D.attr("id",(function(e){return y(t,e)}));var z=D.selectAll("."+n.cn.columnBoundaryRect).data(o.repeat,o.keyFun);z.enter().append("rect").classed(n.cn.columnBoundaryRect,!0).attr("fill","none"),z.attr("width",(function(t){return t.columnWidth+2*v(t)})).attr("height",(function(t){return t.calcdata.height+2*v(t)+n.uplift})).attr("x",(function(t){return-v(t)})).attr("y",(function(t){return-v(t)})),E(null,P,l)}},45802:function(t,e,r){"use strict";var n=r(5386).f,i=r(5386).s,a=r(50693),o=r(27670).Y,s=r(34e3),l=r(57564),u=r(43473),c=r(1426).extendFlat;t.exports={labels:l.labels,parents:l.parents,values:l.values,branchvalues:l.branchvalues,count:l.count,level:l.level,maxdepth:l.maxdepth,tiling:{packing:{valType:"enumerated",values:["squarify","binary","dice","slice","slice-dice","dice-slice"],dflt:"squarify",editType:"plot"},squarifyratio:{valType:"number",min:1,dflt:1,editType:"plot"},flip:{valType:"flaglist",flags:["x","y"],dflt:"",editType:"plot"},pad:{valType:"number",min:0,dflt:3,editType:"plot"},editType:"calc"},marker:c({pad:{t:{valType:"number",min:0,editType:"plot"},l:{valType:"number",min:0,editType:"plot"},r:{valType:"number",min:0,editType:"plot"},b:{valType:"number",min:0,editType:"plot"},editType:"calc"},colors:l.marker.colors,depthfade:{valType:"enumerated",values:[!0,!1,"reversed"],editType:"style"},line:l.marker.line,cornerradius:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"calc"},a("marker",{colorAttr:"colors",anim:!1})),pathbar:{visible:{valType:"boolean",dflt:!0,editType:"plot"},side:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot"},edgeshape:{valType:"enumerated",values:[">","<","|","/","\\"],dflt:">",editType:"plot"},thickness:{valType:"number",min:12,editType:"plot"},textfont:c({},s.textfont,{}),editType:"calc"},text:s.text,textinfo:l.textinfo,texttemplate:i({editType:"plot"},{keys:u.eventDataKeys.concat(["label","value"])}),hovertext:s.hovertext,hoverinfo:l.hoverinfo,hovertemplate:n({},{keys:u.eventDataKeys}),textfont:s.textfont,insidetextfont:s.insidetextfont,outsidetextfont:c({},s.outsidetextfont,{}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right"],dflt:"top left",editType:"plot"},sort:s.sort,root:l.root,domain:o({name:"treemap",trace:!0,editType:"calc"})}},78018:function(t,e,r){"use strict";var n=r(74875);e.name="treemap",e.plot=function(t,r,i,a){n.plotBasePlot(e.name,t,r,i,a)},e.clean=function(t,r,i,a){n.cleanBasePlot(e.name,t,r,i,a)}},65039:function(t,e,r){"use strict";var n=r(52147);e.y=function(t,e){return n.calc(t,e)},e.T=function(t){return n._runCrossTraceCalc("treemap",t)}},43473:function(t){"use strict";t.exports={CLICK_TRANSITION_TIME:750,CLICK_TRANSITION_EASING:"poly",eventDataKeys:["currentPath","root","entry","percentRoot","percentEntry","percentParent"],gapWithPathbar:1}},91174:function(t,e,r){"use strict";var n=r(71828),i=r(45802),a=r(7901),o=r(27670).c,s=r(90769).handleText,l=r(97313).TEXTPAD,u=r(21081),c=u.hasColorscale,f=u.handleDefaults;t.exports=function(t,e,r,u){function h(r,a){return n.coerce(t,e,i,r,a)}var p=h("labels"),d=h("parents");if(p&&p.length&&d&&d.length){var v=h("values");v&&v.length?h("branchvalues"):h("count"),h("level"),h("maxdepth"),"squarify"===h("tiling.packing")&&h("tiling.squarifyratio"),h("tiling.flip"),h("tiling.pad");var g=h("text");h("texttemplate"),e.texttemplate||h("textinfo",Array.isArray(g)?"text+label":"label"),h("hovertext"),h("hovertemplate");var y=h("pathbar.visible");s(t,e,u,h,"auto",{hasPathbar:y,moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),h("textposition");var m=-1!==e.textposition.indexOf("bottom");h("marker.line.width")&&h("marker.line.color",u.paper_bgcolor);var x=h("marker.colors");(e._hasColorscale=c(t,"marker","colors")||(t.marker||{}).coloraxis)?f(t,e,u,h,{prefix:"marker.",cLetter:"c"}):h("marker.depthfade",!(x||[]).length);var b=2*e.textfont.size;h("marker.pad.t",m?b/4:b),h("marker.pad.l",b/4),h("marker.pad.r",b/4),h("marker.pad.b",m?b:b/4),h("marker.cornerradius"),e._hovered={marker:{line:{width:2,color:a.contrast(u.paper_bgcolor)}}},y&&(h("pathbar.thickness",e.pathbar.textfont.size+2*l),h("pathbar.side"),h("pathbar.edgeshape")),h("sort"),h("root.color"),o(e,u,h),e._length=null}else e.visible=!1}},80694:function(t,e,r){"use strict";var n=r(39898),i=r(2791),a=r(72597).clearMinTextSize,o=r(16688).resizeText,s=r(46650);t.exports=function(t,e,r,l,u){var c,f,h=u.type,p=u.drawDescendants,d=t._fullLayout,v=d["_"+h+"layer"],g=!r;a(h,d),(c=v.selectAll("g.trace."+h).data(e,(function(t){return t[0].trace.uid}))).enter().append("g").classed("trace",!0).classed(h,!0),c.order(),!d.uniformtext.mode&&i.hasTransition(r)?(l&&(f=l()),n.transition().duration(r.duration).ease(r.easing).each("end",(function(){f&&f()})).each("interrupt",(function(){f&&f()})).each((function(){v.selectAll("g.trace").each((function(e){s(t,e,this,r,p)}))}))):(c.each((function(e){s(t,e,this,r,p)})),d.uniformtext.mode&&o(t,v.selectAll(".trace"),h)),g&&c.exit().remove()}},66209:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424),o=r(63893),s=r(37210),l=r(96362).styleOne,u=r(43473),c=r(2791),f=r(83523),h=!0;t.exports=function(t,e,r,p,d){var v=d.barDifY,g=d.width,y=d.height,m=d.viewX,x=d.viewY,b=d.pathSlice,_=d.toMoveInsideSlice,w=d.strTransform,T=d.hasTransition,k=d.handleSlicesExit,A=d.makeUpdateSliceInterpolator,M=d.makeUpdateTextInterpolator,S={},E=t._context.staticPlot,L=t._fullLayout,C=e[0],P=C.trace,O=C.hierarchy,I=g/P._entryDepth,D=c.listPath(r.data,"id"),z=s(O.copy(),[g,y],{packing:"dice",pad:{inner:0,top:0,left:0,right:0,bottom:0}}).descendants();(z=z.filter((function(t){var e=D.indexOf(t.data.id);return-1!==e&&(t.x0=I*e,t.x1=I*(e+1),t.y0=v,t.y1=v+y,t.onPathbar=!0,!0)}))).reverse(),(p=p.data(z,c.getPtId)).enter().append("g").classed("pathbar",!0),k(p,h,S,[g,y],b),p.order();var R=p;T&&(R=R.transition().each("end",(function(){var e=n.select(this);c.setSliceCursor(e,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:!1})}))),R.each((function(s){s._x0=m(s.x0),s._x1=m(s.x1),s._y0=x(s.y0),s._y1=x(s.y1),s._hoverX=m(s.x1-Math.min(g,y)/2),s._hoverY=x(s.y1-y/2);var p=n.select(this),d=i.ensureSingle(p,"path","surface",(function(t){t.style("pointer-events",E?"none":"all")}));T?d.transition().attrTween("d",(function(t){var e=A(t,h,S,[g,y]);return function(t){return b(e(t))}})):d.attr("d",b),p.call(f,r,t,e,{styleOne:l,eventDataKeys:u.eventDataKeys,transitionTime:u.CLICK_TRANSITION_TIME,transitionEasing:u.CLICK_TRANSITION_EASING}).call(c.setSliceCursor,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:t._transitioning}),d.call(l,s,P,{hovered:!1}),s._text=(c.getPtLabel(s)||"").split("<br>").join(" ")||"";var v=i.ensureSingle(p,"g","slicetext"),k=i.ensureSingle(v,"text","",(function(t){t.attr("data-notex",1)})),C=i.ensureUniformFontSize(t,c.determineTextFont(P,s,L.font,{onPathbar:!0}));k.text(s._text||" ").classed("slicetext",!0).attr("text-anchor","start").call(a.font,C).call(o.convertToTspans,t),s.textBB=a.bBox(k.node()),s.transform=_(s,{fontSize:C.size,onPathbar:!0}),s.transform.fontSize=C.size,T?k.transition().attrTween("transform",(function(t){var e=M(t,h,S,[g,y]);return function(t){return w(e(t))}})):k.attr("transform",w(s))}))}},52583:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424),o=r(63893),s=r(37210),l=r(96362).styleOne,u=r(43473),c=r(2791),f=r(83523),h=r(24714).formatSliceLabel,p=!1;t.exports=function(t,e,r,d,v){var g=v.width,y=v.height,m=v.viewX,x=v.viewY,b=v.pathSlice,_=v.toMoveInsideSlice,w=v.strTransform,T=v.hasTransition,k=v.handleSlicesExit,A=v.makeUpdateSliceInterpolator,M=v.makeUpdateTextInterpolator,S=v.prevEntry,E=t._context.staticPlot,L=t._fullLayout,C=e[0].trace,P=-1!==C.textposition.indexOf("left"),O=-1!==C.textposition.indexOf("right"),I=-1!==C.textposition.indexOf("bottom"),D=!I&&!C.marker.pad.t||I&&!C.marker.pad.b,z=s(r,[g,y],{packing:C.tiling.packing,squarifyratio:C.tiling.squarifyratio,flipX:C.tiling.flip.indexOf("x")>-1,flipY:C.tiling.flip.indexOf("y")>-1,pad:{inner:C.tiling.pad,top:C.marker.pad.t,left:C.marker.pad.l,right:C.marker.pad.r,bottom:C.marker.pad.b}}).descendants(),R=1/0,F=-1/0;z.forEach((function(t){var e=t.depth;e>=C._maxDepth?(t.x0=t.x1=(t.x0+t.x1)/2,t.y0=t.y1=(t.y0+t.y1)/2):(R=Math.min(R,e),F=Math.max(F,e))})),d=d.data(z,c.getPtId),C._maxVisibleLayers=isFinite(F)?F-R+1:0,d.enter().append("g").classed("slice",!0),k(d,p,{},[g,y],b),d.order();var B=null;if(T&&S){var N=c.getPtId(S);d.each((function(t){null===B&&c.getPtId(t)===N&&(B={x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1})}))}var j=function(){return B||{x0:0,x1:g,y0:0,y1:y}},U=d;return T&&(U=U.transition().each("end",(function(){var e=n.select(this);c.setSliceCursor(e,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})}))),U.each((function(s){var d=c.isHeader(s,C);s._x0=m(s.x0),s._x1=m(s.x1),s._y0=x(s.y0),s._y1=x(s.y1),s._hoverX=m(s.x1-C.marker.pad.r),s._hoverY=x(I?s.y1-C.marker.pad.b/2:s.y0+C.marker.pad.t/2);var v=n.select(this),k=i.ensureSingle(v,"path","surface",(function(t){t.style("pointer-events",E?"none":"all")}));T?k.transition().attrTween("d",(function(t){var e=A(t,p,j(),[g,y]);return function(t){return b(e(t))}})):k.attr("d",b),v.call(f,r,t,e,{styleOne:l,eventDataKeys:u.eventDataKeys,transitionTime:u.CLICK_TRANSITION_TIME,transitionEasing:u.CLICK_TRANSITION_EASING}).call(c.setSliceCursor,t,{isTransitioning:t._transitioning}),k.call(l,s,C,{hovered:!1}),s.x0===s.x1||s.y0===s.y1?s._text="":s._text=d?D?"":c.getPtLabel(s)||"":h(s,r,C,e,L)||"";var S=i.ensureSingle(v,"g","slicetext"),z=i.ensureSingle(S,"text","",(function(t){t.attr("data-notex",1)})),R=i.ensureUniformFontSize(t,c.determineTextFont(C,s,L.font));z.text(s._text||" ").classed("slicetext",!0).attr("text-anchor",O?"end":P||d?"start":"middle").call(a.font,R).call(o.convertToTspans,t),s.textBB=a.bBox(z.node()),s.transform=_(s,{fontSize:R.size,isHeader:d}),s.transform.fontSize=R.size,T?z.transition().attrTween("transform",(function(t){var e=M(t,p,j(),[g,y]);return function(t){return w(e(t))}})):z.attr("transform",w(s))})),B}},14102:function(t){"use strict";t.exports=function t(e,r,n){var i;n.swapXY&&(i=e.x0,e.x0=e.y0,e.y0=i,i=e.x1,e.x1=e.y1,e.y1=i),n.flipX&&(i=e.x0,e.x0=r[0]-e.x1,e.x1=r[0]-i),n.flipY&&(i=e.y0,e.y0=r[1]-e.y1,e.y1=r[1]-i);var a=e.children;if(a)for(var o=0;o<a.length;o++)t(a[o],r,n)}},70954:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"treemap",basePlotModule:r(78018),categories:[],animatable:!0,attributes:r(45802),layoutAttributes:r(55479),supplyDefaults:r(91174),supplyLayoutDefaults:r(77182),calc:r(65039).y,crossTraceCalc:r(65039).T,plot:r(5893),style:r(96362).style,colorbar:r(4898),meta:{}}},55479:function(t){"use strict";t.exports={treemapcolorway:{valType:"colorlist",editType:"calc"},extendtreemapcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},77182:function(t,e,r){"use strict";var n=r(71828),i=r(55479);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("treemapcolorway",e.colorway),r("extendtreemapcolors")}},37210:function(t,e,r){"use strict";var n=r(674),i=r(14102);t.exports=function(t,e,r){var a,o=r.flipX,s=r.flipY,l="dice-slice"===r.packing,u=r.pad[s?"bottom":"top"],c=r.pad[o?"right":"left"],f=r.pad[o?"left":"right"],h=r.pad[s?"top":"bottom"];l&&(a=c,c=u,u=a,a=f,f=h,h=a);var p=n.treemap().tile(function(t,e){switch(t){case"squarify":return n.treemapSquarify.ratio(e);case"binary":return n.treemapBinary;case"dice":return n.treemapDice;case"slice":return n.treemapSlice;default:return n.treemapSliceDice}}(r.packing,r.squarifyratio)).paddingInner(r.pad.inner).paddingLeft(c).paddingRight(f).paddingTop(u).paddingBottom(h).size(l?[e[1],e[0]]:e)(t);return(l||o||s)&&i(p,e,{swapXY:l,flipX:o,flipY:s}),p}},5893:function(t,e,r){"use strict";var n=r(80694),i=r(52583);t.exports=function(t,e,r,a){return n(t,e,r,a,{type:"treemap",drawDescendants:i})}},46650:function(t,e,r){"use strict";var n=r(39898),i=r(29502).sX,a=r(2791),o=r(71828),s=r(97313).TEXTPAD,l=r(17295).toMoveInsideBar,u=r(72597).recordMinTextSize,c=r(43473),f=r(66209);function h(t){return a.isHierarchyRoot(t)?"":a.getPtId(t)}t.exports=function(t,e,r,p,d){var v=t._fullLayout,g=e[0],y=g.trace,m="icicle"===y.type,x=g.hierarchy,b=a.findEntryWithLevel(x,y.level),_=n.select(r),w=_.selectAll("g.pathbar"),T=_.selectAll("g.slice");if(!b)return w.remove(),void T.remove();var k=a.isHierarchyRoot(b),A=!v.uniformtext.mode&&a.hasTransition(p),M=a.getMaxDepth(y),S=v._size,E=y.domain,L=S.w*(E.x[1]-E.x[0]),C=S.h*(E.y[1]-E.y[0]),P=L,O=y.pathbar.thickness,I=y.marker.line.width+c.gapWithPathbar,D=y.pathbar.visible?y.pathbar.side.indexOf("bottom")>-1?C+I:-(O+I):0,z={x0:P,x1:P,y0:D,y1:D+O},R=function(t,e,r){var n=y.tiling.pad,i=function(t){return t-n<=e.x0},a=function(t){return t+n>=e.x1},o=function(t){return t-n<=e.y0},s=function(t){return t+n>=e.y1};return t.x0===e.x0&&t.x1===e.x1&&t.y0===e.y0&&t.y1===e.y1?{x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1}:{x0:i(t.x0-n)?0:a(t.x0-n)?r[0]:t.x0,x1:i(t.x1+n)?0:a(t.x1+n)?r[0]:t.x1,y0:o(t.y0-n)?0:s(t.y0-n)?r[1]:t.y0,y1:o(t.y1+n)?0:s(t.y1+n)?r[1]:t.y1}},F=null,B={},N={},j=null,U=function(t,e){return e?B[h(t)]:N[h(t)]};g.hasMultipleRoots&&k&&M++,y._maxDepth=M,y._backgroundColor=v.paper_bgcolor,y._entryDepth=b.data.depth,y._atRootLevel=k;var V=-L/2+S.l+S.w*(E.x[1]+E.x[0])/2,H=-C/2+S.t+S.h*(1-(E.y[1]+E.y[0])/2),q=function(t){return V+t},G=function(t){return H+t},Z=G(0),Y=q(0),W=function(t){return Y+t},X=function(t){return Z+t};function J(t,e){return t+","+e}var K=W(0),$=function(t){t.x=Math.max(K,t.x)},Q=y.pathbar.edgeshape,tt=y[m?"tiling":"marker"].pad,et=function(t){return-1!==y.textposition.indexOf(t)},rt=et("top"),nt=et("left"),it=et("right"),at=et("bottom"),ot=function(t,e){var r=t.x0,n=t.x1,i=t.y0,a=t.y1,o=t.textBB,c=rt||e.isHeader&&!at?"start":at?"end":"middle",f=et("right"),h=et("left")||e.onPathbar?-1:f?1:0;if(e.isHeader){if((r+=(m?tt:tt.l)-s)>=(n-=(m?tt:tt.r)-s)){var p=(r+n)/2;r=p,n=p}var d;at?i<(d=a-(m?tt:tt.b))&&d<a&&(i=d):i<(d=i+(m?tt:tt.t))&&d<a&&(a=d)}var g=l(r,n,i,a,o,{isHorizontal:!1,constrained:!0,angle:0,anchor:c,leftToRight:h});return g.fontSize=e.fontSize,g.targetX=q(g.targetX),g.targetY=G(g.targetY),isNaN(g.targetX)||isNaN(g.targetY)?{}:(r!==n&&i!==a&&u(y.type,g,v),{scale:g.scale,rotate:g.rotate,textX:g.textX,textY:g.textY,anchorX:g.anchorX,anchorY:g.anchorY,targetX:g.targetX,targetY:g.targetY})},st=function(t,e){for(var r,n=0,i=t;!r&&n<M;)n++,(i=i.parent)?r=U(i,e):n=M;return r||{}},lt=function(t,e,r,n,a){var s,l=U(t,e);if(l)s=l;else if(e)s=z;else if(F)if(t.parent){var u=j||r;u&&!e?s=R(t,u,n):(s={},o.extendFlat(s,st(t,e)))}else s=o.extendFlat({},t),m&&("h"===a.orientation?a.flipX?s.x0=t.x1:s.x1=0:a.flipY?s.y0=t.y1:s.y1=0);else s={};return i(s,{x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1})},ut=function(t,e,r,n){var s=U(t,e),l={},c=function(t,e,r,n){if(e)return B[h(x)]||z;var i=N[y.level]||r;return function(t){return t.data.depth-b.data.depth<M}(t)?R(t,i,n):{}}(t,e,r,n);o.extendFlat(l,{transform:ot({x0:c.x0,x1:c.x1,y0:c.y0,y1:c.y1,textBB:t.textBB,_text:t._text},{isHeader:a.isHeader(t,y)})}),s?l=s:t.parent&&o.extendFlat(l,st(t,e));var f=t.transform;return t.x0!==t.x1&&t.y0!==t.y1&&u(y.type,f,v),i(l,{transform:{scale:f.scale,rotate:f.rotate,textX:f.textX,textY:f.textY,anchorX:f.anchorX,anchorY:f.anchorY,targetX:f.targetX,targetY:f.targetY}})},ct=function(t,e,r,a,o){var s=a[0],l=a[1];A?t.exit().transition().each((function(){var t=n.select(this);t.select("path.surface").transition().attrTween("d",(function(t){var r=function(t,e,r,n){var a,o=U(t,e);if(e)a=z;else{var s=U(b,e);a=s?R(t,s,n):{}}return i(o,a)}(t,e,0,[s,l]);return function(t){return o(r(t))}})),t.select("g.slicetext").attr("opacity",0)})).remove():t.exit().remove()},ft=function(t){var e=t.transform;return t.x0!==t.x1&&t.y0!==t.y1&&u(y.type,e,v),o.getTextTransform({textX:e.textX,textY:e.textY,anchorX:e.anchorX,anchorY:e.anchorY,targetX:e.targetX,targetY:e.targetY,scale:e.scale,rotate:e.rotate})};A&&(w.each((function(t){B[h(t)]={x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1},t.transform&&(B[h(t)].transform={textX:t.transform.textX,textY:t.transform.textY,anchorX:t.transform.anchorX,anchorY:t.transform.anchorY,targetX:t.transform.targetX,targetY:t.transform.targetY,scale:t.transform.scale,rotate:t.transform.rotate})})),T.each((function(t){N[h(t)]={x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1},t.transform&&(N[h(t)].transform={textX:t.transform.textX,textY:t.transform.textY,anchorX:t.transform.anchorX,anchorY:t.transform.anchorY,targetX:t.transform.targetX,targetY:t.transform.targetY,scale:t.transform.scale,rotate:t.transform.rotate}),!F&&a.isEntry(t)&&(F=t)}))),j=d(t,e,b,T,{width:L,height:C,viewX:q,viewY:G,pathSlice:function(t){var e=q(t.x0),r=q(t.x1),n=G(t.y0),i=G(t.y1),a=r-e,o=i-n;if(!a||!o)return"";var s=y.marker.cornerradius||0,l=Math.min(s,a/2,o/2);l&&t.data&&t.data.data&&t.data.data.label&&(rt&&(l=Math.min(l,tt.t)),nt&&(l=Math.min(l,tt.l)),it&&(l=Math.min(l,tt.r)),at&&(l=Math.min(l,tt.b)));var u=function(t,e){return l?"a"+J(l,l)+" 0 0 1 "+J(t,e):""};return"M"+J(e,n+l)+u(l,-l)+"L"+J(r-l,n)+u(l,l)+"L"+J(r,i-l)+u(-l,l)+"L"+J(e+l,i)+u(-l,-l)+"Z"},toMoveInsideSlice:ot,prevEntry:F,makeUpdateSliceInterpolator:lt,makeUpdateTextInterpolator:ut,handleSlicesExit:ct,hasTransition:A,strTransform:ft}),y.pathbar.visible?f(t,e,b,w,{barDifY:D,width:P,height:O,viewX:W,viewY:X,pathSlice:function(t){var e=W(Math.max(Math.min(t.x0,t.x0),0)),r=W(Math.min(Math.max(t.x1,t.x1),P)),n=X(t.y0),i=X(t.y1),a=O/2,o={},s={};o.x=e,s.x=r,o.y=s.y=(n+i)/2;var l={x:e,y:n},u={x:r,y:n},c={x:r,y:i},f={x:e,y:i};return">"===Q?(l.x-=a,u.x-=a,c.x-=a,f.x-=a):"/"===Q?(c.x-=a,f.x-=a,o.x-=a/2,s.x-=a/2):"\\"===Q?(l.x-=a,u.x-=a,o.x-=a/2,s.x-=a/2):"<"===Q&&(o.x-=a,s.x-=a),$(l),$(f),$(o),$(u),$(c),$(s),"M"+J(l.x,l.y)+"L"+J(u.x,u.y)+"L"+J(s.x,s.y)+"L"+J(c.x,c.y)+"L"+J(f.x,f.y)+"L"+J(o.x,o.y)+"Z"},toMoveInsideSlice:ot,makeUpdateSliceInterpolator:lt,makeUpdateTextInterpolator:ut,handleSlicesExit:ct,hasTransition:A,strTransform:ft}):w.remove()}},96362:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(71828),o=r(2791),s=r(72597).resizeText;function l(t,e,r,n){var s,l,u=(n||{}).hovered,c=e.data.data,f=c.i,h=c.color,p=o.isHierarchyRoot(e),d=1;if(u)s=r._hovered.marker.line.color,l=r._hovered.marker.line.width;else if(p&&h===r.root.color)d=100,s="rgba(0,0,0,0)",l=0;else if(s=a.castOption(r,f,"marker.line.color")||i.defaultLine,l=a.castOption(r,f,"marker.line.width")||0,!r._hasColorscale&&!e.onPathbar){var v=r.marker.depthfade;if(v){var g,y=i.combine(i.addOpacity(r._backgroundColor,.75),h);if(!0===v){var m=o.getMaxDepth(r);g=isFinite(m)?o.isLeaf(e)?0:r._maxVisibleLayers-(e.data.depth-r._entryDepth):e.data.height+1}else g=e.data.depth-r._entryDepth,r._atRootLevel||g++;if(g>0)for(var x=0;x<g;x++){var b=.5*x/g;h=i.combine(i.addOpacity(y,b),h)}}}t.style("stroke-width",l).call(i.fill,h).call(i.stroke,s).style("opacity",d)}t.exports={style:function(t){var e=t._fullLayout._treemaplayer.selectAll(".trace");s(t,e,"treemap"),e.each((function(t){var e=n.select(this),r=t[0].trace;e.style("opacity",r.opacity),e.selectAll("path.surface").each((function(t){n.select(this).call(l,t,r,{hovered:!1})}))}))},styleOne:l}},68875:function(t,e,r){"use strict";var n=r(53522),i=r(1426).extendFlat,a=r(12663).axisHoverFormat;t.exports={y:n.y,x:n.x,x0:n.x0,y0:n.y0,xhoverformat:a("x"),yhoverformat:a("y"),name:i({},n.name,{}),orientation:i({},n.orientation,{}),bandwidth:{valType:"number",min:0,editType:"calc"},scalegroup:{valType:"string",dflt:"",editType:"calc"},scalemode:{valType:"enumerated",values:["width","count"],dflt:"width",editType:"calc"},spanmode:{valType:"enumerated",values:["soft","hard","manual"],dflt:"soft",editType:"calc"},span:{valType:"info_array",items:[{valType:"any",editType:"calc"},{valType:"any",editType:"calc"}],editType:"calc"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,dflt:2,editType:"style"},editType:"plot"},fillcolor:n.fillcolor,points:i({},n.boxpoints,{}),jitter:i({},n.jitter,{}),pointpos:i({},n.pointpos,{}),width:i({},n.width,{}),marker:n.marker,text:n.text,hovertext:n.hovertext,hovertemplate:n.hovertemplate,quartilemethod:n.quartilemethod,box:{visible:{valType:"boolean",dflt:!1,editType:"plot"},width:{valType:"number",min:0,max:1,dflt:.25,editType:"plot"},fillcolor:{valType:"color",editType:"style"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,editType:"style"},editType:"style"},editType:"plot"},meanline:{visible:{valType:"boolean",dflt:!1,editType:"plot"},color:{valType:"color",editType:"style"},width:{valType:"number",min:0,editType:"style"},editType:"plot"},side:{valType:"enumerated",values:["both","positive","negative"],dflt:"both",editType:"calc"},offsetgroup:n.offsetgroup,alignmentgroup:n.alignmentgroup,selected:n.selected,unselected:n.unselected,hoveron:{valType:"flaglist",flags:["violins","points","kde"],dflt:"violins+points+kde",extras:["all"],editType:"style"}}},38603:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(48518),o=r(60168),s=r(50606).BADNUM;function l(t,e,r){var i=e.max-e.min;if(!i)return t.bandwidth?t.bandwidth:0;if(t.bandwidth)return Math.max(t.bandwidth,i/1e4);var a=r.length,o=n.stdev(r,a-1,e.mean);return Math.max(function(t,e,r){return 1.059*Math.min(e,r/1.349)*Math.pow(t,-.2)}(a,o,e.q3-e.q1),i/100)}function u(t,e,r,n){var a,o=t.spanmode,l=t.span||[],u=[e.min,e.max],c=[e.min-2*n,e.max+2*n];function f(n){var i=l[n],a="multicategory"===r.type?r.r2c(i):r.d2c(i,0,t[e.valLetter+"calendar"]);return a===s?c[n]:a}var h={type:"linear",range:a="soft"===o?c:"hard"===o?u:[f(0),f(1)]};return i.setConvert(h),h.cleanRange(),a}t.exports=function(t,e){var r=a(t,e);if(r[0].t.empty)return r;for(var s=t._fullLayout,c=i.getFromId(t,e["h"===e.orientation?"xaxis":"yaxis"]),f=1/0,h=-1/0,p=0,d=0,v=0;v<r.length;v++){var g=r[v],y=g.pts.map(o.extractVal),m=g.bandwidth=l(e,g,y),x=g.span=u(e,g,c,m);if(g.min===g.max&&0===m)x=g.span=[g.min,g.max],g.density=[{v:1,t:x[0]}],g.bandwidth=m,p=Math.max(p,1);else{var b=x[1]-x[0],_=Math.ceil(b/(m/3)),w=b/_;if(!isFinite(w)||!isFinite(_))return n.error("Something went wrong with computing the violin span"),r[0].t.empty=!0,r;var T=o.makeKDE(g,e,y);g.density=new Array(_);for(var k=0,A=x[0];A<x[1]+w/2;k++,A+=w){var M=T(A);g.density[k]={v:M,t:A},p=Math.max(p,M)}}d=Math.max(d,y.length),f=Math.min(f,x[0]),h=Math.max(h,x[1])}var S=i.findExtremes(c,[f,h],{padded:!0});if(e._extremes[c._id]=S,e.width)r[0].t.maxKDE=p;else{var E=s._violinScaleGroupStats,L=e.scalegroup,C=E[L];C?(C.maxKDE=Math.max(C.maxKDE,p),C.maxCount=Math.max(C.maxCount,d)):E[L]={maxKDE:p,maxCount:d}}return r[0].t.labels.kde=n._(t,"kde:"),r}},86403:function(t,e,r){"use strict";var n=r(37188).setPositionOffset,i=["v","h"];t.exports=function(t,e){for(var r=t.calcdata,a=e.xaxis,o=e.yaxis,s=0;s<i.length;s++){for(var l=i[s],u="h"===l?o:a,c=[],f=0;f<r.length;f++){var h=r[f],p=h[0].t,d=h[0].trace;!0!==d.visible||"violin"!==d.type||p.empty||d.orientation!==l||d.xaxis!==a._id||d.yaxis!==o._id||c.push(f)}n("violin",t,c,u)}}},15899:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(36411),o=r(68875);t.exports=function(t,e,r,s){function l(r,i){return n.coerce(t,e,o,r,i)}function u(r,i){return n.coerce2(t,e,o,r,i)}if(a.handleSampleDefaults(t,e,l,s),!1!==e.visible){l("bandwidth"),l("side"),l("width")||(l("scalegroup",e.name),l("scalemode"));var c,f=l("span");Array.isArray(f)&&(c="manual"),l("spanmode",c);var h=l("line.color",(t.marker||{}).color||r),p=l("line.width"),d=l("fillcolor",i.addOpacity(e.line.color,.5));a.handlePointsDefaults(t,e,l,{prefix:""});var v=u("box.width"),g=u("box.fillcolor",d),y=u("box.line.color",h),m=u("box.line.width",p);l("box.visible",Boolean(v||g||y||m))||(e.box={visible:!1});var x=u("meanline.color",h),b=u("meanline.width",p);l("meanline.visible",Boolean(x||b))||(e.meanline={visible:!1}),l("quartilemethod")}}},60168:function(t,e,r){"use strict";var n=r(71828),i=function(t){return 1/Math.sqrt(2*Math.PI)*Math.exp(-.5*t*t)};e.makeKDE=function(t,e,r){var n=r.length,a=i,o=t.bandwidth,s=1/(n*o);return function(t){for(var e=0,i=0;i<n;i++)e+=a((t-r[i])/o);return s*e}},e.getPositionOnKdePath=function(t,e,r){var i,a;"h"===e.orientation?(i="y",a="x"):(i="x",a="y");var o=n.findPointOnPath(t.path,r,a,{pathLength:t.pathLength}),s=t.posCenterPx,l=o[i];return[l,"both"===e.side?2*s-l:s]},e.getKdeValue=function(t,r,n){var i=t.pts.map(e.extractVal);return e.makeKDE(t,r,i)(n)/t.posDensityScale},e.extractVal=function(t){return t.v}},57634:function(t,e,r){"use strict";var n=r(7901),i=r(71828),a=r(89298),o=r(41868),s=r(60168);t.exports=function(t,e,r,l,u){u||(u={});var c,f,h=u.hoverLayer,p=t.cd,d=p[0].trace,v=d.hoveron,g=-1!==v.indexOf("violins"),y=-1!==v.indexOf("kde"),m=[];if(g||y){var x=o.hoverOnBoxes(t,e,r,l);if(y&&x.length>0){var b,_,w,T,k,A=t.xa,M=t.ya;"h"===d.orientation?(k=e,b="y",w=M,_="x",T=A):(k=r,b="x",w=A,_="y",T=M);var S=p[t.index];if(k>=S.span[0]&&k<=S.span[1]){var E=i.extendFlat({},t),L=T.c2p(k,!0),C=s.getKdeValue(S,d,k),P=s.getPositionOnKdePath(S,d,L),O=w._offset,I=w._length;E[b+"0"]=P[0],E[b+"1"]=P[1],E[_+"0"]=E[_+"1"]=L,E[_+"Label"]=_+": "+a.hoverLabelText(T,k,d[_+"hoverformat"])+", "+p[0].t.labels.kde+" "+C.toFixed(3);for(var D=0,z=0;z<x.length;z++)if("med"===x[z].attr){D=z;break}E.spikeDistance=x[D].spikeDistance;var R=b+"Spike";E[R]=x[D][R],x[D].spikeDistance=void 0,x[D][R]=void 0,E.hovertemplate=!1,m.push(E),(f={})[b+"1"]=i.constrain(O+P[0],O,O+I),f[b+"2"]=i.constrain(O+P[1],O,O+I),f[_+"1"]=f[_+"2"]=T._offset+L}}g&&(m=m.concat(x))}-1!==v.indexOf("points")&&(c=o.hoverOnPoints(t,e,r));var F=h.selectAll(".violinline-"+d.uid).data(f?[0]:[]);return F.enter().append("line").classed("violinline-"+d.uid,!0).attr("stroke-width",1.5),F.exit().remove(),F.attr(f).call(n.stroke,t.color),"closest"===l?c?[c]:m:c?(m.push(c),m):m}},47462:function(t,e,r){"use strict";t.exports={attributes:r(68875),layoutAttributes:r(9228),supplyDefaults:r(15899),crossTraceDefaults:r(36411).crossTraceDefaults,supplyLayoutDefaults:r(33598),calc:r(38603),crossTraceCalc:r(86403),plot:r(28443),style:r(31847),styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(57634),selectPoints:r(24626),moduleType:"trace",name:"violin",basePlotModule:r(93612),categories:["cartesian","svg","symbols","oriented","box-violin","showLegend","violinLayout","zoomScale"],meta:{}}},9228:function(t,e,r){"use strict";var n=r(40094),i=r(71828).extendFlat;t.exports={violinmode:i({},n.boxmode,{}),violingap:i({},n.boxgap,{}),violingroupgap:i({},n.boxgroupgap,{})}},33598:function(t,e,r){"use strict";var n=r(71828),i=r(9228),a=r(4199);t.exports=function(t,e,r){a._supply(t,e,r,(function(r,a){return n.coerce(t,e,i,r,a)}),"violin")}},28443:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424),o=r(86047),s=r(34621),l=r(60168);t.exports=function(t,e,r,u){var c=t._fullLayout,f=e.xaxis,h=e.yaxis;function p(t,e){var r=s(t,{xaxis:f,yaxis:h,trace:e,connectGaps:!0,baseTolerance:.75,shape:"spline",simplify:!0,linearized:!0});return a.smoothopen(r[0],1)}i.makeTraceGroups(u,r,"trace violins").each((function(t){var r=n.select(this),a=t[0],s=a.t,u=a.trace;if(!0!==u.visible||s.empty)r.remove();else{var d=s.bPos,v=s.bdPos,g=e[s.valLetter+"axis"],y=e[s.posLetter+"axis"],m="both"===u.side,x=m||"positive"===u.side,b=m||"negative"===u.side,_=r.selectAll("path.violin").data(i.identity);_.enter().append("path").style("vector-effect","non-scaling-stroke").attr("class","violin"),_.exit().remove(),_.each((function(t){var e,r,i,a,o,l,f,h,_=n.select(this),w=t.density,T=w.length,k=y.c2l(t.pos+d,!0),A=y.l2p(k);if(u.width)e=s.maxKDE/v;else{var M=c._violinScaleGroupStats[u.scalegroup];e="count"===u.scalemode?M.maxKDE/v*(M.maxCount/t.pts.length):M.maxKDE/v}if(x){for(f=new Array(T),o=0;o<T;o++)(h=f[o]={})[s.posLetter]=k+w[o].v/e,h[s.valLetter]=g.c2l(w[o].t,!0);r=p(f,u)}if(b){for(f=new Array(T),l=0,o=T-1;l<T;l++,o--)(h=f[l]={})[s.posLetter]=k-w[o].v/e,h[s.valLetter]=g.c2l(w[o].t,!0);i=p(f,u)}if(m)a=r+"L"+i.substr(1)+"Z";else{var S=[A,g.c2p(w[0].t)],E=[A,g.c2p(w[T-1].t)];"h"===u.orientation&&(S.reverse(),E.reverse()),a=x?"M"+S+"L"+r.substr(1)+"L"+E:"M"+E+"L"+i.substr(1)+"L"+S}_.attr("d",a),t.posCenterPx=A,t.posDensityScale=e*v,t.path=_.node(),t.pathLength=t.path.getTotalLength()/(m?2:1)}));var w,T,k,A=u.box,M=A.width,S=(A.line||{}).width;m?(w=v*M,T=0):x?(w=[0,v*M/2],T=S*{x:1,y:-1}[s.posLetter]):(w=[v*M/2,0],T=S*{x:-1,y:1}[s.posLetter]),o.plotBoxAndWhiskers(r,{pos:y,val:g},u,{bPos:d,bdPos:w,bPosPxOffset:T}),o.plotBoxMean(r,{pos:y,val:g},u,{bPos:d,bdPos:w,bPosPxOffset:T}),!u.box.visible&&u.meanline.visible&&(k=i.identity);var E=r.selectAll("path.meanline").data(k||[]);E.enter().append("path").attr("class","meanline").style("fill","none").style("vector-effect","non-scaling-stroke"),E.exit().remove(),E.each((function(t){var e=g.c2p(t.mean,!0),r=l.getPositionOnKdePath(t,u,e);n.select(this).attr("d","h"===u.orientation?"M"+e+","+r[0]+"V"+r[1]:"M"+r[0]+","+e+"H"+r[1])})),o.plotPoints(r,{x:f,y:h},u,s)}}))}},31847:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(16296).stylePoints;t.exports=function(t){var e=n.select(t).selectAll("g.trace.violins");e.style("opacity",(function(t){return t[0].trace.opacity})),e.each((function(e){var r=e[0].trace,o=n.select(this),s=r.box||{},l=s.line||{},u=r.meanline||{},c=u.width;o.selectAll("path.violin").style("stroke-width",r.line.width+"px").call(i.stroke,r.line.color).call(i.fill,r.fillcolor),o.selectAll("path.box").style("stroke-width",l.width+"px").call(i.stroke,l.color).call(i.fill,s.fillcolor);var f={"stroke-width":c+"px","stroke-dasharray":2*c+"px,"+c+"px"};o.selectAll("path.mean").style(f).call(i.stroke,u.color),o.selectAll("path.meanline").style(f).call(i.stroke,u.color),a(o,r,t)}))}},16336:function(t,e,r){"use strict";var n=r(50693),i=r(16249),a=r(54532),o=r(9012),s=r(1426).extendFlat,l=r(30962).overrideAll,u=t.exports=l(s({x:i.x,y:i.y,z:i.z,value:i.value,isomin:i.isomin,isomax:i.isomax,surface:i.surface,spaceframe:{show:{valType:"boolean",dflt:!1},fill:{valType:"number",min:0,max:1,dflt:1}},slices:i.slices,caps:i.caps,text:i.text,hovertext:i.hovertext,xhoverformat:i.xhoverformat,yhoverformat:i.yhoverformat,zhoverformat:i.zhoverformat,valuehoverformat:i.valuehoverformat,hovertemplate:i.hovertemplate},n("",{colorAttr:"`value`",showScaleDflt:!0,editTypeOverride:"calc"}),{colorbar:i.colorbar,opacity:i.opacity,opacityscale:a.opacityscale,lightposition:i.lightposition,lighting:i.lighting,flatshading:i.flatshading,contour:i.contour,hoverinfo:s({},o.hoverinfo),showlegend:s({},o.showlegend,{dflt:!1})}),"calc","nested");u.x.editType=u.y.editType=u.z.editType=u.value.editType="calc+clearAxisTypes",u.transforms=void 0},64809:function(t,e,r){"use strict";var n=r(9330).gl_mesh3d,i=r(81697).parseColorScale,a=r(78614),o=r(21081).extractOpts,s=r(90060),l=r(22674).findNearestOnAxis,u=r(22674).generateIsoMeshes;function c(t,e,r){this.scene=t,this.uid=r,this.mesh=e,this.name="",this.data=null,this.showContour=!1}var f=c.prototype;f.handlePick=function(t){if(t.object===this.mesh){var e=t.data.index,r=this.data._meshX[e],n=this.data._meshY[e],i=this.data._meshZ[e],a=this.data._Ys.length,o=this.data._Zs.length,s=l(r,this.data._Xs).id,u=l(n,this.data._Ys).id,c=l(i,this.data._Zs).id,f=t.index=c+o*u+o*a*s;t.traceCoordinate=[this.data._meshX[f],this.data._meshY[f],this.data._meshZ[f],this.data._value[f]];var h=this.data.hovertext||this.data.text;return Array.isArray(h)&&void 0!==h[f]?t.textLabel=h[f]:h&&(t.textLabel=h),!0}},f.update=function(t){var e=this.scene,r=e.fullSceneLayout;function n(t,e,r,n){return e.map((function(e){return t.d2l(e,0,n)*r}))}this.data=u(t);var l={positions:s(n(r.xaxis,t._meshX,e.dataScale[0],t.xcalendar),n(r.yaxis,t._meshY,e.dataScale[1],t.ycalendar),n(r.zaxis,t._meshZ,e.dataScale[2],t.zcalendar)),cells:s(t._meshI,t._meshJ,t._meshK),lightPosition:[t.lightposition.x,t.lightposition.y,t.lightposition.z],ambient:t.lighting.ambient,diffuse:t.lighting.diffuse,specular:t.lighting.specular,roughness:t.lighting.roughness,fresnel:t.lighting.fresnel,vertexNormalsEpsilon:t.lighting.vertexnormalsepsilon,faceNormalsEpsilon:t.lighting.facenormalsepsilon,opacity:t.opacity,opacityscale:t.opacityscale,contourEnable:t.contour.show,contourColor:a(t.contour.color).slice(0,3),contourWidth:t.contour.width,useFacetNormals:t.flatshading},c=o(t);l.vertexIntensity=t._meshIntensity,l.vertexIntensityBounds=[c.min,c.max],l.colormap=i(t),this.mesh.update(l)},f.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()},t.exports=function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new c(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}},47651:function(t,e,r){"use strict";var n=r(71828),i=r(16336),a=r(82738).supplyIsoDefaults,o=r(91831).opacityscaleDefaults;t.exports=function(t,e,r,s){function l(r,a){return n.coerce(t,e,i,r,a)}a(t,e,r,s,l),o(t,e,s,l)}},17659:function(t,e,r){"use strict";t.exports={attributes:r(16336),supplyDefaults:r(47651),calc:r(56959),colorbar:{min:"cmin",max:"cmax"},plot:r(64809),moduleType:"trace",name:"volume",basePlotModule:r(58547),categories:["gl3d","showLegend"],meta:{}}},43037:function(t,e,r){"use strict";var n=r(1486),i=r(82196).line,a=r(9012),o=r(12663).axisHoverFormat,s=r(5386).f,l=r(5386).s,u=r(48334),c=r(1426).extendFlat,f=r(7901);function h(t){return{marker:{color:c({},n.marker.color,{arrayOk:!1,editType:"style"}),line:{color:c({},n.marker.line.color,{arrayOk:!1,editType:"style"}),width:c({},n.marker.line.width,{arrayOk:!1,editType:"style"}),editType:"style"},editType:"style"},editType:"style"}}t.exports={measure:{valType:"data_array",dflt:[],editType:"calc"},base:{valType:"number",dflt:null,arrayOk:!1,editType:"calc"},x:n.x,x0:n.x0,dx:n.dx,y:n.y,y0:n.y0,dy:n.dy,xperiod:n.xperiod,yperiod:n.yperiod,xperiod0:n.xperiod0,yperiod0:n.yperiod0,xperiodalignment:n.xperiodalignment,yperiodalignment:n.yperiodalignment,xhoverformat:o("x"),yhoverformat:o("y"),hovertext:n.hovertext,hovertemplate:s({},{keys:u.eventDataKeys}),hoverinfo:c({},a.hoverinfo,{flags:["name","x","y","text","initial","delta","final"]}),textinfo:{valType:"flaglist",flags:["label","text","initial","delta","final"],extras:["none"],editType:"plot",arrayOk:!1},texttemplate:l({editType:"plot"},{keys:u.eventDataKeys.concat(["label"])}),text:n.text,textposition:n.textposition,insidetextanchor:n.insidetextanchor,textangle:n.textangle,textfont:n.textfont,insidetextfont:n.insidetextfont,outsidetextfont:n.outsidetextfont,constraintext:n.constraintext,cliponaxis:n.cliponaxis,orientation:n.orientation,offset:n.offset,width:n.width,increasing:h(),decreasing:h(),totals:h(),connector:{line:{color:c({},i.color,{dflt:f.defaultLine}),width:c({},i.width,{editType:"plot"}),dash:i.dash,editType:"plot"},mode:{valType:"enumerated",values:["spanning","between"],dflt:"between",editType:"plot"},visible:{valType:"boolean",dflt:!0,editType:"plot"},editType:"plot"},offsetgroup:n.offsetgroup,alignmentgroup:n.alignmentgroup}},52752:function(t,e,r){"use strict";var n=r(89298),i=r(42973),a=r(71828).mergeArray,o=r(66279),s=r(50606).BADNUM;function l(t){return"a"===t||"absolute"===t}function u(t){return"t"===t||"total"===t}t.exports=function(t,e){var r,c,f,h,p,d,v=n.getFromId(t,e.xaxis||"x"),g=n.getFromId(t,e.yaxis||"y");"h"===e.orientation?(r=v.makeCalcdata(e,"x"),f=g.makeCalcdata(e,"y"),h=i(e,g,"y",f),p=!!e.yperiodalignment,d="y"):(r=g.makeCalcdata(e,"y"),f=v.makeCalcdata(e,"x"),h=i(e,v,"x",f),p=!!e.xperiodalignment,d="x"),c=h.vals;for(var y,m=Math.min(c.length,r.length),x=new Array(m),b=0,_=!1,w=0;w<m;w++){var T=r[w]||0,k=!1;(r[w]!==s||u(e.measure[w])||l(e.measure[w]))&&w+1<m&&(r[w+1]!==s||u(e.measure[w+1])||l(e.measure[w+1]))&&(k=!0);var A=x[w]={i:w,p:c[w],s:T,rawS:T,cNext:k};l(e.measure[w])?(b=A.s,A.isSum=!0,A.dir="totals",A.s=b):u(e.measure[w])?(A.isSum=!0,A.dir="totals",A.s=b):(A.isSum=!1,A.dir=A.rawS<0?"decreasing":"increasing",y=A.s,A.s=b+y,b+=y),"totals"===A.dir&&(_=!0),p&&(x[w].orig_p=f[w],x[w][d+"End"]=h.ends[w],x[w][d+"Start"]=h.starts[w]),e.ids&&(A.id=String(e.ids[w])),A.v=(e.base||0)+b}return x.length&&(x[0].hasTotals=_),a(e.text,x,"tx"),a(e.hovertext,x,"htx"),o(x,e),x}},48334:function(t){"use strict";t.exports={eventDataKeys:["initial","delta","final"]}},70766:function(t,e,r){"use strict";var n=r(11661).setGroupPositions;t.exports=function(t,e){var r,i,a=t._fullLayout,o=t._fullData,s=t.calcdata,l=e.xaxis,u=e.yaxis,c=[],f=[],h=[];for(i=0;i<o.length;i++){var p=o[i];!0===p.visible&&p.xaxis===l._id&&p.yaxis===u._id&&"waterfall"===p.type&&(r=s[i],"h"===p.orientation?h.push(r):f.push(r),c.push(r))}var d={mode:a.waterfallmode,norm:a.waterfallnorm,gap:a.waterfallgap,groupgap:a.waterfallgroupgap};for(n(t,l,u,f,d),n(t,u,l,h,d),i=0;i<c.length;i++){r=c[i];for(var v=0;v<r.length;v++){var g=r[v];!1===g.isSum&&(g.s0+=0===v?0:r[v-1].s),v+1<r.length&&(r[v].nextP0=r[v+1].p0,r[v].nextS0=r[v+1].s0)}}}},83266:function(t,e,r){"use strict";var n=r(71828),i=r(26125),a=r(90769).handleText,o=r(67513),s=r(73927),l=r(43037),u=r(7901),c=r(22372),f=c.INCREASING.COLOR,h=c.DECREASING.COLOR;function p(t,e,r){t(e+".marker.color",r),t(e+".marker.line.color",u.defaultLine),t(e+".marker.line.width")}t.exports={supplyDefaults:function(t,e,r,i){function u(r,i){return n.coerce(t,e,l,r,i)}if(o(t,e,i,u)){s(t,e,i,u),u("xhoverformat"),u("yhoverformat"),u("measure"),u("orientation",e.x&&!e.y?"h":"v"),u("base"),u("offset"),u("width"),u("text"),u("hovertext"),u("hovertemplate");var c=u("textposition");a(t,e,i,u,c,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!0,moduleHasCliponaxis:!0,moduleHasTextangle:!0,moduleHasInsideanchor:!0}),"none"!==e.textposition&&(u("texttemplate"),e.texttemplate||u("textinfo")),p(u,"increasing",f),p(u,"decreasing",h),p(u,"totals","#4499FF"),u("connector.visible")&&(u("connector.mode"),u("connector.line.width")&&(u("connector.line.color"),u("connector.line.dash")))}else e.visible=!1},crossTraceDefaults:function(t,e){var r,a;function o(t){return n.coerce(a._input,a,l,t)}if("group"===e.waterfallmode)for(var s=0;s<t.length;s++)r=(a=t[s])._input,i(r,a,e,o)}}},58593:function(t){"use strict";t.exports=function(t,e){return t.x="xVal"in e?e.xVal:e.x,t.y="yVal"in e?e.yVal:e.y,"initial"in e&&(t.initial=e.initial),"delta"in e&&(t.delta=e.delta),"final"in e&&(t.final=e.final),e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),t}},61326:function(t,e,r){"use strict";var n=r(89298).hoverLabelText,i=r(7901).opacity,a=r(95423).hoverOnBars,o=r(22372),s=o.INCREASING.SYMBOL,l=o.DECREASING.SYMBOL;t.exports=function(t,e,r,o,u){var c=a(t,e,r,o,u);if(c){var f=c.cd,h=f[0].trace,p="h"===h.orientation,d=p?"x":"y",v=p?t.xa:t.ya,g=f[c.index],y=g.isSum?g.b+g.s:g.rawS;if(!g.isSum){c.initial=g.b+g.s-y,c.delta=y,c.final=c.initial+c.delta;var m=k(Math.abs(c.delta));c.deltaLabel=y<0?"("+m+")":m,c.finalLabel=k(c.final),c.initialLabel=k(c.initial)}var x=g.hi||h.hoverinfo,b=[];if(x&&"none"!==x&&"skip"!==x){var _="all"===x,w=x.split("+"),T=function(t){return _||-1!==w.indexOf(t)};g.isSum||(!T("final")||T(p?"x":"y")||b.push(c.finalLabel),T("delta")&&(y<0?b.push(c.deltaLabel+" "+l):b.push(c.deltaLabel+" "+s)),T("initial")&&b.push("Initial: "+c.initialLabel))}return b.length&&(c.extraText=b.join("<br>")),c.color=function(t,e){var r=t[e.dir].marker,n=r.color,a=r.line.color,o=r.line.width;return i(n)?n:i(a)&&o?a:void 0}(h,g),[c]}function k(t){return n(v,t,h[d+"hoverformat"])}}},19990:function(t,e,r){"use strict";t.exports={attributes:r(43037),layoutAttributes:r(13494),supplyDefaults:r(83266).supplyDefaults,crossTraceDefaults:r(83266).crossTraceDefaults,supplyLayoutDefaults:r(5176),calc:r(52752),crossTraceCalc:r(70766),plot:r(30436),style:r(55750).style,hoverPoints:r(61326),eventData:r(58593),selectPoints:r(81974),moduleType:"trace",name:"waterfall",basePlotModule:r(93612),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},13494:function(t){"use strict";t.exports={waterfallmode:{valType:"enumerated",values:["group","overlay"],dflt:"group",editType:"calc"},waterfallgap:{valType:"number",min:0,max:1,editType:"calc"},waterfallgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},5176:function(t,e,r){"use strict";var n=r(71828),i=r(13494);t.exports=function(t,e,r){var a=!1;function o(r,a){return n.coerce(t,e,i,r,a)}for(var s=0;s<r.length;s++){var l=r[s];if(l.visible&&"waterfall"===l.type){a=!0;break}}a&&(o("waterfallmode"),o("waterfallgap",.2),o("waterfallgroupgap"))}},30436:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424),o=r(50606).BADNUM,s=r(17295),l=r(72597).clearMinTextSize;t.exports=function(t,e,r,u){var c=t._fullLayout;l("waterfall",c),s.plot(t,e,r,u,{mode:c.waterfallmode,norm:c.waterfallmode,gap:c.waterfallgap,groupgap:c.waterfallgroupgap}),function(t,e,r,s){var l=e.xaxis,u=e.yaxis;i.makeTraceGroups(s,r,"trace bars").each((function(r){var s=n.select(this),c=r[0].trace,f=i.ensureSingle(s,"g","lines");if(c.connector&&c.connector.visible){var h="h"===c.orientation,p=c.connector.mode,d=f.selectAll("g.line").data(i.identity);d.enter().append("g").classed("line",!0),d.exit().remove();var v=d.size();d.each((function(r,s){if(s===v-1||r.cNext){var c=function(t,e,r,n){var i=[],a=[],o=n?e:r,s=n?r:e;return i[0]=o.c2p(t.s0,!0),a[0]=s.c2p(t.p0,!0),i[1]=o.c2p(t.s1,!0),a[1]=s.c2p(t.p1,!0),i[2]=o.c2p(t.nextS0,!0),a[2]=s.c2p(t.nextP0,!0),n?[i,a]:[a,i]}(r,l,u,h),f=c[0],d=c[1],g="";f[0]!==o&&d[0]!==o&&f[1]!==o&&d[1]!==o&&("spanning"===p&&!r.isSum&&s>0&&(g+=h?"M"+f[0]+","+d[1]+"V"+d[0]:"M"+f[1]+","+d[0]+"H"+f[0]),"between"!==p&&(r.isSum||s<v-1)&&(g+=h?"M"+f[1]+","+d[0]+"V"+d[1]:"M"+f[0]+","+d[1]+"H"+f[1]),f[2]!==o&&d[2]!==o&&(g+=h?"M"+f[1]+","+d[1]+"V"+d[2]:"M"+f[1]+","+d[1]+"H"+f[2])),""===g&&(g="M0,0Z"),i.ensureSingle(n.select(this),"path").attr("d",g).call(a.setClipUrl,e.layerClipId,t)}}))}else f.remove()}))}(t,e,r,u)}},55750:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(7901),o=r(37822).DESELECTDIM,s=r(16688),l=r(72597).resizeText,u=s.styleTextPoints;t.exports={style:function(t,e,r){var s=r||n.select(t).selectAll("g.waterfalllayer").selectAll("g.trace");l(t,s,"waterfall"),s.style("opacity",(function(t){return t[0].trace.opacity})),s.each((function(e){var r=n.select(this),s=e[0].trace;r.selectAll(".point > path").each((function(t){if(!t.isBlank){var e=s[t.dir].marker;n.select(this).call(a.fill,e.color).call(a.stroke,e.line.color).call(i.dashLine,e.line.dash,e.line.width).style("opacity",s.selectedpoints&&!t.selected?o:1)}})),u(r,s,t),r.selectAll(".lines").each((function(){var t=s.connector.line;i.lineGroupStyle(n.select(this).selectAll("path"),t.width,t.color,t.dash)}))}))}}},82887:function(t,e,r){"use strict";var n=r(89298),i=r(71828),a=r(86281),o=r(79344).p,s=r(50606).BADNUM;e.moduleType="transform",e.name="aggregate";var l=e.attributes={enabled:{valType:"boolean",dflt:!0,editType:"calc"},groups:{valType:"string",strict:!0,noBlank:!0,arrayOk:!0,dflt:"x",editType:"calc"},aggregations:{_isLinkedToArray:"aggregation",target:{valType:"string",editType:"calc"},func:{valType:"enumerated",values:["count","sum","avg","median","mode","rms","stddev","min","max","first","last","change","range"],dflt:"first",editType:"calc"},funcmode:{valType:"enumerated",values:["sample","population"],dflt:"sample",editType:"calc"},enabled:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},editType:"calc"},u=l.aggregations;function c(t,e,r,a){if(a.enabled){for(var o=a.target,l=i.nestedProperty(e,o),u=l.get(),c=function(t,e){var r=t.func,n=e.d2c,a=e.c2d;switch(r){case"count":return f;case"first":return h;case"last":return p;case"sum":return function(t,e){for(var r=0,i=0;i<e.length;i++){var o=n(t[e[i]]);o!==s&&(r+=o)}return a(r)};case"avg":return function(t,e){for(var r=0,i=0,o=0;o<e.length;o++){var l=n(t[e[o]]);l!==s&&(r+=l,i++)}return i?a(r/i):s};case"min":return function(t,e){for(var r=1/0,i=0;i<e.length;i++){var o=n(t[e[i]]);o!==s&&(r=Math.min(r,o))}return r===1/0?s:a(r)};case"max":return function(t,e){for(var r=-1/0,i=0;i<e.length;i++){var o=n(t[e[i]]);o!==s&&(r=Math.max(r,o))}return r===-1/0?s:a(r)};case"range":return function(t,e){for(var r=1/0,i=-1/0,o=0;o<e.length;o++){var l=n(t[e[o]]);l!==s&&(r=Math.min(r,l),i=Math.max(i,l))}return i===-1/0||r===1/0?s:a(i-r)};case"change":return function(t,e){var r=n(t[e[0]]),i=n(t[e[e.length-1]]);return r===s||i===s?s:a(i-r)};case"median":return function(t,e){for(var r=[],o=0;o<e.length;o++){var l=n(t[e[o]]);l!==s&&r.push(l)}if(!r.length)return s;r.sort(i.sorterAsc);var u=(r.length-1)/2;return a((r[Math.floor(u)]+r[Math.ceil(u)])/2)};case"mode":return function(t,e){for(var r={},i=0,o=s,l=0;l<e.length;l++){var u=n(t[e[l]]);if(u!==s){var c=r[u]=(r[u]||0)+1;c>i&&(i=c,o=u)}}return i?a(o):s};case"rms":return function(t,e){for(var r=0,i=0,o=0;o<e.length;o++){var l=n(t[e[o]]);l!==s&&(r+=l*l,i++)}return i?a(Math.sqrt(r/i)):s};case"stddev":return function(e,r){var i,a=0,o=0,l=1,u=s;for(i=0;i<r.length&&u===s;i++)u=n(e[r[i]]);if(u===s)return s;for(;i<r.length;i++){var c=n(e[r[i]]);if(c!==s){var f=c-u;a+=f,o+=f*f,l++}}var h="sample"===t.funcmode?l-1:l;return h?Math.sqrt((o-a*a/l)/h):0}}}(a,n.getDataConversions(t,e,o,u)),d=new Array(r.length),v=0;v<r.length;v++)d[v]=c(u,r[v]);l.set(d),"count"===a.func&&i.pushUnique(e._arrayAttrs,o)}}function f(t,e){return e.length}function h(t,e){return t[e[0]]}function p(t,e){return t[e[e.length-1]]}e.supplyDefaults=function(t,e){var r,n={};function o(e,r){return i.coerce(t,n,l,e,r)}if(!o("enabled"))return n;var s=a.findArrayAttributes(e),c={};for(r=0;r<s.length;r++)c[s[r]]=1;var f=o("groups");if(!Array.isArray(f)){if(!c[f])return n.enabled=!1,n;c[f]=0}var h,p=t.aggregations||[],d=n.aggregations=new Array(p.length);function v(t,e){return i.coerce(p[r],h,u,t,e)}for(r=0;r<p.length;r++){h={_index:r};var g=v("target"),y=v("func");v("enabled")&&g&&(c[g]||"count"===y&&void 0===c[g])?("stddev"===y&&v("funcmode"),c[g]=0,d[r]=h):d[r]={enabled:!1,_index:r}}for(r=0;r<s.length;r++)c[s[r]]&&d.push({target:s[r],func:u.func.dflt,enabled:!0,_index:-1});return n},e.calcTransform=function(t,e,r){if(r.enabled){var n=r.groups,a=i.getTargetArray(e,{target:n});if(a){var s,l,u,f,h={},p={},d=[],v=o(e.transforms,r),g=a.length;for(e._length&&(g=Math.min(g,e._length)),s=0;s<g;s++)void 0===(u=h[l=a[s]])?(h[l]=d.length,f=[s],d.push(f),p[h[l]]=v(s)):(d[u].push(s),p[h[l]]=(p[h[l]]||[]).concat(v(s)));r._indexToPoints=p;var y=r.aggregations;for(s=0;s<y.length;s++)c(t,e,d,y[s]);"string"==typeof n&&c(t,e,d,{target:n,func:"first",enabled:!0}),e._length=d.length}}}},14382:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(89298),o=r(79344).p,s=r(74808),l=s.COMPARISON_OPS,u=s.INTERVAL_OPS,c=s.SET_OPS;e.moduleType="transform",e.name="filter",e.attributes={enabled:{valType:"boolean",dflt:!0,editType:"calc"},target:{valType:"string",strict:!0,noBlank:!0,arrayOk:!0,dflt:"x",editType:"calc"},operation:{valType:"enumerated",values:[].concat(l).concat(u).concat(c),dflt:"=",editType:"calc"},value:{valType:"any",dflt:0,editType:"calc"},preservegaps:{valType:"boolean",dflt:!1,editType:"calc"},editType:"calc"},e.supplyDefaults=function(t){var r={};function a(i,a){return n.coerce(t,r,e.attributes,i,a)}if(a("enabled")){var o=a("target");if(n.isArrayOrTypedArray(o)&&0===o.length)return r.enabled=!1,r;a("preservegaps"),a("operation"),a("value");var s=i.getComponentMethod("calendars","handleDefaults");s(t,r,"valuecalendar",null),s(t,r,"targetcalendar",null)}return r},e.calcTransform=function(t,e,r){if(r.enabled){var i=n.getTargetArray(e,r);if(i){var s=r.target,f=i.length;e._length&&(f=Math.min(f,e._length));var h=r.targetcalendar,p=e._arrayAttrs,d=r.preservegaps;if("string"==typeof s){var v=n.nestedProperty(e,s+"calendar").get();v&&(h=v)}var g,y,m=function(t,e,r){var n=t.operation,i=t.value,a=Array.isArray(i);function o(t){return-1!==t.indexOf(n)}var s,f=function(r){return e(r,0,t.valuecalendar)},h=function(t){return e(t,0,r)};switch(o(l)?s=f(a?i[0]:i):o(u)?s=a?[f(i[0]),f(i[1])]:[f(i),f(i)]:o(c)&&(s=a?i.map(f):[f(i)]),n){case"=":return function(t){return h(t)===s};case"!=":return function(t){return h(t)!==s};case"<":return function(t){return h(t)<s};case"<=":return function(t){return h(t)<=s};case">":return function(t){return h(t)>s};case">=":return function(t){return h(t)>=s};case"[]":return function(t){var e=h(t);return e>=s[0]&&e<=s[1]};case"()":return function(t){var e=h(t);return e>s[0]&&e<s[1]};case"[)":return function(t){var e=h(t);return e>=s[0]&&e<s[1]};case"(]":return function(t){var e=h(t);return e>s[0]&&e<=s[1]};case"][":return function(t){var e=h(t);return e<=s[0]||e>=s[1]};case")(":return function(t){var e=h(t);return e<s[0]||e>s[1]};case"](":return function(t){var e=h(t);return e<=s[0]||e>s[1]};case")[":return function(t){var e=h(t);return e<s[0]||e>=s[1]};case"{}":return function(t){return-1!==s.indexOf(h(t))};case"}{":return function(t){return-1===s.indexOf(h(t))}}}(r,a.getDataToCoordFunc(t,e,s,i),h),x={},b={},_=0;d?(g=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set(new Array(f))},y=function(t,e){var r=x[t.astr][e];t.get()[e]=r}):(g=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set([])},y=function(t,e){var r=x[t.astr][e];t.get().push(r)}),k(g);for(var w=o(e.transforms,r),T=0;T<f;T++)m(i[T])?(k(y,T),b[_++]=w(T)):d&&_++;r._indexToPoints=b,e._length=_}}function k(t,r){for(var i=0;i<p.length;i++)t(n.nestedProperty(e,p[i]),r)}}},43102:function(t,e,r){"use strict";var n=r(71828),i=r(86281),a=r(74875),o=r(79344).p;function s(t,e){var r,s,l,u,c,f,h,p,d,v,g=e.transform,y=e.transformIndex,m=t.transforms[y].groups,x=o(t.transforms,g);if(!n.isArrayOrTypedArray(m)||0===m.length)return[t];var b=n.filterUnique(m),_=new Array(b.length),w=m.length,T=i.findArrayAttributes(t),k=g.styles||[],A={};for(r=0;r<k.length;r++)A[k[r].target]=k[r].value;g.styles&&(v=n.keyedContainer(g,"styles","target","value.name"));var M={},S={};for(r=0;r<b.length;r++){M[f=b[r]]=r,S[f]=0,(h=_[r]=n.extendDeepNoArrays({},t))._group=f,h.transforms[y]._indexToPoints={};var E=null;for(v&&(E=v.get(f)),h.name=E||""===E?E:n.templateString(g.nameformat,{trace:t.name,group:f}),p=h.transforms,h.transforms=[],s=0;s<p.length;s++)h.transforms[s]=n.extendDeepNoArrays({},p[s]);for(s=0;s<T.length;s++)n.nestedProperty(h,T[s]).set([])}for(l=0;l<T.length;l++){for(u=T[l],s=0,d=[];s<b.length;s++)d[s]=n.nestedProperty(_[s],u).get();for(c=n.nestedProperty(t,u).get(),s=0;s<w;s++)d[M[m[s]]].push(c[s])}for(s=0;s<w;s++)(h=_[M[m[s]]]).transforms[y]._indexToPoints[S[m[s]]]=x(s),S[m[s]]++;for(r=0;r<b.length;r++)f=b[r],h=_[r],a.clearExpandedTraceDefaultColors(h),h=n.extendDeepNoArrays(h,A[f]||{});return _}e.moduleType="transform",e.name="groupby",e.attributes={enabled:{valType:"boolean",dflt:!0,editType:"calc"},groups:{valType:"data_array",dflt:[],editType:"calc"},nameformat:{valType:"string",editType:"calc"},styles:{_isLinkedToArray:"style",target:{valType:"string",editType:"calc"},value:{valType:"any",dflt:{},editType:"calc",_compareAsJSON:!0},editType:"calc"},editType:"calc"},e.supplyDefaults=function(t,r,i){var a,o={};function s(r,i){return n.coerce(t,o,e.attributes,r,i)}if(!s("enabled"))return o;s("groups"),s("nameformat",i._dataLength>1?"%{group} (%{trace})":"%{group}");var l=t.styles,u=o.styles=[];if(l)for(a=0;a<l.length;a++){var c=u[a]={};n.coerce(l[a],u[a],e.attributes.styles,"target");var f=n.coerce(l[a],u[a],e.attributes.styles,"value");n.isPlainObject(f)?c.value=n.extendDeep({},f):f&&delete c.value}return o},e.transform=function(t,e){var r,n,i,a=[];for(n=0;n<t.length;n++)for(r=s(t[n],e),i=0;i<r.length;i++)a.push(r[i]);return a}},79344:function(t,e){"use strict";e.p=function(t,e){for(var r,n,i=0;i<t.length&&(r=t[i])!==e;i++)r._indexToPoints&&!1!==r.enabled&&(n=r._indexToPoints);var a=n?function(t){return n[t]}:function(t){return[t]};return a}},32275:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(79344).p,o=r(50606).BADNUM;e.moduleType="transform",e.name="sort",e.attributes={enabled:{valType:"boolean",dflt:!0,editType:"calc"},target:{valType:"string",strict:!0,noBlank:!0,arrayOk:!0,dflt:"x",editType:"calc"},order:{valType:"enumerated",values:["ascending","descending"],dflt:"ascending",editType:"calc"},editType:"calc"},e.supplyDefaults=function(t){var r={};function i(i,a){return n.coerce(t,r,e.attributes,i,a)}return i("enabled")&&(i("target"),i("order")),r},e.calcTransform=function(t,e,r){if(r.enabled){var s=n.getTargetArray(e,r);if(s){var l=r.target,u=s.length;e._length&&(u=Math.min(u,e._length));var c,f,h=e._arrayAttrs,p=function(t,e,r,n){var i,a=new Array(n),s=new Array(n);for(i=0;i<n;i++)a[i]={v:e[i],i:i};for(a.sort(function(t,e){switch(t.order){case"ascending":return function(t,r){var n=e(t.v),i=e(r.v);return n===o?1:i===o?-1:n-i};case"descending":return function(t,r){var n=e(t.v),i=e(r.v);return n===o?1:i===o?-1:i-n}}}(t,r)),i=0;i<n;i++)s[i]=a[i].i;return s}(r,s,i.getDataToCoordFunc(t,e,l,s),u),d=a(e.transforms,r),v={};for(c=0;c<h.length;c++){var g=n.nestedProperty(e,h[c]),y=g.get(),m=new Array(u);for(f=0;f<u;f++)m[f]=y[p[f]];g.set(m)}for(f=0;f<u;f++)v[f]=d(p[f]);r._indexToPoints=v,e._length=u}}}},11506:function(t,e){"use strict";e.version="2.18.0"},9330:function(t,e,r){var n,i=r(90386);self,n=function(){return function(){var t={7386:function(t,e,r){t.exports={alpha_shape:r(2350),convex_hull:r(5537),delaunay_triangulate:r(4419),gl_cone3d:r(1140),gl_error3d:r(3110),gl_heatmap2d:r(6386),gl_line3d:r(6086),gl_mesh3d:r(8116),gl_plot2d:r(2117),gl_plot3d:r(1059),gl_pointcloud2d:r(8271),gl_scatter3d:r(2182),gl_select_box:r(6623),gl_spikes2d:r(3050),gl_streamtube3d:r(7307),gl_surface3d:r(3754),ndarray:r(5050),ndarray_linear_interpolate:r(3581)}},2146:function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return a=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},a(t,e)}function o(t,e){if(e&&("object"===u(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return s(t)}function s(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function u(t){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u(t)}var c=r(3910),f=r(3187),h="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.lW=v,e.h2=50;var p=2147483647;function d(t){if(t>p)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,v.prototype),e}function v(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return m(t)}return g(t,e,r)}function g(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!v.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=0|w(t,e),n=d(r),i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(rt(t,Uint8Array)){var e=new Uint8Array(t);return b(e.buffer,e.byteOffset,e.byteLength)}return x(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+u(t));if(rt(t,ArrayBuffer)||t&&rt(t.buffer,ArrayBuffer))return b(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(rt(t,SharedArrayBuffer)||t&&rt(t.buffer,SharedArrayBuffer)))return b(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return v.from(n,e,r);var i=function(t){if(v.isBuffer(t)){var e=0|_(t.length),r=d(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||nt(t.length)?d(0):x(t):"Buffer"===t.type&&Array.isArray(t.data)?x(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return v.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+u(t))}function y(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function m(t){return y(t),d(t<0?0:0|_(t))}function x(t){for(var e=t.length<0?0:0|_(t.length),r=d(e),n=0;n<e;n+=1)r[n]=255&t[n];return r}function b(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('"length" is outside of buffer bounds');var n;return n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r),Object.setPrototypeOf(n,v.prototype),n}function _(t){if(t>=p)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+p.toString(16)+" bytes");return 0|t}function w(t,e){if(v.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||rt(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+u(t));var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Q(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return tt(t).length;default:if(i)return n?-1:Q(t).length;e=(""+e).toLowerCase(),i=!0}}function T(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return F(this,e,r);case"utf8":case"utf-8":return I(this,e,r);case"ascii":return z(this,e,r);case"latin1":case"binary":return R(this,e,r);case"base64":return O(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function k(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function A(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),nt(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=v.from(e,n)),v.isBuffer(e))return 0===e.length?-1:M(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):M(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function M(t,e,r,n,i){var a,o=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function u(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var c=-1;for(a=r;a<s;a++)if(u(t,a)===u(e,-1===c?0:a-c)){if(-1===c&&(c=a),a-c+1===l)return c*o}else-1!==c&&(a-=a-c),c=-1}else for(r+l>s&&(r=s-l),a=r;a>=0;a--){for(var f=!0,h=0;h<l;h++)if(u(t,a+h)!==u(e,h)){f=!1;break}if(f)return a}return-1}function S(t,e,r,n){r=Number(r)||0;var i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;var a,o=e.length;for(n>o/2&&(n=o/2),a=0;a<n;++a){var s=parseInt(e.substr(2*a,2),16);if(nt(s))return a;t[r+a]=s}return a}function E(t,e,r,n){return et(Q(e,t.length-r),t,r,n)}function L(t,e,r,n){return et(function(t){for(var e=[],r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function C(t,e,r,n){return et(tt(e),t,r,n)}function P(t,e,r,n){return et(function(t,e){for(var r,n,i,a=[],o=0;o<t.length&&!((e-=2)<0);++o)n=(r=t.charCodeAt(o))>>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function O(t,e,r){return 0===e&&r===t.length?c.fromByteArray(t):c.fromByteArray(t.slice(e,r))}function I(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i<r;){var a=t[i],o=null,s=a>239?4:a>223?3:a>191?2:1;if(i+s<=r){var l=void 0,u=void 0,c=void 0,f=void 0;switch(s){case 1:a<128&&(o=a);break;case 2:128==(192&(l=t[i+1]))&&(f=(31&a)<<6|63&l)>127&&(o=f);break;case 3:l=t[i+1],u=t[i+2],128==(192&l)&&128==(192&u)&&(f=(15&a)<<12|(63&l)<<6|63&u)>2047&&(f<55296||f>57343)&&(o=f);break;case 4:l=t[i+1],u=t[i+2],c=t[i+3],128==(192&l)&&128==(192&u)&&128==(192&c)&&(f=(15&a)<<18|(63&l)<<12|(63&u)<<6|63&c)>65535&&f<1114112&&(o=f)}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return function(t){var e=t.length;if(e<=D)return String.fromCharCode.apply(String,t);for(var r="",n=0;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=D));return r}(n)}v.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),v.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(v.prototype,"parent",{enumerable:!0,get:function(){if(v.isBuffer(this))return this.buffer}}),Object.defineProperty(v.prototype,"offset",{enumerable:!0,get:function(){if(v.isBuffer(this))return this.byteOffset}}),v.poolSize=8192,v.from=function(t,e,r){return g(t,e,r)},Object.setPrototypeOf(v.prototype,Uint8Array.prototype),Object.setPrototypeOf(v,Uint8Array),v.alloc=function(t,e,r){return function(t,e,r){return y(t),t<=0?d(t):void 0!==e?"string"==typeof r?d(t).fill(e,r):d(t).fill(e):d(t)}(t,e,r)},v.allocUnsafe=function(t){return m(t)},v.allocUnsafeSlow=function(t){return m(t)},v.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==v.prototype},v.compare=function(t,e){if(rt(t,Uint8Array)&&(t=v.from(t,t.offset,t.byteLength)),rt(e,Uint8Array)&&(e=v.from(e,e.offset,e.byteLength)),!v.isBuffer(t)||!v.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i<a;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0},v.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},v.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return v.alloc(0);var r;if(void 0===e)for(e=0,r=0;r<t.length;++r)e+=t[r].length;var n=v.allocUnsafe(e),i=0;for(r=0;r<t.length;++r){var a=t[r];if(rt(a,Uint8Array))i+a.length>n.length?(v.isBuffer(a)||(a=v.from(a)),a.copy(n,i)):Uint8Array.prototype.set.call(n,a,i);else{if(!v.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,i)}i+=a.length}return n},v.byteLength=w,v.prototype._isBuffer=!0,v.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)k(this,e,e+1);return this},v.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)k(this,e,e+3),k(this,e+1,e+2);return this},v.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)k(this,e,e+7),k(this,e+1,e+6),k(this,e+2,e+5),k(this,e+3,e+4);return this},v.prototype.toString=function(){var t=this.length;return 0===t?"":0===arguments.length?I(this,0,t):T.apply(this,arguments)},v.prototype.toLocaleString=v.prototype.toString,v.prototype.equals=function(t){if(!v.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===v.compare(this,t)},v.prototype.inspect=function(){var t="",r=e.h2;return t=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(t+=" ... "),"<Buffer "+t+">"},h&&(v.prototype[h]=v.prototype.inspect),v.prototype.compare=function(t,e,r,n,i){if(rt(t,Uint8Array)&&(t=v.from(t,t.offset,t.byteLength)),!v.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+u(t));if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0),s=Math.min(a,o),l=this.slice(n,i),c=t.slice(e,r),f=0;f<s;++f)if(l[f]!==c[f]){a=l[f],o=c[f];break}return a<o?-1:o<a?1:0},v.prototype.includes=function(t,e,r){return-1!==this.indexOf(t,e,r)},v.prototype.indexOf=function(t,e,r){return A(this,t,e,r,!0)},v.prototype.lastIndexOf=function(t,e,r){return A(this,t,e,r,!1)},v.prototype.write=function(t,e,r,n){if(void 0===e)n="utf8",r=this.length,e=0;else if(void 0===r&&"string"==typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return S(this,t,e,r);case"utf8":case"utf-8":return E(this,t,e,r);case"ascii":case"latin1":case"binary":return L(this,t,e,r);case"base64":return C(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},v.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;function z(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function R(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function F(t,e,r){var n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);for(var i="",a=e;a<r;++a)i+=it[t[a]];return i}function B(t,e,r){for(var n=t.slice(e,r),i="",a=0;a<n.length-1;a+=2)i+=String.fromCharCode(n[a]+256*n[a+1]);return i}function N(t,e,r){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>r)throw new RangeError("Trying to access beyond buffer length")}function j(t,e,r,n,i,a){if(!v.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<a)throw new RangeError('"value" argument is out of bounds');if(r+n>t.length)throw new RangeError("Index out of range")}function U(t,e,r,n,i){X(e,n,i,t,r,7);var a=Number(e&BigInt(4294967295));t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a;var o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,r}function V(t,e,r,n,i){X(e,n,i,t,r,7);var a=Number(e&BigInt(4294967295));t[r+7]=a,a>>=8,t[r+6]=a,a>>=8,t[r+5]=a,a>>=8,t[r+4]=a;var o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=o,o>>=8,t[r+2]=o,o>>=8,t[r+1]=o,o>>=8,t[r]=o,r+8}function H(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function q(t,e,r,n,i){return e=+e,r>>>=0,i||H(t,0,r,4),f.write(t,e,r,n,23,4),r+4}function G(t,e,r,n,i){return e=+e,r>>>=0,i||H(t,0,r,8),f.write(t,e,r,n,52,8),r+8}v.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t);var n=this.subarray(t,e);return Object.setPrototypeOf(n,v.prototype),n},v.prototype.readUintLE=v.prototype.readUIntLE=function(t,e,r){t>>>=0,e>>>=0,r||N(t,e,this.length);for(var n=this[t],i=1,a=0;++a<e&&(i*=256);)n+=this[t+a]*i;return n},v.prototype.readUintBE=v.prototype.readUIntBE=function(t,e,r){t>>>=0,e>>>=0,r||N(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},v.prototype.readUint8=v.prototype.readUInt8=function(t,e){return t>>>=0,e||N(t,1,this.length),this[t]},v.prototype.readUint16LE=v.prototype.readUInt16LE=function(t,e){return t>>>=0,e||N(t,2,this.length),this[t]|this[t+1]<<8},v.prototype.readUint16BE=v.prototype.readUInt16BE=function(t,e){return t>>>=0,e||N(t,2,this.length),this[t]<<8|this[t+1]},v.prototype.readUint32LE=v.prototype.readUInt32LE=function(t,e){return t>>>=0,e||N(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},v.prototype.readUint32BE=v.prototype.readUInt32BE=function(t,e){return t>>>=0,e||N(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},v.prototype.readBigUInt64LE=at((function(t){J(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||K(t,this.length-8);var n=e+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,24),i=this[++t]+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+r*Math.pow(2,24);return BigInt(n)+(BigInt(i)<<BigInt(32))})),v.prototype.readBigUInt64BE=at((function(t){J(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||K(t,this.length-8);var n=e*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+this[++t],i=this[++t]*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+r;return(BigInt(n)<<BigInt(32))+BigInt(i)})),v.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||N(t,e,this.length);for(var n=this[t],i=1,a=0;++a<e&&(i*=256);)n+=this[t+a]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*e)),n},v.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||N(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},v.prototype.readInt8=function(t,e){return t>>>=0,e||N(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},v.prototype.readInt16LE=function(t,e){t>>>=0,e||N(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},v.prototype.readInt16BE=function(t,e){t>>>=0,e||N(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},v.prototype.readInt32LE=function(t,e){return t>>>=0,e||N(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},v.prototype.readInt32BE=function(t,e){return t>>>=0,e||N(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},v.prototype.readBigInt64LE=at((function(t){J(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||K(t,this.length-8);var n=this[t+4]+this[t+5]*Math.pow(2,8)+this[t+6]*Math.pow(2,16)+(r<<24);return(BigInt(n)<<BigInt(32))+BigInt(e+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,24))})),v.prototype.readBigInt64BE=at((function(t){J(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||K(t,this.length-8);var n=(e<<24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+this[++t];return(BigInt(n)<<BigInt(32))+BigInt(this[++t]*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+r)})),v.prototype.readFloatLE=function(t,e){return t>>>=0,e||N(t,4,this.length),f.read(this,t,!0,23,4)},v.prototype.readFloatBE=function(t,e){return t>>>=0,e||N(t,4,this.length),f.read(this,t,!1,23,4)},v.prototype.readDoubleLE=function(t,e){return t>>>=0,e||N(t,8,this.length),f.read(this,t,!0,52,8)},v.prototype.readDoubleBE=function(t,e){return t>>>=0,e||N(t,8,this.length),f.read(this,t,!1,52,8)},v.prototype.writeUintLE=v.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||j(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a<r&&(i*=256);)this[e+a]=t/i&255;return e+r},v.prototype.writeUintBE=v.prototype.writeUIntBE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||j(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+r},v.prototype.writeUint8=v.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,1,255,0),this[e]=255&t,e+1},v.prototype.writeUint16LE=v.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},v.prototype.writeUint16BE=v.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},v.prototype.writeUint32LE=v.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},v.prototype.writeUint32BE=v.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},v.prototype.writeBigUInt64LE=at((function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return U(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),v.prototype.writeBigUInt64BE=at((function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return V(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),v.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);j(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a<r&&(o*=256);)t<0&&0===s&&0!==this[e+a-1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},v.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);j(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},v.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},v.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},v.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},v.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},v.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},v.prototype.writeBigInt64LE=at((function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return U(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),v.prototype.writeBigInt64BE=at((function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return V(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),v.prototype.writeFloatLE=function(t,e,r){return q(this,t,e,!0,r)},v.prototype.writeFloatBE=function(t,e,r){return q(this,t,e,!1,r)},v.prototype.writeDoubleLE=function(t,e,r){return G(this,t,e,!0,r)},v.prototype.writeDoubleBE=function(t,e,r){return G(this,t,e,!1,r)},v.prototype.copy=function(t,e,r,n){if(!v.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-r&&(n=t.length-e+r);var i=n-r;return this===t&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,r,n):Uint8Array.prototype.set.call(t,this.subarray(r,n),e),i},v.prototype.fill=function(t,e,r,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!v.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){var i=t.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(t=i)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<r)throw new RangeError("Out of range index");if(r<=e)return this;var a;if(e>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(a=e;a<r;++a)this[a]=t;else{var o=v.isBuffer(t)?t:v.from(t,n),s=o.length;if(0===s)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(a=0;a<r-e;++a)this[a+e]=o[a%s]}return this};var Z={};function Y(t,e,r){Z[t]=function(r){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&a(t,e)}(d,r);var u,c,f,h,p=(f=d,h=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,e=l(f);if(h){var r=l(this).constructor;t=Reflect.construct(e,arguments,r)}else t=e.apply(this,arguments);return o(this,t)});function d(){var r;return n(this,d),r=p.call(this),Object.defineProperty(s(r),"message",{value:e.apply(s(r),arguments),writable:!0,configurable:!0}),r.name="".concat(r.name," [").concat(t,"]"),r.stack,delete r.name,r}return u=d,(c=[{key:"code",get:function(){return t},set:function(t){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:t,writable:!0})}},{key:"toString",value:function(){return"".concat(this.name," [").concat(t,"]: ").concat(this.message)}}])&&i(u.prototype,c),Object.defineProperty(u,"prototype",{writable:!1}),d}(r)}function W(t){for(var e="",r=t.length,n="-"===t[0]?1:0;r>=n+4;r-=3)e="_".concat(t.slice(r-3,r)).concat(e);return"".concat(t.slice(0,r)).concat(e)}function X(t,e,r,n,i,a){if(t>r||t<e){var o,s="bigint"==typeof e?"n":"";throw o=a>3?0===e||e===BigInt(0)?">= 0".concat(s," and < 2").concat(s," ** ").concat(8*(a+1)).concat(s):">= -(2".concat(s," ** ").concat(8*(a+1)-1).concat(s,") and < 2 ** ")+"".concat(8*(a+1)-1).concat(s):">= ".concat(e).concat(s," and <= ").concat(r).concat(s),new Z.ERR_OUT_OF_RANGE("value",o,t)}!function(t,e,r){J(e,"offset"),void 0!==t[e]&&void 0!==t[e+r]||K(e,t.length-(r+1))}(n,i,a)}function J(t,e){if("number"!=typeof t)throw new Z.ERR_INVALID_ARG_TYPE(e,"number",t)}function K(t,e,r){if(Math.floor(t)!==t)throw J(t,r),new Z.ERR_OUT_OF_RANGE(r||"offset","an integer",t);if(e<0)throw new Z.ERR_BUFFER_OUT_OF_BOUNDS;throw new Z.ERR_OUT_OF_RANGE(r||"offset",">= ".concat(r?1:0," and <= ").concat(e),t)}Y("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?"".concat(t," is outside of buffer bounds"):"Attempt to access memory outside buffer bounds"}),RangeError),Y("ERR_INVALID_ARG_TYPE",(function(t,e){return'The "'.concat(t,'" argument must be of type number. Received type ').concat(u(e))}),TypeError),Y("ERR_OUT_OF_RANGE",(function(t,e,r){var n='The value of "'.concat(t,'" is out of range.'),i=r;return Number.isInteger(r)&&Math.abs(r)>Math.pow(2,32)?i=W(String(r)):"bigint"==typeof r&&(i=String(r),(r>Math.pow(BigInt(2),BigInt(32))||r<-Math.pow(BigInt(2),BigInt(32)))&&(i=W(i)),i+="n"),n+" It must be ".concat(e,". Received ").concat(i)}),RangeError);var $=/[^+/0-9A-Za-z-_]/g;function Q(t,e){var r;e=e||1/0;for(var n=t.length,i=null,a=[],o=0;o<n;++o){if((r=t.charCodeAt(o))>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function tt(t){return c.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace($,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function et(t,e,r,n){var i;for(i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function rt(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function nt(t){return t!=t}var it=function(){for(var t="0123456789abcdef",e=new Array(256),r=0;r<16;++r)for(var n=16*r,i=0;i<16;++i)e[n+i]=t[r]+t[i];return e}();function at(t){return"undefined"==typeof BigInt?ot:t}function ot(){throw new Error("BigInt not supported")}},3910:function(t,e){"use strict";e.byteLength=function(t){var e=l(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,a=l(t),o=a[0],s=a[1],u=new i(function(t,e,r){return 3*(e+r)/4-r}(0,o,s)),c=0,f=s>0?o-4:o;for(r=0;r<f;r+=4)e=n[t.charCodeAt(r)]<<18|n[t.charCodeAt(r+1)]<<12|n[t.charCodeAt(r+2)]<<6|n[t.charCodeAt(r+3)],u[c++]=e>>16&255,u[c++]=e>>8&255,u[c++]=255&e;return 2===s&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[c++]=255&e),1===s&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[c++]=e>>8&255,u[c++]=255&e),u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,a=[],o=16383,s=0,l=n-i;s<l;s+=o)a.push(u(t,s,s+o>l?l:s+o));return 1===i?(e=t[n-1],a.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),a.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,s=a.length;o<s;++o)r[o]=a[o],n[a.charCodeAt(o)]=o;function l(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function u(t,e,n){for(var i,a,o=[],s=e;s<n;s+=3)i=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]),o.push(r[(a=i)>>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return o.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},3187:function(t,e){e.read=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<<s)-1,u=l>>1,c=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=256*a+t[e+f],f+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+t[e+f],f+=h,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=u}return(p?-1:1)*o*Math.pow(2,a-n)},e.write=function(t,e,r,n,i,a){var o,s,l,u=8*a-i-1,c=(1<<u)-1,f=c>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<<i|s,u+=i;u>0;t[r+p]=255&o,p+=d,o/=256,u-=8);t[r+p-d]|=128*v}},1152:function(t,e,r){"use strict";t.exports=function(t){var e=(t=t||{}).eye||[0,0,1],r=t.center||[0,0,0],s=t.up||[0,1,0],l=t.distanceLimits||[0,1/0],u=t.mode||"turntable",c=n(),f=i(),h=a();return c.setDistanceLimits(l[0],l[1]),c.lookAt(0,e,r,s),f.setDistanceLimits(l[0],l[1]),f.lookAt(0,e,r,s),h.setDistanceLimits(l[0],l[1]),h.lookAt(0,e,r,s),new o({turntable:c,orbit:f,matrix:h},u)};var n=r(3440),i=r(7774),a=r(9298);function o(t,e){this._controllerNames=Object.keys(t),this._controllerList=this._controllerNames.map((function(e){return t[e]})),this._mode=e,this._active=t[e],this._active||(this._mode="turntable",this._active=t.turntable),this.modes=this._controllerNames,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}var s=o.prototype;s.flush=function(t){for(var e=this._controllerList,r=0;r<e.length;++r)e[r].flush(t)},s.idle=function(t){for(var e=this._controllerList,r=0;r<e.length;++r)e[r].idle(t)},s.lookAt=function(t,e,r,n){for(var i=this._controllerList,a=0;a<i.length;++a)i[a].lookAt(t,e,r,n)},s.rotate=function(t,e,r,n){for(var i=this._controllerList,a=0;a<i.length;++a)i[a].rotate(t,e,r,n)},s.pan=function(t,e,r,n){for(var i=this._controllerList,a=0;a<i.length;++a)i[a].pan(t,e,r,n)},s.translate=function(t,e,r,n){for(var i=this._controllerList,a=0;a<i.length;++a)i[a].translate(t,e,r,n)},s.setMatrix=function(t,e){for(var r=this._controllerList,n=0;n<r.length;++n)r[n].setMatrix(t,e)},s.setDistanceLimits=function(t,e){for(var r=this._controllerList,n=0;n<r.length;++n)r[n].setDistanceLimits(t,e)},s.setDistance=function(t,e){for(var r=this._controllerList,n=0;n<r.length;++n)r[n].setDistance(t,e)},s.recalcMatrix=function(t){this._active.recalcMatrix(t)},s.getDistance=function(t){return this._active.getDistance(t)},s.getDistanceLimits=function(t){return this._active.getDistanceLimits(t)},s.lastT=function(){return this._active.lastT()},s.setMode=function(t){if(t!==this._mode){var e=this._controllerNames.indexOf(t);if(!(e<0)){var r=this._active,n=this._controllerList[e],i=Math.max(r.lastT(),n.lastT());r.recalcMatrix(i),n.setMatrix(i,r.computedMatrix),this._active=n,this._mode=t,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}}},s.getMode=function(){return this._mode}},8126:function(t,e,r){"use strict";var n="undefined"==typeof WeakMap?r(5346):WeakMap,i=r(5827),a=r(2944),o=new n;t.exports=function(t){var e=o.get(t),r=e&&(e._triangleBuffer.handle||e._triangleBuffer.buffer);if(!r||!t.isBuffer(r)){var n=i(t,new Float32Array([-1,-1,-1,4,4,-1]));(e=a(t,[{buffer:n,type:t.FLOAT,size:2}]))._triangleBuffer=n,o.set(t,e)}e.bind(),t.drawArrays(t.TRIANGLES,0,3),e.unbind()}},8008:function(t,e,r){var n=r(4930);t.exports=function(t,e,r){e="number"==typeof e?e:1,r=r||": ";var i=t.split(/\r?\n/),a=String(i.length+e-1).length;return i.map((function(t,i){var o=i+e,s=String(o).length;return n(o,a-s)+r+t})).join("\n")}},2153:function(t,e,r){"use strict";t.exports=function(t){var e=t.length;if(0===e)return[];if(1===e)return[0];for(var r=t[0].length,n=[t[0]],a=[0],o=1;o<e;++o)if(n.push(t[o]),i(n,r)){if(a.push(o),a.length===r+1)return a}else n.pop();return a};var n=r(417);function i(t,e){for(var r=new Array(e+1),i=0;i<t.length;++i)r[i]=t[i];for(i=0;i<=t.length;++i){for(var a=t.length;a<=e;++a){for(var o=new Array(e),s=0;s<e;++s)o[s]=Math.pow(a+1-i,s);r[a]=o}if(n.apply(void 0,r))return!0}return!1}},4653:function(t,e,r){"use strict";t.exports=function(t,e){return n(e).filter((function(r){for(var n=new Array(r.length),a=0;a<r.length;++a)n[a]=e[r[a]];return i(n)*t<1}))};var n=r(4419),i=r(1778)},2350:function(t,e,r){t.exports=function(t,e){return i(n(t,e))};var n=r(4653),i=r(8691)},7896:function(t){t.exports=function(t){return atob(t)}},957:function(t,e,r){"use strict";t.exports=function(t,e){for(var r=e.length,a=new Array(r+1),o=0;o<r;++o){for(var s=new Array(r+1),l=0;l<=r;++l)s[l]=t[l][o];a[o]=s}for(a[r]=new Array(r+1),o=0;o<=r;++o)a[r][o]=1;var u=new Array(r+1);for(o=0;o<r;++o)u[o]=e[o];u[r]=1;var c=n(a,u),f=i(c[r+1]);0===f&&(f=1);var h=new Array(r+1);for(o=0;o<=r;++o)h[o]=i(c[o])/f;return h};var n=r(6606);function i(t){for(var e=0,r=0;r<t.length;++r)e+=t[r];return e}},1539:function(t,e,r){"use strict";var n=r(8524);t.exports=function(t,e){return n(t[0].mul(e[1]).add(e[0].mul(t[1])),t[1].mul(e[1]))}},8846:function(t){"use strict";t.exports=function(t,e){return t[0].mul(e[1]).cmp(e[0].mul(t[1]))}},9189:function(t,e,r){"use strict";var n=r(8524);t.exports=function(t,e){return n(t[0].mul(e[1]),t[1].mul(e[0]))}},5125:function(t,e,r){"use strict";var n=r(234),i=r(3218),a=r(5514),o=r(2813),s=r(8524),l=r(9189);t.exports=function t(e,r){if(n(e))return r?l(e,t(r)):[e[0].clone(),e[1].clone()];var u,c,f=0;if(i(e))u=e.clone();else if("string"==typeof e)u=o(e);else{if(0===e)return[a(0),a(1)];if(e===Math.floor(e))u=a(e);else{for(;e!==Math.floor(e);)e*=Math.pow(2,256),f-=256;u=a(e)}}if(n(r))u.mul(r[1]),c=r[0].clone();else if(i(r))c=r.clone();else if("string"==typeof r)c=o(r);else if(r)if(r===Math.floor(r))c=a(r);else{for(;r!==Math.floor(r);)r*=Math.pow(2,256),f+=256;c=a(r)}else c=a(1);return f>0?u=u.ushln(f):f<0&&(c=c.ushln(-f)),s(u,c)}},234:function(t,e,r){"use strict";var n=r(3218);t.exports=function(t){return Array.isArray(t)&&2===t.length&&n(t[0])&&n(t[1])}},4275:function(t,e,r){"use strict";var n=r(1928);t.exports=function(t){return t.cmp(new n(0))}},9958:function(t,e,r){"use strict";var n=r(4275);t.exports=function(t){var e=t.length,r=t.words,i=0;if(1===e)i=r[0];else if(2===e)i=r[0]+67108864*r[1];else for(var a=0;a<e;a++){i+=r[a]*Math.pow(67108864,a)}return n(t)*i}},1112:function(t,e,r){"use strict";var n=r(8362),i=r(2288).countTrailingZeros;t.exports=function(t){var e=i(n.lo(t));if(e<32)return e;var r=i(n.hi(t));return r>20?52:r+32}},3218:function(t,e,r){"use strict";r(1928),t.exports=function(t){return t&&"object"==typeof t&&Boolean(t.words)}},5514:function(t,e,r){"use strict";var n=r(1928),i=r(8362);t.exports=function(t){var e=i.exponent(t);return e<52?new n(t):new n(t*Math.pow(2,52-e)).ushln(e-52)}},8524:function(t,e,r){"use strict";var n=r(5514),i=r(4275);t.exports=function(t,e){var r=i(t),a=i(e);if(0===r)return[n(0),n(1)];if(0===a)return[n(0),n(0)];a<0&&(t=t.neg(),e=e.neg());var o=t.gcd(e);return o.cmpn(1)?[t.div(o),e.div(o)]:[t,e]}},2813:function(t,e,r){"use strict";var n=r(1928);t.exports=function(t){return new n(t)}},3962:function(t,e,r){"use strict";var n=r(8524);t.exports=function(t,e){return n(t[0].mul(e[0]),t[1].mul(e[1]))}},4951:function(t,e,r){"use strict";var n=r(4275);t.exports=function(t){return n(t[0])*n(t[1])}},4354:function(t,e,r){"use strict";var n=r(8524);t.exports=function(t,e){return n(t[0].mul(e[1]).sub(t[1].mul(e[0])),t[1].mul(e[1]))}},7999:function(t,e,r){"use strict";var n=r(9958),i=r(1112);t.exports=function(t){var e=t[0],r=t[1];if(0===e.cmpn(0))return 0;var a=e.abs().divmod(r.abs()),o=a.div,s=n(o),l=a.mod,u=e.negative!==r.negative?-1:1;if(0===l.cmpn(0))return u*s;if(s){var c=i(s)+4,f=n(l.ushln(c).divRound(r));return u*(s+f*Math.pow(2,-c))}var h=r.bitLength()-l.bitLength()+53;return f=n(l.ushln(h).divRound(r)),h<1023?u*f*Math.pow(2,-h):u*(f*=Math.pow(2,-1023))*Math.pow(2,1023-h)}},5070:function(t){"use strict";function e(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>=0?(a=o,i=o-1):n=o+1}return a}function r(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>0?(a=o,i=o-1):n=o+1}return a}function n(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<0?(a=o,n=o+1):i=o-1}return a}function i(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<=0?(a=o,n=o+1):i=o-1}return a}function a(t,e,r,n,i){for(;n<=i;){var a=n+i>>>1,o=t[a],s=void 0!==r?r(o,e):o-e;if(0===s)return a;s<=0?n=a+1:i=a-1}return-1}function o(t,e,r,n,i,a){return"function"==typeof r?a(t,e,r,void 0===n?0:0|n,void 0===i?t.length-1:0|i):a(t,e,void 0,void 0===r?0:0|r,void 0===n?t.length-1:0|n)}t.exports={ge:function(t,r,n,i,a){return o(t,r,n,i,a,e)},gt:function(t,e,n,i,a){return o(t,e,n,i,a,r)},lt:function(t,e,r,i,a){return o(t,e,r,i,a,n)},le:function(t,e,r,n,a){return o(t,e,r,n,a,i)},eq:function(t,e,r,n,i){return o(t,e,r,n,i,a)}}},2288:function(t,e){"use strict";function r(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}e.INT_BITS=32,e.INT_MAX=2147483647,e.INT_MIN=-1<<31,e.sign=function(t){return(t>0)-(t<0)},e.abs=function(t){var e=t>>31;return(t^e)-e},e.min=function(t,e){return e^(t^e)&-(t<e)},e.max=function(t,e){return t^(t^e)&-(t<e)},e.isPow2=function(t){return!(t&t-1||!t)},e.log2=function(t){var e,r;return e=(t>65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},e.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},e.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},e.countTrailingZeros=r,e.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,1+((t|=t>>>8)|t>>>16)},e.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},e.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var n=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<<i&255}}(n),e.reverse=function(t){return n[255&t]<<24|n[t>>>8&255]<<16|n[t>>>16&255]<<8|n[t>>>24&255]},e.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},e.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},e.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},e.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},e.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>r(t)+1}},1928:function(t,e,r){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function a(t,e,r){if(a.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var o;"object"==typeof t?t.exports=a:e.BN=a,a.BN=a,a.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(6601).Buffer}catch(t){}function s(t,e){var r=t.charCodeAt(e);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function l(t,e,r){var n=s(t,r);return r-1>=e&&(n|=s(t,r-1)<<4),n}function u(t,e,r,n){for(var i=0,a=Math.min(t.length,r),o=e;o<a;o++){var s=t.charCodeAt(o)-48;i*=n,i+=s>=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&"object"==typeof t&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,r):(this._parseBase(t,e,i),"le"===r&&this._initArray(this.toArray(),e,r)))},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a,o,s=0;if("be"===r)for(i=t.length-1,a=0;i>=0;i-=3)o=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(i=0,a=0;i<t.length;i+=3)o=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},a.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,a=0,o=0;if("be"===r)for(n=t.length-1;n>=e;n-=2)i=l(t,e,n)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=l(t,e,n)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var a=t.length-r,o=a%n,s=Math.min(a,a-o)+r,l=0,c=r;c<s;c+=n)l=u(t,c,c+n,e),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==o){var f=1;for(l=u(t,c,t.length,e),c=0;c<o;c++)f*=e;this.imuln(f),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this.strip()},a.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},a.prototype.clone=function(){var t=new a(null);return this.copy(t),t},a.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},a.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function p(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],a=0|e.words[0],o=i*a,s=67108863&o,l=o/67108864|0;r.words[0]=s;for(var u=1;u<n;u++){for(var c=l>>>26,f=67108863&l,h=Math.min(u,e.length-1),p=Math.max(0,u-t.length+1);p<=h;p++){var d=u-p|0;c+=(o=(i=0|t.words[d])*(a=0|e.words[p])+f)/67108864|0,f=67108863&o}r.words[u]=0|f,l=0|c}return 0!==l?r.words[u]=0|l:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,a=0,o=0;o<this.length;o++){var s=this.words[o],l=(16777215&(s<<i|a)).toString(16);r=0!=(a=s>>>24-i&16777215)||o!==this.length-1?c[6-l.length]+l+r:l+r,(i+=2)>=26&&(i-=26,o--)}for(0!==a&&(r=a.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var u=f[t],p=h[t];r="";var d=this.clone();for(d.negative=0;!d.isZero();){var v=d.modn(p).toString(t);r=(d=d.idivn(p)).isZero()?v+r:c[u-v.length]+v+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return n(void 0!==o),this.toArrayLike(o,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,"byte array longer than desired length"),n(a>0,"Requested array length <= 0"),this.strip();var o,s,l="le"===e,u=new t(a),c=this.clone();if(l){for(s=0;!c.isZero();s++)o=c.andln(255),c.iushrn(8),u[s]=o;for(;s<a;s++)u[s]=0}else{for(s=0;s<a-i;s++)u[s]=0;for(s=0;!c.isZero();s++)o=c.andln(255),c.iushrn(8),u[a-s-1]=o}return u},Math.clz32?a.prototype._countBits=function(t){return 32-Math.clz32(t)}:a.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},a.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},a.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},a.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},a.prototype.isNeg=function(){return 0!==this.negative},a.prototype.neg=function(){return this.clone().ineg()},a.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},a.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},a.prototype.ior=function(t){return n(0==(this.negative|t.negative)),this.iuor(t)},a.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this.strip()},a.prototype.iand=function(t){return n(0==(this.negative|t.negative)),this.iuand(t)},a.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},a.prototype.ixor=function(t){return n(0==(this.negative|t.negative)),this.iuxor(t)},a.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<i:this.words[r]&~(1<<i),this.strip()},a.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,a=0;a<n.length;a++)e=(0|r.words[a])+(0|n.words[a])+i,this.words[a]=67108863&e,i=e>>>26;for(;0!==i&&a<r.length;a++)e=(0|r.words[a])+i,this.words[a]=67108863&e,i=e>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;a<r.length;a++)this.words[a]=r.words[a];return this},a.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var a=0,o=0;o<n.length;o++)a=(e=(0|r.words[o])-(0|n.words[o])+a)>>26,this.words[o]=67108863&e;for(;0!==a&&o<r.length;o++)a=(e=(0|r.words[o])+a)>>26,this.words[o]=67108863&e;if(0===a&&o<r.length&&r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this.length=Math.max(this.length,o),r!==this&&(this.negative=1),this.strip()},a.prototype.sub=function(t){return this.clone().isub(t)};var d=function(t,e,r){var n,i,a,o=t.words,s=e.words,l=r.words,u=0,c=0|o[0],f=8191&c,h=c>>>13,p=0|o[1],d=8191&p,v=p>>>13,g=0|o[2],y=8191&g,m=g>>>13,x=0|o[3],b=8191&x,_=x>>>13,w=0|o[4],T=8191&w,k=w>>>13,A=0|o[5],M=8191&A,S=A>>>13,E=0|o[6],L=8191&E,C=E>>>13,P=0|o[7],O=8191&P,I=P>>>13,D=0|o[8],z=8191&D,R=D>>>13,F=0|o[9],B=8191&F,N=F>>>13,j=0|s[0],U=8191&j,V=j>>>13,H=0|s[1],q=8191&H,G=H>>>13,Z=0|s[2],Y=8191&Z,W=Z>>>13,X=0|s[3],J=8191&X,K=X>>>13,$=0|s[4],Q=8191&$,tt=$>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],at=8191&it,ot=it>>>13,st=0|s[7],lt=8191&st,ut=st>>>13,ct=0|s[8],ft=8191&ct,ht=ct>>>13,pt=0|s[9],dt=8191&pt,vt=pt>>>13;r.negative=t.negative^e.negative,r.length=19;var gt=(u+(n=Math.imul(f,U))|0)+((8191&(i=(i=Math.imul(f,V))+Math.imul(h,U)|0))<<13)|0;u=((a=Math.imul(h,V))+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(d,U),i=(i=Math.imul(d,V))+Math.imul(v,U)|0,a=Math.imul(v,V);var yt=(u+(n=n+Math.imul(f,q)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(h,q)|0))<<13)|0;u=((a=a+Math.imul(h,G)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,U),i=(i=Math.imul(y,V))+Math.imul(m,U)|0,a=Math.imul(m,V),n=n+Math.imul(d,q)|0,i=(i=i+Math.imul(d,G)|0)+Math.imul(v,q)|0,a=a+Math.imul(v,G)|0;var mt=(u+(n=n+Math.imul(f,Y)|0)|0)+((8191&(i=(i=i+Math.imul(f,W)|0)+Math.imul(h,Y)|0))<<13)|0;u=((a=a+Math.imul(h,W)|0)+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(b,U),i=(i=Math.imul(b,V))+Math.imul(_,U)|0,a=Math.imul(_,V),n=n+Math.imul(y,q)|0,i=(i=i+Math.imul(y,G)|0)+Math.imul(m,q)|0,a=a+Math.imul(m,G)|0,n=n+Math.imul(d,Y)|0,i=(i=i+Math.imul(d,W)|0)+Math.imul(v,Y)|0,a=a+Math.imul(v,W)|0;var xt=(u+(n=n+Math.imul(f,J)|0)|0)+((8191&(i=(i=i+Math.imul(f,K)|0)+Math.imul(h,J)|0))<<13)|0;u=((a=a+Math.imul(h,K)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(T,U),i=(i=Math.imul(T,V))+Math.imul(k,U)|0,a=Math.imul(k,V),n=n+Math.imul(b,q)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(_,q)|0,a=a+Math.imul(_,G)|0,n=n+Math.imul(y,Y)|0,i=(i=i+Math.imul(y,W)|0)+Math.imul(m,Y)|0,a=a+Math.imul(m,W)|0,n=n+Math.imul(d,J)|0,i=(i=i+Math.imul(d,K)|0)+Math.imul(v,J)|0,a=a+Math.imul(v,K)|0;var bt=(u+(n=n+Math.imul(f,Q)|0)|0)+((8191&(i=(i=i+Math.imul(f,tt)|0)+Math.imul(h,Q)|0))<<13)|0;u=((a=a+Math.imul(h,tt)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(M,U),i=(i=Math.imul(M,V))+Math.imul(S,U)|0,a=Math.imul(S,V),n=n+Math.imul(T,q)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(k,q)|0,a=a+Math.imul(k,G)|0,n=n+Math.imul(b,Y)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(_,Y)|0,a=a+Math.imul(_,W)|0,n=n+Math.imul(y,J)|0,i=(i=i+Math.imul(y,K)|0)+Math.imul(m,J)|0,a=a+Math.imul(m,K)|0,n=n+Math.imul(d,Q)|0,i=(i=i+Math.imul(d,tt)|0)+Math.imul(v,Q)|0,a=a+Math.imul(v,tt)|0;var _t=(u+(n=n+Math.imul(f,rt)|0)|0)+((8191&(i=(i=i+Math.imul(f,nt)|0)+Math.imul(h,rt)|0))<<13)|0;u=((a=a+Math.imul(h,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(L,U),i=(i=Math.imul(L,V))+Math.imul(C,U)|0,a=Math.imul(C,V),n=n+Math.imul(M,q)|0,i=(i=i+Math.imul(M,G)|0)+Math.imul(S,q)|0,a=a+Math.imul(S,G)|0,n=n+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,W)|0)+Math.imul(k,Y)|0,a=a+Math.imul(k,W)|0,n=n+Math.imul(b,J)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(_,J)|0,a=a+Math.imul(_,K)|0,n=n+Math.imul(y,Q)|0,i=(i=i+Math.imul(y,tt)|0)+Math.imul(m,Q)|0,a=a+Math.imul(m,tt)|0,n=n+Math.imul(d,rt)|0,i=(i=i+Math.imul(d,nt)|0)+Math.imul(v,rt)|0,a=a+Math.imul(v,nt)|0;var wt=(u+(n=n+Math.imul(f,at)|0)|0)+((8191&(i=(i=i+Math.imul(f,ot)|0)+Math.imul(h,at)|0))<<13)|0;u=((a=a+Math.imul(h,ot)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(O,U),i=(i=Math.imul(O,V))+Math.imul(I,U)|0,a=Math.imul(I,V),n=n+Math.imul(L,q)|0,i=(i=i+Math.imul(L,G)|0)+Math.imul(C,q)|0,a=a+Math.imul(C,G)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,W)|0,n=n+Math.imul(T,J)|0,i=(i=i+Math.imul(T,K)|0)+Math.imul(k,J)|0,a=a+Math.imul(k,K)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(_,Q)|0,a=a+Math.imul(_,tt)|0,n=n+Math.imul(y,rt)|0,i=(i=i+Math.imul(y,nt)|0)+Math.imul(m,rt)|0,a=a+Math.imul(m,nt)|0,n=n+Math.imul(d,at)|0,i=(i=i+Math.imul(d,ot)|0)+Math.imul(v,at)|0,a=a+Math.imul(v,ot)|0;var Tt=(u+(n=n+Math.imul(f,lt)|0)|0)+((8191&(i=(i=i+Math.imul(f,ut)|0)+Math.imul(h,lt)|0))<<13)|0;u=((a=a+Math.imul(h,ut)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(z,U),i=(i=Math.imul(z,V))+Math.imul(R,U)|0,a=Math.imul(R,V),n=n+Math.imul(O,q)|0,i=(i=i+Math.imul(O,G)|0)+Math.imul(I,q)|0,a=a+Math.imul(I,G)|0,n=n+Math.imul(L,Y)|0,i=(i=i+Math.imul(L,W)|0)+Math.imul(C,Y)|0,a=a+Math.imul(C,W)|0,n=n+Math.imul(M,J)|0,i=(i=i+Math.imul(M,K)|0)+Math.imul(S,J)|0,a=a+Math.imul(S,K)|0,n=n+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(k,Q)|0,a=a+Math.imul(k,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(_,rt)|0,a=a+Math.imul(_,nt)|0,n=n+Math.imul(y,at)|0,i=(i=i+Math.imul(y,ot)|0)+Math.imul(m,at)|0,a=a+Math.imul(m,ot)|0,n=n+Math.imul(d,lt)|0,i=(i=i+Math.imul(d,ut)|0)+Math.imul(v,lt)|0,a=a+Math.imul(v,ut)|0;var kt=(u+(n=n+Math.imul(f,ft)|0)|0)+((8191&(i=(i=i+Math.imul(f,ht)|0)+Math.imul(h,ft)|0))<<13)|0;u=((a=a+Math.imul(h,ht)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(B,U),i=(i=Math.imul(B,V))+Math.imul(N,U)|0,a=Math.imul(N,V),n=n+Math.imul(z,q)|0,i=(i=i+Math.imul(z,G)|0)+Math.imul(R,q)|0,a=a+Math.imul(R,G)|0,n=n+Math.imul(O,Y)|0,i=(i=i+Math.imul(O,W)|0)+Math.imul(I,Y)|0,a=a+Math.imul(I,W)|0,n=n+Math.imul(L,J)|0,i=(i=i+Math.imul(L,K)|0)+Math.imul(C,J)|0,a=a+Math.imul(C,K)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(S,Q)|0,a=a+Math.imul(S,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(k,rt)|0,a=a+Math.imul(k,nt)|0,n=n+Math.imul(b,at)|0,i=(i=i+Math.imul(b,ot)|0)+Math.imul(_,at)|0,a=a+Math.imul(_,ot)|0,n=n+Math.imul(y,lt)|0,i=(i=i+Math.imul(y,ut)|0)+Math.imul(m,lt)|0,a=a+Math.imul(m,ut)|0,n=n+Math.imul(d,ft)|0,i=(i=i+Math.imul(d,ht)|0)+Math.imul(v,ft)|0,a=a+Math.imul(v,ht)|0;var At=(u+(n=n+Math.imul(f,dt)|0)|0)+((8191&(i=(i=i+Math.imul(f,vt)|0)+Math.imul(h,dt)|0))<<13)|0;u=((a=a+Math.imul(h,vt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(B,q),i=(i=Math.imul(B,G))+Math.imul(N,q)|0,a=Math.imul(N,G),n=n+Math.imul(z,Y)|0,i=(i=i+Math.imul(z,W)|0)+Math.imul(R,Y)|0,a=a+Math.imul(R,W)|0,n=n+Math.imul(O,J)|0,i=(i=i+Math.imul(O,K)|0)+Math.imul(I,J)|0,a=a+Math.imul(I,K)|0,n=n+Math.imul(L,Q)|0,i=(i=i+Math.imul(L,tt)|0)+Math.imul(C,Q)|0,a=a+Math.imul(C,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(S,rt)|0,a=a+Math.imul(S,nt)|0,n=n+Math.imul(T,at)|0,i=(i=i+Math.imul(T,ot)|0)+Math.imul(k,at)|0,a=a+Math.imul(k,ot)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ut)|0)+Math.imul(_,lt)|0,a=a+Math.imul(_,ut)|0,n=n+Math.imul(y,ft)|0,i=(i=i+Math.imul(y,ht)|0)+Math.imul(m,ft)|0,a=a+Math.imul(m,ht)|0;var Mt=(u+(n=n+Math.imul(d,dt)|0)|0)+((8191&(i=(i=i+Math.imul(d,vt)|0)+Math.imul(v,dt)|0))<<13)|0;u=((a=a+Math.imul(v,vt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(B,Y),i=(i=Math.imul(B,W))+Math.imul(N,Y)|0,a=Math.imul(N,W),n=n+Math.imul(z,J)|0,i=(i=i+Math.imul(z,K)|0)+Math.imul(R,J)|0,a=a+Math.imul(R,K)|0,n=n+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,tt)|0)+Math.imul(I,Q)|0,a=a+Math.imul(I,tt)|0,n=n+Math.imul(L,rt)|0,i=(i=i+Math.imul(L,nt)|0)+Math.imul(C,rt)|0,a=a+Math.imul(C,nt)|0,n=n+Math.imul(M,at)|0,i=(i=i+Math.imul(M,ot)|0)+Math.imul(S,at)|0,a=a+Math.imul(S,ot)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ut)|0)+Math.imul(k,lt)|0,a=a+Math.imul(k,ut)|0,n=n+Math.imul(b,ft)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(_,ft)|0,a=a+Math.imul(_,ht)|0;var St=(u+(n=n+Math.imul(y,dt)|0)|0)+((8191&(i=(i=i+Math.imul(y,vt)|0)+Math.imul(m,dt)|0))<<13)|0;u=((a=a+Math.imul(m,vt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(B,J),i=(i=Math.imul(B,K))+Math.imul(N,J)|0,a=Math.imul(N,K),n=n+Math.imul(z,Q)|0,i=(i=i+Math.imul(z,tt)|0)+Math.imul(R,Q)|0,a=a+Math.imul(R,tt)|0,n=n+Math.imul(O,rt)|0,i=(i=i+Math.imul(O,nt)|0)+Math.imul(I,rt)|0,a=a+Math.imul(I,nt)|0,n=n+Math.imul(L,at)|0,i=(i=i+Math.imul(L,ot)|0)+Math.imul(C,at)|0,a=a+Math.imul(C,ot)|0,n=n+Math.imul(M,lt)|0,i=(i=i+Math.imul(M,ut)|0)+Math.imul(S,lt)|0,a=a+Math.imul(S,ut)|0,n=n+Math.imul(T,ft)|0,i=(i=i+Math.imul(T,ht)|0)+Math.imul(k,ft)|0,a=a+Math.imul(k,ht)|0;var Et=(u+(n=n+Math.imul(b,dt)|0)|0)+((8191&(i=(i=i+Math.imul(b,vt)|0)+Math.imul(_,dt)|0))<<13)|0;u=((a=a+Math.imul(_,vt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(B,Q),i=(i=Math.imul(B,tt))+Math.imul(N,Q)|0,a=Math.imul(N,tt),n=n+Math.imul(z,rt)|0,i=(i=i+Math.imul(z,nt)|0)+Math.imul(R,rt)|0,a=a+Math.imul(R,nt)|0,n=n+Math.imul(O,at)|0,i=(i=i+Math.imul(O,ot)|0)+Math.imul(I,at)|0,a=a+Math.imul(I,ot)|0,n=n+Math.imul(L,lt)|0,i=(i=i+Math.imul(L,ut)|0)+Math.imul(C,lt)|0,a=a+Math.imul(C,ut)|0,n=n+Math.imul(M,ft)|0,i=(i=i+Math.imul(M,ht)|0)+Math.imul(S,ft)|0,a=a+Math.imul(S,ht)|0;var Lt=(u+(n=n+Math.imul(T,dt)|0)|0)+((8191&(i=(i=i+Math.imul(T,vt)|0)+Math.imul(k,dt)|0))<<13)|0;u=((a=a+Math.imul(k,vt)|0)+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(B,rt),i=(i=Math.imul(B,nt))+Math.imul(N,rt)|0,a=Math.imul(N,nt),n=n+Math.imul(z,at)|0,i=(i=i+Math.imul(z,ot)|0)+Math.imul(R,at)|0,a=a+Math.imul(R,ot)|0,n=n+Math.imul(O,lt)|0,i=(i=i+Math.imul(O,ut)|0)+Math.imul(I,lt)|0,a=a+Math.imul(I,ut)|0,n=n+Math.imul(L,ft)|0,i=(i=i+Math.imul(L,ht)|0)+Math.imul(C,ft)|0,a=a+Math.imul(C,ht)|0;var Ct=(u+(n=n+Math.imul(M,dt)|0)|0)+((8191&(i=(i=i+Math.imul(M,vt)|0)+Math.imul(S,dt)|0))<<13)|0;u=((a=a+Math.imul(S,vt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(B,at),i=(i=Math.imul(B,ot))+Math.imul(N,at)|0,a=Math.imul(N,ot),n=n+Math.imul(z,lt)|0,i=(i=i+Math.imul(z,ut)|0)+Math.imul(R,lt)|0,a=a+Math.imul(R,ut)|0,n=n+Math.imul(O,ft)|0,i=(i=i+Math.imul(O,ht)|0)+Math.imul(I,ft)|0,a=a+Math.imul(I,ht)|0;var Pt=(u+(n=n+Math.imul(L,dt)|0)|0)+((8191&(i=(i=i+Math.imul(L,vt)|0)+Math.imul(C,dt)|0))<<13)|0;u=((a=a+Math.imul(C,vt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(B,lt),i=(i=Math.imul(B,ut))+Math.imul(N,lt)|0,a=Math.imul(N,ut),n=n+Math.imul(z,ft)|0,i=(i=i+Math.imul(z,ht)|0)+Math.imul(R,ft)|0,a=a+Math.imul(R,ht)|0;var Ot=(u+(n=n+Math.imul(O,dt)|0)|0)+((8191&(i=(i=i+Math.imul(O,vt)|0)+Math.imul(I,dt)|0))<<13)|0;u=((a=a+Math.imul(I,vt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(B,ft),i=(i=Math.imul(B,ht))+Math.imul(N,ft)|0,a=Math.imul(N,ht);var It=(u+(n=n+Math.imul(z,dt)|0)|0)+((8191&(i=(i=i+Math.imul(z,vt)|0)+Math.imul(R,dt)|0))<<13)|0;u=((a=a+Math.imul(R,vt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Dt=(u+(n=Math.imul(B,dt))|0)+((8191&(i=(i=Math.imul(B,vt))+Math.imul(N,dt)|0))<<13)|0;return u=((a=Math.imul(N,vt))+(i>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,l[0]=gt,l[1]=yt,l[2]=mt,l[3]=xt,l[4]=bt,l[5]=_t,l[6]=wt,l[7]=Tt,l[8]=kt,l[9]=At,l[10]=Mt,l[11]=St,l[12]=Et,l[13]=Lt,l[14]=Ct,l[15]=Pt,l[16]=Ot,l[17]=It,l[18]=Dt,0!==u&&(l[19]=u,r.length++),r};function v(t,e,r){return(new g).mulp(t,e,r)}function g(t,e){this.x=t,this.y=e}Math.imul||(d=p),a.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?d(this,t,e):n<63?p(this,t,e):n<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,a=0;a<r.length-1;a++){var o=i;i=0;for(var s=67108863&n,l=Math.min(a,e.length-1),u=Math.max(0,a-t.length+1);u<=l;u++){var c=a-u,f=(0|t.words[c])*(0|e.words[u]),h=67108863&f;s=67108863&(h=h+s|0),i+=(o=(o=o+(f/67108864|0)|0)+(h>>>26)|0)>>>26,o&=67108863}r.words[a]=s,n=o,o=i}return 0!==n?r.words[a]=n:r.length--,r.strip()}(this,t,e):v(this,t,e),r},g.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},g.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,i=0;i<e;i++)n|=(1&t)<<e-i-1,t>>=1;return n},g.prototype.permute=function(t,e,r,n,i,a){for(var o=0;o<a;o++)n[o]=e[t[o]],i[o]=r[t[o]]},g.prototype.transform=function(t,e,r,n,i,a){this.permute(a,t,e,r,n,i);for(var o=1;o<i;o<<=1)for(var s=o<<1,l=Math.cos(2*Math.PI/s),u=Math.sin(2*Math.PI/s),c=0;c<i;c+=s)for(var f=l,h=u,p=0;p<o;p++){var d=r[c+p],v=n[c+p],g=r[c+p+o],y=n[c+p+o],m=f*g-h*y;y=f*y+h*g,g=m,r[c+p]=d+g,n[c+p]=v+y,r[c+p+o]=d-g,n[c+p+o]=v-y,p!==s&&(m=l*f-u*h,h=l*h+u*f,f=m)}},g.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},g.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=t[n];t[n]=t[r-n-1],t[r-n-1]=i,i=e[n],e[n]=-e[r-n-1],e[r-n-1]=-i}},g.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var i=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&i,r=i<67108864?0:i/67108864|0}return t},g.prototype.convert13b=function(t,e,r,i){for(var a=0,o=0;o<e;o++)a+=0|t[o],r[2*o]=8191&a,a>>>=13,r[2*o+1]=8191&a,a>>>=13;for(o=2*e;o<i;++o)r[o]=0;n(0===a),n(0==(-8192&a))},g.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},g.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(n),a=this.stub(n),o=new Array(n),s=new Array(n),l=new Array(n),u=new Array(n),c=new Array(n),f=new Array(n),h=r.words;h.length=n,this.convert13b(t.words,t.length,o,n),this.convert13b(e.words,e.length,u,n),this.transform(o,a,s,l,n,i),this.transform(u,a,c,f,n,i);for(var p=0;p<n;p++){var d=s[p]*c[p]-l[p]*f[p];l[p]=s[p]*f[p]+l[p]*c[p],s[p]=d}return this.conjugate(s,l,n),this.transform(s,l,h,a,n,i),this.conjugate(h,a,n),this.normalize13b(h,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r.strip()},a.prototype.mul=function(t){var e=new a(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},a.prototype.mulf=function(t){var e=new a(null);return e.words=new Array(this.length+t.length),v(this,t,e)},a.prototype.imul=function(t){return this.clone().mulTo(t,this)},a.prototype.imuln=function(t){n("number"==typeof t),n(t<67108864);for(var e=0,r=0;r<this.length;r++){var i=(0|this.words[r])*t,a=(67108863&i)+(67108863&e);e>>=26,e+=i/67108864|0,e+=a>>>26,this.words[r]=67108863&a}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,i=r%26;e[r]=(t.words[n]&1<<i)>>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var i=r.sqr();n<e.length;n++,i=i.sqr())0!==e[n]&&(r=r.mul(i));return r},a.prototype.iushln=function(t){n("number"==typeof t&&t>=0);var e,r=t%26,i=(t-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(e=0;e<this.length;e++){var s=this.words[e]&a,l=(0|this.words[e])-s<<r;this.words[e]=l|o,o=s>>>26-r}o&&(this.words[e]=o,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this.strip()},a.prototype.ishln=function(t){return n(0===this.negative),this.iushln(t)},a.prototype.iushrn=function(t,e,r){var i;n("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var a=t%26,o=Math.min((t-a)/26,this.length),s=67108863^67108863>>>a<<a,l=r;if(i-=o,i=Math.max(0,i),l){for(var u=0;u<o;u++)l.words[u]=this.words[u];l.length=o}if(0===o);else if(this.length>o)for(this.length-=o,u=0;u<this.length;u++)this.words[u]=this.words[u+o];else this.words[0]=0,this.length=1;var c=0;for(u=this.length-1;u>=0&&(0!==c||u>=i);u--){var f=0|this.words[u];this.words[u]=c<<26-a|f>>>a,c=f&s}return l&&0!==c&&(l.words[l.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<<e;return!(this.length<=r||!(this.words[r]&i))},a.prototype.imaskn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this.strip()},a.prototype.maskn=function(t){return this.clone().imaskn(t)},a.prototype.iaddn=function(t){return n("number"==typeof t),n(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},a.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},a.prototype.addn=function(t){return this.clone().iaddn(t)},a.prototype.subn=function(t){return this.clone().isubn(t)},a.prototype.iabs=function(){return this.negative=0,this},a.prototype.abs=function(){return this.clone().iabs()},a.prototype._ishlnsubmul=function(t,e,r){var i,a,o=t.length+r;this._expand(o);var s=0;for(i=0;i<t.length;i++){a=(0|this.words[i+r])+s;var l=(0|t.words[i])*e;s=((a-=67108863&l)>>26)-(l/67108864|0),this.words[i+r]=67108863&a}for(;i<this.length-r;i++)s=(a=(0|this.words[i+r])+s)>>26,this.words[i+r]=67108863&a;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i<this.length;i++)s=(a=-(0|this.words[i])+s)>>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!=(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,l=n.length-i.length;if("mod"!==e){(s=new a(null)).length=l+1,s.words=new Array(s.length);for(var u=0;u<s.length;u++)s.words[u]=0}var c=n.clone()._ishlnsubmul(i,1,l);0===c.negative&&(n=c,s&&(s.words[l]=1));for(var f=l-1;f>=0;f--){var h=67108864*(0|n.words[i.length+f])+(0|n.words[i.length+f-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,f);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,f),n.isZero()||(n.negative^=1);s&&(s.words[f]=h)}return s&&s.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:i,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),a=r.cmp(n);return a<0||1===i&&0===a?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},a.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new a(1),o=new a(0),s=new a(0),l=new a(1),u=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++u;for(var c=r.clone(),f=e.clone();!e.isZero();){for(var h=0,p=1;0==(e.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(c),o.isub(f)),i.iushrn(1),o.iushrn(1);for(var d=0,v=1;0==(r.words[0]&v)&&d<26;++d,v<<=1);if(d>0)for(r.iushrn(d);d-- >0;)(s.isOdd()||l.isOdd())&&(s.iadd(c),l.isub(f)),s.iushrn(1),l.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(s),o.isub(l)):(r.isub(e),s.isub(i),l.isub(o))}return{a:s,b:l,gcd:r.iushln(u)}},a.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,o=new a(1),s=new a(0),l=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,c=1;0==(e.words[0]&c)&&u<26;++u,c<<=1);if(u>0)for(e.iushrn(u);u-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var f=0,h=1;0==(r.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(r.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(l),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(i=0===e.cmpn(1)?o:s).cmpn(0)<0&&i.iadd(t),i},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var a=e;e=r,r=a}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var a=i,o=r;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},a.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},a.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new T(t)},a.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function m(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function x(){m.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){m.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){m.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){m.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function T(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function k(t){T.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}m.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},m.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},m.prototype.split=function(t,e){t.iushrn(this.n,0,e)},m.prototype.imulK=function(t){return t.imul(this.k)},i(x,m),x.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var a=t.words[9];for(e.words[e.length++]=a&r,i=10;i<t.length;i++){var o=0|t.words[i];t.words[i-10]=(o&r)<<4|a>>>22,a=o}a>>>=22,t.words[i-10]=a,0===a&&t.length>10?t.length-=10:t.length-=9},x.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(b,m),i(_,m),i(w,m),w.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new x;else if("p224"===t)e=new b;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return y[t]=e,e},T.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},T.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},T.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},T.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},T.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},T.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},T.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},T.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},T.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},T.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},T.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},T.prototype.isqr=function(t){return this.imul(t,t.clone())},T.prototype.sqr=function(t){return this.mul(t,t)},T.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var s=new a(1).toRed(this),l=s.redNeg(),u=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new a(2*c*c).toRed(this);0!==this.pow(c,u).cmp(l);)c.redIAdd(l);for(var f=this.pow(c,i),h=this.pow(t,i.addn(1).iushrn(1)),p=this.pow(t,i),d=o;0!==p.cmp(s);){for(var v=p,g=0;0!==v.cmp(s);g++)v=v.redSqr();n(g<d);var y=this.pow(f,new a(1).iushln(d-g-1));h=h.redMul(y),f=y.redSqr(),p=p.redMul(f),d=g}return h},T.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},T.prototype.pow=function(t,e){if(e.isZero())return new a(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new a(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var i=r[0],o=0,s=0,l=e.bitLength()%26;for(0===l&&(l=26),n=e.length-1;n>=0;n--){for(var u=e.words[n],c=l-1;c>=0;c--){var f=u>>c&1;i!==r[0]&&(i=this.sqr(i)),0!==f||0!==o?(o<<=1,o|=f,(4==++s||0===n&&0===c)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}l=26}return i},T.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},T.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new k(t)},i(k,T),k.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},k.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},k.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},k.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},k.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=r.nmd(t),this)},2692:function(t){"use strict";t.exports=function(t){var e,r,n,i=t.length,a=0;for(e=0;e<i;++e)a+=t[e].length;var o=new Array(a),s=0;for(e=0;e<i;++e){var l=t[e],u=l.length;for(r=0;r<u;++r){var c=o[s++]=new Array(u-1),f=0;for(n=0;n<u;++n)n!==r&&(c[f++]=l[n]);if(1&r){var h=c[1];c[1]=c[0],c[0]=h}}}return o}},2569:function(t,e,r){"use strict";t.exports=function(t,e,r){switch(arguments.length){case 1:return f(t);case 2:return"function"==typeof e?u(t,t,e,!0):h(t,e);case 3:return u(t,e,r,!1);default:throw new Error("box-intersect: Invalid arguments")}};var n,i=r(5306),a=r(1390),o=r(2337);function s(t,e){for(var r=0;r<t;++r)if(!(e[r]<=e[r+t]))return!0;return!1}function l(t,e,r,n){for(var i=0,a=0,o=0,l=t.length;o<l;++o){var u=t[o];if(!s(e,u)){for(var c=0;c<2*e;++c)r[i++]=u[c];n[a++]=o}}return a}function u(t,e,r,n){var s=t.length,u=e.length;if(!(s<=0||u<=0)){var c=t[0].length>>>1;if(!(c<=0)){var f,h=i.mallocDouble(2*c*s),p=i.mallocInt32(s);if((s=l(t,c,h,p))>0){if(1===c&&n)a.init(s),f=a.sweepComplete(c,r,0,s,h,p,0,s,h,p);else{var d=i.mallocDouble(2*c*u),v=i.mallocInt32(u);(u=l(e,c,d,v))>0&&(a.init(s+u),f=1===c?a.sweepBipartite(c,r,0,s,h,p,0,u,d,v):o(c,r,n,s,h,p,u,d,v),i.free(d),i.free(v))}i.free(h),i.free(p)}return f}}}function c(t,e){n.push([t,e])}function f(t){return n=[],u(t,t,c,!0),n}function h(t,e){return n=[],u(t,e,c,!1),n}},7333:function(t,e){"use strict";function r(t){return t?function(t,e,r,n,i,a,o,s,l,u,c){return i-n>l-s?function(t,e,r,n,i,a,o,s,l,u,c){for(var f=2*t,h=n,p=f*n;h<i;++h,p+=f){var d=a[e+p],v=a[e+p+t],g=o[h];t:for(var y=s,m=f*s;y<l;++y,m+=f){var x=u[e+m],b=u[e+m+t],_=c[y];if(!(b<d||v<x)){for(var w=e+1;w<t;++w){var T=a[w+p],k=a[w+t+p],A=u[w+m],M=u[w+t+m];if(k<A||M<T)continue t}var S=r(g,_);if(void 0!==S)return S}}}}(t,e,r,n,i,a,o,s,l,u,c):function(t,e,r,n,i,a,o,s,l,u,c){for(var f=2*t,h=s,p=f*s;h<l;++h,p+=f){var d=u[e+p],v=u[e+p+t],g=c[h];t:for(var y=n,m=f*n;y<i;++y,m+=f){var x=a[e+m],b=a[e+m+t],_=o[y];if(!(v<x||b<d)){for(var w=e+1;w<t;++w){var T=a[w+m],k=a[w+t+m],A=u[w+p],M=u[w+t+p];if(k<A||M<T)continue t}var S=r(_,g);if(void 0!==S)return S}}}}(t,e,r,n,i,a,o,s,l,u,c)}:function(t,e,r,n,i,a,o,s,l,u,c,f){return a-i>u-l?n?function(t,e,r,n,i,a,o,s,l,u,c){for(var f=2*t,h=n,p=f*n;h<i;++h,p+=f){var d=a[e+p],v=a[e+p+t],g=o[h];t:for(var y=s,m=f*s;y<l;++y,m+=f){var x=u[e+m],b=c[y];if(!(x<=d||v<x)){for(var _=e+1;_<t;++_){var w=a[_+p],T=a[_+t+p],k=u[_+m],A=u[_+t+m];if(T<k||A<w)continue t}var M=r(b,g);if(void 0!==M)return M}}}}(t,e,r,i,a,o,s,l,u,c,f):function(t,e,r,n,i,a,o,s,l,u,c){for(var f=2*t,h=n,p=f*n;h<i;++h,p+=f){var d=a[e+p],v=a[e+p+t],g=o[h];t:for(var y=s,m=f*s;y<l;++y,m+=f){var x=u[e+m],b=c[y];if(!(x<d||v<x)){for(var _=e+1;_<t;++_){var w=a[_+p],T=a[_+t+p],k=u[_+m],A=u[_+t+m];if(T<k||A<w)continue t}var M=r(g,b);if(void 0!==M)return M}}}}(t,e,r,i,a,o,s,l,u,c,f):n?function(t,e,r,n,i,a,o,s,l,u,c){for(var f=2*t,h=s,p=f*s;h<l;++h,p+=f){var d=u[e+p],v=c[h];t:for(var g=n,y=f*n;g<i;++g,y+=f){var m=a[e+y],x=a[e+y+t],b=o[g];if(!(d<=m||x<d)){for(var _=e+1;_<t;++_){var w=a[_+y],T=a[_+t+y],k=u[_+p],A=u[_+t+p];if(T<k||A<w)continue t}var M=r(v,b);if(void 0!==M)return M}}}}(t,e,r,i,a,o,s,l,u,c,f):function(t,e,r,n,i,a,o,s,l,u,c){for(var f=2*t,h=s,p=f*s;h<l;++h,p+=f){var d=u[e+p],v=c[h];t:for(var g=n,y=f*n;g<i;++g,y+=f){var m=a[e+y],x=a[e+y+t],b=o[g];if(!(d<m||x<d)){for(var _=e+1;_<t;++_){var w=a[_+y],T=a[_+t+y],k=u[_+p],A=u[_+t+p];if(T<k||A<w)continue t}var M=r(b,v);if(void 0!==M)return M}}}}(t,e,r,i,a,o,s,l,u,c,f)}}e.partial=r(!1),e.full=r(!0)},2337:function(t,e,r){"use strict";t.exports=function(t,e,r,a,c,w,T,k,A){!function(t,e){var r=8*i.log2(e+1)*(t+1)|0,a=i.nextPow2(6*r);y.length<a&&(n.free(y),y=n.mallocInt32(a));var o=i.nextPow2(2*r);m.length<o&&(n.free(m),m=n.mallocDouble(o))}(t,a+T);var M,S=0,E=2*t;for(x(S++,0,0,a,0,T,r?16:0,-1/0,1/0),r||x(S++,0,0,T,0,a,1,-1/0,1/0);S>0;){var L=6*(S-=1),C=y[L],P=y[L+1],O=y[L+2],I=y[L+3],D=y[L+4],z=y[L+5],R=2*S,F=m[R],B=m[R+1],N=1&z,j=!!(16&z),U=c,V=w,H=k,q=A;if(N&&(U=k,V=A,H=c,q=w),!(2&z&&(O=p(t,C,P,O,U,V,B),P>=O)||4&z&&(P=d(t,C,P,O,U,V,F))>=O)){var G=O-P,Z=D-I;if(j){if(t*G*(G+Z)<4194304){if(void 0!==(M=l.scanComplete(t,C,e,P,O,U,V,I,D,H,q)))return M;continue}}else{if(t*Math.min(G,Z)<128){if(void 0!==(M=o(t,C,e,N,P,O,U,V,I,D,H,q)))return M;continue}if(t*G*Z<4194304){if(void 0!==(M=l.scanBipartite(t,C,e,N,P,O,U,V,I,D,H,q)))return M;continue}}var Y=f(t,C,P,O,U,V,F,B);if(P<Y)if(t*(Y-P)<128){if(void 0!==(M=s(t,C+1,e,P,Y,U,V,I,D,H,q)))return M}else if(C===t-2){if(void 0!==(M=N?l.sweepBipartite(t,e,I,D,H,q,P,Y,U,V):l.sweepBipartite(t,e,P,Y,U,V,I,D,H,q)))return M}else x(S++,C+1,P,Y,I,D,N,-1/0,1/0),x(S++,C+1,I,D,P,Y,1^N,-1/0,1/0);if(Y<O){var W=u(t,C,I,D,H,q),X=H[E*W+C],J=h(t,C,W,D,H,q,X);if(J<D&&x(S++,C,Y,O,J,D,(4|N)+(j?16:0),X,B),I<W&&x(S++,C,Y,O,I,W,(2|N)+(j?16:0),F,X),W+1===J){if(void 0!==(M=j?_(t,C,e,Y,O,U,V,W,H,q[W]):b(t,C,e,N,Y,O,U,V,W,H,q[W])))return M}else if(W<J){var K;if(j){if(Y<(K=v(t,C,Y,O,U,V,X))){var $=h(t,C,Y,K,U,V,X);if(C===t-2){if(Y<$&&void 0!==(M=l.sweepComplete(t,e,Y,$,U,V,W,J,H,q)))return M;if($<K&&void 0!==(M=l.sweepBipartite(t,e,$,K,U,V,W,J,H,q)))return M}else Y<$&&x(S++,C+1,Y,$,W,J,16,-1/0,1/0),$<K&&(x(S++,C+1,$,K,W,J,0,-1/0,1/0),x(S++,C+1,W,J,$,K,1,-1/0,1/0))}}else Y<(K=N?g(t,C,Y,O,U,V,X):v(t,C,Y,O,U,V,X))&&(C===t-2?M=N?l.sweepBipartite(t,e,W,J,H,q,Y,K,U,V):l.sweepBipartite(t,e,Y,K,U,V,W,J,H,q):(x(S++,C+1,Y,K,W,J,N,-1/0,1/0),x(S++,C+1,W,J,Y,K,1^N,-1/0,1/0)))}}}}};var n=r(5306),i=r(2288),a=r(7333),o=a.partial,s=a.full,l=r(1390),u=r(2464),c=r(122),f=c("!(lo>=p0)&&!(p1>=hi)"),h=c("lo===p0"),p=c("lo<p0"),d=c("hi<=p0"),v=c("lo<=p0&&p0<=hi"),g=c("lo<p0&&p0<=hi"),y=n.mallocInt32(1024),m=n.mallocDouble(1024);function x(t,e,r,n,i,a,o,s,l){var u=6*t;y[u]=e,y[u+1]=r,y[u+2]=n,y[u+3]=i,y[u+4]=a,y[u+5]=o;var c=2*t;m[c]=s,m[c+1]=l}function b(t,e,r,n,i,a,o,s,l,u,c){var f=2*t,h=l*f,p=u[h+e];t:for(var d=i,v=i*f;d<a;++d,v+=f){var g=o[v+e],y=o[v+e+t];if(!(p<g||y<p||n&&p===g)){for(var m,x=s[d],b=e+1;b<t;++b){g=o[v+b],y=o[v+b+t];var _=u[h+b],w=u[h+b+t];if(y<_||w<g)continue t}if(void 0!==(m=n?r(c,x):r(x,c)))return m}}}function _(t,e,r,n,i,a,o,s,l,u){var c=2*t,f=s*c,h=l[f+e];t:for(var p=n,d=n*c;p<i;++p,d+=c){var v=o[p];if(v!==u){var g=a[d+e],y=a[d+e+t];if(!(h<g||y<h)){for(var m=e+1;m<t;++m){g=a[d+m],y=a[d+m+t];var x=l[f+m],b=l[f+m+t];if(y<x||b<g)continue t}var _=r(v,u);if(void 0!==_)return _}}}}},2464:function(t,e,r){"use strict";t.exports=function(t,e,r,a,o,s){if(a<=r+1)return r;for(var l=r,u=a,c=a+r>>>1,f=2*t,h=c,p=o[f*c+e];l<u;){if(u-l<8){i(t,e,l,u,o,s),p=o[f*c+e];break}var d=u-l,v=Math.random()*d+l|0,g=o[f*v+e],y=Math.random()*d+l|0,m=o[f*y+e],x=Math.random()*d+l|0,b=o[f*x+e];g<=m?b>=m?(h=y,p=m):g>=b?(h=v,p=g):(h=x,p=b):m>=b?(h=y,p=m):b>=g?(h=v,p=g):(h=x,p=b);for(var _=f*(u-1),w=f*h,T=0;T<f;++T,++_,++w){var k=o[_];o[_]=o[w],o[w]=k}var A=s[u-1];for(s[u-1]=s[h],s[h]=A,_=f*(u-1),w=f*(h=n(t,e,l,u-1,o,s,p)),T=0;T<f;++T,++_,++w)k=o[_],o[_]=o[w],o[w]=k;if(A=s[u-1],s[u-1]=s[h],s[h]=A,c<h){for(u=h-1;l<u&&o[f*(u-1)+e]===p;)u-=1;u+=1}else{if(!(h<c))break;for(l=h+1;l<u&&o[f*l+e]===p;)l+=1}}return n(t,e,r,c,o,s,o[f*c+e])};var n=r(122)("lo<p0");function i(t,e,r,n,i,a){for(var o=2*t,s=o*(r+1)+e,l=r+1;l<n;++l,s+=o)for(var u=i[s],c=l,f=o*(l-1);c>r&&i[f+e]>u;--c,f-=o){for(var h=f,p=f+o,d=0;d<o;++d,++h,++p){var v=i[h];i[h]=i[p],i[p]=v}var g=a[c];a[c]=a[c-1],a[c-1]=g}}},122:function(t){"use strict";t.exports=function(t){return e[t]};var e={"lo===p0":function(t,e,r,n,i,a,o){for(var s=2*t,l=s*r,u=l,c=r,f=e,h=r;n>h;++h,l+=s)if(i[l+f]===o)if(c===h)c+=1,u+=s;else{for(var p=0;s>p;++p){var d=i[l+p];i[l+p]=i[u],i[u++]=d}var v=a[h];a[h]=a[c],a[c++]=v}return c},"lo<p0":function(t,e,r,n,i,a,o){for(var s=2*t,l=s*r,u=l,c=r,f=e,h=r;n>h;++h,l+=s)if(i[l+f]<o)if(c===h)c+=1,u+=s;else{for(var p=0;s>p;++p){var d=i[l+p];i[l+p]=i[u],i[u++]=d}var v=a[h];a[h]=a[c],a[c++]=v}return c},"lo<=p0":function(t,e,r,n,i,a,o){for(var s=2*t,l=s*r,u=l,c=r,f=t+e,h=r;n>h;++h,l+=s)if(i[l+f]<=o)if(c===h)c+=1,u+=s;else{for(var p=0;s>p;++p){var d=i[l+p];i[l+p]=i[u],i[u++]=d}var v=a[h];a[h]=a[c],a[c++]=v}return c},"hi<=p0":function(t,e,r,n,i,a,o){for(var s=2*t,l=s*r,u=l,c=r,f=t+e,h=r;n>h;++h,l+=s)if(i[l+f]<=o)if(c===h)c+=1,u+=s;else{for(var p=0;s>p;++p){var d=i[l+p];i[l+p]=i[u],i[u++]=d}var v=a[h];a[h]=a[c],a[c++]=v}return c},"lo<p0&&p0<=hi":function(t,e,r,n,i,a,o){for(var s=2*t,l=s*r,u=l,c=r,f=e,h=t+e,p=r;n>p;++p,l+=s){var d=i[l+f],v=i[l+h];if(d<o&&o<=v)if(c===p)c+=1,u+=s;else{for(var g=0;s>g;++g){var y=i[l+g];i[l+g]=i[u],i[u++]=y}var m=a[p];a[p]=a[c],a[c++]=m}}return c},"lo<=p0&&p0<=hi":function(t,e,r,n,i,a,o){for(var s=2*t,l=s*r,u=l,c=r,f=e,h=t+e,p=r;n>p;++p,l+=s){var d=i[l+f],v=i[l+h];if(d<=o&&o<=v)if(c===p)c+=1,u+=s;else{for(var g=0;s>g;++g){var y=i[l+g];i[l+g]=i[u],i[u++]=y}var m=a[p];a[p]=a[c],a[c++]=m}}return c},"!(lo>=p0)&&!(p1>=hi)":function(t,e,r,n,i,a,o,s){for(var l=2*t,u=l*r,c=u,f=r,h=e,p=t+e,d=r;n>d;++d,u+=l){var v=i[u+h],g=i[u+p];if(!(v>=o||s>=g))if(f===d)f+=1,c+=l;else{for(var y=0;l>y;++y){var m=i[u+y];i[u+y]=i[c],i[c++]=m}var x=a[d];a[d]=a[f],a[f++]=x}}return f}}},309:function(t){"use strict";function e(t,e,r){for(var n=2*(t+1),i=t+1;i<=e;++i){for(var a=r[n++],o=r[n++],s=i,l=n-2;s-- >t;){var u=r[l-2],c=r[l-1];if(u<a)break;if(u===a&&c<o)break;r[l]=u,r[l+1]=c,l-=2}r[l]=a,r[l+1]=o}}function r(t,e,r){e*=2;var n=r[t*=2],i=r[t+1];r[t]=r[e],r[t+1]=r[e+1],r[e]=n,r[e+1]=i}function n(t,e,r){e*=2,r[t*=2]=r[e],r[t+1]=r[e+1]}function i(t,e,r,n){e*=2,r*=2;var i=n[t*=2],a=n[t+1];n[t]=n[e],n[t+1]=n[e+1],n[e]=n[r],n[e+1]=n[r+1],n[r]=i,n[r+1]=a}function a(t,e,r,n,i){e*=2,i[t*=2]=i[e],i[e]=r,i[t+1]=i[e+1],i[e+1]=n}function o(t,e,r){e*=2;var n=r[t*=2],i=r[e];return!(n<i)&&(n!==i||r[t+1]>r[e+1])}function s(t,e,r,n){var i=n[t*=2];return i<e||i===e&&n[t+1]<r}function l(t,u,c){var f=(u-t+1)/6|0,h=t+f,p=u-f,d=t+u>>1,v=d-f,g=d+f,y=h,m=v,x=d,b=g,_=p,w=t+1,T=u-1,k=0;o(y,m,c)&&(k=y,y=m,m=k),o(b,_,c)&&(k=b,b=_,_=k),o(y,x,c)&&(k=y,y=x,x=k),o(m,x,c)&&(k=m,m=x,x=k),o(y,b,c)&&(k=y,y=b,b=k),o(x,b,c)&&(k=x,x=b,b=k),o(m,_,c)&&(k=m,m=_,_=k),o(m,x,c)&&(k=m,m=x,x=k),o(b,_,c)&&(k=b,b=_,_=k);for(var A=c[2*m],M=c[2*m+1],S=c[2*b],E=c[2*b+1],L=2*y,C=2*x,P=2*_,O=2*h,I=2*d,D=2*p,z=0;z<2;++z){var R=c[L+z],F=c[C+z],B=c[P+z];c[O+z]=R,c[I+z]=F,c[D+z]=B}n(v,t,c),n(g,u,c);for(var N=w;N<=T;++N)if(s(N,A,M,c))N!==w&&r(N,w,c),++w;else if(!s(N,S,E,c))for(;;){if(s(T,S,E,c)){s(T,A,M,c)?(i(N,w,T,c),++w,--T):(r(N,T,c),--T);break}if(--T<N)break}a(t,w-1,A,M,c),a(u,T+1,S,E,c),w-2-t<=32?e(t,w-2,c):l(t,w-2,c),u-(T+2)<=32?e(T+2,u,c):l(T+2,u,c),T-w<=32?e(w,T,c):l(w,T,c)}t.exports=function(t,r){r<=128?e(0,r-1,t):l(0,r-1,t)}},1390:function(t,e,r){"use strict";t.exports={init:function(t){var e=i.nextPow2(t);l.length<e&&(n.free(l),l=n.mallocInt32(e)),u.length<e&&(n.free(u),u=n.mallocInt32(e)),c.length<e&&(n.free(c),c=n.mallocInt32(e)),f.length<e&&(n.free(f),f=n.mallocInt32(e)),h.length<e&&(n.free(h),h=n.mallocInt32(e)),p.length<e&&(n.free(p),p=n.mallocInt32(e));var r=8*e;d.length<r&&(n.free(d),d=n.mallocDouble(r))},sweepBipartite:function(t,e,r,n,i,s,h,p,y,m){for(var x=0,b=2*t,_=t-1,w=b-1,T=r;T<n;++T){var k=s[T],A=b*T;d[x++]=i[A+_],d[x++]=-(k+1),d[x++]=i[A+w],d[x++]=k}for(T=h;T<p;++T){k=m[T]+o;var M=b*T;d[x++]=y[M+_],d[x++]=-k,d[x++]=y[M+w],d[x++]=k}var S=x>>>1;a(d,S);var E=0,L=0;for(T=0;T<S;++T){var C=0|d[2*T+1];if(C>=o)v(c,f,L--,C=C-o|0);else if(C>=0)v(l,u,E--,C);else if(C<=-268435456){C=-C-o|0;for(var P=0;P<E;++P)if(void 0!==(O=e(l[P],C)))return O;g(c,f,L++,C)}else{for(C=-C-1|0,P=0;P<L;++P){var O;if(void 0!==(O=e(C,c[P])))return O}g(l,u,E++,C)}}},sweepComplete:function(t,e,r,n,i,o,s,y,m,x){for(var b=0,_=2*t,w=t-1,T=_-1,k=r;k<n;++k){var A=o[k]+1<<1,M=_*k;d[b++]=i[M+w],d[b++]=-A,d[b++]=i[M+T],d[b++]=A}for(k=s;k<y;++k){A=x[k]+1<<1;var S=_*k;d[b++]=m[S+w],d[b++]=1|-A,d[b++]=m[S+T],d[b++]=1|A}var E=b>>>1;a(d,E);var L=0,C=0,P=0;for(k=0;k<E;++k){var O=0|d[2*k+1],I=1&O;if(k<E-1&&O>>1==d[2*k+3]>>1&&(I=2,k+=1),O<0){for(var D=-(O>>1)-1,z=0;z<P;++z)if(void 0!==(R=e(h[z],D)))return R;if(0!==I)for(z=0;z<L;++z)if(void 0!==(R=e(l[z],D)))return R;if(1!==I)for(z=0;z<C;++z){var R;if(void 0!==(R=e(c[z],D)))return R}0===I?g(l,u,L++,D):1===I?g(c,f,C++,D):2===I&&g(h,p,P++,D)}else D=(O>>1)-1,0===I?v(l,u,L--,D):1===I?v(c,f,C--,D):2===I&&v(h,p,P--,D)}},scanBipartite:function(t,e,r,n,i,s,c,f,h,p,y,m){var x=0,b=2*t,_=e,w=e+t,T=1,k=1;n?k=o:T=o;for(var A=i;A<s;++A){var M=A+T,S=b*A;d[x++]=c[S+_],d[x++]=-M,d[x++]=c[S+w],d[x++]=M}for(A=h;A<p;++A){M=A+k;var E=b*A;d[x++]=y[E+_],d[x++]=-M}var L=x>>>1;a(d,L);var C=0;for(A=0;A<L;++A){var P=0|d[2*A+1];if(P<0){var O=!1;if((M=-P)>=o?(O=!n,M-=o):(O=!!n,M-=1),O)g(l,u,C++,M);else{var I=m[M],D=b*M,z=y[D+e+1],R=y[D+e+1+t];t:for(var F=0;F<C;++F){var B=l[F],N=b*B;if(!(R<c[N+e+1]||c[N+e+1+t]<z)){for(var j=e+2;j<t;++j)if(y[D+j+t]<c[N+j]||c[N+j+t]<y[D+j])continue t;var U,V=f[B];if(void 0!==(U=n?r(I,V):r(V,I)))return U}}}}else v(l,u,C--,P-T)}},scanComplete:function(t,e,r,n,i,s,u,c,f,h,p){for(var v=0,g=2*t,y=e,m=e+t,x=n;x<i;++x){var b=x+o,_=g*x;d[v++]=s[_+y],d[v++]=-b,d[v++]=s[_+m],d[v++]=b}for(x=c;x<f;++x){b=x+1;var w=g*x;d[v++]=h[w+y],d[v++]=-b}var T=v>>>1;a(d,T);var k=0;for(x=0;x<T;++x){var A=0|d[2*x+1];if(A<0)if((b=-A)>=o)l[k++]=b-o;else{var M=p[b-=1],S=g*b,E=h[S+e+1],L=h[S+e+1+t];t:for(var C=0;C<k;++C){var P=l[C],O=u[P];if(O===M)break;var I=g*P;if(!(L<s[I+e+1]||s[I+e+1+t]<E)){for(var D=e+2;D<t;++D)if(h[S+D+t]<s[I+D]||s[I+D+t]<h[S+D])continue t;var z=r(O,M);if(void 0!==z)return z}}}else{for(b=A-o,C=k-1;C>=0;--C)if(l[C]===b){for(D=C+1;D<k;++D)l[D-1]=l[D];break}--k}}}};var n=r(5306),i=r(2288),a=r(309),o=1<<28,s=1024,l=n.mallocInt32(s),u=n.mallocInt32(s),c=n.mallocInt32(s),f=n.mallocInt32(s),h=n.mallocInt32(s),p=n.mallocInt32(s),d=n.mallocDouble(8192);function v(t,e,r,n){var i=e[n],a=t[r-1];t[i]=a,e[a]=i}function g(t,e,r,n){t[r]=n,e[n]=r}},7761:function(t,e,r){"use strict";var n=r(9971),i=r(743),a=r(2161),o=r(7098);function s(t){return[Math.min(t[0],t[1]),Math.max(t[0],t[1])]}function l(t,e){return t[0]-e[0]||t[1]-e[1]}function u(t,e,r){return e in t?t[e]:r}t.exports=function(t,e,r){Array.isArray(e)?(r=r||{},e=e||[]):(r=e||{},e=[]);var c=!!u(r,"delaunay",!0),f=!!u(r,"interior",!0),h=!!u(r,"exterior",!0),p=!!u(r,"infinity",!1);if(!f&&!h||0===t.length)return[];var d=n(t,e);if(c||f!==h||p){for(var v=i(t.length,function(t){return t.map(s).sort(l)}(e)),g=0;g<d.length;++g){var y=d[g];v.addTriangle(y[0],y[1],y[2])}return c&&a(t,v),h?f?p?o(v,0,p):v.cells():o(v,1,p):o(v,-1)}return d}},2161:function(t,e,r){"use strict";var n=r(2227)[4];function i(t,e,r,i,a,o){var s=e.opposite(i,a);if(!(s<0)){if(a<i){var l=i;i=a,a=l,l=o,o=s,s=l}e.isConstraint(i,a)||n(t[i],t[a],t[o],t[s])<0&&r.push(i,a)}}r(5070),t.exports=function(t,e){for(var r=[],a=t.length,o=e.stars,s=0;s<a;++s)for(var l=o[s],u=1;u<l.length;u+=2)if(!((p=l[u])<s||e.isConstraint(s,p))){for(var c=l[u-1],f=-1,h=1;h<l.length;h+=2)if(l[h-1]===p){f=l[h];break}f<0||n(t[s],t[p],t[c],t[f])<0&&r.push(s,p)}for(;r.length>0;){for(var p=r.pop(),d=(c=-1,f=-1,l=o[s=r.pop()],1);d<l.length;d+=2){var v=l[d-1],g=l[d];v===p?f=g:g===p&&(c=v)}c<0||f<0||n(t[s],t[p],t[c],t[f])>=0||(e.flip(s,p),i(t,e,r,c,s,f),i(t,e,r,s,f,c),i(t,e,r,f,p,c),i(t,e,r,p,c,f))}}},7098:function(t,e,r){"use strict";var n,i=r(5070);function a(t,e,r,n,i,a,o){this.cells=t,this.neighbor=e,this.flags=n,this.constraint=r,this.active=i,this.next=a,this.boundary=o}function o(t,e){return t[0]-e[0]||t[1]-e[1]||t[2]-e[2]}t.exports=function(t,e,r){var n=function(t,e){for(var r=t.cells(),n=r.length,i=0;i<n;++i){var s=(y=r[i])[0],l=y[1],u=y[2];l<u?l<s&&(y[0]=l,y[1]=u,y[2]=s):u<s&&(y[0]=u,y[1]=s,y[2]=l)}r.sort(o);var c=new Array(n);for(i=0;i<c.length;++i)c[i]=0;var f=[],h=[],p=new Array(3*n),d=new Array(3*n),v=null;e&&(v=[]);var g=new a(r,p,d,c,f,h,v);for(i=0;i<n;++i)for(var y=r[i],m=0;m<3;++m){s=y[m],l=y[(m+1)%3];var x=p[3*i+m]=g.locate(l,s,t.opposite(l,s)),b=d[3*i+m]=t.isConstraint(s,l);x<0&&(b?h.push(i):(f.push(i),c[i]=1),e&&v.push([l,s,-1]))}return g}(t,r);if(0===e)return r?n.cells.concat(n.boundary):n.cells;for(var i=1,s=n.active,l=n.next,u=n.flags,c=n.cells,f=n.constraint,h=n.neighbor;s.length>0||l.length>0;){for(;s.length>0;){var p=s.pop();if(u[p]!==-i){u[p]=i,c[p];for(var d=0;d<3;++d){var v=h[3*p+d];v>=0&&0===u[v]&&(f[3*p+d]?l.push(v):(s.push(v),u[v]=i))}}}var g=l;l=s,s=g,l.length=0,i=-i}var y=function(t,e,r){for(var n=0,i=0;i<t.length;++i)e[i]===r&&(t[n++]=t[i]);return t.length=n,t}(c,u,e);return r?y.concat(n.boundary):y},a.prototype.locate=(n=[0,0,0],function(t,e,r){var a=t,s=e,l=r;return e<r?e<t&&(a=e,s=r,l=t):r<t&&(a=r,s=t,l=e),a<0?-1:(n[0]=a,n[1]=s,n[2]=l,i.eq(this.cells,n,o))})},9971:function(t,e,r){"use strict";var n=r(5070),i=r(417)[3];function a(t,e,r,n,i){this.a=t,this.b=e,this.idx=r,this.lowerIds=n,this.upperIds=i}function o(t,e,r,n){this.a=t,this.b=e,this.type=r,this.idx=n}function s(t,e){var r=t.a[0]-e.a[0]||t.a[1]-e.a[1]||t.type-e.type;return r||(0!==t.type&&(r=i(t.a,t.b,e.b))?r:t.idx-e.idx)}function l(t,e){return i(t.a,t.b,e)}function u(t,e,r,a,o){for(var s=n.lt(e,a,l),u=n.gt(e,a,l),c=s;c<u;++c){for(var f=e[c],h=f.lowerIds,p=h.length;p>1&&i(r[h[p-2]],r[h[p-1]],a)>0;)t.push([h[p-1],h[p-2],o]),p-=1;h.length=p,h.push(o);var d=f.upperIds;for(p=d.length;p>1&&i(r[d[p-2]],r[d[p-1]],a)<0;)t.push([d[p-2],d[p-1],o]),p-=1;d.length=p,d.push(o)}}function c(t,e){var r;return(r=t.a[0]<e.a[0]?i(t.a,t.b,e.a):i(e.b,e.a,t.a))?r:(r=e.b[0]<t.b[0]?i(t.a,t.b,e.b):i(e.b,e.a,t.b))||t.idx-e.idx}function f(t,e,r){var i=n.le(t,r,c),o=t[i],s=o.upperIds,l=s[s.length-1];o.upperIds=[l],t.splice(i+1,0,new a(r.a,r.b,r.idx,[l],s))}function h(t,e,r){var i=r.a;r.a=r.b,r.b=i;var a=n.eq(t,r,c),o=t[a];t[a-1].upperIds=o.upperIds,t.splice(a,1)}t.exports=function(t,e){for(var r=t.length,n=e.length,i=[],l=0;l<r;++l)i.push(new o(t[l],null,0,l));for(l=0;l<n;++l){var c=e[l],p=t[c[0]],d=t[c[1]];p[0]<d[0]?i.push(new o(p,d,2,l),new o(d,p,1,l)):p[0]>d[0]&&i.push(new o(d,p,2,l),new o(p,d,1,l))}i.sort(s);for(var v=i[0].a[0]-(1+Math.abs(i[0].a[0]))*Math.pow(2,-52),g=[new a([v,1],[v,0],-1,[],[],[],[])],y=[],m=(l=0,i.length);l<m;++l){var x=i[l],b=x.type;0===b?u(y,g,t,x.a,x.idx):2===b?f(g,0,x):h(g,0,x)}return y}},743:function(t,e,r){"use strict";var n=r(5070);function i(t,e){this.stars=t,this.edges=e}t.exports=function(t,e){for(var r=new Array(t),n=0;n<t;++n)r[n]=[];return new i(r,e)};var a=i.prototype;function o(t,e,r){for(var n=1,i=t.length;n<i;n+=2)if(t[n-1]===e&&t[n]===r)return t[n-1]=t[i-2],t[n]=t[i-1],void(t.length=i-2)}a.isConstraint=function(){var t=[0,0];function e(t,e){return t[0]-e[0]||t[1]-e[1]}return function(r,i){return t[0]=Math.min(r,i),t[1]=Math.max(r,i),n.eq(this.edges,t,e)>=0}}(),a.removeTriangle=function(t,e,r){var n=this.stars;o(n[t],e,r),o(n[e],r,t),o(n[r],t,e)},a.addTriangle=function(t,e,r){var n=this.stars;n[t].push(e,r),n[e].push(r,t),n[r].push(t,e)},a.opposite=function(t,e){for(var r=this.stars[e],n=1,i=r.length;n<i;n+=2)if(r[n]===t)return r[n-1];return-1},a.flip=function(t,e){var r=this.opposite(t,e),n=this.opposite(e,t);this.removeTriangle(t,e,r),this.removeTriangle(e,t,n),this.addTriangle(t,n,r),this.addTriangle(e,r,n)},a.edges=function(){for(var t=this.stars,e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0,o=i.length;a<o;a+=2)e.push([i[a],i[a+1]]);return e},a.cells=function(){for(var t=this.stars,e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0,o=i.length;a<o;a+=2){var s=i[a],l=i[a+1];r<Math.min(s,l)&&e.push([r,s,l])}return e}},9887:function(t){"use strict";t.exports=function(t){for(var e=1,r=1;r<t.length;++r)for(var n=0;n<r;++n)if(t[r]<t[n])e=-e;else if(t[n]===t[r])return 0;return e}},9243:function(t,e,r){"use strict";var n=r(3094),i=r(6606);function a(t,e){for(var r=0,n=t.length,i=0;i<n;++i)r+=t[i]*e[i];return r}function o(t){var e=t.length;if(0===e)return[];t[0].length;var r=n([t.length+1,t.length+1],1),o=n([t.length+1],1);r[e][e]=0;for(var s=0;s<e;++s){for(var l=0;l<=s;++l)r[l][s]=r[s][l]=2*a(t[s],t[l]);o[s]=a(t[s],t[s])}var u=i(r,o),c=0,f=u[e+1];for(s=0;s<f.length;++s)c+=f[s];var h=new Array(e);for(s=0;s<e;++s){f=u[s];var p=0;for(l=0;l<f.length;++l)p+=f[l];h[s]=p/c}return h}function s(t){if(0===t.length)return[];for(var e=t[0].length,r=n([e]),i=o(t),a=0;a<t.length;++a)for(var s=0;s<e;++s)r[s]+=t[a][s]*i[a];return r}s.barycenetric=o,t.exports=s},1778:function(t,e,r){t.exports=function(t){for(var e=n(t),r=0,i=0;i<t.length;++i)for(var a=t[i],o=0;o<e.length;++o)r+=Math.pow(a[o]-e[o],2);return Math.sqrt(r/t.length)};var n=r(9243)},197:function(t,e,r){"use strict";t.exports=function(t,e,r){var n;if(r){n=e;for(var i=new Array(e.length),a=0;a<e.length;++a){var o=e[a];i[a]=[o[0],o[1],r[a]]}e=i}for(var s=function(t,e,r){var n=d(t,[],p(t));return y(e,n,r),!!n}(t,e,!!r);m(t,e,!!r);)s=!0;if(r&&s)for(n.length=0,r.length=0,a=0;a<e.length;++a)o=e[a],n.push([o[0],o[1]]),r.push(o[2]);return s};var n=r(1731),i=r(2569),a=r(4434),o=r(5125),s=r(8846),l=r(7999),u=r(2826),c=r(8551),f=r(5528);function h(t){var e=l(t);return[c(e,-1/0),c(e,1/0)]}function p(t){for(var e=new Array(t.length),r=0;r<t.length;++r){var n=t[r];e[r]=[c(n[0],-1/0),c(n[1],-1/0),c(n[0],1/0),c(n[1],1/0)]}return e}function d(t,e,r){for(var a=e.length,o=new n(a),s=[],l=0;l<e.length;++l){var u=e[l],f=h(u[0]),p=h(u[1]);s.push([c(f[0],-1/0),c(p[0],-1/0),c(f[1],1/0),c(p[1],1/0)])}i(s,(function(t,e){o.link(t,e)}));var d=!0,v=new Array(a);for(l=0;l<a;++l)(y=o.find(l))!==l&&(d=!1,t[y]=[Math.min(t[l][0],t[y][0]),Math.min(t[l][1],t[y][1])]);if(d)return null;var g=0;for(l=0;l<a;++l){var y;(y=o.find(l))===l?(v[l]=g,t[g++]=t[l]):v[l]=-1}for(t.length=g,l=0;l<a;++l)v[l]<0&&(v[l]=v[o.find(l)]);return v}function v(t,e){return t[0]-e[0]||t[1]-e[1]}function g(t,e){return t[0]-e[0]||t[1]-e[1]||(t[2]<e[2]?-1:t[2]>e[2]?1:0)}function y(t,e,r){if(0!==t.length){if(e)for(var n=0;n<t.length;++n){var i=e[(o=t[n])[0]],a=e[o[1]];o[0]=Math.min(i,a),o[1]=Math.max(i,a)}else for(n=0;n<t.length;++n){var o;i=(o=t[n])[0],a=o[1],o[0]=Math.min(i,a),o[1]=Math.max(i,a)}r?t.sort(g):t.sort(v);var s=1;for(n=1;n<t.length;++n){var l=t[n-1],u=t[n];(u[0]!==l[0]||u[1]!==l[1]||r&&u[2]!==l[2])&&(t[s++]=u)}t.length=s}}function m(t,e,r){var n=function(t,e){for(var r=new Array(e.length),n=0;n<e.length;++n){var i=e[n],a=t[i[0]],o=t[i[1]];r[n]=[c(Math.min(a[0],o[0]),-1/0),c(Math.min(a[1],o[1]),-1/0),c(Math.max(a[0],o[0]),1/0),c(Math.max(a[1],o[1]),1/0)]}return r}(t,e),h=function(t,e,r){var n=[];return i(r,(function(r,i){var o=e[r],s=e[i];if(o[0]!==s[0]&&o[0]!==s[1]&&o[1]!==s[0]&&o[1]!==s[1]){var l=t[o[0]],u=t[o[1]],c=t[s[0]],f=t[s[1]];a(l,u,c,f)&&n.push([r,i])}})),n}(t,e,n),v=function(t,e,r,n){var o=[];return i(r,n,(function(r,n){var i=e[r];if(i[0]!==n&&i[1]!==n){var s=t[n],l=t[i[0]],u=t[i[1]];a(l,u,s,s)&&o.push([r,n])}})),o}(t,e,n,p(t)),g=function(t,e,r,n,i){var a,c,h=t.map((function(t){return[o(t[0]),o(t[1])]}));for(a=0;a<r.length;++a){var p=r[a];c=p[0];var d=p[1],v=e[c],g=e[d],y=f(u(t[v[0]]),u(t[v[1]]),u(t[g[0]]),u(t[g[1]]));if(y){var m=t.length;t.push([l(y[0]),l(y[1])]),h.push(y),n.push([c,m],[d,m])}}for(n.sort((function(t,e){if(t[0]!==e[0])return t[0]-e[0];var r=h[t[1]],n=h[e[1]];return s(r[0],n[0])||s(r[1],n[1])})),a=n.length-1;a>=0;--a){var x=e[c=(S=n[a])[0]],b=x[0],_=x[1],w=t[b],T=t[_];if((w[0]-T[0]||w[1]-T[1])<0){var k=b;b=_,_=k}x[0]=b;var A,M=x[1]=S[1];for(i&&(A=x[2]);a>0&&n[a-1][0]===c;){var S,E=(S=n[--a])[1];i?e.push([M,E,A]):e.push([M,E]),M=E}i?e.push([M,_,A]):e.push([M,_])}return h}(t,e,h,v,r),m=d(t,g);return y(e,m,r),!!m||h.length>0||v.length>0}},5528:function(t,e,r){"use strict";t.exports=function(t,e,r,n){var a=s(e,t),f=s(n,r),h=c(a,f);if(0===o(h))return null;var p=c(f,s(t,r)),d=i(p,h),v=u(a,d);return l(t,v)};var n=r(3962),i=r(9189),a=r(4354),o=r(4951),s=r(6695),l=r(7584),u=r(4469);function c(t,e){return a(n(t[0],e[1]),n(t[1],e[0]))}},5692:function(t){t.exports={jet:[{index:0,rgb:[0,0,131]},{index:.125,rgb:[0,60,170]},{index:.375,rgb:[5,255,255]},{index:.625,rgb:[255,255,0]},{index:.875,rgb:[250,0,0]},{index:1,rgb:[128,0,0]}],hsv:[{index:0,rgb:[255,0,0]},{index:.169,rgb:[253,255,2]},{index:.173,rgb:[247,255,2]},{index:.337,rgb:[0,252,4]},{index:.341,rgb:[0,252,10]},{index:.506,rgb:[1,249,255]},{index:.671,rgb:[2,0,253]},{index:.675,rgb:[8,0,253]},{index:.839,rgb:[255,0,251]},{index:.843,rgb:[255,0,245]},{index:1,rgb:[255,0,6]}],hot:[{index:0,rgb:[0,0,0]},{index:.3,rgb:[230,0,0]},{index:.6,rgb:[255,210,0]},{index:1,rgb:[255,255,255]}],spring:[{index:0,rgb:[255,0,255]},{index:1,rgb:[255,255,0]}],summer:[{index:0,rgb:[0,128,102]},{index:1,rgb:[255,255,102]}],autumn:[{index:0,rgb:[255,0,0]},{index:1,rgb:[255,255,0]}],winter:[{index:0,rgb:[0,0,255]},{index:1,rgb:[0,255,128]}],bone:[{index:0,rgb:[0,0,0]},{index:.376,rgb:[84,84,116]},{index:.753,rgb:[169,200,200]},{index:1,rgb:[255,255,255]}],copper:[{index:0,rgb:[0,0,0]},{index:.804,rgb:[255,160,102]},{index:1,rgb:[255,199,127]}],greys:[{index:0,rgb:[0,0,0]},{index:1,rgb:[255,255,255]}],yignbu:[{index:0,rgb:[8,29,88]},{index:.125,rgb:[37,52,148]},{index:.25,rgb:[34,94,168]},{index:.375,rgb:[29,145,192]},{index:.5,rgb:[65,182,196]},{index:.625,rgb:[127,205,187]},{index:.75,rgb:[199,233,180]},{index:.875,rgb:[237,248,217]},{index:1,rgb:[255,255,217]}],greens:[{index:0,rgb:[0,68,27]},{index:.125,rgb:[0,109,44]},{index:.25,rgb:[35,139,69]},{index:.375,rgb:[65,171,93]},{index:.5,rgb:[116,196,118]},{index:.625,rgb:[161,217,155]},{index:.75,rgb:[199,233,192]},{index:.875,rgb:[229,245,224]},{index:1,rgb:[247,252,245]}],yiorrd:[{index:0,rgb:[128,0,38]},{index:.125,rgb:[189,0,38]},{index:.25,rgb:[227,26,28]},{index:.375,rgb:[252,78,42]},{index:.5,rgb:[253,141,60]},{index:.625,rgb:[254,178,76]},{index:.75,rgb:[254,217,118]},{index:.875,rgb:[255,237,160]},{index:1,rgb:[255,255,204]}],bluered:[{index:0,rgb:[0,0,255]},{index:1,rgb:[255,0,0]}],rdbu:[{index:0,rgb:[5,10,172]},{index:.35,rgb:[106,137,247]},{index:.5,rgb:[190,190,190]},{index:.6,rgb:[220,170,132]},{index:.7,rgb:[230,145,90]},{index:1,rgb:[178,10,28]}],picnic:[{index:0,rgb:[0,0,255]},{index:.1,rgb:[51,153,255]},{index:.2,rgb:[102,204,255]},{index:.3,rgb:[153,204,255]},{index:.4,rgb:[204,204,255]},{index:.5,rgb:[255,255,255]},{index:.6,rgb:[255,204,255]},{index:.7,rgb:[255,153,255]},{index:.8,rgb:[255,102,204]},{index:.9,rgb:[255,102,102]},{index:1,rgb:[255,0,0]}],rainbow:[{index:0,rgb:[150,0,90]},{index:.125,rgb:[0,0,200]},{index:.25,rgb:[0,25,255]},{index:.375,rgb:[0,152,255]},{index:.5,rgb:[44,255,150]},{index:.625,rgb:[151,255,0]},{index:.75,rgb:[255,234,0]},{index:.875,rgb:[255,111,0]},{index:1,rgb:[255,0,0]}],portland:[{index:0,rgb:[12,51,131]},{index:.25,rgb:[10,136,186]},{index:.5,rgb:[242,211,56]},{index:.75,rgb:[242,143,56]},{index:1,rgb:[217,30,30]}],blackbody:[{index:0,rgb:[0,0,0]},{index:.2,rgb:[230,0,0]},{index:.4,rgb:[230,210,0]},{index:.7,rgb:[255,255,255]},{index:1,rgb:[160,200,255]}],earth:[{index:0,rgb:[0,0,130]},{index:.1,rgb:[0,180,180]},{index:.2,rgb:[40,210,40]},{index:.4,rgb:[230,230,50]},{index:.6,rgb:[120,70,20]},{index:1,rgb:[255,255,255]}],electric:[{index:0,rgb:[0,0,0]},{index:.15,rgb:[30,0,100]},{index:.4,rgb:[120,0,100]},{index:.6,rgb:[160,90,0]},{index:.8,rgb:[230,200,0]},{index:1,rgb:[255,250,220]}],alpha:[{index:0,rgb:[255,255,255,0]},{index:1,rgb:[255,255,255,1]}],viridis:[{index:0,rgb:[68,1,84]},{index:.13,rgb:[71,44,122]},{index:.25,rgb:[59,81,139]},{index:.38,rgb:[44,113,142]},{index:.5,rgb:[33,144,141]},{index:.63,rgb:[39,173,129]},{index:.75,rgb:[92,200,99]},{index:.88,rgb:[170,220,50]},{index:1,rgb:[253,231,37]}],inferno:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[31,12,72]},{index:.25,rgb:[85,15,109]},{index:.38,rgb:[136,34,106]},{index:.5,rgb:[186,54,85]},{index:.63,rgb:[227,89,51]},{index:.75,rgb:[249,140,10]},{index:.88,rgb:[249,201,50]},{index:1,rgb:[252,255,164]}],magma:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[28,16,68]},{index:.25,rgb:[79,18,123]},{index:.38,rgb:[129,37,129]},{index:.5,rgb:[181,54,122]},{index:.63,rgb:[229,80,100]},{index:.75,rgb:[251,135,97]},{index:.88,rgb:[254,194,135]},{index:1,rgb:[252,253,191]}],plasma:[{index:0,rgb:[13,8,135]},{index:.13,rgb:[75,3,161]},{index:.25,rgb:[125,3,168]},{index:.38,rgb:[168,34,150]},{index:.5,rgb:[203,70,121]},{index:.63,rgb:[229,107,93]},{index:.75,rgb:[248,148,65]},{index:.88,rgb:[253,195,40]},{index:1,rgb:[240,249,33]}],warm:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[172,0,187]},{index:.25,rgb:[219,0,170]},{index:.38,rgb:[255,0,130]},{index:.5,rgb:[255,63,74]},{index:.63,rgb:[255,123,0]},{index:.75,rgb:[234,176,0]},{index:.88,rgb:[190,228,0]},{index:1,rgb:[147,255,0]}],cool:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[116,0,218]},{index:.25,rgb:[98,74,237]},{index:.38,rgb:[68,146,231]},{index:.5,rgb:[0,204,197]},{index:.63,rgb:[0,247,146]},{index:.75,rgb:[0,255,88]},{index:.88,rgb:[40,255,8]},{index:1,rgb:[147,255,0]}],"rainbow-soft":[{index:0,rgb:[125,0,179]},{index:.1,rgb:[199,0,180]},{index:.2,rgb:[255,0,121]},{index:.3,rgb:[255,108,0]},{index:.4,rgb:[222,194,0]},{index:.5,rgb:[150,255,0]},{index:.6,rgb:[0,255,55]},{index:.7,rgb:[0,246,150]},{index:.8,rgb:[50,167,222]},{index:.9,rgb:[103,51,235]},{index:1,rgb:[124,0,186]}],bathymetry:[{index:0,rgb:[40,26,44]},{index:.13,rgb:[59,49,90]},{index:.25,rgb:[64,76,139]},{index:.38,rgb:[63,110,151]},{index:.5,rgb:[72,142,158]},{index:.63,rgb:[85,174,163]},{index:.75,rgb:[120,206,163]},{index:.88,rgb:[187,230,172]},{index:1,rgb:[253,254,204]}],cdom:[{index:0,rgb:[47,15,62]},{index:.13,rgb:[87,23,86]},{index:.25,rgb:[130,28,99]},{index:.38,rgb:[171,41,96]},{index:.5,rgb:[206,67,86]},{index:.63,rgb:[230,106,84]},{index:.75,rgb:[242,149,103]},{index:.88,rgb:[249,193,135]},{index:1,rgb:[254,237,176]}],chlorophyll:[{index:0,rgb:[18,36,20]},{index:.13,rgb:[25,63,41]},{index:.25,rgb:[24,91,59]},{index:.38,rgb:[13,119,72]},{index:.5,rgb:[18,148,80]},{index:.63,rgb:[80,173,89]},{index:.75,rgb:[132,196,122]},{index:.88,rgb:[175,221,162]},{index:1,rgb:[215,249,208]}],density:[{index:0,rgb:[54,14,36]},{index:.13,rgb:[89,23,80]},{index:.25,rgb:[110,45,132]},{index:.38,rgb:[120,77,178]},{index:.5,rgb:[120,113,213]},{index:.63,rgb:[115,151,228]},{index:.75,rgb:[134,185,227]},{index:.88,rgb:[177,214,227]},{index:1,rgb:[230,241,241]}],"freesurface-blue":[{index:0,rgb:[30,4,110]},{index:.13,rgb:[47,14,176]},{index:.25,rgb:[41,45,236]},{index:.38,rgb:[25,99,212]},{index:.5,rgb:[68,131,200]},{index:.63,rgb:[114,156,197]},{index:.75,rgb:[157,181,203]},{index:.88,rgb:[200,208,216]},{index:1,rgb:[241,237,236]}],"freesurface-red":[{index:0,rgb:[60,9,18]},{index:.13,rgb:[100,17,27]},{index:.25,rgb:[142,20,29]},{index:.38,rgb:[177,43,27]},{index:.5,rgb:[192,87,63]},{index:.63,rgb:[205,125,105]},{index:.75,rgb:[216,162,148]},{index:.88,rgb:[227,199,193]},{index:1,rgb:[241,237,236]}],oxygen:[{index:0,rgb:[64,5,5]},{index:.13,rgb:[106,6,15]},{index:.25,rgb:[144,26,7]},{index:.38,rgb:[168,64,3]},{index:.5,rgb:[188,100,4]},{index:.63,rgb:[206,136,11]},{index:.75,rgb:[220,174,25]},{index:.88,rgb:[231,215,44]},{index:1,rgb:[248,254,105]}],par:[{index:0,rgb:[51,20,24]},{index:.13,rgb:[90,32,35]},{index:.25,rgb:[129,44,34]},{index:.38,rgb:[159,68,25]},{index:.5,rgb:[182,99,19]},{index:.63,rgb:[199,134,22]},{index:.75,rgb:[212,171,35]},{index:.88,rgb:[221,210,54]},{index:1,rgb:[225,253,75]}],phase:[{index:0,rgb:[145,105,18]},{index:.13,rgb:[184,71,38]},{index:.25,rgb:[186,58,115]},{index:.38,rgb:[160,71,185]},{index:.5,rgb:[110,97,218]},{index:.63,rgb:[50,123,164]},{index:.75,rgb:[31,131,110]},{index:.88,rgb:[77,129,34]},{index:1,rgb:[145,105,18]}],salinity:[{index:0,rgb:[42,24,108]},{index:.13,rgb:[33,50,162]},{index:.25,rgb:[15,90,145]},{index:.38,rgb:[40,118,137]},{index:.5,rgb:[59,146,135]},{index:.63,rgb:[79,175,126]},{index:.75,rgb:[120,203,104]},{index:.88,rgb:[193,221,100]},{index:1,rgb:[253,239,154]}],temperature:[{index:0,rgb:[4,35,51]},{index:.13,rgb:[23,51,122]},{index:.25,rgb:[85,59,157]},{index:.38,rgb:[129,79,143]},{index:.5,rgb:[175,95,130]},{index:.63,rgb:[222,112,101]},{index:.75,rgb:[249,146,66]},{index:.88,rgb:[249,196,65]},{index:1,rgb:[232,250,91]}],turbidity:[{index:0,rgb:[34,31,27]},{index:.13,rgb:[65,50,41]},{index:.25,rgb:[98,69,52]},{index:.38,rgb:[131,89,57]},{index:.5,rgb:[161,112,59]},{index:.63,rgb:[185,140,66]},{index:.75,rgb:[202,174,88]},{index:.88,rgb:[216,209,126]},{index:1,rgb:[233,246,171]}],"velocity-blue":[{index:0,rgb:[17,32,64]},{index:.13,rgb:[35,52,116]},{index:.25,rgb:[29,81,156]},{index:.38,rgb:[31,113,162]},{index:.5,rgb:[50,144,169]},{index:.63,rgb:[87,173,176]},{index:.75,rgb:[149,196,189]},{index:.88,rgb:[203,221,211]},{index:1,rgb:[254,251,230]}],"velocity-green":[{index:0,rgb:[23,35,19]},{index:.13,rgb:[24,64,38]},{index:.25,rgb:[11,95,45]},{index:.38,rgb:[39,123,35]},{index:.5,rgb:[95,146,12]},{index:.63,rgb:[152,165,18]},{index:.75,rgb:[201,186,69]},{index:.88,rgb:[233,216,137]},{index:1,rgb:[255,253,205]}],cubehelix:[{index:0,rgb:[0,0,0]},{index:.07,rgb:[22,5,59]},{index:.13,rgb:[60,4,105]},{index:.2,rgb:[109,1,135]},{index:.27,rgb:[161,0,147]},{index:.33,rgb:[210,2,142]},{index:.4,rgb:[251,11,123]},{index:.47,rgb:[255,29,97]},{index:.53,rgb:[255,54,69]},{index:.6,rgb:[255,85,46]},{index:.67,rgb:[255,120,34]},{index:.73,rgb:[255,157,37]},{index:.8,rgb:[241,191,57]},{index:.87,rgb:[224,220,93]},{index:.93,rgb:[218,241,142]},{index:1,rgb:[227,253,198]}]}},9156:function(t,e,r){"use strict";var n=r(5692),i=r(3578);function a(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}function o(t){for(var e,r="#",n=0;n<3;++n)r+=("00"+(e=(e=t[n]).toString(16))).substr(e.length);return r}function s(t){return"rgba("+t.join(",")+")"}t.exports=function(t){var e,r,l,u,c,f,h,p,d,v;if(t||(t={}),p=(t.nshades||72)-1,h=t.format||"hex",(f=t.colormap)||(f="jet"),"string"==typeof f){if(f=f.toLowerCase(),!n[f])throw Error(f+" not a supported colorscale");c=n[f]}else{if(!Array.isArray(f))throw Error("unsupported colormap option",f);c=f.slice()}if(c.length>p+1)throw new Error(f+" map requires nshades to be at least size "+c.length);d=Array.isArray(t.alpha)?2!==t.alpha.length?[1,1]:t.alpha.slice():"number"==typeof t.alpha?[t.alpha,t.alpha]:[1,1],e=c.map((function(t){return Math.round(t.index*p)})),d[0]=Math.min(Math.max(d[0],0),1),d[1]=Math.min(Math.max(d[1],0),1);var g=c.map((function(t,e){var r=c[e].index,n=c[e].rgb.slice();return 4===n.length&&n[3]>=0&&n[3]<=1||(n[3]=d[0]+(d[1]-d[0])*r),n})),y=[];for(v=0;v<e.length-1;++v){u=e[v+1]-e[v],r=g[v],l=g[v+1];for(var m=0;m<u;m++){var x=m/u;y.push([Math.round(i(r[0],l[0],x)),Math.round(i(r[1],l[1],x)),Math.round(i(r[2],l[2],x)),i(r[3],l[3],x)])}}return y.push(c[c.length-1].rgb.concat(d[1])),"hex"===h?y=y.map(o):"rgbaString"===h?y=y.map(s):"float"===h&&(y=y.map(a)),y}},9398:function(t,e,r){"use strict";t.exports=function(t,e,r,a){var o=n(e,r,a);if(0===o){var s=i(n(t,e,r)),u=i(n(t,e,a));if(s===u){if(0===s){var c=l(t,e,r);return c===l(t,e,a)?0:c?1:-1}return 0}return 0===u?s>0||l(t,e,a)?-1:1:0===s?u>0||l(t,e,r)?1:-1:i(u-s)}var f=n(t,e,r);return f>0?o>0&&n(t,e,a)>0?1:-1:f<0?o>0||n(t,e,a)>0?1:-1:n(t,e,a)>0||l(t,e,r)?1:-1};var n=r(417),i=r(7538),a=r(87),o=r(2019),s=r(9662);function l(t,e,r){var n=a(t[0],-e[0]),i=a(t[1],-e[1]),l=a(r[0],-e[0]),u=a(r[1],-e[1]),c=s(o(n,l),o(i,u));return c[c.length-1]>=0}},7538:function(t){"use strict";t.exports=function(t){return t<0?-1:t>0?1:0}},9209:function(t){t.exports=function(t,n){var i=t.length,a=t.length-n.length;if(a)return a;switch(i){case 0:return 0;case 1:return t[0]-n[0];case 2:return t[0]+t[1]-n[0]-n[1]||e(t[0],t[1])-e(n[0],n[1]);case 3:var o=t[0]+t[1],s=n[0]+n[1];if(a=o+t[2]-(s+n[2]))return a;var l=e(t[0],t[1]),u=e(n[0],n[1]);return e(l,t[2])-e(u,n[2])||e(l+t[2],o)-e(u+n[2],s);case 4:var c=t[0],f=t[1],h=t[2],p=t[3],d=n[0],v=n[1],g=n[2],y=n[3];return c+f+h+p-(d+v+g+y)||e(c,f,h,p)-e(d,v,g,y,d)||e(c+f,c+h,c+p,f+h,f+p,h+p)-e(d+v,d+g,d+y,v+g,v+y,g+y)||e(c+f+h,c+f+p,c+h+p,f+h+p)-e(d+v+g,d+v+y,d+g+y,v+g+y);default:for(var m=t.slice().sort(r),x=n.slice().sort(r),b=0;b<i;++b)if(a=m[b]-x[b])return a;return 0}};var e=Math.min;function r(t,e){return t-e}},1284:function(t,e,r){"use strict";var n=r(9209),i=r(9887);t.exports=function(t,e){return n(t,e)||i(t)-i(e)}},5537:function(t,e,r){"use strict";var n=r(8950),i=r(8722),a=r(3332);t.exports=function(t){var e=t.length;if(0===e)return[];if(1===e)return[[0]];var r=t[0].length;return 0===r?[]:1===r?n(t):2===r?i(t):a(t,r)}},8950:function(t){"use strict";t.exports=function(t){for(var e=0,r=0,n=1;n<t.length;++n)t[n][0]<t[e][0]&&(e=n),t[n][0]>t[r][0]&&(r=n);return e<r?[[e],[r]]:e>r?[[r],[e]]:[[e]]}},8722:function(t,e,r){"use strict";t.exports=function(t){var e=n(t),r=e.length;if(r<=2)return[];for(var i=new Array(r),a=e[r-1],o=0;o<r;++o){var s=e[o];i[o]=[a,s],a=s}return i};var n=r(3266)},3332:function(t,e,r){"use strict";t.exports=function(t,e){try{return n(t,!0)}catch(o){var r=i(t);if(r.length<=e)return[];var a=function(t,e){for(var r=t.length,n=new Array(r),i=0;i<e.length;++i)n[i]=t[e[i]];var a=e.length;for(i=0;i<r;++i)e.indexOf(i)<0&&(n[a++]=t[i]);return n}(t,r);return function(t,e){for(var r=t.length,n=e.length,i=0;i<r;++i)for(var a=t[i],o=0;o<a.length;++o){var s=a[o];if(s<n)a[o]=e[s];else{s-=n;for(var l=0;l<n;++l)s>=e[l]&&(s+=1);a[o]=s}}return t}(n(a,!0),r)}};var n=r(2183),i=r(2153)},9680:function(t){"use strict";t.exports=function(t,e,r,n,i,a){var o=i-1,s=i*i,l=o*o,u=(1+2*i)*l,c=i*l,f=s*(3-2*i),h=s*o;if(t.length){a||(a=new Array(t.length));for(var p=t.length-1;p>=0;--p)a[p]=u*t[p]+c*e[p]+f*r[p]+h*n[p];return a}return u*t+c*e+f*r+h*n},t.exports.derivative=function(t,e,r,n,i,a){var o=6*i*i-6*i,s=3*i*i-4*i+1,l=-6*i*i+6*i,u=3*i*i-2*i;if(t.length){a||(a=new Array(t.length));for(var c=t.length-1;c>=0;--c)a[c]=o*t[c]+s*e[c]+l*r[c]+u*n[c];return a}return o*t+s*e+l*r[c]+u*n}},4419:function(t,e,r){"use strict";var n=r(2183),i=r(1215);function a(t,e){this.point=t,this.index=e}function o(t,e){for(var r=t.point,n=e.point,i=r.length,a=0;a<i;++a){var o=n[a]-r[a];if(o)return o}return 0}t.exports=function(t,e){var r=t.length;if(0===r)return[];var s=t[0].length;if(s<1)return[];if(1===s)return function(t,e,r){if(1===t)return r?[[-1,0]]:[];var n=e.map((function(t,e){return[t[0],e]}));n.sort((function(t,e){return t[0]-e[0]}));for(var i=new Array(t-1),a=1;a<t;++a){var o=n[a-1],s=n[a];i[a-1]=[o[1],s[1]]}return r&&i.push([-1,i[0][1]],[i[t-1][1],-1]),i}(r,t,e);for(var l=new Array(r),u=1,c=0;c<r;++c){for(var f=t[c],h=new Array(s+1),p=0,d=0;d<s;++d){var v=f[d];h[d]=v,p+=v*v}h[s]=p,l[c]=new a(h,c),u=Math.max(p,u)}i(l,o),r=l.length;var g=new Array(r+s+1),y=new Array(r+s+1),m=(s+1)*(s+1)*u,x=new Array(s+1);for(c=0;c<=s;++c)x[c]=0;for(x[s]=m,g[0]=x.slice(),y[0]=-1,c=0;c<=s;++c)(h=x.slice())[c]=1,g[c+1]=h,y[c+1]=-1;for(c=0;c<r;++c){var b=l[c];g[c+s+1]=b.point,y[c+s+1]=b.index}var _=n(g,!1);if(_=e?_.filter((function(t){for(var e=0,r=0;r<=s;++r){var n=y[t[r]];if(n<0&&++e>=2)return!1;t[r]=n}return!0})):_.filter((function(t){for(var e=0;e<=s;++e){var r=y[t[e]];if(r<0)return!1;t[e]=r}return!0})),1&s)for(c=0;c<_.length;++c)h=(b=_[c])[0],b[0]=b[1],b[1]=h;return _}},8362:function(t){var e=!1;if("undefined"!=typeof Float64Array){var r=new Float64Array(1),n=new Uint32Array(r.buffer);r[0]=1,e=!0,1072693248===n[1]?(t.exports=function(t){return r[0]=t,[n[0],n[1]]},t.exports.pack=function(t,e){return n[0]=t,n[1]=e,r[0]},t.exports.lo=function(t){return r[0]=t,n[0]},t.exports.hi=function(t){return r[0]=t,n[1]}):1072693248===n[0]?(t.exports=function(t){return r[0]=t,[n[1],n[0]]},t.exports.pack=function(t,e){return n[1]=t,n[0]=e,r[0]},t.exports.lo=function(t){return r[0]=t,n[1]},t.exports.hi=function(t){return r[0]=t,n[0]}):e=!1}if(!e){var i=new Buffer(8);t.exports=function(t){return i.writeDoubleLE(t,0,!0),[i.readUInt32LE(0,!0),i.readUInt32LE(4,!0)]},t.exports.pack=function(t,e){return i.writeUInt32LE(t,0,!0),i.writeUInt32LE(e,4,!0),i.readDoubleLE(0,!0)},t.exports.lo=function(t){return i.writeDoubleLE(t,0,!0),i.readUInt32LE(0,!0)},t.exports.hi=function(t){return i.writeDoubleLE(t,0,!0),i.readUInt32LE(4,!0)}}t.exports.sign=function(e){return t.exports.hi(e)>>>31},t.exports.exponent=function(e){return(t.exports.hi(e)<<1>>>21)-1023},t.exports.fraction=function(e){var r=t.exports.lo(e),n=t.exports.hi(e),i=1048575&n;return 2146435072&n&&(i+=1<<20),[r,i]},t.exports.denormalized=function(e){return!(2146435072&t.exports.hi(e))}},3094:function(t){"use strict";function e(t,r,n){var i=0|t[n];if(i<=0)return[];var a,o=new Array(i);if(n===t.length-1)for(a=0;a<i;++a)o[a]=r;else for(a=0;a<i;++a)o[a]=e(t,r,n+1);return o}t.exports=function(t,r){switch(void 0===r&&(r=0),typeof t){case"number":if(t>0)return function(t,e){var r,n;for(r=new Array(t),n=0;n<t;++n)r[n]=e;return r}(0|t,r);break;case"object":if("number"==typeof t.length)return e(t,r,0)}return[]}},8348:function(t,e,r){"use strict";t.exports=function(t,e){var r=t.length;if("number"!=typeof e){e=0;for(var i=0;i<r;++i){var a=t[i];e=Math.max(e,a[0],a[1])}e=1+(0|e)}e|=0;var o=new Array(e);for(i=0;i<e;++i)o[i]=[];for(i=0;i<r;++i)o[(a=t[i])[0]].push(a[1]),o[a[1]].push(a[0]);for(var s=0;s<e;++s)n(o[s],(function(t,e){return t-e}));return o};var n=r(1215)},5795:function(t){"use strict";t.exports=function(t,e,r){var n=e||0,i=r||1;return[[t[12]+t[0],t[13]+t[1],t[14]+t[2],t[15]+t[3]],[t[12]-t[0],t[13]-t[1],t[14]-t[2],t[15]-t[3]],[t[12]+t[4],t[13]+t[5],t[14]+t[6],t[15]+t[7]],[t[12]-t[4],t[13]-t[5],t[14]-t[6],t[15]-t[7]],[n*t[12]+t[8],n*t[13]+t[9],n*t[14]+t[10],n*t[15]+t[11]],[i*t[12]-t[8],i*t[13]-t[9],i*t[14]-t[10],i*t[15]-t[11]]]}},8444:function(t,e,r){"use strict";t.exports=function(t,e,r){switch(arguments.length){case 0:return new o([0],[0],0);case 1:return"number"==typeof t?new o(n=l(t),n,0):new o(t,l(t.length),0);case 2:if("number"==typeof e){var n=l(t.length);return new o(t,n,+e)}r=0;case 3:if(t.length!==e.length)throw new Error("state and velocity lengths must match");return new o(t,e,r)}};var n=r(9680),i=r(5070);function a(t,e,r){return Math.min(e,Math.max(t,r))}function o(t,e,r){this.dimension=t.length,this.bounds=[new Array(this.dimension),new Array(this.dimension)];for(var n=0;n<this.dimension;++n)this.bounds[0][n]=-1/0,this.bounds[1][n]=1/0;this._state=t.slice().reverse(),this._velocity=e.slice().reverse(),this._time=[r],this._scratch=[t.slice(),t.slice(),t.slice(),t.slice(),t.slice()]}var s=o.prototype;function l(t){for(var e=new Array(t),r=0;r<t;++r)e[r]=0;return e}s.flush=function(t){var e=i.gt(this._time,t)-1;e<=0||(this._time.splice(0,e),this._state.splice(0,e*this.dimension),this._velocity.splice(0,e*this.dimension))},s.curve=function(t){var e=this._time,r=e.length,o=i.le(e,t),s=this._scratch[0],l=this._state,u=this._velocity,c=this.dimension,f=this.bounds;if(o<0)for(var h=c-1,p=0;p<c;++p,--h)s[p]=l[h];else if(o>=r-1){h=l.length-1;var d=t-e[r-1];for(p=0;p<c;++p,--h)s[p]=l[h]+d*u[h]}else{h=c*(o+1)-1;var v=e[o],g=e[o+1]-v||1,y=this._scratch[1],m=this._scratch[2],x=this._scratch[3],b=this._scratch[4],_=!0;for(p=0;p<c;++p,--h)y[p]=l[h],x[p]=u[h]*g,m[p]=l[h+c],b[p]=u[h+c]*g,_=_&&y[p]===m[p]&&x[p]===b[p]&&0===x[p];if(_)for(p=0;p<c;++p)s[p]=y[p];else n(y,x,m,b,(t-v)/g,s)}var w=f[0],T=f[1];for(p=0;p<c;++p)s[p]=a(w[p],T[p],s[p]);return s},s.dcurve=function(t){var e=this._time,r=e.length,a=i.le(e,t),o=this._scratch[0],s=this._state,l=this._velocity,u=this.dimension;if(a>=r-1)for(var c=s.length-1,f=(e[r-1],0);f<u;++f,--c)o[f]=l[c];else{c=u*(a+1)-1;var h=e[a],p=e[a+1]-h||1,d=this._scratch[1],v=this._scratch[2],g=this._scratch[3],y=this._scratch[4],m=!0;for(f=0;f<u;++f,--c)d[f]=s[c],g[f]=l[c]*p,v[f]=s[c+u],y[f]=l[c+u]*p,m=m&&d[f]===v[f]&&g[f]===y[f]&&0===g[f];if(m)for(f=0;f<u;++f)o[f]=0;else for(n.derivative(d,g,v,y,(t-h)/p,o),f=0;f<u;++f)o[f]/=p}return o},s.lastT=function(){var t=this._time;return t[t.length-1]},s.stable=function(){for(var t=this._velocity,e=t.length,r=this.dimension-1;r>=0;--r)if(t[--e])return!1;return!0},s.jump=function(t){var e=this.lastT(),r=this.dimension;if(!(t<e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],u=s[1];this._time.push(e,t);for(var c=0;c<2;++c)for(var f=0;f<r;++f)n.push(n[o++]),i.push(0);for(this._time.push(t),f=r;f>0;--f)n.push(a(l[f-1],u[f-1],arguments[f])),i.push(0)}},s.push=function(t){var e=this.lastT(),r=this.dimension;if(!(t<e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=t-e,l=this.bounds,u=l[0],c=l[1],f=s>1e-6?1/s:0;this._time.push(t);for(var h=r;h>0;--h){var p=a(u[h-1],c[h-1],arguments[h]);n.push(p),i.push((p-n[o++])*f)}}},s.set=function(t){var e=this.dimension;if(!(t<this.lastT()||arguments.length!==e+1)){var r=this._state,n=this._velocity,i=this.bounds,o=i[0],s=i[1];this._time.push(t);for(var l=e;l>0;--l)r.push(a(o[l-1],s[l-1],arguments[l])),n.push(0)}},s.move=function(t){var e=this.lastT(),r=this.dimension;if(!(t<=e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],u=s[1],c=t-e,f=c>1e-6?1/c:0;this._time.push(t);for(var h=r;h>0;--h){var p=arguments[h];n.push(a(l[h-1],u[h-1],n[o++]+p)),i.push(p*f)}}},s.idle=function(t){var e=this.lastT();if(!(t<e)){var r=this.dimension,n=this._state,i=this._velocity,o=n.length-r,s=this.bounds,l=s[0],u=s[1],c=t-e;this._time.push(t);for(var f=r-1;f>=0;--f)n.push(a(l[f],u[f],n[o]+c*i[o])),i.push(0),o+=1}}},7080:function(t){"use strict";function e(t,e,r,n,i,a){this._color=t,this.key=e,this.value=r,this.left=n,this.right=i,this._count=a}function r(t){return new e(t._color,t.key,t.value,t.left,t.right,t._count)}function n(t,r){return new e(t,r.key,r.value,r.left,r.right,r._count)}function i(t){t._count=1+(t.left?t.left._count:0)+(t.right?t.right._count:0)}function a(t,e){this._compare=t,this.root=e}t.exports=function(t){return new a(t||p,null)};var o=a.prototype;function s(t,e){var r;return e.left&&(r=s(t,e.left))?r:(r=t(e.key,e.value))||(e.right?s(t,e.right):void 0)}function l(t,e,r,n){if(e(t,n.key)<=0){var i;if(n.left&&(i=l(t,e,r,n.left)))return i;if(i=r(n.key,n.value))return i}if(n.right)return l(t,e,r,n.right)}function u(t,e,r,n,i){var a,o=r(t,i.key),s=r(e,i.key);if(o<=0){if(i.left&&(a=u(t,e,r,n,i.left)))return a;if(s>0&&(a=n(i.key,i.value)))return a}if(s>0&&i.right)return u(t,e,r,n,i.right)}function c(t,e){this.tree=t,this._stack=e}Object.defineProperty(o,"keys",{get:function(){var t=[];return this.forEach((function(e,r){t.push(e)})),t}}),Object.defineProperty(o,"values",{get:function(){var t=[];return this.forEach((function(e,r){t.push(r)})),t}}),Object.defineProperty(o,"length",{get:function(){return this.root?this.root._count:0}}),o.insert=function(t,r){for(var o=this._compare,s=this.root,l=[],u=[];s;){var c=o(t,s.key);l.push(s),u.push(c),s=c<=0?s.left:s.right}l.push(new e(0,t,r,null,null,1));for(var f=l.length-2;f>=0;--f)s=l[f],u[f]<=0?l[f]=new e(s._color,s.key,s.value,l[f+1],s.right,s._count+1):l[f]=new e(s._color,s.key,s.value,s.left,l[f+1],s._count+1);for(f=l.length-1;f>1;--f){var h=l[f-1];if(s=l[f],1===h._color||1===s._color)break;var p=l[f-2];if(p.left===h)if(h.left===s){if(!(d=p.right)||0!==d._color){p._color=0,p.left=h.right,h._color=1,h.right=p,l[f-2]=h,l[f-1]=s,i(p),i(h),f>=3&&((v=l[f-3]).left===p?v.left=h:v.right=h);break}h._color=1,p.right=n(1,d),p._color=0,f-=1}else{if(!(d=p.right)||0!==d._color){h.right=s.left,p._color=0,p.left=s.right,s._color=1,s.left=h,s.right=p,l[f-2]=s,l[f-1]=h,i(p),i(h),i(s),f>=3&&((v=l[f-3]).left===p?v.left=s:v.right=s);break}h._color=1,p.right=n(1,d),p._color=0,f-=1}else if(h.right===s){if(!(d=p.left)||0!==d._color){p._color=0,p.right=h.left,h._color=1,h.left=p,l[f-2]=h,l[f-1]=s,i(p),i(h),f>=3&&((v=l[f-3]).right===p?v.right=h:v.left=h);break}h._color=1,p.left=n(1,d),p._color=0,f-=1}else{var d;if(!(d=p.left)||0!==d._color){var v;h.left=s.right,p._color=0,p.right=s.left,s._color=1,s.right=h,s.left=p,l[f-2]=s,l[f-1]=h,i(p),i(h),i(s),f>=3&&((v=l[f-3]).right===p?v.right=s:v.left=s);break}h._color=1,p.left=n(1,d),p._color=0,f-=1}}return l[0]._color=1,new a(o,l[0])},o.forEach=function(t,e,r){if(this.root)switch(arguments.length){case 1:return s(t,this.root);case 2:return l(e,this._compare,t,this.root);case 3:if(this._compare(e,r)>=0)return;return u(e,r,this._compare,t,this.root)}},Object.defineProperty(o,"begin",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.left;return new c(this,t)}}),Object.defineProperty(o,"end",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.right;return new c(this,t)}}),o.at=function(t){if(t<0)return new c(this,[]);for(var e=this.root,r=[];;){if(r.push(e),e.left){if(t<e.left._count){e=e.left;continue}t-=e.left._count}if(!t)return new c(this,r);if(t-=1,!e.right)break;if(t>=e.right._count)break;e=e.right}return new c(this,[])},o.ge=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<=0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new c(this,n)},o.gt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new c(this,n)},o.lt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new c(this,n)},o.le=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>=0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new c(this,n)},o.find=function(t){for(var e=this._compare,r=this.root,n=[];r;){var i=e(t,r.key);if(n.push(r),0===i)return new c(this,n);r=i<=0?r.left:r.right}return new c(this,[])},o.remove=function(t){var e=this.find(t);return e?e.remove():this},o.get=function(t){for(var e=this._compare,r=this.root;r;){var n=e(t,r.key);if(0===n)return r.value;r=n<=0?r.left:r.right}};var f=c.prototype;function h(t,e){t.key=e.key,t.value=e.value,t.left=e.left,t.right=e.right,t._color=e._color,t._count=e._count}function p(t,e){return t<e?-1:t>e?1:0}Object.defineProperty(f,"valid",{get:function(){return this._stack.length>0}}),Object.defineProperty(f,"node",{get:function(){return this._stack.length>0?this._stack[this._stack.length-1]:null},enumerable:!0}),f.clone=function(){return new c(this.tree,this._stack.slice())},f.remove=function(){var t=this._stack;if(0===t.length)return this.tree;var o=new Array(t.length),s=t[t.length-1];o[o.length-1]=new e(s._color,s.key,s.value,s.left,s.right,s._count);for(var l=t.length-2;l>=0;--l)(s=t[l]).left===t[l+1]?o[l]=new e(s._color,s.key,s.value,o[l+1],s.right,s._count):o[l]=new e(s._color,s.key,s.value,s.left,o[l+1],s._count);if((s=o[o.length-1]).left&&s.right){var u=o.length;for(s=s.left;s.right;)o.push(s),s=s.right;var c=o[u-1];for(o.push(new e(s._color,c.key,c.value,s.left,s.right,s._count)),o[u-1].key=s.key,o[u-1].value=s.value,l=o.length-2;l>=u;--l)s=o[l],o[l]=new e(s._color,s.key,s.value,s.left,o[l+1],s._count);o[u-1].left=o[u]}if(0===(s=o[o.length-1])._color){var f=o[o.length-2];for(f.left===s?f.left=null:f.right===s&&(f.right=null),o.pop(),l=0;l<o.length;++l)o[l]._count--;return new a(this.tree._compare,o[0])}if(s.left||s.right){for(s.left?h(s,s.left):s.right&&h(s,s.right),s._color=1,l=0;l<o.length-1;++l)o[l]._count--;return new a(this.tree._compare,o[0])}if(1===o.length)return new a(this.tree._compare,null);for(l=0;l<o.length;++l)o[l]._count--;var p=o[o.length-2];return function(t){for(var e,a,o,s,l=t.length-1;l>=0;--l){if(e=t[l],0===l)return void(e._color=1);if((a=t[l-1]).left===e){if((o=a.right).right&&0===o.right._color)return s=(o=a.right=r(o)).right=r(o.right),a.right=o.left,o.left=a,o.right=s,o._color=a._color,e._color=1,a._color=1,s._color=1,i(a),i(o),l>1&&((u=t[l-2]).left===a?u.left=o:u.right=o),void(t[l-1]=o);if(o.left&&0===o.left._color)return s=(o=a.right=r(o)).left=r(o.left),a.right=s.left,o.left=s.right,s.left=a,s.right=o,s._color=a._color,a._color=1,o._color=1,e._color=1,i(a),i(o),i(s),l>1&&((u=t[l-2]).left===a?u.left=s:u.right=s),void(t[l-1]=s);if(1===o._color){if(0===a._color)return a._color=1,void(a.right=n(0,o));a.right=n(0,o);continue}o=r(o),a.right=o.left,o.left=a,o._color=a._color,a._color=0,i(a),i(o),l>1&&((u=t[l-2]).left===a?u.left=o:u.right=o),t[l-1]=o,t[l]=a,l+1<t.length?t[l+1]=e:t.push(e),l+=2}else{if((o=a.left).left&&0===o.left._color)return s=(o=a.left=r(o)).left=r(o.left),a.left=o.right,o.right=a,o.left=s,o._color=a._color,e._color=1,a._color=1,s._color=1,i(a),i(o),l>1&&((u=t[l-2]).right===a?u.right=o:u.left=o),void(t[l-1]=o);if(o.right&&0===o.right._color)return s=(o=a.left=r(o)).right=r(o.right),a.left=s.right,o.right=s.left,s.right=a,s.left=o,s._color=a._color,a._color=1,o._color=1,e._color=1,i(a),i(o),i(s),l>1&&((u=t[l-2]).right===a?u.right=s:u.left=s),void(t[l-1]=s);if(1===o._color){if(0===a._color)return a._color=1,void(a.left=n(0,o));a.left=n(0,o);continue}var u;o=r(o),a.left=o.right,o.right=a,o._color=a._color,a._color=0,i(a),i(o),l>1&&((u=t[l-2]).right===a?u.right=o:u.left=o),t[l-1]=o,t[l]=a,l+1<t.length?t[l+1]=e:t.push(e),l+=2}}}(o),p.left===s?p.left=null:p.right=null,new a(this.tree._compare,o[0])},Object.defineProperty(f,"key",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].key},enumerable:!0}),Object.defineProperty(f,"value",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].value},enumerable:!0}),Object.defineProperty(f,"index",{get:function(){var t=0,e=this._stack;if(0===e.length){var r=this.tree.root;return r?r._count:0}e[e.length-1].left&&(t=e[e.length-1].left._count);for(var n=e.length-2;n>=0;--n)e[n+1]===e[n].right&&(++t,e[n].left&&(t+=e[n].left._count));return t},enumerable:!0}),f.next=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.right)for(e=e.right;e;)t.push(e),e=e.left;else for(t.pop();t.length>0&&t[t.length-1].right===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(f,"hasNext",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].right)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].left===t[e])return!0;return!1}}),f.update=function(t){var r=this._stack;if(0===r.length)throw new Error("Can't update empty node!");var n=new Array(r.length),i=r[r.length-1];n[n.length-1]=new e(i._color,i.key,t,i.left,i.right,i._count);for(var o=r.length-2;o>=0;--o)(i=r[o]).left===r[o+1]?n[o]=new e(i._color,i.key,i.value,n[o+1],i.right,i._count):n[o]=new e(i._color,i.key,i.value,i.left,n[o+1],i._count);return new a(this.tree._compare,n[0])},f.prev=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.left)for(e=e.left;e;)t.push(e),e=e.right;else for(t.pop();t.length>0&&t[t.length-1].left===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(f,"hasPrev",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].left)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].right===t[e])return!0;return!1}})},7453:function(t,e,r){"use strict";t.exports=function(t,e){var r=new c(t);return r.update(e),r};var n=r(9557),i=r(1681),a=r(1011),o=r(2864),s=r(8468),l=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);function u(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function c(t){this.gl=t,this.pixelRatio=1,this.bounds=[[-10,-10,-10],[10,10,10]],this.ticks=[[],[],[]],this.autoTicks=!0,this.tickSpacing=[1,1,1],this.tickEnable=[!0,!0,!0],this.tickFont=["sans-serif","sans-serif","sans-serif"],this.tickSize=[12,12,12],this.tickAngle=[0,0,0],this.tickAlign=["auto","auto","auto"],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[10,10,10],this.lastCubeProps={cubeEdges:[0,0,0],axis:[0,0,0]},this.labels=["x","y","z"],this.labelEnable=[!0,!0,!0],this.labelFont="sans-serif",this.labelSize=[20,20,20],this.labelAngle=[0,0,0],this.labelAlign=["auto","auto","auto"],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[10,10,10],this.lineEnable=[!0,!0,!0],this.lineMirror=[!1,!1,!1],this.lineWidth=[1,1,1],this.lineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.lineTickEnable=[!0,!0,!0],this.lineTickMirror=[!1,!1,!1],this.lineTickLength=[0,0,0],this.lineTickWidth=[1,1,1],this.lineTickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.gridEnable=[!0,!0,!0],this.gridWidth=[1,1,1],this.gridColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroEnable=[!0,!0,!0],this.zeroLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroLineWidth=[2,2,2],this.backgroundEnable=[!1,!1,!1],this.backgroundColor=[[.8,.8,.8,.5],[.8,.8,.8,.5],[.8,.8,.8,.5]],this._firstInit=!0,this._text=null,this._lines=null,this._background=a(t)}var f=c.prototype;function h(){this.primalOffset=[0,0,0],this.primalMinor=[0,0,0],this.mirrorOffset=[0,0,0],this.mirrorMinor=[0,0,0]}f.update=function(t){function e(e,r,n){if(n in t){var i,a=t[n],o=this[n];(e?Array.isArray(a)&&Array.isArray(a[0]):Array.isArray(a))?this[n]=i=[r(a[0]),r(a[1]),r(a[2])]:this[n]=i=[r(a),r(a),r(a)];for(var s=0;s<3;++s)if(i[s]!==o[s])return!0}return!1}t=t||{};var r,a=e.bind(this,!1,Number),o=e.bind(this,!1,Boolean),l=e.bind(this,!1,String),u=e.bind(this,!0,(function(t){if(Array.isArray(t)){if(3===t.length)return[+t[0],+t[1],+t[2],1];if(4===t.length)return[+t[0],+t[1],+t[2],+t[3]]}return[0,0,0,1]})),c=!1,f=!1;if("bounds"in t)for(var h=t.bounds,p=0;p<2;++p)for(var d=0;d<3;++d)h[p][d]!==this.bounds[p][d]&&(f=!0),this.bounds[p][d]=h[p][d];if("ticks"in t)for(r=t.ticks,c=!0,this.autoTicks=!1,p=0;p<3;++p)this.tickSpacing[p]=0;else a("tickSpacing")&&(this.autoTicks=!0,f=!0);if(this._firstInit&&("ticks"in t||"tickSpacing"in t||(this.autoTicks=!0),f=!0,c=!0,this._firstInit=!1),f&&this.autoTicks&&(r=s.create(this.bounds,this.tickSpacing),c=!0),c){for(p=0;p<3;++p)r[p].sort((function(t,e){return t.x-e.x}));s.equal(r,this.ticks)?c=!1:this.ticks=r}o("tickEnable"),l("tickFont")&&(c=!0),a("tickSize"),a("tickAngle"),a("tickPad"),u("tickColor");var v=l("labels");l("labelFont")&&(v=!0),o("labelEnable"),a("labelSize"),a("labelPad"),u("labelColor"),o("lineEnable"),o("lineMirror"),a("lineWidth"),u("lineColor"),o("lineTickEnable"),o("lineTickMirror"),a("lineTickLength"),a("lineTickWidth"),u("lineTickColor"),o("gridEnable"),a("gridWidth"),u("gridColor"),o("zeroEnable"),u("zeroLineColor"),a("zeroLineWidth"),o("backgroundEnable"),u("backgroundColor"),this._text?this._text&&(v||c)&&this._text.update(this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont):this._text=n(this.gl,this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont),this._lines&&c&&(this._lines.dispose(),this._lines=null),this._lines||(this._lines=i(this.gl,this.bounds,this.ticks))};var p=[new h,new h,new h];function d(t,e,r,n,i){for(var a=t.primalOffset,o=t.primalMinor,s=t.mirrorOffset,l=t.mirrorMinor,u=n[e],c=0;c<3;++c)if(e!==c){var f=a,h=s,p=o,d=l;u&1<<c&&(f=s,h=a,p=l,d=o),f[c]=r[0][c],h[c]=r[1][c],i[c]>0?(p[c]=-1,d[c]=0):(p[c]=0,d[c]=1)}}var v=[0,0,0],g={model:l,view:l,projection:l,_ortho:!1};f.isOpaque=function(){return!0},f.isTransparent=function(){return!1},f.drawTransparent=function(t){};var y=[0,0,0],m=[0,0,0],x=[0,0,0];f.draw=function(t){t=t||g;for(var e=this.gl,r=t.model||l,n=t.view||l,i=t.projection||l,a=this.bounds,s=t._ortho||!1,c=o(r,n,i,a,s),f=c.cubeEdges,h=c.axis,b=n[12],_=n[13],w=n[14],T=n[15],k=(s?2:1)*this.pixelRatio*(i[3]*b+i[7]*_+i[11]*w+i[15]*T)/e.drawingBufferHeight,A=0;A<3;++A)this.lastCubeProps.cubeEdges[A]=f[A],this.lastCubeProps.axis[A]=h[A];var M=p;for(A=0;A<3;++A)d(p[A],A,this.bounds,f,h);e=this.gl;var S,E,L,C=v;for(A=0;A<3;++A)this.backgroundEnable[A]?C[A]=h[A]:C[A]=0;for(this._background.draw(r,n,i,a,C,this.backgroundColor),this._lines.bind(r,n,i,this),A=0;A<3;++A){var P=[0,0,0];h[A]>0?P[A]=a[1][A]:P[A]=a[0][A];for(var O=0;O<2;++O){var I=(A+1+O)%3,D=(A+1+(1^O))%3;this.gridEnable[I]&&this._lines.drawGrid(I,D,this.bounds,P,this.gridColor[I],this.gridWidth[I]*this.pixelRatio)}for(O=0;O<2;++O)I=(A+1+O)%3,D=(A+1+(1^O))%3,this.zeroEnable[D]&&Math.min(a[0][D],a[1][D])<=0&&Math.max(a[0][D],a[1][D])>=0&&this._lines.drawZero(I,D,this.bounds,P,this.zeroLineColor[D],this.zeroLineWidth[D]*this.pixelRatio)}for(A=0;A<3;++A){this.lineEnable[A]&&this._lines.drawAxisLine(A,this.bounds,M[A].primalOffset,this.lineColor[A],this.lineWidth[A]*this.pixelRatio),this.lineMirror[A]&&this._lines.drawAxisLine(A,this.bounds,M[A].mirrorOffset,this.lineColor[A],this.lineWidth[A]*this.pixelRatio);var z=u(y,M[A].primalMinor),R=u(m,M[A].mirrorMinor),F=this.lineTickLength;for(O=0;O<3;++O){var B=k/r[5*O];z[O]*=F[O]*B,R[O]*=F[O]*B}this.lineTickEnable[A]&&this._lines.drawAxisTicks(A,M[A].primalOffset,z,this.lineTickColor[A],this.lineTickWidth[A]*this.pixelRatio),this.lineTickMirror[A]&&this._lines.drawAxisTicks(A,M[A].mirrorOffset,R,this.lineTickColor[A],this.lineTickWidth[A]*this.pixelRatio)}function N(t){(L=[0,0,0])[t]=1}function j(t,e,r){var n=(t+1)%3,i=(t+2)%3,a=e[n],o=e[i],s=r[n],l=r[i];a>0&&l>0||a>0&&l<0||a<0&&l>0||a<0&&l<0?N(n):(o>0&&s>0||o>0&&s<0||o<0&&s>0||o<0&&s<0)&&N(i)}for(this._lines.unbind(),this._text.bind(r,n,i,this.pixelRatio),A=0;A<3;++A){var U=M[A].primalMinor,V=M[A].mirrorMinor,H=u(x,M[A].primalOffset);for(O=0;O<3;++O)this.lineTickEnable[A]&&(H[O]+=k*U[O]*Math.max(this.lineTickLength[O],0)/r[5*O]);var q=[0,0,0];if(q[A]=1,this.tickEnable[A]){for(-3600===this.tickAngle[A]?(this.tickAngle[A]=0,this.tickAlign[A]="auto"):this.tickAlign[A]=-1,E=1,"auto"===(S=[this.tickAlign[A],.5,E])[0]?S[0]=0:S[0]=parseInt(""+S[0]),L=[0,0,0],j(A,U,V),O=0;O<3;++O)H[O]+=k*U[O]*this.tickPad[O]/r[5*O];this._text.drawTicks(A,this.tickSize[A],this.tickAngle[A],H,this.tickColor[A],q,L,S)}if(this.labelEnable[A]){for(E=0,L=[0,0,0],this.labels[A].length>4&&(N(A),E=1),"auto"===(S=[this.labelAlign[A],.5,E])[0]?S[0]=0:S[0]=parseInt(""+S[0]),O=0;O<3;++O)H[O]+=k*U[O]*this.labelPad[O]/r[5*O];H[A]+=.5*(a[0][A]+a[1][A]),this._text.drawLabel(A,this.labelSize[A],this.labelAngle[A],H,this.labelColor[A],[0,0,0],L,S)}}this._text.unbind()},f.dispose=function(){this._text.dispose(),this._lines.dispose(),this._background.dispose(),this._lines=null,this._text=null,this._background=null,this.gl=null}},1011:function(t,e,r){"use strict";t.exports=function(t){for(var e=[],r=[],s=0,l=0;l<3;++l)for(var u=(l+1)%3,c=(l+2)%3,f=[0,0,0],h=[0,0,0],p=-1;p<=1;p+=2){r.push(s,s+2,s+1,s+1,s+2,s+3),f[l]=p,h[l]=p;for(var d=-1;d<=1;d+=2){f[u]=d;for(var v=-1;v<=1;v+=2)f[c]=v,e.push(f[0],f[1],f[2],h[0],h[1],h[2]),s+=1}var g=u;u=c,c=g}var y=n(t,new Float32Array(e)),m=n(t,new Uint16Array(r),t.ELEMENT_ARRAY_BUFFER),x=i(t,[{buffer:y,type:t.FLOAT,size:3,offset:0,stride:24},{buffer:y,type:t.FLOAT,size:3,offset:12,stride:24}],m),b=a(t);return b.attributes.position.location=0,b.attributes.normal.location=1,new o(t,y,x,b)};var n=r(5827),i=r(2944),a=r(1943).bg;function o(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n}var s=o.prototype;s.draw=function(t,e,r,n,i,a){for(var o=!1,s=0;s<3;++s)o=o||i[s];if(o){var l=this.gl;l.enable(l.POLYGON_OFFSET_FILL),l.polygonOffset(1,2),this.shader.bind(),this.shader.uniforms={model:t,view:e,projection:r,bounds:n,enable:i,colors:a},this.vao.bind(),this.vao.draw(this.gl.TRIANGLES,36),this.vao.unbind(),l.disable(l.POLYGON_OFFSET_FILL)}},s.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},2864:function(t,e,r){"use strict";t.exports=function(t,e,r,a,p){i(s,e,t),i(s,r,s);for(var m=0,x=0;x<2;++x){c[2]=a[x][2];for(var b=0;b<2;++b){c[1]=a[b][1];for(var _=0;_<2;++_)c[0]=a[_][0],h(l[m],c,s),m+=1}}var w=-1;for(x=0;x<8;++x){for(var T=l[x][3],k=0;k<3;++k)u[x][k]=l[x][k]/T;p&&(u[x][2]*=-1),T<0&&(w<0||u[x][2]<u[w][2])&&(w=x)}if(w<0){w=0;for(var A=0;A<3;++A){for(var M=(A+2)%3,S=(A+1)%3,E=-1,L=-1,C=0;C<2;++C){var P=(I=C<<A)+(C<<M)+(1-C<<S),O=I+(1-C<<M)+(C<<S);o(u[I],u[P],u[O],f)<0||(C?E=1:L=1)}if(E<0||L<0)L>E&&(w|=1<<A);else{for(C=0;C<2;++C){P=(I=C<<A)+(C<<M)+(1-C<<S),O=I+(1-C<<M)+(C<<S);var I,D=d([l[I],l[P],l[O],l[I+(1<<M)+(1<<S)]]);C?E=D:L=D}L>E&&(w|=1<<A)}}}var z=7^w,R=-1;for(x=0;x<8;++x)x!==w&&x!==z&&(R<0||u[R][1]>u[x][1])&&(R=x);var F=-1;for(x=0;x<3;++x)(N=R^1<<x)!==w&&N!==z&&(F<0&&(F=N),(S=u[N])[0]<u[F][0]&&(F=N));var B=-1;for(x=0;x<3;++x){var N;(N=R^1<<x)!==w&&N!==z&&N!==F&&(B<0&&(B=N),(S=u[N])[0]>u[B][0]&&(B=N))}var j=v;j[0]=j[1]=j[2]=0,j[n.log2(F^R)]=R&F,j[n.log2(R^B)]=R&B;var U=7^B;U===w||U===z?(U=7^F,j[n.log2(B^U)]=U&B):j[n.log2(F^U)]=U&F;var V=g,H=w;for(A=0;A<3;++A)V[A]=H&1<<A?-1:1;return y};var n=r(2288),i=r(104),a=r(4670),o=r(417),s=new Array(16),l=new Array(8),u=new Array(8),c=new Array(3),f=[0,0,0];function h(t,e,r){for(var n=0;n<4;++n){t[n]=r[12+n];for(var i=0;i<3;++i)t[n]+=e[i]*r[4*i+n]}}!function(){for(var t=0;t<8;++t)l[t]=[1,1,1,1],u[t]=[1,1,1]}();var p=[[0,0,1,0,0],[0,0,-1,1,0],[0,-1,0,1,0],[0,1,0,1,0],[-1,0,0,1,0],[1,0,0,1,0]];function d(t){for(var e=0;e<p.length;++e)if((t=a.positive(t,p[e])).length<3)return 0;var r=t[0],n=r[0]/r[3],i=r[1]/r[3],o=0;for(e=1;e+1<t.length;++e){var s=t[e],l=t[e+1],u=s[0]/s[3]-n,c=s[1]/s[3]-i,f=l[0]/l[3]-n,h=l[1]/l[3]-i;o+=Math.abs(u*h-c*f)}return o}var v=[1,1,1],g=[0,0,0],y={cubeEdges:v,axis:g}},1681:function(t,e,r){"use strict";t.exports=function(t,e,r){var o=[],s=[0,0,0],l=[0,0,0],u=[0,0,0],c=[0,0,0];o.push(0,0,1,0,1,1,0,0,-1,0,0,-1,0,1,1,0,1,-1);for(var f=0;f<3;++f){for(var h=o.length/3|0,d=0;d<r[f].length;++d){var v=+r[f][d].x;o.push(v,0,1,v,1,1,v,0,-1,v,0,-1,v,1,1,v,1,-1)}var g=o.length/3|0;s[f]=h,l[f]=g-h,h=o.length/3|0;for(var y=0;y<r[f].length;++y)v=+r[f][y].x,o.push(v,0,1,v,1,1,v,0,-1,v,0,-1,v,1,1,v,1,-1);g=o.length/3|0,u[f]=h,c[f]=g-h}var m=n(t,new Float32Array(o)),x=i(t,[{buffer:m,type:t.FLOAT,size:3,stride:0,offset:0}]),b=a(t);return b.attributes.position.location=0,new p(t,m,x,b,l,s,c,u)};var n=r(5827),i=r(2944),a=r(1943).j,o=[0,0,0],s=[0,0,0],l=[0,0,0],u=[0,0,0],c=[1,1];function f(t){return t[0]=t[1]=t[2]=0,t}function h(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function p(t,e,r,n,i,a,o,s){this.gl=t,this.vertBuffer=e,this.vao=r,this.shader=n,this.tickCount=i,this.tickOffset=a,this.gridCount=o,this.gridOffset=s}var d=p.prototype;d.bind=function(t,e,r){this.shader.bind(),this.shader.uniforms.model=t,this.shader.uniforms.view=e,this.shader.uniforms.projection=r,c[0]=this.gl.drawingBufferWidth,c[1]=this.gl.drawingBufferHeight,this.shader.uniforms.screenShape=c,this.vao.bind()},d.unbind=function(){this.vao.unbind()},d.drawAxisLine=function(t,e,r,n,i){var a=f(s);this.shader.uniforms.majorAxis=s,a[t]=e[1][t]-e[0][t],this.shader.uniforms.minorAxis=a;var o,c=h(u,r);c[t]+=e[0][t],this.shader.uniforms.offset=c,this.shader.uniforms.lineWidth=i,this.shader.uniforms.color=n,(o=f(l))[(t+2)%3]=1,this.shader.uniforms.screenAxis=o,this.vao.draw(this.gl.TRIANGLES,6),(o=f(l))[(t+1)%3]=1,this.shader.uniforms.screenAxis=o,this.vao.draw(this.gl.TRIANGLES,6)},d.drawAxisTicks=function(t,e,r,n,i){if(this.tickCount[t]){var a=f(o);a[t]=1,this.shader.uniforms.majorAxis=a,this.shader.uniforms.offset=e,this.shader.uniforms.minorAxis=r,this.shader.uniforms.color=n,this.shader.uniforms.lineWidth=i;var s=f(l);s[t]=1,this.shader.uniforms.screenAxis=s,this.vao.draw(this.gl.TRIANGLES,this.tickCount[t],this.tickOffset[t])}},d.drawGrid=function(t,e,r,n,i,a){if(this.gridCount[t]){var c=f(s);c[e]=r[1][e]-r[0][e],this.shader.uniforms.minorAxis=c;var p=h(u,n);p[e]+=r[0][e],this.shader.uniforms.offset=p;var d=f(o);d[t]=1,this.shader.uniforms.majorAxis=d;var v=f(l);v[t]=1,this.shader.uniforms.screenAxis=v,this.shader.uniforms.lineWidth=a,this.shader.uniforms.color=i,this.vao.draw(this.gl.TRIANGLES,this.gridCount[t],this.gridOffset[t])}},d.drawZero=function(t,e,r,n,i,a){var o=f(s);this.shader.uniforms.majorAxis=o,o[t]=r[1][t]-r[0][t],this.shader.uniforms.minorAxis=o;var c=h(u,n);c[t]+=r[0][t],this.shader.uniforms.offset=c;var p=f(l);p[e]=1,this.shader.uniforms.screenAxis=p,this.shader.uniforms.lineWidth=a,this.shader.uniforms.color=i,this.vao.draw(this.gl.TRIANGLES,6)},d.dispose=function(){this.vao.dispose(),this.vertBuffer.dispose(),this.shader.dispose()}},1943:function(t,e,r){"use strict";var n=r(6832),i=r(5158),a=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\n\nuniform mat4 model, view, projection;\nuniform vec3 offset, majorAxis, minorAxis, screenAxis;\nuniform float lineWidth;\nuniform vec2 screenShape;\n\nvec3 project(vec3 p) {\n  vec4 pp = projection * view * model * vec4(p, 1.0);\n  return pp.xyz / max(pp.w, 0.0001);\n}\n\nvoid main() {\n  vec3 major = position.x * majorAxis;\n  vec3 minor = position.y * minorAxis;\n\n  vec3 vPosition = major + minor + offset;\n  vec3 pPosition = project(vPosition);\n  vec3 offset = project(vPosition + screenAxis * position.z);\n\n  vec2 screen = normalize((offset - pPosition).xy * screenShape) / screenShape;\n\n  gl_Position = vec4(pPosition + vec3(0.5 * screen * lineWidth, 0), 1.0);\n}\n"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 color;\nvoid main() {\n  gl_FragColor = color;\n}"]);e.j=function(t){return i(t,a,o,null,[{name:"position",type:"vec3"}])};var s=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\n\nuniform mat4 model, view, projection;\nuniform vec3 offset, axis, alignDir, alignOpt;\nuniform float scale, angle, pixelScale;\nuniform vec2 resolution;\n\nvec3 project(vec3 p) {\n  vec4 pp = projection * view * model * vec4(p, 1.0);\n  return pp.xyz / max(pp.w, 0.0001);\n}\n\nfloat computeViewAngle(vec3 a, vec3 b) {\n  vec3 A = project(a);\n  vec3 B = project(b);\n\n  return atan(\n    (B.y - A.y) * resolution.y,\n    (B.x - A.x) * resolution.x\n  );\n}\n\nconst float PI = 3.141592;\nconst float TWO_PI = 2.0 * PI;\nconst float HALF_PI = 0.5 * PI;\nconst float ONE_AND_HALF_PI = 1.5 * PI;\n\nint option = int(floor(alignOpt.x + 0.001));\nfloat hv_ratio =       alignOpt.y;\nbool enableAlign =    (alignOpt.z != 0.0);\n\nfloat mod_angle(float a) {\n  return mod(a, PI);\n}\n\nfloat positive_angle(float a) {\n  return mod_angle((a < 0.0) ?\n    a + TWO_PI :\n    a\n  );\n}\n\nfloat look_upwards(float a) {\n  float b = positive_angle(a);\n  return ((b > HALF_PI) && (b <= ONE_AND_HALF_PI)) ?\n    b - PI :\n    b;\n}\n\nfloat look_horizontal_or_vertical(float a, float ratio) {\n  // ratio controls the ratio between being horizontal to (vertical + horizontal)\n  // if ratio is set to 0.5 then it is 50%, 50%.\n  // when using a higher ratio e.g. 0.75 the result would\n  // likely be more horizontal than vertical.\n\n  float b = positive_angle(a);\n\n  return\n    (b < (      ratio) * HALF_PI) ? 0.0 :\n    (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI :\n    (b < (2.0 + ratio) * HALF_PI) ? 0.0 :\n    (b < (4.0 - ratio) * HALF_PI) ? HALF_PI :\n                                    0.0;\n}\n\nfloat roundTo(float a, float b) {\n  return float(b * floor((a + 0.5 * b) / b));\n}\n\nfloat look_round_n_directions(float a, int n) {\n  float b = positive_angle(a);\n  float div = TWO_PI / float(n);\n  float c = roundTo(b, div);\n  return look_upwards(c);\n}\n\nfloat applyAlignOption(float rawAngle, float delta) {\n  return\n    (option >  2) ? look_round_n_directions(rawAngle + delta, option) :       // option 3-n: round to n directions\n    (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical\n    (option == 1) ? rawAngle + delta :       // use free angle, and flip to align with one direction of the axis\n    (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards\n    (option ==-1) ? 0.0 :                    // useful for backward compatibility, all texts remains horizontal\n                    rawAngle;                // otherwise return back raw input angle\n}\n\nbool isAxisTitle = (axis.x == 0.0) &&\n                   (axis.y == 0.0) &&\n                   (axis.z == 0.0);\n\nvoid main() {\n  //Compute world offset\n  float axisDistance = position.z;\n  vec3 dataPosition = axisDistance * axis + offset;\n\n  float beta = angle; // i.e. user defined attributes for each tick\n\n  float axisAngle;\n  float clipAngle;\n  float flip;\n\n  if (enableAlign) {\n    axisAngle = (isAxisTitle) ? HALF_PI :\n                      computeViewAngle(dataPosition, dataPosition + axis);\n    clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir);\n\n    axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0;\n    clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0;\n\n    flip = (dot(vec2(cos(axisAngle), sin(axisAngle)),\n                vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0;\n\n    beta += applyAlignOption(clipAngle, flip * PI);\n  }\n\n  //Compute plane offset\n  vec2 planeCoord = position.xy * pixelScale;\n\n  mat2 planeXform = scale * mat2(\n     cos(beta), sin(beta),\n    -sin(beta), cos(beta)\n  );\n\n  vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;\n\n  //Compute clip position\n  vec3 clipPosition = project(dataPosition);\n\n  //Apply text offset in clip coordinates\n  clipPosition += vec3(viewOffset, 0.0);\n\n  //Done\n  gl_Position = vec4(clipPosition, 1.0);\n}"]),l=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 color;\nvoid main() {\n  gl_FragColor = color;\n}"]);e.f=function(t){return i(t,s,l,null,[{name:"position",type:"vec3"}])};var u=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec3 normal;\n\nuniform mat4 model, view, projection;\nuniform vec3 enable;\nuniform vec3 bounds[2];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n\n  vec3 signAxis = sign(bounds[1] - bounds[0]);\n\n  vec3 realNormal = signAxis * normal;\n\n  if(dot(realNormal, enable) > 0.0) {\n    vec3 minRange = min(bounds[0], bounds[1]);\n    vec3 maxRange = max(bounds[0], bounds[1]);\n    vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0));\n    gl_Position = projection * view * model * vec4(nPosition, 1.0);\n  } else {\n    gl_Position = vec4(0,0,0,0);\n  }\n\n  colorChannel = abs(realNormal);\n}"]),c=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 colors[3];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n  gl_FragColor = colorChannel.x * colors[0] +\n                 colorChannel.y * colors[1] +\n                 colorChannel.z * colors[2];\n}"]);e.bg=function(t){return i(t,u,c,null,[{name:"position",type:"vec3"},{name:"normal",type:"vec3"}])}},9557:function(t,e,r){"use strict";t.exports=function(t,e,r,i,o,l){var u=n(t),f=a(t,[{buffer:u,size:3}]),h=s(t);h.attributes.position.location=0;var p=new c(t,h,u,f);return p.update(e,r,i,o,l),p};var n=r(5827),a=r(2944),o=r(875),s=r(1943).f,l=window||i.global||{},u=l.__TEXT_CACHE||{};function c(t,e,r,n){this.gl=t,this.shader=e,this.buffer=r,this.vao=n,this.tickOffset=this.tickCount=this.labelOffset=this.labelCount=null}l.__TEXT_CACHE={};var f=c.prototype,h=[0,0];f.bind=function(t,e,r,n){this.vao.bind(),this.shader.bind();var i=this.shader.uniforms;i.model=t,i.view=e,i.projection=r,i.pixelScale=n,h[0]=this.gl.drawingBufferWidth,h[1]=this.gl.drawingBufferHeight,this.shader.uniforms.resolution=h},f.unbind=function(){this.vao.unbind()},f.update=function(t,e,r,n,i){var a=[];function s(t,e,r,n,i,s){var l=u[r];l||(l=u[r]={});var c=l[e];c||(c=l[e]=function(t,e){try{return o(t,e)}catch(e){return console.warn('error vectorizing text:"'+t+'" error:',e),{cells:[],positions:[]}}}(e,{triangles:!0,font:r,textAlign:"center",textBaseline:"middle",lineSpacing:i,styletags:s}));for(var f=(n||12)/12,h=c.positions,p=c.cells,d=0,v=p.length;d<v;++d)for(var g=p[d],y=2;y>=0;--y){var m=h[g[y]];a.push(f*m[0],-f*m[1],t)}}for(var l=[0,0,0],c=[0,0,0],f=[0,0,0],h=[0,0,0],p={breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},d=0;d<3;++d){f[d]=a.length/3|0,s(.5*(t[0][d]+t[1][d]),e[d],r[d],12,1.25,p),h[d]=(a.length/3|0)-f[d],l[d]=a.length/3|0;for(var v=0;v<n[d].length;++v)n[d][v].text&&s(n[d][v].x,n[d][v].text,n[d][v].font||i,n[d][v].fontSize||12,1.25,p);c[d]=(a.length/3|0)-l[d]}this.buffer.update(a),this.tickOffset=l,this.tickCount=c,this.labelOffset=f,this.labelCount=h},f.drawTicks=function(t,e,r,n,i,a,o,s){this.tickCount[t]&&(this.shader.uniforms.axis=a,this.shader.uniforms.color=i,this.shader.uniforms.angle=r,this.shader.uniforms.scale=e,this.shader.uniforms.offset=n,this.shader.uniforms.alignDir=o,this.shader.uniforms.alignOpt=s,this.vao.draw(this.gl.TRIANGLES,this.tickCount[t],this.tickOffset[t]))},f.drawLabel=function(t,e,r,n,i,a,o,s){this.labelCount[t]&&(this.shader.uniforms.axis=a,this.shader.uniforms.color=i,this.shader.uniforms.angle=r,this.shader.uniforms.scale=e,this.shader.uniforms.offset=n,this.shader.uniforms.alignDir=o,this.shader.uniforms.alignOpt=s,this.vao.draw(this.gl.TRIANGLES,this.labelCount[t],this.labelOffset[t]))},f.dispose=function(){this.shader.dispose(),this.vao.dispose(),this.buffer.dispose()}},8468:function(t,e){"use strict";function r(t,e){var r=t+"",n=r.indexOf("."),i=0;n>=0&&(i=r.length-n-1);var a=Math.pow(10,i),o=Math.round(t*e*a),s=o+"";if(s.indexOf("e")>=0)return s;var l=o/a,u=o%a;o<0?(l=0|-Math.ceil(l),u=0|-u):(l=0|Math.floor(l),u|=0);var c=""+l;if(o<0&&(c="-"+c),i){for(var f=""+u;f.length<i;)f="0"+f;return c+"."+f}return c}e.create=function(t,e){for(var n=[],i=0;i<3;++i){for(var a=[],o=(t[0][i],t[1][i],0);o*e[i]<=t[1][i];++o)a.push({x:o*e[i],text:r(e[i],o)});for(o=-1;o*e[i]>=t[0][i];--o)a.push({x:o*e[i],text:r(e[i],o)});n.push(a)}return n},e.equal=function(t,e){for(var r=0;r<3;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;n<t[r].length;++n){var i=t[r][n],a=e[r][n];if(i.x!==a.x||i.text!==a.text||i.font!==a.font||i.fontColor!==a.fontColor||i.fontSize!==a.fontSize||i.dx!==a.dx||i.dy!==a.dy)return!1}}return!0}},2771:function(t,e,r){"use strict";t.exports=function(t,e,r,l,f){var h=e.model||u,p=e.view||u,y=e.projection||u,m=e._ortho||!1,x=t.bounds,b=(f=f||a(h,p,y,x,m)).axis;o(c,p,h),o(c,y,c);for(var _=v,w=0;w<3;++w)_[w].lo=1/0,_[w].hi=-1/0,_[w].pixelsPerDataUnit=1/0;var T=n(s(c,c));s(c,c);for(var k=0;k<3;++k){var A=(k+1)%3,M=(k+2)%3,S=g;t:for(w=0;w<2;++w){var E=[];if(b[k]<0!=!!w){S[k]=x[w][k];for(var L=0;L<2;++L){S[A]=x[L^w][A];for(var C=0;C<2;++C)S[M]=x[C^L^w][M],E.push(S.slice())}var P=m?5:4;for(L=P;L===P;++L){if(0===E.length)continue t;E=i.positive(E,T[L])}for(L=0;L<E.length;++L){M=E[L];var O=d(g,c,M,r,l);for(C=0;C<3;++C)_[C].lo=Math.min(_[C].lo,M[C]),_[C].hi=Math.max(_[C].hi,M[C]),C!==k&&(_[C].pixelsPerDataUnit=Math.min(_[C].pixelsPerDataUnit,Math.abs(O[C])))}}}}return _};var n=r(5795),i=r(4670),a=r(2864),o=r(104),s=r(2142),l=r(6342),u=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),c=new Float32Array(16);function f(t,e,r){this.lo=t,this.hi=e,this.pixelsPerDataUnit=r}var h=[0,0,0,1],p=[0,0,0,1];function d(t,e,r,n,i){for(var a=0;a<3;++a){for(var o=h,s=p,u=0;u<3;++u)s[u]=o[u]=r[u];s[3]=o[3]=1,s[a]+=1,l(s,s,e),s[3]<0&&(t[a]=1/0),o[a]-=1,l(o,o,e),o[3]<0&&(t[a]=1/0);var c=(o[0]/o[3]-s[0]/s[3])*n,f=(o[1]/o[3]-s[1]/s[3])*i;t[a]=.25*Math.sqrt(c*c+f*f)}return t}var v=[new f(1/0,-1/0,1/0),new f(1/0,-1/0,1/0),new f(1/0,-1/0,1/0)],g=[0,0,0]},5827:function(t,e,r){"use strict";var n=r(5306),i=r(7498),a=r(5050),o=["uint8","uint8_clamped","uint16","uint32","int8","int16","int32","float32"];function s(t,e,r,n,i){this.gl=t,this.type=e,this.handle=r,this.length=n,this.usage=i}var l=s.prototype;function u(t,e,r,n,i,a){var o=i.length*i.BYTES_PER_ELEMENT;if(a<0)return t.bufferData(e,i,n),o;if(o+a>r)throw new Error("gl-buffer: If resizing buffer, must not specify offset");return t.bufferSubData(e,a,i),r}function c(t,e){for(var r=n.malloc(t.length,e),i=t.length,a=0;a<i;++a)r[a]=t[a];return r}l.bind=function(){this.gl.bindBuffer(this.type,this.handle)},l.unbind=function(){this.gl.bindBuffer(this.type,null)},l.dispose=function(){this.gl.deleteBuffer(this.handle)},l.update=function(t,e){if("number"!=typeof e&&(e=-1),this.bind(),"object"==typeof t&&void 0!==t.shape){var r=t.dtype;if(o.indexOf(r)<0&&(r="float32"),this.type===this.gl.ELEMENT_ARRAY_BUFFER&&(r=gl.getExtension("OES_element_index_uint")&&"uint16"!==r?"uint32":"uint16"),r===t.dtype&&function(t,e){for(var r=1,n=e.length-1;n>=0;--n){if(e[n]!==r)return!1;r*=t[n]}return!0}(t.shape,t.stride))0===t.offset&&t.data.length===t.shape[0]?this.length=u(this.gl,this.type,this.length,this.usage,t.data,e):this.length=u(this.gl,this.type,this.length,this.usage,t.data.subarray(t.offset,t.shape[0]),e);else{var s=n.malloc(t.size,r),l=a(s,t.shape);i.assign(l,t),this.length=u(this.gl,this.type,this.length,this.usage,e<0?s:s.subarray(0,t.size),e),n.free(s)}}else if(Array.isArray(t)){var f;f=this.type===this.gl.ELEMENT_ARRAY_BUFFER?c(t,"uint16"):c(t,"float32"),this.length=u(this.gl,this.type,this.length,this.usage,e<0?f:f.subarray(0,t.length),e),n.free(f)}else if("object"==typeof t&&"number"==typeof t.length)this.length=u(this.gl,this.type,this.length,this.usage,t,e);else{if("number"!=typeof t&&void 0!==t)throw new Error("gl-buffer: Invalid data type");if(e>=0)throw new Error("gl-buffer: Cannot specify offset when resizing buffer");(t|=0)<=0&&(t=1),this.gl.bufferData(this.type,0|t,this.usage),this.length=t}},t.exports=function(t,e,r,n){if(r=r||t.ARRAY_BUFFER,n=n||t.DYNAMIC_DRAW,r!==t.ARRAY_BUFFER&&r!==t.ELEMENT_ARRAY_BUFFER)throw new Error("gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER");if(n!==t.DYNAMIC_DRAW&&n!==t.STATIC_DRAW&&n!==t.STREAM_DRAW)throw new Error("gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW");var i=t.createBuffer(),a=new s(t,r,i,0,n);return a.update(e),a}},1140:function(t,e,r){"use strict";var n=r(2858);t.exports=function(t,e){var r=t.positions,i=t.vectors,a={positions:[],vertexIntensity:[],vertexIntensityBounds:t.vertexIntensityBounds,vectors:[],cells:[],coneOffset:t.coneOffset,colormap:t.colormap};if(0===t.positions.length)return e&&(e[0]=[0,0,0],e[1]=[0,0,0]),a;for(var o=0,s=1/0,l=-1/0,u=1/0,c=-1/0,f=1/0,h=-1/0,p=null,d=null,v=[],g=1/0,y=!1,m=0;m<r.length;m++){var x=r[m];s=Math.min(x[0],s),l=Math.max(x[0],l),u=Math.min(x[1],u),c=Math.max(x[1],c),f=Math.min(x[2],f),h=Math.max(x[2],h);var b=i[m];if(n.length(b)>o&&(o=n.length(b)),m){var _=2*n.distance(p,x)/(n.length(d)+n.length(b));_?(g=Math.min(g,_),y=!1):y=!0}y||(p=x,d=b),v.push(b)}var w=[s,u,f],T=[l,c,h];e&&(e[0]=w,e[1]=T),0===o&&(o=1);var k=1/o;isFinite(g)||(g=1),a.vectorScale=g;var A=t.coneSize||.5;t.absoluteConeSize&&(A=t.absoluteConeSize*k),a.coneScale=A,m=0;for(var M=0;m<r.length;m++)for(var S=(x=r[m])[0],E=x[1],L=x[2],C=v[m],P=n.length(C)*k,O=0;O<8;O++){a.positions.push([S,E,L,M++]),a.positions.push([S,E,L,M++]),a.positions.push([S,E,L,M++]),a.positions.push([S,E,L,M++]),a.positions.push([S,E,L,M++]),a.positions.push([S,E,L,M++]),a.vectors.push(C),a.vectors.push(C),a.vectors.push(C),a.vectors.push(C),a.vectors.push(C),a.vectors.push(C),a.vertexIntensity.push(P,P,P),a.vertexIntensity.push(P,P,P);var I=a.positions.length;a.cells.push([I-6,I-5,I-4],[I-3,I-2,I-1])}return a};var i=r(7234);t.exports.createMesh=r(5028),t.exports.createConeMesh=function(e,r){return t.exports.createMesh(e,r,{shaders:i,traceType:"cone"})}},5028:function(t,e,r){"use strict";var n=r(5158),i=r(5827),a=r(2944),o=r(8931),s=r(104),l=r(7437),u=r(5050),c=r(9156),f=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function h(t,e,r,n,i,a,o,s,l,u,c){this.gl=t,this.pixelRatio=1,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.pickShader=n,this.trianglePositions=i,this.triangleVectors=a,this.triangleColors=s,this.triangleUVs=l,this.triangleIds=o,this.triangleVAO=u,this.triangleCount=0,this.pickId=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lightPosition=[1e5,1e5,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.opacity=1,this.traceType=c,this.tubeScale=1,this.coneScale=2,this.vectorScale=1,this.coneOffset=.25,this._model=f,this._view=f,this._projection=f,this._resolution=[1,1]}var p=h.prototype;function d(t,e){var r=n(t,e.meshShader.vertex,e.meshShader.fragment,null,e.meshShader.attributes);return r.attributes.position.location=0,r.attributes.color.location=2,r.attributes.uv.location=3,r.attributes.vector.location=4,r}function v(t,e){var r=n(t,e.pickShader.vertex,e.pickShader.fragment,null,e.pickShader.attributes);return r.attributes.position.location=0,r.attributes.id.location=1,r.attributes.vector.location=4,r}p.isOpaque=function(){return this.opacity>=1},p.isTransparent=function(){return this.opacity<1},p.pickSlots=1,p.setPickBase=function(t){this.pickId=t},p.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,"lightPosition"in t&&(this.lightPosition=t.lightPosition),"opacity"in t&&(this.opacity=t.opacity),"ambient"in t&&(this.ambientLight=t.ambient),"diffuse"in t&&(this.diffuseLight=t.diffuse),"specular"in t&&(this.specularLight=t.specular),"roughness"in t&&(this.roughness=t.roughness),"fresnel"in t&&(this.fresnel=t.fresnel),void 0!==t.tubeScale&&(this.tubeScale=t.tubeScale),void 0!==t.vectorScale&&(this.vectorScale=t.vectorScale),void 0!==t.coneScale&&(this.coneScale=t.coneScale),void 0!==t.coneOffset&&(this.coneOffset=t.coneOffset),t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=c({colormap:t,nshades:256,format:"rgba"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var i=e[n],a=0;a<3;++a)r[4*n+a]=i[a];r[4*n+3]=255*i[3]}return u(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions,i=t.vectors;if(n&&r&&i){var a=[],o=[],s=[],l=[],f=[];this.cells=r,this.positions=n,this.vectors=i;var h=t.meshColor||[1,1,1,1],p=t.vertexIntensity,d=1/0,v=-1/0;if(p)if(t.vertexIntensityBounds)d=+t.vertexIntensityBounds[0],v=+t.vertexIntensityBounds[1];else for(var g=0;g<p.length;++g){var y=p[g];d=Math.min(d,y),v=Math.max(v,y)}else for(g=0;g<n.length;++g)y=n[g][2],d=Math.min(d,y),v=Math.max(v,y);for(this.intensity=p||function(t){for(var e=t.length,r=new Array(e),n=0;n<e;++n)r[n]=t[n][2];return r}(n),this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],g=0;g<n.length;++g)for(var m=n[g],x=0;x<3;++x)!isNaN(m[x])&&isFinite(m[x])&&(this.bounds[0][x]=Math.min(this.bounds[0][x],m[x]),this.bounds[1][x]=Math.max(this.bounds[1][x],m[x]));var b=0;t:for(g=0;g<r.length;++g){var _=r[g];if(3===_.length){for(x=0;x<3;++x){m=n[T=_[x]];for(var w=0;w<3;++w)if(isNaN(m[w])||!isFinite(m[w]))continue t}for(x=0;x<3;++x){var T;m=n[T=_[2-x]],a.push(m[0],m[1],m[2],m[3]);var k=i[T];o.push(k[0],k[1],k[2],k[3]||0);var A,M=h;3===M.length?s.push(M[0],M[1],M[2],1):s.push(M[0],M[1],M[2],M[3]),A=p?[(p[T]-d)/(v-d),0]:[(m[2]-d)/(v-d),0],l.push(A[0],A[1]),f.push(g)}b+=1}}this.triangleCount=b,this.trianglePositions.update(a),this.triangleVectors.update(o),this.triangleColors.update(s),this.triangleUVs.update(l),this.triangleIds.update(new Uint32Array(f))}},p.drawTransparent=p.draw=function(t){t=t||{};for(var e=this.gl,r=t.model||f,n=t.view||f,i=t.projection||f,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);var u={model:r,view:n,projection:i,inverseModel:f.slice(),clipBounds:a,kambient:this.ambientLight,kdiffuse:this.diffuseLight,kspecular:this.specularLight,roughness:this.roughness,fresnel:this.fresnel,eyePosition:[0,0,0],lightPosition:[0,0,0],opacity:this.opacity,tubeScale:this.tubeScale,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,texture:0};u.inverseModel=l(u.inverseModel,u.model),e.disable(e.CULL_FACE),this.texture.bind(0);var c=new Array(16);for(s(c,u.view,u.model),s(c,u.projection,c),l(c,c),o=0;o<3;++o)u.eyePosition[o]=c[12+o]/c[15];var h=c[15];for(o=0;o<3;++o)h+=this.lightPosition[o]*c[4*o+3];for(o=0;o<3;++o){for(var p=c[12+o],d=0;d<3;++d)p+=c[4*d+o]*this.lightPosition[d];u.lightPosition[o]=p/h}if(this.triangleCount>0){var v=this.triShader;v.bind(),v.uniforms=u,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()}},p.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||f,n=t.view||f,i=t.projection||f,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s={model:r,view:n,projection:i,clipBounds:a,tubeScale:this.tubeScale,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,pickId:this.pickId/255},l=this.pickShader;l.bind(),l.uniforms=s,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind())},p.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions[r[1]].slice(0,3),i={position:n,dataCoordinate:n,index:Math.floor(r[1]/48)};return"cone"===this.traceType?i.index=Math.floor(r[1]/48):"streamtube"===this.traceType&&(i.intensity=this.intensity[r[1]],i.velocity=this.vectors[r[1]].slice(0,3),i.divergence=this.vectors[r[1]][3],i.index=e),i},p.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.pickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleVectors.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleIds.dispose()},t.exports=function(t,e,r){var n=r.shaders;1===arguments.length&&(t=(e=t).gl);var s=d(t,n),l=v(t,n),c=o(t,u(new Uint8Array([255,255,255,255]),[1,1,4]));c.generateMipmap(),c.minFilter=t.LINEAR_MIPMAP_LINEAR,c.magFilter=t.LINEAR;var f=i(t),p=i(t),g=i(t),y=i(t),m=i(t),x=a(t,[{buffer:f,type:t.FLOAT,size:4},{buffer:m,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:g,type:t.FLOAT,size:4},{buffer:y,type:t.FLOAT,size:2},{buffer:p,type:t.FLOAT,size:4}]),b=new h(t,c,s,l,f,p,m,g,y,x,r.traceType||"cone");return b.update(e),b}},7234:function(t,e,r){var n=r(6832),i=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n  // Return up-vector for only-z vector.\n  // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n  // From the above if-statement we have ||a|| > 0  U  ||b|| > 0.\n  // Assign z = 0, x = -b, y = a:\n  // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n  if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n    return normalize(vec3(-v.y, v.x, 0.0));\n  } else {\n    return normalize(vec3(0.0, v.z, -v.y));\n  }\n}\n\n// Calculate the cone vertex and normal at the given index.\n//\n// The returned vertex is for a cone with its top at origin and height of 1.0,\n// pointing in the direction of the vector attribute.\n//\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\n// These vertices are used to make up the triangles of the cone by the following:\n//   segment + 0 top vertex\n//   segment + 1 perimeter vertex a+1\n//   segment + 2 perimeter vertex a\n//   segment + 3 center base vertex\n//   segment + 4 perimeter vertex a\n//   segment + 5 perimeter vertex a+1\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\n// To go from index to segment, floor(index / 6)\n// To go from segment to angle, 2*pi * (segment/segmentCount)\n// To go from index to segment index, index - (segment*6)\n//\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\n\n  const float segmentCount = 8.0;\n\n  float index = rawIndex - floor(rawIndex /\n    (segmentCount * 6.0)) *\n    (segmentCount * 6.0);\n\n  float segment = floor(0.001 + index/6.0);\n  float segmentIndex = index - (segment*6.0);\n\n  normal = -normalize(d);\n\n  if (segmentIndex > 2.99 && segmentIndex < 3.01) {\n    return mix(vec3(0.0), -d, coneOffset);\n  }\n\n  float nextAngle = (\n    (segmentIndex > 0.99 &&  segmentIndex < 1.01) ||\n    (segmentIndex > 4.99 &&  segmentIndex < 5.01)\n  ) ? 1.0 : 0.0;\n  float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\n\n  vec3 v1 = mix(d, vec3(0.0), coneOffset);\n  vec3 v2 = v1 - d;\n\n  vec3 u = getOrthogonalVector(d);\n  vec3 v = normalize(cross(u, d));\n\n  vec3 x = u * cos(angle) * length(d)*0.25;\n  vec3 y = v * sin(angle) * length(d)*0.25;\n  vec3 v3 = v2 + x + y;\n  if (segmentIndex < 3.0) {\n    vec3 tx = u * sin(angle);\n    vec3 ty = v * -cos(angle);\n    vec3 tangent = tx + ty;\n    normal = normalize(cross(v3 - v1, tangent));\n  }\n\n  if (segmentIndex == 0.0) {\n    return mix(d, vec3(0.0), coneOffset);\n  }\n  return v3;\n}\n\nattribute vec3 vector;\nattribute vec4 color, position;\nattribute vec2 uv;\n\nuniform float vectorScale, coneScale, coneOffset;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 eyePosition, lightPosition;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n  // Scale the vector magnitude to stay constant with\n  // model & view changes.\n  vec3 normal;\n  vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\n  vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n  //Lighting geometry parameters\n  vec4 cameraCoordinate = view * conePosition;\n  cameraCoordinate.xyz /= cameraCoordinate.w;\n  f_lightDirection = lightPosition - cameraCoordinate.xyz;\n  f_eyeDirection   = eyePosition - cameraCoordinate.xyz;\n  f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n  // vec4 m_position  = model * vec4(conePosition, 1.0);\n  vec4 t_position  = view * conePosition;\n  gl_Position      = projection * t_position;\n\n  f_color          = color;\n  f_data           = conePosition.xyz;\n  f_position       = position.xyz;\n  f_uv             = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n  float NdotH = max(x, 0.0001);\n  float cos2Alpha = NdotH * NdotH;\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n  float roughness2 = roughness * roughness;\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n  return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n  vec3 lightDirection,\n  vec3 viewDirection,\n  vec3 surfaceNormal,\n  float roughness,\n  float fresnel) {\n\n  float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n  float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n  //Half angle vector\n  vec3 H = normalize(lightDirection + viewDirection);\n\n  //Geometric term\n  float NdotH = max(dot(surfaceNormal, H), 0.0);\n  float VdotH = max(dot(viewDirection, H), 0.000001);\n  float LdotH = max(dot(lightDirection, H), 0.000001);\n  float G1 = (2.0 * NdotH * VdotN) / VdotH;\n  float G2 = (2.0 * NdotH * LdotN) / LdotH;\n  float G = min(1.0, min(G1, G2));\n  \n  //Distribution term\n  float D = beckmannDistribution(NdotH, roughness);\n\n  //Fresnel term\n  float F = pow(1.0 - VdotN, fresnel);\n\n  //Multiply terms and done\n  return  G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n  vec3 N = normalize(f_normal);\n  vec3 L = normalize(f_lightDirection);\n  vec3 V = normalize(f_eyeDirection);\n\n  if(gl_FrontFacing) {\n    N = -N;\n  }\n\n  float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n  float diffuse  = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n  vec4 surfaceColor = f_color * texture2D(texture, f_uv);\n  vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular,  1.0);\n\n  gl_FragColor = litColor * opacity;\n}\n"]),o=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n  // Return up-vector for only-z vector.\n  // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n  // From the above if-statement we have ||a|| > 0  U  ||b|| > 0.\n  // Assign z = 0, x = -b, y = a:\n  // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n  if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n    return normalize(vec3(-v.y, v.x, 0.0));\n  } else {\n    return normalize(vec3(0.0, v.z, -v.y));\n  }\n}\n\n// Calculate the cone vertex and normal at the given index.\n//\n// The returned vertex is for a cone with its top at origin and height of 1.0,\n// pointing in the direction of the vector attribute.\n//\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\n// These vertices are used to make up the triangles of the cone by the following:\n//   segment + 0 top vertex\n//   segment + 1 perimeter vertex a+1\n//   segment + 2 perimeter vertex a\n//   segment + 3 center base vertex\n//   segment + 4 perimeter vertex a\n//   segment + 5 perimeter vertex a+1\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\n// To go from index to segment, floor(index / 6)\n// To go from segment to angle, 2*pi * (segment/segmentCount)\n// To go from index to segment index, index - (segment*6)\n//\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\n\n  const float segmentCount = 8.0;\n\n  float index = rawIndex - floor(rawIndex /\n    (segmentCount * 6.0)) *\n    (segmentCount * 6.0);\n\n  float segment = floor(0.001 + index/6.0);\n  float segmentIndex = index - (segment*6.0);\n\n  normal = -normalize(d);\n\n  if (segmentIndex > 2.99 && segmentIndex < 3.01) {\n    return mix(vec3(0.0), -d, coneOffset);\n  }\n\n  float nextAngle = (\n    (segmentIndex > 0.99 &&  segmentIndex < 1.01) ||\n    (segmentIndex > 4.99 &&  segmentIndex < 5.01)\n  ) ? 1.0 : 0.0;\n  float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\n\n  vec3 v1 = mix(d, vec3(0.0), coneOffset);\n  vec3 v2 = v1 - d;\n\n  vec3 u = getOrthogonalVector(d);\n  vec3 v = normalize(cross(u, d));\n\n  vec3 x = u * cos(angle) * length(d)*0.25;\n  vec3 y = v * sin(angle) * length(d)*0.25;\n  vec3 v3 = v2 + x + y;\n  if (segmentIndex < 3.0) {\n    vec3 tx = u * sin(angle);\n    vec3 ty = v * -cos(angle);\n    vec3 tangent = tx + ty;\n    normal = normalize(cross(v3 - v1, tangent));\n  }\n\n  if (segmentIndex == 0.0) {\n    return mix(d, vec3(0.0), coneOffset);\n  }\n  return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform float vectorScale, coneScale, coneOffset;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n  vec3 normal;\n  vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector.xyz), position.w, coneOffset, normal);\n  vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n  gl_Position = projection * view * conePosition;\n  f_id        = id;\n  f_position  = position.xyz;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3  clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n  gl_FragColor = vec4(pickId, f_id.xyz);\n}"]);e.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec3"}]},e.pickShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec3"}]}},1950:function(t){t.exports={0:"NONE",1:"ONE",2:"LINE_LOOP",3:"LINE_STRIP",4:"TRIANGLES",5:"TRIANGLE_STRIP",6:"TRIANGLE_FAN",256:"DEPTH_BUFFER_BIT",512:"NEVER",513:"LESS",514:"EQUAL",515:"LEQUAL",516:"GREATER",517:"NOTEQUAL",518:"GEQUAL",519:"ALWAYS",768:"SRC_COLOR",769:"ONE_MINUS_SRC_COLOR",770:"SRC_ALPHA",771:"ONE_MINUS_SRC_ALPHA",772:"DST_ALPHA",773:"ONE_MINUS_DST_ALPHA",774:"DST_COLOR",775:"ONE_MINUS_DST_COLOR",776:"SRC_ALPHA_SATURATE",1024:"STENCIL_BUFFER_BIT",1028:"FRONT",1029:"BACK",1032:"FRONT_AND_BACK",1280:"INVALID_ENUM",1281:"INVALID_VALUE",1282:"INVALID_OPERATION",1285:"OUT_OF_MEMORY",1286:"INVALID_FRAMEBUFFER_OPERATION",2304:"CW",2305:"CCW",2849:"LINE_WIDTH",2884:"CULL_FACE",2885:"CULL_FACE_MODE",2886:"FRONT_FACE",2928:"DEPTH_RANGE",2929:"DEPTH_TEST",2930:"DEPTH_WRITEMASK",2931:"DEPTH_CLEAR_VALUE",2932:"DEPTH_FUNC",2960:"STENCIL_TEST",2961:"STENCIL_CLEAR_VALUE",2962:"STENCIL_FUNC",2963:"STENCIL_VALUE_MASK",2964:"STENCIL_FAIL",2965:"STENCIL_PASS_DEPTH_FAIL",2966:"STENCIL_PASS_DEPTH_PASS",2967:"STENCIL_REF",2968:"STENCIL_WRITEMASK",2978:"VIEWPORT",3024:"DITHER",3042:"BLEND",3088:"SCISSOR_BOX",3089:"SCISSOR_TEST",3106:"COLOR_CLEAR_VALUE",3107:"COLOR_WRITEMASK",3317:"UNPACK_ALIGNMENT",3333:"PACK_ALIGNMENT",3379:"MAX_TEXTURE_SIZE",3386:"MAX_VIEWPORT_DIMS",3408:"SUBPIXEL_BITS",3410:"RED_BITS",3411:"GREEN_BITS",3412:"BLUE_BITS",3413:"ALPHA_BITS",3414:"DEPTH_BITS",3415:"STENCIL_BITS",3553:"TEXTURE_2D",4352:"DONT_CARE",4353:"FASTEST",4354:"NICEST",5120:"BYTE",5121:"UNSIGNED_BYTE",5122:"SHORT",5123:"UNSIGNED_SHORT",5124:"INT",5125:"UNSIGNED_INT",5126:"FLOAT",5386:"INVERT",5890:"TEXTURE",6401:"STENCIL_INDEX",6402:"DEPTH_COMPONENT",6406:"ALPHA",6407:"RGB",6408:"RGBA",6409:"LUMINANCE",6410:"LUMINANCE_ALPHA",7680:"KEEP",7681:"REPLACE",7682:"INCR",7683:"DECR",7936:"VENDOR",7937:"RENDERER",7938:"VERSION",9728:"NEAREST",9729:"LINEAR",9984:"NEAREST_MIPMAP_NEAREST",9985:"LINEAR_MIPMAP_NEAREST",9986:"NEAREST_MIPMAP_LINEAR",9987:"LINEAR_MIPMAP_LINEAR",10240:"TEXTURE_MAG_FILTER",10241:"TEXTURE_MIN_FILTER",10242:"TEXTURE_WRAP_S",10243:"TEXTURE_WRAP_T",10497:"REPEAT",10752:"POLYGON_OFFSET_UNITS",16384:"COLOR_BUFFER_BIT",32769:"CONSTANT_COLOR",32770:"ONE_MINUS_CONSTANT_COLOR",32771:"CONSTANT_ALPHA",32772:"ONE_MINUS_CONSTANT_ALPHA",32773:"BLEND_COLOR",32774:"FUNC_ADD",32777:"BLEND_EQUATION_RGB",32778:"FUNC_SUBTRACT",32779:"FUNC_REVERSE_SUBTRACT",32819:"UNSIGNED_SHORT_4_4_4_4",32820:"UNSIGNED_SHORT_5_5_5_1",32823:"POLYGON_OFFSET_FILL",32824:"POLYGON_OFFSET_FACTOR",32854:"RGBA4",32855:"RGB5_A1",32873:"TEXTURE_BINDING_2D",32926:"SAMPLE_ALPHA_TO_COVERAGE",32928:"SAMPLE_COVERAGE",32936:"SAMPLE_BUFFERS",32937:"SAMPLES",32938:"SAMPLE_COVERAGE_VALUE",32939:"SAMPLE_COVERAGE_INVERT",32968:"BLEND_DST_RGB",32969:"BLEND_SRC_RGB",32970:"BLEND_DST_ALPHA",32971:"BLEND_SRC_ALPHA",33071:"CLAMP_TO_EDGE",33170:"GENERATE_MIPMAP_HINT",33189:"DEPTH_COMPONENT16",33306:"DEPTH_STENCIL_ATTACHMENT",33635:"UNSIGNED_SHORT_5_6_5",33648:"MIRRORED_REPEAT",33901:"ALIASED_POINT_SIZE_RANGE",33902:"ALIASED_LINE_WIDTH_RANGE",33984:"TEXTURE0",33985:"TEXTURE1",33986:"TEXTURE2",33987:"TEXTURE3",33988:"TEXTURE4",33989:"TEXTURE5",33990:"TEXTURE6",33991:"TEXTURE7",33992:"TEXTURE8",33993:"TEXTURE9",33994:"TEXTURE10",33995:"TEXTURE11",33996:"TEXTURE12",33997:"TEXTURE13",33998:"TEXTURE14",33999:"TEXTURE15",34e3:"TEXTURE16",34001:"TEXTURE17",34002:"TEXTURE18",34003:"TEXTURE19",34004:"TEXTURE20",34005:"TEXTURE21",34006:"TEXTURE22",34007:"TEXTURE23",34008:"TEXTURE24",34009:"TEXTURE25",34010:"TEXTURE26",34011:"TEXTURE27",34012:"TEXTURE28",34013:"TEXTURE29",34014:"TEXTURE30",34015:"TEXTURE31",34016:"ACTIVE_TEXTURE",34024:"MAX_RENDERBUFFER_SIZE",34041:"DEPTH_STENCIL",34055:"INCR_WRAP",34056:"DECR_WRAP",34067:"TEXTURE_CUBE_MAP",34068:"TEXTURE_BINDING_CUBE_MAP",34069:"TEXTURE_CUBE_MAP_POSITIVE_X",34070:"TEXTURE_CUBE_MAP_NEGATIVE_X",34071:"TEXTURE_CUBE_MAP_POSITIVE_Y",34072:"TEXTURE_CUBE_MAP_NEGATIVE_Y",34073:"TEXTURE_CUBE_MAP_POSITIVE_Z",34074:"TEXTURE_CUBE_MAP_NEGATIVE_Z",34076:"MAX_CUBE_MAP_TEXTURE_SIZE",34338:"VERTEX_ATTRIB_ARRAY_ENABLED",34339:"VERTEX_ATTRIB_ARRAY_SIZE",34340:"VERTEX_ATTRIB_ARRAY_STRIDE",34341:"VERTEX_ATTRIB_ARRAY_TYPE",34342:"CURRENT_VERTEX_ATTRIB",34373:"VERTEX_ATTRIB_ARRAY_POINTER",34466:"NUM_COMPRESSED_TEXTURE_FORMATS",34467:"COMPRESSED_TEXTURE_FORMATS",34660:"BUFFER_SIZE",34661:"BUFFER_USAGE",34816:"STENCIL_BACK_FUNC",34817:"STENCIL_BACK_FAIL",34818:"STENCIL_BACK_PASS_DEPTH_FAIL",34819:"STENCIL_BACK_PASS_DEPTH_PASS",34877:"BLEND_EQUATION_ALPHA",34921:"MAX_VERTEX_ATTRIBS",34922:"VERTEX_ATTRIB_ARRAY_NORMALIZED",34930:"MAX_TEXTURE_IMAGE_UNITS",34962:"ARRAY_BUFFER",34963:"ELEMENT_ARRAY_BUFFER",34964:"ARRAY_BUFFER_BINDING",34965:"ELEMENT_ARRAY_BUFFER_BINDING",34975:"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",35040:"STREAM_DRAW",35044:"STATIC_DRAW",35048:"DYNAMIC_DRAW",35632:"FRAGMENT_SHADER",35633:"VERTEX_SHADER",35660:"MAX_VERTEX_TEXTURE_IMAGE_UNITS",35661:"MAX_COMBINED_TEXTURE_IMAGE_UNITS",35663:"SHADER_TYPE",35664:"FLOAT_VEC2",35665:"FLOAT_VEC3",35666:"FLOAT_VEC4",35667:"INT_VEC2",35668:"INT_VEC3",35669:"INT_VEC4",35670:"BOOL",35671:"BOOL_VEC2",35672:"BOOL_VEC3",35673:"BOOL_VEC4",35674:"FLOAT_MAT2",35675:"FLOAT_MAT3",35676:"FLOAT_MAT4",35678:"SAMPLER_2D",35680:"SAMPLER_CUBE",35712:"DELETE_STATUS",35713:"COMPILE_STATUS",35714:"LINK_STATUS",35715:"VALIDATE_STATUS",35716:"INFO_LOG_LENGTH",35717:"ATTACHED_SHADERS",35718:"ACTIVE_UNIFORMS",35719:"ACTIVE_UNIFORM_MAX_LENGTH",35720:"SHADER_SOURCE_LENGTH",35721:"ACTIVE_ATTRIBUTES",35722:"ACTIVE_ATTRIBUTE_MAX_LENGTH",35724:"SHADING_LANGUAGE_VERSION",35725:"CURRENT_PROGRAM",36003:"STENCIL_BACK_REF",36004:"STENCIL_BACK_VALUE_MASK",36005:"STENCIL_BACK_WRITEMASK",36006:"FRAMEBUFFER_BINDING",36007:"RENDERBUFFER_BINDING",36048:"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",36049:"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",36050:"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",36051:"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",36053:"FRAMEBUFFER_COMPLETE",36054:"FRAMEBUFFER_INCOMPLETE_ATTACHMENT",36055:"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",36057:"FRAMEBUFFER_INCOMPLETE_DIMENSIONS",36061:"FRAMEBUFFER_UNSUPPORTED",36064:"COLOR_ATTACHMENT0",36096:"DEPTH_ATTACHMENT",36128:"STENCIL_ATTACHMENT",36160:"FRAMEBUFFER",36161:"RENDERBUFFER",36162:"RENDERBUFFER_WIDTH",36163:"RENDERBUFFER_HEIGHT",36164:"RENDERBUFFER_INTERNAL_FORMAT",36168:"STENCIL_INDEX8",36176:"RENDERBUFFER_RED_SIZE",36177:"RENDERBUFFER_GREEN_SIZE",36178:"RENDERBUFFER_BLUE_SIZE",36179:"RENDERBUFFER_ALPHA_SIZE",36180:"RENDERBUFFER_DEPTH_SIZE",36181:"RENDERBUFFER_STENCIL_SIZE",36194:"RGB565",36336:"LOW_FLOAT",36337:"MEDIUM_FLOAT",36338:"HIGH_FLOAT",36339:"LOW_INT",36340:"MEDIUM_INT",36341:"HIGH_INT",36346:"SHADER_COMPILER",36347:"MAX_VERTEX_UNIFORM_VECTORS",36348:"MAX_VARYING_VECTORS",36349:"MAX_FRAGMENT_UNIFORM_VECTORS",37440:"UNPACK_FLIP_Y_WEBGL",37441:"UNPACK_PREMULTIPLY_ALPHA_WEBGL",37442:"CONTEXT_LOST_WEBGL",37443:"UNPACK_COLORSPACE_CONVERSION_WEBGL",37444:"BROWSER_DEFAULT_WEBGL"}},6603:function(t,e,r){var n=r(1950);t.exports=function(t){return n[t]}},3110:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl,r=n(e),o=i(e,[{buffer:r,type:e.FLOAT,size:3,offset:0,stride:40},{buffer:r,type:e.FLOAT,size:4,offset:12,stride:40},{buffer:r,type:e.FLOAT,size:3,offset:28,stride:40}]),l=a(e);l.attributes.position.location=0,l.attributes.color.location=1,l.attributes.offset.location=2;var u=new s(e,r,o,l);return u.update(t),u};var n=r(5827),i=r(2944),a=r(7667),o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.shader=n,this.buffer=e,this.vao=r,this.pixelRatio=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lineWidth=[1,1,1],this.capSize=[10,10,10],this.lineCount=[0,0,0],this.lineOffset=[0,0,0],this.opacity=1,this.hasAlpha=!1}var l=s.prototype;function u(t,e){for(var r=0;r<3;++r)t[0][r]=Math.min(t[0][r],e[r]),t[1][r]=Math.max(t[1][r],e[r])}l.isOpaque=function(){return!this.hasAlpha},l.isTransparent=function(){return this.hasAlpha},l.drawTransparent=l.draw=function(t){var e=this.gl,r=this.shader.uniforms;this.shader.bind();var n=r.view=t.view||o,i=r.projection=t.projection||o;r.model=t.model||o,r.clipBounds=this.clipBounds,r.opacity=this.opacity;var a=n[12],s=n[13],l=n[14],u=n[15],c=(t._ortho?2:1)*this.pixelRatio*(i[3]*a+i[7]*s+i[11]*l+i[15]*u)/e.drawingBufferHeight;this.vao.bind();for(var f=0;f<3;++f)e.lineWidth(this.lineWidth[f]*this.pixelRatio),r.capSize=this.capSize[f]*c,this.lineCount[f]&&e.drawArrays(e.LINES,this.lineOffset[f],this.lineCount[f]);this.vao.unbind()};var c=function(){for(var t=new Array(3),e=0;e<3;++e){for(var r=[],n=1;n<=2;++n)for(var i=-1;i<=1;i+=2){var a=[0,0,0];a[(n+e)%3]=i,r.push(a)}t[e]=r}return t}();function f(t,e,r,n){for(var i=c[n],a=0;a<i.length;++a){var o=i[a];t.push(e[0],e[1],e[2],r[0],r[1],r[2],r[3],o[0],o[1],o[2])}return i.length}l.update=function(t){"lineWidth"in(t=t||{})&&(this.lineWidth=t.lineWidth,Array.isArray(this.lineWidth)||(this.lineWidth=[this.lineWidth,this.lineWidth,this.lineWidth])),"capSize"in t&&(this.capSize=t.capSize,Array.isArray(this.capSize)||(this.capSize=[this.capSize,this.capSize,this.capSize])),this.hasAlpha=!1,"opacity"in t&&(this.opacity=+t.opacity,this.opacity<1&&(this.hasAlpha=!0));var e=t.color||[[0,0,0],[0,0,0],[0,0,0]],r=t.position,n=t.error;if(Array.isArray(e[0])||(e=[e,e,e]),r&&n){var i=[],a=r.length,o=0;this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.lineCount=[0,0,0];for(var s=0;s<3;++s){this.lineOffset[s]=o;t:for(var l=0;l<a;++l){for(var c=r[l],h=0;h<3;++h)if(isNaN(c[h])||!isFinite(c[h]))continue t;var p,d=n[l],v=e[s];Array.isArray(v[0])&&(v=e[l]),3===v.length?v=[v[0],v[1],v[2],1]:4===v.length&&(v=[v[0],v[1],v[2],v[3]],!this.hasAlpha&&v[3]<1&&(this.hasAlpha=!0)),isNaN(d[0][s])||isNaN(d[1][s])||(d[0][s]<0&&((p=c.slice())[s]+=d[0][s],i.push(c[0],c[1],c[2],v[0],v[1],v[2],v[3],0,0,0,p[0],p[1],p[2],v[0],v[1],v[2],v[3],0,0,0),u(this.bounds,p),o+=2+f(i,p,v,s)),d[1][s]>0&&((p=c.slice())[s]+=d[1][s],i.push(c[0],c[1],c[2],v[0],v[1],v[2],v[3],0,0,0,p[0],p[1],p[2],v[0],v[1],v[2],v[3],0,0,0),u(this.bounds,p),o+=2+f(i,p,v,s)))}this.lineCount[s]=o-this.lineOffset[s]}this.buffer.update(i)}},l.dispose=function(){this.shader.dispose(),this.buffer.dispose(),this.vao.dispose()}},7667:function(t,e,r){"use strict";var n=r(6832),i=r(5158),a=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, offset;\nattribute vec4 color;\nuniform mat4 model, view, projection;\nuniform float capSize;\nvarying vec4 fragColor;\nvarying vec3 fragPosition;\n\nvoid main() {\n  vec4 worldPosition  = model * vec4(position, 1.0);\n  worldPosition       = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\n  gl_Position         = projection * view * worldPosition;\n  fragColor           = color;\n  fragPosition        = position;\n}"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float opacity;\nvarying vec3 fragPosition;\nvarying vec4 fragColor;\n\nvoid main() {\n  if (\n    outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||\n    fragColor.a * opacity == 0.\n  ) discard;\n\n  gl_FragColor = opacity * fragColor;\n}"]);t.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"offset",type:"vec3"}])}},4234:function(t,e,r){"use strict";var n=r(8931);t.exports=function(t,e,r,n){i||(i=t.FRAMEBUFFER_UNSUPPORTED,a=t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT,o=t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS,s=t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT);var u=t.getExtension("WEBGL_draw_buffers");if(!l&&u&&function(t,e){var r=t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL);l=new Array(r+1);for(var n=0;n<=r;++n){for(var i=new Array(r),a=0;a<n;++a)i[a]=t.COLOR_ATTACHMENT0+a;for(a=n;a<r;++a)i[a]=t.NONE;l[n]=i}}(t,u),Array.isArray(e)&&(n=r,r=0|e[1],e=0|e[0]),"number"!=typeof e)throw new Error("gl-fbo: Missing shape parameter");var c=t.getParameter(t.MAX_RENDERBUFFER_SIZE);if(e<0||e>c||r<0||r>c)throw new Error("gl-fbo: Parameters are too large for FBO");var f=1;if("color"in(n=n||{})){if((f=Math.max(0|n.color,0))<0)throw new Error("gl-fbo: Must specify a nonnegative number of colors");if(f>1){if(!u)throw new Error("gl-fbo: Multiple draw buffer extension not supported");if(f>t.getParameter(u.MAX_COLOR_ATTACHMENTS_WEBGL))throw new Error("gl-fbo: Context does not support "+f+" draw buffers")}}var h=t.UNSIGNED_BYTE,p=t.getExtension("OES_texture_float");if(n.float&&f>0){if(!p)throw new Error("gl-fbo: Context does not support floating point textures");h=t.FLOAT}else n.preferFloat&&f>0&&p&&(h=t.FLOAT);var v=!0;"depth"in n&&(v=!!n.depth);var g=!1;return"stencil"in n&&(g=!!n.stencil),new d(t,e,r,h,f,v,g,u)};var i,a,o,s,l=null;function u(t){return[t.getParameter(t.FRAMEBUFFER_BINDING),t.getParameter(t.RENDERBUFFER_BINDING),t.getParameter(t.TEXTURE_BINDING_2D)]}function c(t,e){t.bindFramebuffer(t.FRAMEBUFFER,e[0]),t.bindRenderbuffer(t.RENDERBUFFER,e[1]),t.bindTexture(t.TEXTURE_2D,e[2])}function f(t){switch(t){case i:throw new Error("gl-fbo: Framebuffer unsupported");case a:throw new Error("gl-fbo: Framebuffer incomplete attachment");case o:throw new Error("gl-fbo: Framebuffer incomplete dimensions");case s:throw new Error("gl-fbo: Framebuffer incomplete missing attachment");default:throw new Error("gl-fbo: Framebuffer failed for unspecified reason")}}function h(t,e,r,i,a,o){if(!i)return null;var s=n(t,e,r,a,i);return s.magFilter=t.NEAREST,s.minFilter=t.NEAREST,s.mipSamples=1,s.bind(),t.framebufferTexture2D(t.FRAMEBUFFER,o,t.TEXTURE_2D,s.handle,0),s}function p(t,e,r,n,i){var a=t.createRenderbuffer();return t.bindRenderbuffer(t.RENDERBUFFER,a),t.renderbufferStorage(t.RENDERBUFFER,n,e,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,i,t.RENDERBUFFER,a),a}function d(t,e,r,n,i,a,o,s){this.gl=t,this._shape=[0|e,0|r],this._destroyed=!1,this._ext=s,this.color=new Array(i);for(var d=0;d<i;++d)this.color[d]=null;this._color_rb=null,this.depth=null,this._depth_rb=null,this._colorType=n,this._useDepth=a,this._useStencil=o;var v=this,g=[0|e,0|r];Object.defineProperties(g,{0:{get:function(){return v._shape[0]},set:function(t){return v.width=t}},1:{get:function(){return v._shape[1]},set:function(t){return v.height=t}}}),this._shapeVector=g,function(t){var e=u(t.gl),r=t.gl,n=t.handle=r.createFramebuffer(),i=t._shape[0],a=t._shape[1],o=t.color.length,s=t._ext,d=t._useStencil,v=t._useDepth,g=t._colorType;r.bindFramebuffer(r.FRAMEBUFFER,n);for(var y=0;y<o;++y)t.color[y]=h(r,i,a,g,r.RGBA,r.COLOR_ATTACHMENT0+y);0===o?(t._color_rb=p(r,i,a,r.RGBA4,r.COLOR_ATTACHMENT0),s&&s.drawBuffersWEBGL(l[0])):o>1&&s.drawBuffersWEBGL(l[o]);var m=r.getExtension("WEBGL_depth_texture");m?d?t.depth=h(r,i,a,m.UNSIGNED_INT_24_8_WEBGL,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):v&&(t.depth=h(r,i,a,r.UNSIGNED_SHORT,r.DEPTH_COMPONENT,r.DEPTH_ATTACHMENT)):v&&d?t._depth_rb=p(r,i,a,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):v?t._depth_rb=p(r,i,a,r.DEPTH_COMPONENT16,r.DEPTH_ATTACHMENT):d&&(t._depth_rb=p(r,i,a,r.STENCIL_INDEX,r.STENCIL_ATTACHMENT));var x=r.checkFramebufferStatus(r.FRAMEBUFFER);if(x!==r.FRAMEBUFFER_COMPLETE){for(t._destroyed=!0,r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteFramebuffer(t.handle),t.handle=null,t.depth&&(t.depth.dispose(),t.depth=null),t._depth_rb&&(r.deleteRenderbuffer(t._depth_rb),t._depth_rb=null),y=0;y<t.color.length;++y)t.color[y].dispose(),t.color[y]=null;t._color_rb&&(r.deleteRenderbuffer(t._color_rb),t._color_rb=null),c(r,e),f(x)}c(r,e)}(this)}var v=d.prototype;function g(t,e,r){if(t._destroyed)throw new Error("gl-fbo: Can't resize destroyed FBO");if(t._shape[0]!==e||t._shape[1]!==r){var n=t.gl,i=n.getParameter(n.MAX_RENDERBUFFER_SIZE);if(e<0||e>i||r<0||r>i)throw new Error("gl-fbo: Can't resize FBO, invalid dimensions");t._shape[0]=e,t._shape[1]=r;for(var a=u(n),o=0;o<t.color.length;++o)t.color[o].shape=t._shape;t._color_rb&&(n.bindRenderbuffer(n.RENDERBUFFER,t._color_rb),n.renderbufferStorage(n.RENDERBUFFER,n.RGBA4,t._shape[0],t._shape[1])),t.depth&&(t.depth.shape=t._shape),t._depth_rb&&(n.bindRenderbuffer(n.RENDERBUFFER,t._depth_rb),t._useDepth&&t._useStencil?n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,t._shape[0],t._shape[1]):t._useDepth?n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t._shape[0],t._shape[1]):t._useStencil&&n.renderbufferStorage(n.RENDERBUFFER,n.STENCIL_INDEX,t._shape[0],t._shape[1])),n.bindFramebuffer(n.FRAMEBUFFER,t.handle);var s=n.checkFramebufferStatus(n.FRAMEBUFFER);s!==n.FRAMEBUFFER_COMPLETE&&(t.dispose(),c(n,a),f(s)),c(n,a)}}Object.defineProperties(v,{shape:{get:function(){return this._destroyed?[0,0]:this._shapeVector},set:function(t){if(Array.isArray(t)||(t=[0|t,0|t]),2!==t.length)throw new Error("gl-fbo: Shape vector must be length 2");var e=0|t[0],r=0|t[1];return g(this,e,r),[e,r]},enumerable:!1},width:{get:function(){return this._destroyed?0:this._shape[0]},set:function(t){return g(this,t|=0,this._shape[1]),t},enumerable:!1},height:{get:function(){return this._destroyed?0:this._shape[1]},set:function(t){return t|=0,g(this,this._shape[0],t),t},enumerable:!1}}),v.bind=function(){if(!this._destroyed){var t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,this.handle),t.viewport(0,0,this._shape[0],this._shape[1])}},v.dispose=function(){if(!this._destroyed){this._destroyed=!0;var t=this.gl;t.deleteFramebuffer(this.handle),this.handle=null,this.depth&&(this.depth.dispose(),this.depth=null),this._depth_rb&&(t.deleteRenderbuffer(this._depth_rb),this._depth_rb=null);for(var e=0;e<this.color.length;++e)this.color[e].dispose(),this.color[e]=null;this._color_rb&&(t.deleteRenderbuffer(this._color_rb),this._color_rb=null)}}},3530:function(t,e,r){var n=r(8974).sprintf,i=r(6603),a=r(9365),o=r(8008);t.exports=function(t,e,r){"use strict";var s=a(e)||"of unknown name (see npm glsl-shader-name)",l="unknown type";void 0!==r&&(l=r===i.FRAGMENT_SHADER?"fragment":"vertex");for(var u=n("Error compiling %s shader %s:\n",l,s),c=n("%s%s",u,t),f=t.split("\n"),h={},p=0;p<f.length;p++){var d=f[p];if(""!==d&&"\0"!==d){var v=parseInt(d.split(":")[2]);if(isNaN(v))throw new Error(n("Could not parse error: %s",d));h[v]=d}}var g=o(e).split("\n");for(p=0;p<g.length;p++)if(h[p+3]||h[p+2]||h[p+1]){if(u+=g[p]+"\n",h[p+1]){var y=h[p+1];y=y.substr(y.split(":",3).join(":").length+1).trim(),u+=n("^^^ %s\n\n",y)}}return{long:u.trim(),short:c.trim()}}},6386:function(t,e,r){"use strict";t.exports=function(t,e){var r=t.gl,n=new u(t,o(r,l.vertex,l.fragment),o(r,l.pickVertex,l.pickFragment),s(r),s(r),s(r),s(r));return n.update(e),t.addObject(n),n};var n=r(5070),i=r(9560),a=r(5306),o=r(5158),s=r(5827),l=r(1292);function u(t,e,r,n,i,a,o){this.plot=t,this.shader=e,this.pickShader=r,this.positionBuffer=n,this.weightBuffer=i,this.colorBuffer=a,this.idBuffer=o,this.xData=[],this.yData=[],this.shape=[0,0],this.bounds=[1/0,1/0,-1/0,-1/0],this.pickOffset=0}var c,f=u.prototype,h=[0,0,1,0,0,1,1,0,1,1,0,1];f.draw=(c=[1,0,0,0,1,0,0,0,1],function(){var t=this.plot,e=this.shader,r=this.bounds,n=this.numVertices;if(!(n<=0)){var i=t.gl,a=t.dataBox,o=r[2]-r[0],s=r[3]-r[1],l=a[2]-a[0],u=a[3]-a[1];c[0]=2*o/l,c[4]=2*s/u,c[6]=2*(r[0]-a[0])/l-1,c[7]=2*(r[1]-a[1])/u-1,e.bind();var f=e.uniforms;f.viewTransform=c,f.shape=this.shape;var h=e.attributes;this.positionBuffer.bind(),h.position.pointer(),this.weightBuffer.bind(),h.weight.pointer(i.UNSIGNED_BYTE,!1),this.colorBuffer.bind(),h.color.pointer(i.UNSIGNED_BYTE,!0),i.drawArrays(i.TRIANGLES,0,n)}}),f.drawPick=function(){var t=[1,0,0,0,1,0,0,0,1],e=[0,0,0,0];return function(r){var n=this.plot,i=this.pickShader,a=this.bounds,o=this.numVertices;if(!(o<=0)){var s=n.gl,l=n.dataBox,u=a[2]-a[0],c=a[3]-a[1],f=l[2]-l[0],h=l[3]-l[1];t[0]=2*u/f,t[4]=2*c/h,t[6]=2*(a[0]-l[0])/f-1,t[7]=2*(a[1]-l[1])/h-1;for(var p=0;p<4;++p)e[p]=r>>8*p&255;this.pickOffset=r,i.bind();var d=i.uniforms;d.viewTransform=t,d.pickOffset=e,d.shape=this.shape;var v=i.attributes;return this.positionBuffer.bind(),v.position.pointer(),this.weightBuffer.bind(),v.weight.pointer(s.UNSIGNED_BYTE,!1),this.idBuffer.bind(),v.pickId.pointer(s.UNSIGNED_BYTE,!1),s.drawArrays(s.TRIANGLES,0,o),r+this.shape[0]*this.shape[1]}}}(),f.pick=function(t,e,r){var n=this.pickOffset,i=this.shape[0]*this.shape[1];if(r<n||r>=n+i)return null;var a=r-n,o=this.xData,s=this.yData;return{object:this,pointId:a,dataCoord:[o[a%this.shape[0]],s[a/this.shape[0]|0]]}},f.update=function(t){var e=(t=t||{}).shape||[0,0],r=t.x||i(e[0]),o=t.y||i(e[1]),s=t.z||new Float32Array(e[0]*e[1]),l=!1!==t.zsmooth;this.xData=r,this.yData=o;var u,c,f,p,d=t.colorLevels||[0],v=t.colorValues||[0,0,0,1],g=d.length,y=this.bounds;l?(u=y[0]=r[0],c=y[1]=o[0],f=y[2]=r[r.length-1],p=y[3]=o[o.length-1]):(u=y[0]=r[0]+(r[1]-r[0])/2,c=y[1]=o[0]+(o[1]-o[0])/2,f=y[2]=r[r.length-1]+(r[r.length-1]-r[r.length-2])/2,p=y[3]=o[o.length-1]+(o[o.length-1]-o[o.length-2])/2);var m=1/(f-u),x=1/(p-c),b=e[0],_=e[1];this.shape=[b,_];var w=(l?(b-1)*(_-1):b*_)*(h.length>>>1);this.numVertices=w;for(var T=a.mallocUint8(4*w),k=a.mallocFloat32(2*w),A=a.mallocUint8(2*w),M=a.mallocUint32(w),S=0,E=l?b-1:b,L=l?_-1:_,C=0;C<L;++C){var P,O;l?(P=x*(o[C]-c),O=x*(o[C+1]-c)):(P=C<_-1?x*(o[C]-(o[C+1]-o[C])/2-c):x*(o[C]-(o[C]-o[C-1])/2-c),O=C<_-1?x*(o[C]+(o[C+1]-o[C])/2-c):x*(o[C]+(o[C]-o[C-1])/2-c));for(var I=0;I<E;++I){var D,z;l?(D=m*(r[I]-u),z=m*(r[I+1]-u)):(D=I<b-1?m*(r[I]-(r[I+1]-r[I])/2-u):m*(r[I]-(r[I]-r[I-1])/2-u),z=I<b-1?m*(r[I]+(r[I+1]-r[I])/2-u):m*(r[I]+(r[I]-r[I-1])/2-u));for(var R=0;R<h.length;R+=2){var F,B,N,j,U=h[R],V=h[R+1],H=s[l?(C+V)*b+(I+U):C*b+I],q=n.le(d,H);if(q<0)F=v[0],B=v[1],N=v[2],j=v[3];else if(q===g-1)F=v[4*g-4],B=v[4*g-3],N=v[4*g-2],j=v[4*g-1];else{var G=(H-d[q])/(d[q+1]-d[q]),Z=1-G,Y=4*q,W=4*(q+1);F=Z*v[Y]+G*v[W],B=Z*v[Y+1]+G*v[W+1],N=Z*v[Y+2]+G*v[W+2],j=Z*v[Y+3]+G*v[W+3]}T[4*S]=255*F,T[4*S+1]=255*B,T[4*S+2]=255*N,T[4*S+3]=255*j,k[2*S]=.5*D+.5*z,k[2*S+1]=.5*P+.5*O,A[2*S]=U,A[2*S+1]=V,M[S]=C*b+I,S+=1}}}this.positionBuffer.update(k),this.weightBuffer.update(A),this.colorBuffer.update(T),this.idBuffer.update(M),a.free(k),a.free(T),a.free(A),a.free(M)},f.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.positionBuffer.dispose(),this.weightBuffer.dispose(),this.colorBuffer.dispose(),this.idBuffer.dispose(),this.plot.removeObject(this)}},1292:function(t,e,r){"use strict";var n=r(6832);t.exports={fragment:n(["precision lowp float;\n#define GLSLIFY 1\nvarying vec4 fragColor;\nvoid main() {\n  gl_FragColor = vec4(fragColor.rgb * fragColor.a, fragColor.a);\n}\n"]),vertex:n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\nattribute vec4 color;\nattribute vec2 weight;\n\nuniform vec2 shape;\nuniform mat3 viewTransform;\n\nvarying vec4 fragColor;\n\nvoid main() {\n  vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\n  fragColor = color;\n  gl_Position = vec4(vPosition.xy, 0, vPosition.z);\n}\n"]),pickFragment:n(["precision mediump float;\n#define GLSLIFY 1\n\nvarying vec4 fragId;\nvarying vec2 vWeight;\n\nuniform vec2 shape;\nuniform vec4 pickOffset;\n\nvoid main() {\n  vec2 d = step(.5, vWeight);\n  vec4 id = fragId + pickOffset;\n  id.x += d.x + d.y*shape.x;\n\n  id.y += floor(id.x / 256.0);\n  id.x -= floor(id.x / 256.0) * 256.0;\n\n  id.z += floor(id.y / 256.0);\n  id.y -= floor(id.y / 256.0) * 256.0;\n\n  id.w += floor(id.z / 256.0);\n  id.z -= floor(id.z / 256.0) * 256.0;\n\n  gl_FragColor = id/255.;\n}\n"]),pickVertex:n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\nattribute vec4 pickId;\nattribute vec2 weight;\n\nuniform vec2 shape;\nuniform mat3 viewTransform;\n\nvarying vec4 fragId;\nvarying vec2 vWeight;\n\nvoid main() {\n  vWeight = weight;\n\n  fragId = pickId;\n\n  vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\n  gl_Position = vec4(vPosition.xy, 0, vPosition.z);\n}\n"])}},248:function(t,e,r){var n=r(6832),i=r(5158),a=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, nextPosition;\nattribute float arcLength, lineWidth;\nattribute vec4 color;\n\nuniform vec2 screenShape;\nuniform float pixelRatio;\nuniform mat4 model, view, projection;\n\nvarying vec4 fragColor;\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\n\nvec4 project(vec3 p) {\n  return projection * view * model * vec4(p, 1.0);\n}\n\nvoid main() {\n  vec4 startPoint = project(position);\n  vec4 endPoint   = project(nextPosition);\n\n  vec2 A = startPoint.xy / startPoint.w;\n  vec2 B =   endPoint.xy /   endPoint.w;\n\n  float clipAngle = atan(\n    (B.y - A.y) * screenShape.y,\n    (B.x - A.x) * screenShape.x\n  );\n\n  vec2 offset = 0.5 * pixelRatio * lineWidth * vec2(\n    sin(clipAngle),\n    -cos(clipAngle)\n  ) / screenShape;\n\n  gl_Position = vec4(startPoint.xy + startPoint.w * offset, startPoint.zw);\n\n  worldPosition = position;\n  pixelArcLength = arcLength;\n  fragColor = color;\n}\n"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3      clipBounds[2];\nuniform sampler2D dashTexture;\nuniform float     dashScale;\nuniform float     opacity;\n\nvarying vec3    worldPosition;\nvarying float   pixelArcLength;\nvarying vec4    fragColor;\n\nvoid main() {\n  if (\n    outOfRange(clipBounds[0], clipBounds[1], worldPosition) ||\n    fragColor.a * opacity == 0.\n  ) discard;\n\n  float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;\n  if(dashWeight < 0.5) {\n    discard;\n  }\n  gl_FragColor = fragColor * opacity;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\n#define FLOAT_MAX  1.70141184e38\n#define FLOAT_MIN  1.17549435e-38\n\n// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.glsl\nvec4 packFloat(float v) {\n  float av = abs(v);\n\n  //Handle special cases\n  if(av < FLOAT_MIN) {\n    return vec4(0.0, 0.0, 0.0, 0.0);\n  } else if(v > FLOAT_MAX) {\n    return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;\n  } else if(v < -FLOAT_MAX) {\n    return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;\n  }\n\n  vec4 c = vec4(0,0,0,0);\n\n  //Compute exponent and mantissa\n  float e = floor(log2(av));\n  float m = av * pow(2.0, -e) - 1.0;\n\n  //Unpack mantissa\n  c[1] = floor(128.0 * m);\n  m -= c[1] / 128.0;\n  c[2] = floor(32768.0 * m);\n  m -= c[2] / 32768.0;\n  c[3] = floor(8388608.0 * m);\n\n  //Unpack exponent\n  float ebias = e + 127.0;\n  c[0] = floor(ebias / 2.0);\n  ebias -= c[0] * 2.0;\n  c[1] += floor(ebias) * 128.0;\n\n  //Unpack sign bit\n  c[0] += 128.0 * step(0.0, -v);\n\n  //Scale back to range\n  return c / 255.0;\n}\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform float pickId;\nuniform vec3 clipBounds[2];\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n  if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\n\n  gl_FragColor = vec4(pickId/255.0, packFloat(pixelArcLength).xyz);\n}"]),l=[{name:"position",type:"vec3"},{name:"nextPosition",type:"vec3"},{name:"arcLength",type:"float"},{name:"lineWidth",type:"float"},{name:"color",type:"vec4"}];e.createShader=function(t){return i(t,a,o,null,l)},e.createPickShader=function(t){return i(t,a,s,null,l)}},6086:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl||t.scene&&t.scene.gl,r=f(e);r.attributes.position.location=0,r.attributes.nextPosition.location=1,r.attributes.arcLength.location=2,r.attributes.lineWidth.location=3,r.attributes.color.location=4;var o=h(e);o.attributes.position.location=0,o.attributes.nextPosition.location=1,o.attributes.arcLength.location=2,o.attributes.lineWidth.location=3,o.attributes.color.location=4;for(var s=n(e),l=i(e,[{buffer:s,size:3,offset:0,stride:48},{buffer:s,size:3,offset:12,stride:48},{buffer:s,size:1,offset:24,stride:48},{buffer:s,size:1,offset:28,stride:48},{buffer:s,size:4,offset:32,stride:48}]),c=u(new Array(1024),[256,1,4]),p=0;p<1024;++p)c.data[p]=255;var d=a(e,c);d.wrap=e.REPEAT;var v=new y(e,r,o,s,l,d);return v.update(t),v};var n=r(5827),i=r(2944),a=r(8931),o=new Uint8Array(4),s=new Float32Array(o.buffer),l=r(5070),u=r(5050),c=r(248),f=c.createShader,h=c.createPickShader,p=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function d(t,e){for(var r=0,n=0;n<3;++n){var i=t[n]-e[n];r+=i*i}return Math.sqrt(r)}function v(t){for(var e=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],r=0;r<3;++r)e[0][r]=Math.max(t[0][r],e[0][r]),e[1][r]=Math.min(t[1][r],e[1][r]);return e}function g(t,e,r,n){this.arcLength=t,this.position=e,this.index=r,this.dataCoordinate=n}function y(t,e,r,n,i,a){this.gl=t,this.shader=e,this.pickShader=r,this.buffer=n,this.vao=i,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.points=[],this.arcLength=[],this.vertexCount=0,this.bounds=[[0,0,0],[0,0,0]],this.pickId=0,this.lineWidth=1,this.texture=a,this.dashScale=1,this.opacity=1,this.hasAlpha=!1,this.dirty=!0,this.pixelRatio=1}var m=y.prototype;m.isTransparent=function(){return this.hasAlpha},m.isOpaque=function(){return!this.hasAlpha},m.pickSlots=1,m.setPickBase=function(t){this.pickId=t},m.drawTransparent=m.draw=function(t){if(this.vertexCount){var e=this.gl,r=this.shader,n=this.vao;r.bind(),r.uniforms={model:t.model||p,view:t.view||p,projection:t.projection||p,clipBounds:v(this.clipBounds),dashTexture:this.texture.bind(),dashScale:this.dashScale/this.arcLength[this.arcLength.length-1],opacity:this.opacity,screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},m.drawPick=function(t){if(this.vertexCount){var e=this.gl,r=this.pickShader,n=this.vao;r.bind(),r.uniforms={model:t.model||p,view:t.view||p,projection:t.projection||p,pickId:this.pickId,clipBounds:v(this.clipBounds),screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},m.update=function(t){var e,r;this.dirty=!0;var n=!!t.connectGaps;"dashScale"in t&&(this.dashScale=t.dashScale),this.hasAlpha=!1,"opacity"in t&&(this.opacity=+t.opacity,this.opacity<1&&(this.hasAlpha=!0));var i=[],a=[],o=[],s=0,c=0,f=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],h=t.position||t.positions;if(h){var p=t.color||t.colors||[0,0,0,1],v=t.lineWidth||1,g=!1;t:for(e=1;e<h.length;++e){var y,m,x,b=h[e-1],_=h[e];for(a.push(s),o.push(b.slice()),r=0;r<3;++r){if(isNaN(b[r])||isNaN(_[r])||!isFinite(b[r])||!isFinite(_[r])){if(!n&&i.length>0){for(var w=0;w<24;++w)i.push(i[i.length-12]);c+=2,g=!0}continue t}f[0][r]=Math.min(f[0][r],b[r],_[r]),f[1][r]=Math.max(f[1][r],b[r],_[r])}Array.isArray(p[0])?(y=p.length>e-1?p[e-1]:p.length>0?p[p.length-1]:[0,0,0,1],m=p.length>e?p[e]:p.length>0?p[p.length-1]:[0,0,0,1]):y=m=p,3===y.length&&(y=[y[0],y[1],y[2],1]),3===m.length&&(m=[m[0],m[1],m[2],1]),!this.hasAlpha&&y[3]<1&&(this.hasAlpha=!0),x=Array.isArray(v)?v.length>e-1?v[e-1]:v.length>0?v[v.length-1]:[0,0,0,1]:v;var T=s;if(s+=d(b,_),g){for(r=0;r<2;++r)i.push(b[0],b[1],b[2],_[0],_[1],_[2],T,x,y[0],y[1],y[2],y[3]);c+=2,g=!1}i.push(b[0],b[1],b[2],_[0],_[1],_[2],T,x,y[0],y[1],y[2],y[3],b[0],b[1],b[2],_[0],_[1],_[2],T,-x,y[0],y[1],y[2],y[3],_[0],_[1],_[2],b[0],b[1],b[2],s,-x,m[0],m[1],m[2],m[3],_[0],_[1],_[2],b[0],b[1],b[2],s,x,m[0],m[1],m[2],m[3]),c+=4}}if(this.buffer.update(i),a.push(s),o.push(h[h.length-1].slice()),this.bounds=f,this.vertexCount=c,this.points=o,this.arcLength=a,"dashes"in t){var k=t.dashes.slice();for(k.unshift(0),e=1;e<k.length;++e)k[e]=k[e-1]+k[e];var A=u(new Array(1024),[256,1,4]);for(e=0;e<256;++e){for(r=0;r<4;++r)A.set(e,0,r,0);1&l.le(k,k[k.length-1]*e/255)?A.set(e,0,0,0):A.set(e,0,0,255)}this.texture.setPixels(A)}},m.dispose=function(){this.shader.dispose(),this.vao.dispose(),this.buffer.dispose()},m.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=function(t,e,r,n){return o[0]=0,o[1]=r,o[2]=e,o[3]=t,s[0]}(t.value[0],t.value[1],t.value[2]),r=l.le(this.arcLength,e);if(r<0)return null;if(r===this.arcLength.length-1)return new g(this.arcLength[this.arcLength.length-1],this.points[this.points.length-1].slice(),r);for(var n=this.points[r],i=this.points[Math.min(r+1,this.points.length-1)],a=(e-this.arcLength[r])/(this.arcLength[r+1]-this.arcLength[r]),u=1-a,c=[0,0,0],f=0;f<3;++f)c[f]=u*n[f]+a*i[f];var h=Math.min(a<.5?r:r+1,this.points.length-1);return new g(e,c,h,this.points[h])}},7332:function(t){t.exports=function(t){var e=new Float32Array(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}},9823:function(t){t.exports=function(){var t=new Float32Array(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},7787:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3],a=t[4],o=t[5],s=t[6],l=t[7],u=t[8],c=t[9],f=t[10],h=t[11],p=t[12],d=t[13],v=t[14],g=t[15];return(e*o-r*a)*(f*g-h*v)-(e*s-n*a)*(c*g-h*d)+(e*l-i*a)*(c*v-f*d)+(r*s-n*o)*(u*g-h*p)-(r*l-i*o)*(u*v-f*p)+(n*l-i*s)*(u*d-c*p)}},5950:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r+r,s=n+n,l=i+i,u=r*o,c=n*o,f=n*s,h=i*o,p=i*s,d=i*l,v=a*o,g=a*s,y=a*l;return t[0]=1-f-d,t[1]=c+y,t[2]=h-g,t[3]=0,t[4]=c-y,t[5]=1-u-d,t[6]=p+v,t[7]=0,t[8]=h+g,t[9]=p-v,t[10]=1-u-f,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},7280:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=n+n,l=i+i,u=a+a,c=n*s,f=n*l,h=n*u,p=i*l,d=i*u,v=a*u,g=o*s,y=o*l,m=o*u;return t[0]=1-(p+v),t[1]=f+m,t[2]=h-y,t[3]=0,t[4]=f-m,t[5]=1-(c+v),t[6]=d+g,t[7]=0,t[8]=h+y,t[9]=d-g,t[10]=1-(c+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}},9947:function(t){t.exports=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},7437:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],u=e[7],c=e[8],f=e[9],h=e[10],p=e[11],d=e[12],v=e[13],g=e[14],y=e[15],m=r*s-n*o,x=r*l-i*o,b=r*u-a*o,_=n*l-i*s,w=n*u-a*s,T=i*u-a*l,k=c*v-f*d,A=c*g-h*d,M=c*y-p*d,S=f*g-h*v,E=f*y-p*v,L=h*y-p*g,C=m*L-x*E+b*S+_*M-w*A+T*k;return C?(C=1/C,t[0]=(s*L-l*E+u*S)*C,t[1]=(i*E-n*L-a*S)*C,t[2]=(v*T-g*w+y*_)*C,t[3]=(h*w-f*T-p*_)*C,t[4]=(l*M-o*L-u*A)*C,t[5]=(r*L-i*M+a*A)*C,t[6]=(g*b-d*T-y*x)*C,t[7]=(c*T-h*b+p*x)*C,t[8]=(o*E-s*M+u*k)*C,t[9]=(n*M-r*E-a*k)*C,t[10]=(d*w-v*b+y*m)*C,t[11]=(f*b-c*w-p*m)*C,t[12]=(s*A-o*S-l*k)*C,t[13]=(r*S-n*A+i*k)*C,t[14]=(v*x-d*_-g*m)*C,t[15]=(c*_-f*x+h*m)*C,t):null}},3012:function(t,e,r){var n=r(9947);t.exports=function(t,e,r,i){var a,o,s,l,u,c,f,h,p,d,v=e[0],g=e[1],y=e[2],m=i[0],x=i[1],b=i[2],_=r[0],w=r[1],T=r[2];return Math.abs(v-_)<1e-6&&Math.abs(g-w)<1e-6&&Math.abs(y-T)<1e-6?n(t):(f=v-_,h=g-w,p=y-T,a=x*(p*=d=1/Math.sqrt(f*f+h*h+p*p))-b*(h*=d),o=b*(f*=d)-m*p,s=m*h-x*f,(d=Math.sqrt(a*a+o*o+s*s))?(a*=d=1/d,o*=d,s*=d):(a=0,o=0,s=0),l=h*s-p*o,u=p*a-f*s,c=f*o-h*a,(d=Math.sqrt(l*l+u*u+c*c))?(l*=d=1/d,u*=d,c*=d):(l=0,u=0,c=0),t[0]=a,t[1]=l,t[2]=f,t[3]=0,t[4]=o,t[5]=u,t[6]=h,t[7]=0,t[8]=s,t[9]=c,t[10]=p,t[11]=0,t[12]=-(a*v+o*g+s*y),t[13]=-(l*v+u*g+c*y),t[14]=-(f*v+h*g+p*y),t[15]=1,t)}},104:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],f=e[8],h=e[9],p=e[10],d=e[11],v=e[12],g=e[13],y=e[14],m=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*v,t[1]=x*i+b*l+_*h+w*g,t[2]=x*a+b*u+_*p+w*y,t[3]=x*o+b*c+_*d+w*m,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*f+w*v,t[5]=x*i+b*l+_*h+w*g,t[6]=x*a+b*u+_*p+w*y,t[7]=x*o+b*c+_*d+w*m,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*f+w*v,t[9]=x*i+b*l+_*h+w*g,t[10]=x*a+b*u+_*p+w*y,t[11]=x*o+b*c+_*d+w*m,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*f+w*v,t[13]=x*i+b*l+_*h+w*g,t[14]=x*a+b*u+_*p+w*y,t[15]=x*o+b*c+_*d+w*m,t}},5268:function(t){t.exports=function(t,e,r,n,i,a,o){var s=1/(e-r),l=1/(n-i),u=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*l,t[14]=(o+a)*u,t[15]=1,t}},1120:function(t){t.exports=function(t,e,r,n,i){var a=1/Math.tan(e/2),o=1/(n-i);return t[0]=a/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(i+n)*o,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*i*n*o,t[15]=0,t}},4422:function(t){t.exports=function(t,e,r,n){var i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S,E=n[0],L=n[1],C=n[2],P=Math.sqrt(E*E+L*L+C*C);return Math.abs(P)<1e-6?null:(E*=P=1/P,L*=P,C*=P,i=Math.sin(r),o=1-(a=Math.cos(r)),s=e[0],l=e[1],u=e[2],c=e[3],f=e[4],h=e[5],p=e[6],d=e[7],v=e[8],g=e[9],y=e[10],m=e[11],x=E*E*o+a,b=L*E*o+C*i,_=C*E*o-L*i,w=E*L*o-C*i,T=L*L*o+a,k=C*L*o+E*i,A=E*C*o+L*i,M=L*C*o-E*i,S=C*C*o+a,t[0]=s*x+f*b+v*_,t[1]=l*x+h*b+g*_,t[2]=u*x+p*b+y*_,t[3]=c*x+d*b+m*_,t[4]=s*w+f*T+v*k,t[5]=l*w+h*T+g*k,t[6]=u*w+p*T+y*k,t[7]=c*w+d*T+m*k,t[8]=s*A+f*M+v*S,t[9]=l*A+h*M+g*S,t[10]=u*A+p*M+y*S,t[11]=c*A+d*M+m*S,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}},6109:function(t){t.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[4],o=e[5],s=e[6],l=e[7],u=e[8],c=e[9],f=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=a*i+u*n,t[5]=o*i+c*n,t[6]=s*i+f*n,t[7]=l*i+h*n,t[8]=u*i-a*n,t[9]=c*i-o*n,t[10]=f*i-s*n,t[11]=h*i-l*n,t}},7115:function(t){t.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],u=e[8],c=e[9],f=e[10],h=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i-u*n,t[1]=o*i-c*n,t[2]=s*i-f*n,t[3]=l*i-h*n,t[8]=a*n+u*i,t[9]=o*n+c*i,t[10]=s*n+f*i,t[11]=l*n+h*i,t}},5240:function(t){t.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],u=e[4],c=e[5],f=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i+u*n,t[1]=o*i+c*n,t[2]=s*i+f*n,t[3]=l*i+h*n,t[4]=u*i-a*n,t[5]=c*i-o*n,t[6]=f*i-s*n,t[7]=h*i-l*n,t}},3668:function(t){t.exports=function(t,e,r){var n=r[0],i=r[1],a=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}},998:function(t){t.exports=function(t,e,r){var n,i,a,o,s,l,u,c,f,h,p,d,v=r[0],g=r[1],y=r[2];return e===t?(t[12]=e[0]*v+e[4]*g+e[8]*y+e[12],t[13]=e[1]*v+e[5]*g+e[9]*y+e[13],t[14]=e[2]*v+e[6]*g+e[10]*y+e[14],t[15]=e[3]*v+e[7]*g+e[11]*y+e[15]):(n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],f=e[8],h=e[9],p=e[10],d=e[11],t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t[6]=u,t[7]=c,t[8]=f,t[9]=h,t[10]=p,t[11]=d,t[12]=n*v+s*g+f*y+e[12],t[13]=i*v+l*g+h*y+e[13],t[14]=a*v+u*g+p*y+e[14],t[15]=o*v+c*g+d*y+e[15]),t}},2142:function(t){t.exports=function(t,e){if(t===e){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],s=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[11]=e[14],t[12]=i,t[13]=o,t[14]=s}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}},4340:function(t,e,r){"use strict";var n=r(957),i=r(7309);function a(t,e){for(var r=[0,0,0,0],n=0;n<4;++n)for(var i=0;i<4;++i)r[i]+=t[4*n+i]*e[n];return r}function o(t,e,r,n,i){for(var o=a(n,a(r,a(e,[t[0],t[1],t[2],1]))),s=0;s<3;++s)o[s]/=o[3];return[.5*i[0]*(1+o[0]),.5*i[1]*(1-o[1])]}function s(t,e){for(var r=[0,0,0],n=0;n<t.length;++n)for(var i=t[n],a=e[n],o=0;o<3;++o)r[o]+=a*i[o];return r}t.exports=function(t,e,r,a,l,u){if(1===t.length)return[0,t[0].slice()];for(var c=new Array(t.length),f=0;f<t.length;++f)c[f]=o(t[f],r,a,l,u);var h=0,p=1/0;for(f=0;f<c.length;++f){for(var d=0,v=0;v<2;++v)d+=Math.pow(c[f][v]-e[v],2);d<p&&(p=d,h=f)}var g=function(t,e){if(2===t.length){for(var r=0,a=0,o=0;o<2;++o)r+=Math.pow(e[o]-t[0][o],2),a+=Math.pow(e[o]-t[1][o],2);return(r=Math.sqrt(r))+(a=Math.sqrt(a))<1e-6?[1,0]:[a/(r+a),r/(a+r)]}if(3===t.length){var s=[0,0];return i(t[0],t[1],t[2],e,s),n(t,s)}return[]}(c,e),y=0;for(f=0;f<3;++f){if(g[f]<-.001||g[f]>1.0001)return null;y+=g[f]}return Math.abs(y-1)>.001?null:[h,s(t,g),g]}},2056:function(t,e,r){var n=r(6832),i=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, normal;\nattribute vec4 color;\nattribute vec2 uv;\n\nuniform mat4 model\n           , view\n           , projection\n           , inverseModel;\nuniform vec3 eyePosition\n           , lightPosition;\n\nvarying vec3 f_normal\n           , f_lightDirection\n           , f_eyeDirection\n           , f_data;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvec4 project(vec3 p) {\n  return projection * view * model * vec4(p, 1.0);\n}\n\nvoid main() {\n  gl_Position      = project(position);\n\n  //Lighting geometry parameters\n  vec4 cameraCoordinate = view * vec4(position , 1.0);\n  cameraCoordinate.xyz /= cameraCoordinate.w;\n  f_lightDirection = lightPosition - cameraCoordinate.xyz;\n  f_eyeDirection   = eyePosition - cameraCoordinate.xyz;\n  f_normal  = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n  f_color          = color;\n  f_data           = position;\n  f_uv             = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n  float NdotH = max(x, 0.0001);\n  float cos2Alpha = NdotH * NdotH;\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n  float roughness2 = roughness * roughness;\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n  return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n  vec3 lightDirection,\n  vec3 viewDirection,\n  vec3 surfaceNormal,\n  float roughness,\n  float fresnel) {\n\n  float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n  float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n  //Half angle vector\n  vec3 H = normalize(lightDirection + viewDirection);\n\n  //Geometric term\n  float NdotH = max(dot(surfaceNormal, H), 0.0);\n  float VdotH = max(dot(viewDirection, H), 0.000001);\n  float LdotH = max(dot(lightDirection, H), 0.000001);\n  float G1 = (2.0 * NdotH * VdotN) / VdotH;\n  float G2 = (2.0 * NdotH * LdotN) / LdotH;\n  float G = min(1.0, min(G1, G2));\n  \n  //Distribution term\n  float D = beckmannDistribution(NdotH, roughness);\n\n  //Fresnel term\n  float F = pow(1.0 - VdotN, fresnel);\n\n  //Multiply terms and done\n  return  G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\n//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness\n            , fresnel\n            , kambient\n            , kdiffuse\n            , kspecular;\nuniform sampler2D texture;\n\nvarying vec3 f_normal\n           , f_lightDirection\n           , f_eyeDirection\n           , f_data;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n  if (f_color.a == 0.0 ||\n    outOfRange(clipBounds[0], clipBounds[1], f_data)\n  ) discard;\n\n  vec3 N = normalize(f_normal);\n  vec3 L = normalize(f_lightDirection);\n  vec3 V = normalize(f_eyeDirection);\n\n  if(gl_FrontFacing) {\n    N = -N;\n  }\n\n  float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n  //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d\n\n  float diffuse  = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n  vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);\n  vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular,  1.0);\n\n  gl_FragColor = litColor * f_color.a;\n}\n"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 uv;\n\nuniform mat4 model, view, projection;\n\nvarying vec4 f_color;\nvarying vec3 f_data;\nvarying vec2 f_uv;\n\nvoid main() {\n  gl_Position = projection * view * model * vec4(position, 1.0);\n  f_color = color;\n  f_data  = position;\n  f_uv    = uv;\n}"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform sampler2D texture;\nuniform float opacity;\n\nvarying vec4 f_color;\nvarying vec3 f_data;\nvarying vec2 f_uv;\n\nvoid main() {\n  if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\n\n  gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),l=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 uv;\nattribute float pointSize;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n    gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);\n  } else {\n    gl_Position = projection * view * model * vec4(position, 1.0);\n  }\n  gl_PointSize = pointSize;\n  f_color = color;\n  f_uv = uv;\n}"]),u=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform sampler2D texture;\nuniform float opacity;\n\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n  vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);\n  if(dot(pointR, pointR) > 0.25) {\n    discard;\n  }\n  gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),c=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n  gl_Position = projection * view * model * vec4(position, 1.0);\n  f_id        = id;\n  f_position  = position;\n}"]),f=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3  clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n  gl_FragColor = vec4(pickId, f_id.xyz);\n}"]),h=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3  position;\nattribute float pointSize;\nattribute vec4  id;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n    gl_Position = vec4(0.0, 0.0, 0.0, 0.0);\n  } else {\n    gl_Position  = projection * view * model * vec4(position, 1.0);\n    gl_PointSize = pointSize;\n  }\n  f_id         = id;\n  f_position   = position;\n}"]),p=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\n\nuniform mat4 model, view, projection;\n\nvoid main() {\n  gl_Position = projection * view * model * vec4(position, 1.0);\n}"]),d=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec3 contourColor;\n\nvoid main() {\n  gl_FragColor = vec4(contourColor, 1.0);\n}\n"]);e.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},e.wireShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},e.pointShader={vertex:l,fragment:u,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"pointSize",type:"float"}]},e.pickShader={vertex:c,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"id",type:"vec4"}]},e.pointPickShader={vertex:h,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"pointSize",type:"float"},{name:"id",type:"vec4"}]},e.contourShader={vertex:p,fragment:d,attributes:[{name:"position",type:"vec3"}]}},8116:function(t,e,r){"use strict";var n=r(5158),i=r(5827),a=r(2944),o=r(8931),s=r(115),l=r(104),u=r(7437),c=r(5050),f=r(9156),h=r(7212),p=r(5306),d=r(2056),v=r(4340),g=d.meshShader,y=d.wireShader,m=d.pointShader,x=d.pickShader,b=d.pointPickShader,_=d.contourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function T(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,T,k,A,M,S){this.gl=t,this.pixelRatio=1,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=i,this.pickShader=a,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleColors=c,this.triangleNormals=h,this.triangleUVs=f,this.triangleIds=u,this.triangleVAO=p,this.triangleCount=0,this.lineWidth=1,this.edgePositions=d,this.edgeColors=g,this.edgeUVs=y,this.edgeIds=v,this.edgeVAO=m,this.edgeCount=0,this.pointPositions=x,this.pointColors=_,this.pointUVs=T,this.pointSizes=k,this.pointIds=b,this.pointVAO=A,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=M,this.contourVAO=S,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!0,this.pickVertex=!0,this.pickId=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lightPosition=[1e5,1e5,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.opacity=1,this.hasAlpha=!1,this.opacityscale=!1,this._model=w,this._view=w,this._projection=w,this._resolution=[1,1]}var k=T.prototype;function A(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;r<e.length;++r){if(e.length<2)return 1;if(e[r][0]===t)return e[r][1];if(e[r][0]>t&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}function M(t){var e=n(t,g.vertex,g.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.normal.location=4,e}function S(t){var e=n(t,y.vertex,y.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e}function E(t){var e=n(t,m.vertex,m.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.pointSize.location=4,e}function L(t){var e=n(t,x.vertex,x.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e}function C(t){var e=n(t,b.vertex,b.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.pointSize.location=4,e}function P(t){var e=n(t,_.vertex,_.fragment);return e.attributes.position.location=0,e}k.isOpaque=function(){return!this.hasAlpha},k.isTransparent=function(){return this.hasAlpha},k.pickSlots=1,k.setPickBase=function(t){this.pickId=t},k.highlight=function(t){if(t&&this.contourEnable){for(var e=h(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=p.mallocFloat32(6*a),s=0,l=0;l<a;++l)for(var u=r[l],c=0;c<2;++c){var f=u[0];2===u.length&&(f=u[c]);for(var d=n[f][0],v=n[f][1],g=i[f],y=1-g,m=this.positions[d],x=this.positions[v],b=0;b<3;++b)o[s++]=g*m[b]+y*x[b]}this.contourCount=s/3|0,this.contourPositions.update(o.subarray(0,s)),p.free(o)}else this.contourCount=0},k.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,"contourEnable"in t&&(this.contourEnable=t.contourEnable),"contourColor"in t&&(this.contourColor=t.contourColor),"lineWidth"in t&&(this.lineWidth=t.lineWidth),"lightPosition"in t&&(this.lightPosition=t.lightPosition),this.hasAlpha=!1,"opacity"in t&&(this.opacity=t.opacity,this.opacity<1&&(this.hasAlpha=!0)),"opacityscale"in t&&(this.opacityscale=t.opacityscale,this.hasAlpha=!0),"ambient"in t&&(this.ambientLight=t.ambient),"diffuse"in t&&(this.diffuseLight=t.diffuse),"specular"in t&&(this.specularLight=t.specular),"roughness"in t&&(this.roughness=t.roughness),"fresnel"in t&&(this.fresnel=t.fresnel),t.texture?(this.texture.dispose(),this.texture=o(e,t.texture)):t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t,e){for(var r=f({colormap:t,nshades:256,format:"rgba"}),n=new Uint8Array(1024),i=0;i<256;++i){for(var a=r[i],o=0;o<3;++o)n[4*i+o]=a[o];n[4*i+3]=e?255*A(i/255,e):255*a[3]}return c(n,[256,256,4],[4,0,1])}(t.colormap,this.opacityscale)),this.texture.generateMipmap());var r=t.cells,n=t.positions;if(n&&r){var i=[],a=[],l=[],u=[],h=[],p=[],d=[],v=[],g=[],y=[],m=[],x=[],b=[],_=[];this.cells=r,this.positions=n;var w=t.vertexNormals,T=t.cellNormals,k=void 0===t.vertexNormalsEpsilon?1e-6:t.vertexNormalsEpsilon,M=void 0===t.faceNormalsEpsilon?1e-6:t.faceNormalsEpsilon;t.useFacetNormals&&!T&&(T=s.faceNormals(r,n,M)),T||w||(w=s.vertexNormals(r,n,k));var S=t.vertexColors,E=t.cellColors,L=t.meshColor||[1,1,1,1],C=t.vertexUVs,P=t.vertexIntensity,O=t.cellUVs,I=t.cellIntensity,D=1/0,z=-1/0;if(!C&&!O)if(P)if(t.vertexIntensityBounds)D=+t.vertexIntensityBounds[0],z=+t.vertexIntensityBounds[1];else for(var R=0;R<P.length;++R){var F=P[R];D=Math.min(D,F),z=Math.max(z,F)}else if(I)if(t.cellIntensityBounds)D=+t.cellIntensityBounds[0],z=+t.cellIntensityBounds[1];else for(R=0;R<I.length;++R)F=I[R],D=Math.min(D,F),z=Math.max(z,F);else for(R=0;R<n.length;++R)F=n[R][2],D=Math.min(D,F),z=Math.max(z,F);this.intensity=P||I||function(t){for(var e=t.length,r=new Array(e),n=0;n<e;++n)r[n]=t[n][2];return r}(n),this.pickVertex=!(I||E);var B=t.pointSizes,N=t.pointSize||1;for(this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],R=0;R<n.length;++R)for(var j=n[R],U=0;U<3;++U)!isNaN(j[U])&&isFinite(j[U])&&(this.bounds[0][U]=Math.min(this.bounds[0][U],j[U]),this.bounds[1][U]=Math.max(this.bounds[1][U],j[U]));var V=0,H=0,q=0;t:for(R=0;R<r.length;++R){var G=r[R];switch(G.length){case 1:for(j=n[Y=G[0]],U=0;U<3;++U)if(isNaN(j[U])||!isFinite(j[U]))continue t;y.push(j[0],j[1],j[2]),W=S?S[Y]:E?E[R]:L,this.opacityscale&&P?a.push(W[0],W[1],W[2],this.opacity*A((P[Y]-D)/(z-D),this.opacityscale)):3===W.length?m.push(W[0],W[1],W[2],this.opacity):(m.push(W[0],W[1],W[2],W[3]*this.opacity),W[3]<1&&(this.hasAlpha=!0)),X=C?C[Y]:P?[(P[Y]-D)/(z-D),0]:O?O[R]:I?[(I[R]-D)/(z-D),0]:[(j[2]-D)/(z-D),0],x.push(X[0],X[1]),B?b.push(B[Y]):b.push(N),_.push(R),q+=1;break;case 2:for(U=0;U<2;++U){j=n[Y=G[U]];for(var Z=0;Z<3;++Z)if(isNaN(j[Z])||!isFinite(j[Z]))continue t}for(U=0;U<2;++U)j=n[Y=G[U]],p.push(j[0],j[1],j[2]),W=S?S[Y]:E?E[R]:L,this.opacityscale&&P?a.push(W[0],W[1],W[2],this.opacity*A((P[Y]-D)/(z-D),this.opacityscale)):3===W.length?d.push(W[0],W[1],W[2],this.opacity):(d.push(W[0],W[1],W[2],W[3]*this.opacity),W[3]<1&&(this.hasAlpha=!0)),X=C?C[Y]:P?[(P[Y]-D)/(z-D),0]:O?O[R]:I?[(I[R]-D)/(z-D),0]:[(j[2]-D)/(z-D),0],v.push(X[0],X[1]),g.push(R);H+=1;break;case 3:for(U=0;U<3;++U)for(j=n[Y=G[U]],Z=0;Z<3;++Z)if(isNaN(j[Z])||!isFinite(j[Z]))continue t;for(U=0;U<3;++U){var Y,W,X,J;j=n[Y=G[2-U]],i.push(j[0],j[1],j[2]),(W=S?S[Y]:E?E[R]:L)?this.opacityscale&&P?a.push(W[0],W[1],W[2],this.opacity*A((P[Y]-D)/(z-D),this.opacityscale)):3===W.length?a.push(W[0],W[1],W[2],this.opacity):(a.push(W[0],W[1],W[2],W[3]*this.opacity),W[3]<1&&(this.hasAlpha=!0)):a.push(.5,.5,.5,1),X=C?C[Y]:P?[(P[Y]-D)/(z-D),0]:O?O[R]:I?[(I[R]-D)/(z-D),0]:[(j[2]-D)/(z-D),0],u.push(X[0],X[1]),J=w?w[Y]:T[R],l.push(J[0],J[1],J[2]),h.push(R)}V+=1}}this.pointCount=q,this.edgeCount=H,this.triangleCount=V,this.pointPositions.update(y),this.pointColors.update(m),this.pointUVs.update(x),this.pointSizes.update(b),this.pointIds.update(new Uint32Array(_)),this.edgePositions.update(p),this.edgeColors.update(d),this.edgeUVs.update(v),this.edgeIds.update(new Uint32Array(g)),this.trianglePositions.update(i),this.triangleColors.update(a),this.triangleUVs.update(u),this.triangleNormals.update(l),this.triangleIds.update(new Uint32Array(h))}},k.drawTransparent=k.draw=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,i=t.projection||w,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);var s={model:r,view:n,projection:i,inverseModel:w.slice(),clipBounds:a,kambient:this.ambientLight,kdiffuse:this.diffuseLight,kspecular:this.specularLight,roughness:this.roughness,fresnel:this.fresnel,eyePosition:[0,0,0],lightPosition:[0,0,0],contourColor:this.contourColor,texture:0};s.inverseModel=u(s.inverseModel,s.model),e.disable(e.CULL_FACE),this.texture.bind(0);var c=new Array(16);for(l(c,s.view,s.model),l(c,s.projection,c),u(c,c),o=0;o<3;++o)s.eyePosition[o]=c[12+o]/c[15];var f,h=c[15];for(o=0;o<3;++o)h+=this.lightPosition[o]*c[4*o+3];for(o=0;o<3;++o){for(var p=c[12+o],d=0;d<3;++d)p+=c[4*d+o]*this.lightPosition[d];s.lightPosition[o]=p/h}this.triangleCount>0&&((f=this.triShader).bind(),f.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&this.lineWidth>0&&((f=this.lineShader).bind(),f.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0&&((f=this.pointShader).bind(),f.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind()),this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((f=this.contourShader).bind(),f.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},k.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,i=t.projection||w,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,pickId:this.pickId/255};(s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},k.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;for(var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions,i=new Array(r.length),a=0;a<r.length;++a)i[a]=n[r[a]];var o=t.coord[0],s=t.coord[1];if(!this.pickVertex){var l=this.positions[r[0]],u=this.positions[r[1]],c=this.positions[r[2]],f=[(l[0]+u[0]+c[0])/3,(l[1]+u[1]+c[1])/3,(l[2]+u[2]+c[2])/3];return{_cellCenter:!0,position:[o,s],index:e,cell:r,cellId:e,intensity:this.intensity[e],dataCoordinate:f}}var h=v(i,[o*this.pixelRatio,this._resolution[1]-s*this.pixelRatio],this._model,this._view,this._projection,this._resolution);if(!h)return null;var p=h[2],d=0;for(a=0;a<r.length;++a)d+=p[a]*this.intensity[r[a]];return{position:h[1],index:r[h[0]],cell:r,cellId:e,intensity:d,dataCoordinate:this.positions[r[h[0]]]}},k.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.lineShader.dispose(),this.pointShader.dispose(),this.pickShader.dispose(),this.pointPickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleNormals.dispose(),this.triangleIds.dispose(),this.edgeVAO.dispose(),this.edgePositions.dispose(),this.edgeColors.dispose(),this.edgeUVs.dispose(),this.edgeIds.dispose(),this.pointVAO.dispose(),this.pointPositions.dispose(),this.pointColors.dispose(),this.pointUVs.dispose(),this.pointSizes.dispose(),this.pointIds.dispose(),this.contourVAO.dispose(),this.contourPositions.dispose(),this.contourShader.dispose()},t.exports=function(t,e){1===arguments.length&&(t=(e=t).gl);var r=t.getExtension("OES_standard_derivatives")||t.getExtension("MOZ_OES_standard_derivatives")||t.getExtension("WEBKIT_OES_standard_derivatives");if(!r)throw new Error("derivatives not supported");var n=M(t),s=S(t),l=E(t),u=L(t),f=C(t),h=P(t),p=o(t,c(new Uint8Array([255,255,255,255]),[1,1,4]));p.generateMipmap(),p.minFilter=t.LINEAR_MIPMAP_LINEAR,p.magFilter=t.LINEAR;var d=i(t),v=i(t),g=i(t),y=i(t),m=i(t),x=a(t,[{buffer:d,type:t.FLOAT,size:3},{buffer:m,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:v,type:t.FLOAT,size:4},{buffer:g,type:t.FLOAT,size:2},{buffer:y,type:t.FLOAT,size:3}]),b=i(t),_=i(t),w=i(t),k=i(t),A=a(t,[{buffer:b,type:t.FLOAT,size:3},{buffer:k,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:_,type:t.FLOAT,size:4},{buffer:w,type:t.FLOAT,size:2}]),O=i(t),I=i(t),D=i(t),z=i(t),R=i(t),F=a(t,[{buffer:O,type:t.FLOAT,size:3},{buffer:R,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:I,type:t.FLOAT,size:4},{buffer:D,type:t.FLOAT,size:2},{buffer:z,type:t.FLOAT,size:1}]),B=i(t),N=a(t,[{buffer:B,type:t.FLOAT,size:3}]),j=new T(t,p,n,s,l,u,f,h,d,m,v,g,y,x,b,k,_,w,A,O,R,I,D,z,F,B,N);return j.update(e),j}},4554:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl;return new o(t,n(e,[0,0,0,1,1,0,1,1]),i(e,a.boxVert,a.lineFrag))};var n=r(5827),i=r(5158),a=r(2709);function o(t,e,r){this.plot=t,this.vbo=e,this.shader=r}var s,l,u=o.prototype;u.bind=function(){var t=this.shader;this.vbo.bind(),this.shader.bind(),t.attributes.coord.pointer(),t.uniforms.screenBox=this.plot.screenBox},u.drawBox=(s=[0,0],l=[0,0],function(t,e,r,n,i){var a=this.plot,o=this.shader,u=a.gl;s[0]=t,s[1]=e,l[0]=r,l[1]=n,o.uniforms.lo=s,o.uniforms.hi=l,o.uniforms.color=i,u.drawArrays(u.TRIANGLE_STRIP,0,4)}),u.dispose=function(){this.vbo.dispose(),this.shader.dispose()}},3016:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl;return new s(t,n(e),i(e,o.gridVert,o.gridFrag),i(e,o.tickVert,o.gridFrag))};var n=r(5827),i=r(5158),a=r(5070),o=r(2709);function s(t,e,r,n){this.plot=t,this.vbo=e,this.shader=r,this.tickShader=n,this.ticks=[[],[]]}function l(t,e){return t-e}var u,c,f,h,p,d=s.prototype;d.draw=(u=[0,0],c=[0,0],f=[0,0],function(){for(var t=this.plot,e=this.vbo,r=this.shader,n=this.ticks,i=t.gl,a=t._tickBounds,o=t.dataBox,s=t.viewBox,l=t.gridLineWidth,h=t.gridLineColor,p=t.gridLineEnable,d=t.pixelRatio,v=0;v<2;++v){var g=a[v],y=a[v+2]-g,m=.5*(o[v+2]+o[v]),x=o[v+2]-o[v];c[v]=2*y/x,u[v]=2*(g-m)/x}r.bind(),e.bind(),r.attributes.dataCoord.pointer(),r.uniforms.dataShift=u,r.uniforms.dataScale=c;var b=0;for(v=0;v<2;++v){f[0]=f[1]=0,f[v]=1,r.uniforms.dataAxis=f,r.uniforms.lineWidth=l[v]/(s[v+2]-s[v])*d,r.uniforms.color=h[v];var _=6*n[v].length;p[v]&&_&&i.drawArrays(i.TRIANGLES,b,_),b+=_}}),d.drawTickMarks=function(){var t=[0,0],e=[0,0],r=[1,0],n=[0,1],i=[0,0],o=[0,0];return function(){for(var s=this.plot,u=this.vbo,c=this.tickShader,f=this.ticks,h=s.gl,p=s._tickBounds,d=s.dataBox,v=s.viewBox,g=s.pixelRatio,y=s.screenBox,m=y[2]-y[0],x=y[3]-y[1],b=v[2]-v[0],_=v[3]-v[1],w=0;w<2;++w){var T=p[w],k=p[w+2]-T,A=.5*(d[w+2]+d[w]),M=d[w+2]-d[w];e[w]=2*k/M,t[w]=2*(T-A)/M}e[0]*=b/m,t[0]*=b/m,e[1]*=_/x,t[1]*=_/x,c.bind(),u.bind(),c.attributes.dataCoord.pointer();var S=c.uniforms;S.dataShift=t,S.dataScale=e;var E=s.tickMarkLength,L=s.tickMarkWidth,C=s.tickMarkColor,P=6*f[0].length,O=Math.min(a.ge(f[0],(d[0]-p[0])/(p[2]-p[0]),l),f[0].length),I=Math.min(a.gt(f[0],(d[2]-p[0])/(p[2]-p[0]),l),f[0].length),D=0+6*O,z=6*Math.max(0,I-O),R=Math.min(a.ge(f[1],(d[1]-p[1])/(p[3]-p[1]),l),f[1].length),F=Math.min(a.gt(f[1],(d[3]-p[1])/(p[3]-p[1]),l),f[1].length),B=P+6*R,N=6*Math.max(0,F-R);i[0]=2*(v[0]-E[1])/m-1,i[1]=(v[3]+v[1])/x-1,o[0]=E[1]*g/m,o[1]=L[1]*g/x,N&&(S.color=C[1],S.tickScale=o,S.dataAxis=n,S.screenOffset=i,h.drawArrays(h.TRIANGLES,B,N)),i[0]=(v[2]+v[0])/m-1,i[1]=2*(v[1]-E[0])/x-1,o[0]=L[0]*g/m,o[1]=E[0]*g/x,z&&(S.color=C[0],S.tickScale=o,S.dataAxis=r,S.screenOffset=i,h.drawArrays(h.TRIANGLES,D,z)),i[0]=2*(v[2]+E[3])/m-1,i[1]=(v[3]+v[1])/x-1,o[0]=E[3]*g/m,o[1]=L[3]*g/x,N&&(S.color=C[3],S.tickScale=o,S.dataAxis=n,S.screenOffset=i,h.drawArrays(h.TRIANGLES,B,N)),i[0]=(v[2]+v[0])/m-1,i[1]=2*(v[3]+E[2])/x-1,o[0]=L[2]*g/m,o[1]=E[2]*g/x,z&&(S.color=C[2],S.tickScale=o,S.dataAxis=r,S.screenOffset=i,h.drawArrays(h.TRIANGLES,D,z))}}(),d.update=(h=[1,1,-1,-1,1,-1],p=[1,-1,1,1,-1,-1],function(t){for(var e=t.ticks,r=t.bounds,n=new Float32Array(18*(e[0].length+e[1].length)),i=(this.plot.zeroLineEnable,0),a=[[],[]],o=0;o<2;++o)for(var s=a[o],l=e[o],u=r[o],c=r[o+2],f=0;f<l.length;++f){var d=(l[f].x-u)/(c-u);s.push(d);for(var v=0;v<6;++v)n[i++]=d,n[i++]=h[v],n[i++]=p[v]}this.ticks=a,this.vbo.update(n)}),d.dispose=function(){this.vbo.dispose(),this.shader.dispose(),this.tickShader.dispose()}},1154:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl;return new o(t,n(e,[-1,-1,-1,1,1,-1,1,1]),i(e,a.lineVert,a.lineFrag))};var n=r(5827),i=r(5158),a=r(2709);function o(t,e,r){this.plot=t,this.vbo=e,this.shader=r}var s,l,u=o.prototype;u.bind=function(){var t=this.shader;this.vbo.bind(),this.shader.bind(),t.attributes.coord.pointer(),t.uniforms.screenBox=this.plot.screenBox},u.drawLine=(s=[0,0],l=[0,0],function(t,e,r,n,i,a){var o=this.plot,u=this.shader,c=o.gl;s[0]=t,s[1]=e,l[0]=r,l[1]=n,u.uniforms.start=s,u.uniforms.end=l,u.uniforms.width=i*o.pixelRatio,u.uniforms.color=a,c.drawArrays(c.TRIANGLE_STRIP,0,4)}),u.dispose=function(){this.vbo.dispose(),this.shader.dispose()}},2709:function(t,e,r){"use strict";var n=r(6832),i=n(["precision lowp float;\n#define GLSLIFY 1\nuniform vec4 color;\nvoid main() {\n  gl_FragColor = vec4(color.xyz * color.w, color.w);\n}\n"]);t.exports={lineVert:n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 coord;\n\nuniform vec4 screenBox;\nuniform vec2 start, end;\nuniform float width;\n\nvec2 perp(vec2 v) {\n  return vec2(v.y, -v.x);\n}\n\nvec2 screen(vec2 v) {\n  return 2.0 * (v - screenBox.xy) / (screenBox.zw - screenBox.xy) - 1.0;\n}\n\nvoid main() {\n  vec2 delta = normalize(perp(start - end));\n  vec2 offset = mix(start, end, 0.5 * (coord.y+1.0));\n  gl_Position = vec4(screen(offset + 0.5 * width * delta * coord.x), 0, 1);\n}\n"]),lineFrag:i,textVert:n(["#define GLSLIFY 1\nattribute vec3 textCoordinate;\n\nuniform vec2 dataScale, dataShift, dataAxis, screenOffset, textScale;\nuniform float angle;\n\nvoid main() {\n  float dataOffset  = textCoordinate.z;\n  vec2 glyphOffset  = textCoordinate.xy;\n  mat2 glyphMatrix = mat2(cos(angle), sin(angle), -sin(angle), cos(angle));\n  vec2 screenCoordinate = dataAxis * (dataScale * dataOffset + dataShift) +\n    glyphMatrix * glyphOffset * textScale + screenOffset;\n  gl_Position = vec4(screenCoordinate, 0, 1);\n}\n"]),textFrag:i,gridVert:n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec3 dataCoord;\n\nuniform vec2 dataAxis, dataShift, dataScale;\nuniform float lineWidth;\n\nvoid main() {\n  vec2 pos = dataAxis * (dataScale * dataCoord.x + dataShift);\n  pos += 10.0 * dataCoord.y * vec2(dataAxis.y, -dataAxis.x) + dataCoord.z * lineWidth;\n  gl_Position = vec4(pos, 0, 1);\n}\n"]),gridFrag:i,boxVert:n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 coord;\n\nuniform vec4 screenBox;\nuniform vec2 lo, hi;\n\nvec2 screen(vec2 v) {\n  return 2.0 * (v - screenBox.xy) / (screenBox.zw - screenBox.xy) - 1.0;\n}\n\nvoid main() {\n  gl_Position = vec4(screen(mix(lo, hi, coord)), 0, 1);\n}\n"]),tickVert:n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec3 dataCoord;\n\nuniform vec2 dataAxis, dataShift, dataScale, screenOffset, tickScale;\n\nvoid main() {\n  vec2 pos = dataAxis * (dataScale * dataCoord.x + dataShift);\n  gl_Position = vec4(pos + tickScale*dataCoord.yz + screenOffset, 0, 1);\n}\n"])}},5613:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl;return new l(t,n(e),i(e,s.textVert,s.textFrag))};var n=r(5827),i=r(5158),a=r(6946),o=r(5070),s=r(2709);function l(t,e,r){this.plot=t,this.vbo=e,this.shader=r,this.tickOffset=[[],[]],this.tickX=[[],[]],this.labelOffset=[0,0],this.labelCount=[0,0]}var u,c,f,h,p,d,v=l.prototype;v.drawTicks=(u=[0,0],c=[0,0],f=[0,0],function(t){var e=this.plot,r=this.shader,n=this.tickX[t],i=this.tickOffset[t],a=e.gl,s=e.viewBox,l=e.dataBox,h=e.screenBox,p=e.pixelRatio,d=e.tickEnable,v=e.tickPad,g=e.tickColor,y=e.tickAngle,m=e.labelEnable,x=e.labelPad,b=e.labelColor,_=e.labelAngle,w=this.labelOffset[t],T=this.labelCount[t],k=o.lt(n,l[t]),A=o.le(n,l[t+2]);u[0]=u[1]=0,u[t]=1,c[t]=(s[2+t]+s[t])/(h[2+t]-h[t])-1;var M=2/h[2+(1^t)]-h[1^t];c[1^t]=M*s[1^t]-1,d[t]&&(c[1^t]-=M*p*v[t],k<A&&i[A]>i[k]&&(r.uniforms.dataAxis=u,r.uniforms.screenOffset=c,r.uniforms.color=g[t],r.uniforms.angle=y[t],a.drawArrays(a.TRIANGLES,i[k],i[A]-i[k]))),m[t]&&T&&(c[1^t]-=M*p*x[t],r.uniforms.dataAxis=f,r.uniforms.screenOffset=c,r.uniforms.color=b[t],r.uniforms.angle=_[t],a.drawArrays(a.TRIANGLES,w,T)),c[1^t]=M*s[2+(1^t)]-1,d[t+2]&&(c[1^t]+=M*p*v[t+2],k<A&&i[A]>i[k]&&(r.uniforms.dataAxis=u,r.uniforms.screenOffset=c,r.uniforms.color=g[t+2],r.uniforms.angle=y[t+2],a.drawArrays(a.TRIANGLES,i[k],i[A]-i[k]))),m[t+2]&&T&&(c[1^t]+=M*p*x[t+2],r.uniforms.dataAxis=f,r.uniforms.screenOffset=c,r.uniforms.color=b[t+2],r.uniforms.angle=_[t+2],a.drawArrays(a.TRIANGLES,w,T))}),v.drawTitle=function(){var t=[0,0],e=[0,0];return function(){var r=this.plot,n=this.shader,i=r.gl,a=r.screenBox,o=r.titleCenter,s=r.titleAngle,l=r.titleColor,u=r.pixelRatio;if(this.titleCount){for(var c=0;c<2;++c)e[c]=2*(o[c]*u-a[c])/(a[2+c]-a[c])-1;n.bind(),n.uniforms.dataAxis=t,n.uniforms.screenOffset=e,n.uniforms.angle=s,n.uniforms.color=l,i.drawArrays(i.TRIANGLES,this.titleOffset,this.titleCount)}}}(),v.bind=(h=[0,0],p=[0,0],d=[0,0],function(){var t=this.plot,e=this.shader,r=t._tickBounds,n=t.dataBox,i=t.screenBox,a=t.viewBox;e.bind();for(var o=0;o<2;++o){var s=r[o],l=r[o+2]-s,u=.5*(n[o+2]+n[o]),c=n[o+2]-n[o],f=a[o],v=a[o+2]-f,g=i[o],y=i[o+2]-g;p[o]=2*l/c*v/y,h[o]=2*(s-u)/c*v/y}d[1]=2*t.pixelRatio/(i[3]-i[1]),d[0]=d[1]*(i[3]-i[1])/(i[2]-i[0]),e.uniforms.dataScale=p,e.uniforms.dataShift=h,e.uniforms.textScale=d,this.vbo.bind(),e.attributes.textCoordinate.pointer()}),v.update=function(t){var e,r,n,i,o,s=[],l=t.ticks,u=t.bounds;for(o=0;o<2;++o){var c=[Math.floor(s.length/3)],f=[-1/0],h=l[o];for(e=0;e<h.length;++e){var p=h[e],d=p.x,v=p.text,g=p.font||"sans-serif";i=p.fontSize||12;for(var y=1/(u[o+2]-u[o]),m=u[o],x=v.split("\n"),b=0;b<x.length;b++)for(n=a(g,x[b]).data,r=0;r<n.length;r+=2)s.push(n[r]*i,-n[r+1]*i-b*i*1.2,(d-m)*y);c.push(Math.floor(s.length/3)),f.push(d)}this.tickOffset[o]=c,this.tickX[o]=f}for(o=0;o<2;++o){for(this.labelOffset[o]=Math.floor(s.length/3),n=a(t.labelFont[o],t.labels[o],{textAlign:"center"}).data,i=t.labelSize[o],e=0;e<n.length;e+=2)s.push(n[e]*i,-n[e+1]*i,0);this.labelCount[o]=Math.floor(s.length/3)-this.labelOffset[o]}for(this.titleOffset=Math.floor(s.length/3),n=a(t.titleFont,t.title).data,i=t.titleSize,e=0;e<n.length;e+=2)s.push(n[e]*i,-n[e+1]*i,0);this.titleCount=Math.floor(s.length/3)-this.titleOffset,this.vbo.update(s)},v.dispose=function(){this.vbo.dispose(),this.shader.dispose()}},2117:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl,r=new l(e,n(e,[e.drawingBufferWidth,e.drawingBufferHeight]));return r.grid=i(r),r.text=a(r),r.line=o(r),r.box=s(r),r.update(t),r};var n=r(2611),i=r(3016),a=r(5613),o=r(1154),s=r(4554);function l(t,e){this.gl=t,this.pickBuffer=e,this.screenBox=[0,0,t.drawingBufferWidth,t.drawingBufferHeight],this.viewBox=[0,0,0,0],this.dataBox=[-10,-10,10,10],this.gridLineEnable=[!0,!0],this.gridLineWidth=[1,1],this.gridLineColor=[[0,0,0,1],[0,0,0,1]],this.pixelRatio=1,this.tickMarkLength=[0,0,0,0],this.tickMarkWidth=[0,0,0,0],this.tickMarkColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[15,15,15,15],this.tickAngle=[0,0,0,0],this.tickEnable=[!0,!0,!0,!0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[15,15,15,15],this.labelAngle=[0,Math.PI/2,0,3*Math.PI/2],this.labelEnable=[!0,!0,!0,!0],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.titleCenter=[0,0],this.titleEnable=!0,this.titleAngle=0,this.titleColor=[0,0,0,1],this.borderColor=[0,0,0,0],this.backgroundColor=[0,0,0,0],this.zeroLineEnable=[!0,!0],this.zeroLineWidth=[4,4],this.zeroLineColor=[[0,0,0,1],[0,0,0,1]],this.borderLineEnable=[!0,!0,!0,!0],this.borderLineWidth=[2,2,2,2],this.borderLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.grid=null,this.text=null,this.line=null,this.box=null,this.objects=[],this.overlays=[],this._tickBounds=[1/0,1/0,-1/0,-1/0],this.static=!1,this.dirty=!1,this.pickDirty=!1,this.pickDelay=120,this.pickRadius=10,this._pickTimeout=null,this._drawPick=this.drawPick.bind(this),this._depthCounter=0}var u=l.prototype;function c(t){for(var e=t.slice(),r=0;r<e.length;++r)e[r]=e[r].slice();return e}function f(t,e){return t.x-e.x}u.setDirty=function(){this.dirty=this.pickDirty=!0},u.setOverlayDirty=function(){this.dirty=!0},u.nextDepthValue=function(){return this._depthCounter++/65536},u.draw=function(){var t=this.gl,e=this.screenBox,r=this.viewBox,n=this.dataBox,i=this.pixelRatio,a=this.grid,o=this.line,s=this.text,l=this.objects;if(this._depthCounter=0,this.pickDirty&&(this._pickTimeout&&clearTimeout(this._pickTimeout),this.pickDirty=!1,this._pickTimeout=setTimeout(this._drawPick,this.pickDelay)),this.dirty){if(this.dirty=!1,t.bindFramebuffer(t.FRAMEBUFFER,null),t.enable(t.SCISSOR_TEST),t.disable(t.DEPTH_TEST),t.depthFunc(t.LESS),t.depthMask(!1),t.enable(t.BLEND),t.blendEquation(t.FUNC_ADD,t.FUNC_ADD),t.blendFunc(t.ONE,t.ONE_MINUS_SRC_ALPHA),this.borderColor){t.scissor(e[0],e[1],e[2]-e[0],e[3]-e[1]);var u=this.borderColor;t.clearColor(u[0]*u[3],u[1]*u[3],u[2]*u[3],u[3]),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}t.scissor(r[0],r[1],r[2]-r[0],r[3]-r[1]),t.viewport(r[0],r[1],r[2]-r[0],r[3]-r[1]);var c=this.backgroundColor;t.clearColor(c[0]*c[3],c[1]*c[3],c[2]*c[3],c[3]),t.clear(t.COLOR_BUFFER_BIT),a.draw();var f=this.zeroLineEnable,h=this.zeroLineColor,p=this.zeroLineWidth;if(f[0]||f[1]){o.bind();for(var d=0;d<2;++d)if(f[d]&&n[d]<=0&&n[d+2]>=0){var v=e[d]-n[d]*(e[d+2]-e[d])/(n[d+2]-n[d]);0===d?o.drawLine(v,e[1],v,e[3],p[d],h[d]):o.drawLine(e[0],v,e[2],v,p[d],h[d])}}for(d=0;d<l.length;++d)l[d].draw();t.viewport(e[0],e[1],e[2]-e[0],e[3]-e[1]),t.scissor(e[0],e[1],e[2]-e[0],e[3]-e[1]),this.grid.drawTickMarks(),o.bind();var g=this.borderLineEnable,y=this.borderLineWidth,m=this.borderLineColor;for(g[1]&&o.drawLine(r[0],r[1]-.5*y[1]*i,r[0],r[3]+.5*y[3]*i,y[1],m[1]),g[0]&&o.drawLine(r[0]-.5*y[0]*i,r[1],r[2]+.5*y[2]*i,r[1],y[0],m[0]),g[3]&&o.drawLine(r[2],r[1]-.5*y[1]*i,r[2],r[3]+.5*y[3]*i,y[3],m[3]),g[2]&&o.drawLine(r[0]-.5*y[0]*i,r[3],r[2]+.5*y[2]*i,r[3],y[2],m[2]),s.bind(),d=0;d<2;++d)s.drawTicks(d);this.titleEnable&&s.drawTitle();var x=this.overlays;for(d=0;d<x.length;++d)x[d].draw();t.disable(t.SCISSOR_TEST),t.disable(t.BLEND),t.depthMask(!0)}},u.drawPick=function(){if(!this.static){var t=this.pickBuffer;this.gl,this._pickTimeout=null,t.begin();for(var e=1,r=this.objects,n=0;n<r.length;++n)e=r[n].drawPick(e);t.end()}},u.pick=function(t,e){if(!this.static){var r=this.pixelRatio,n=this.pickPixelRatio,i=this.viewBox,a=0|Math.round((t-i[0]/r)*n),o=0|Math.round((e-i[1]/r)*n),s=this.pickBuffer.query(a,o,this.pickRadius);if(!s)return null;for(var l=s.id+(s.value[0]<<8)+(s.value[1]<<16)+(s.value[2]<<24),u=this.objects,c=0;c<u.length;++c){var f=u[c].pick(a,o,l);if(f)return f}return null}},u.setScreenBox=function(t){var e=this.screenBox,r=this.pixelRatio;e[0]=0|Math.round(t[0]*r),e[1]=0|Math.round(t[1]*r),e[2]=0|Math.round(t[2]*r),e[3]=0|Math.round(t[3]*r),this.setDirty()},u.setDataBox=function(t){var e=this.dataBox;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3])&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],this.setDirty())},u.setViewBox=function(t){var e=this.pixelRatio,r=this.viewBox;r[0]=0|Math.round(t[0]*e),r[1]=0|Math.round(t[1]*e),r[2]=0|Math.round(t[2]*e),r[3]=0|Math.round(t[3]*e);var n=this.pickPixelRatio;this.pickBuffer.shape=[0|Math.round((t[2]-t[0])*n),0|Math.round((t[3]-t[1])*n)],this.setDirty()},u.update=function(t){t=t||{};var e=this.gl;this.pixelRatio=t.pixelRatio||1;var r=this.pixelRatio;this.pickPixelRatio=Math.max(r,1),this.setScreenBox(t.screenBox||[0,0,e.drawingBufferWidth/r,e.drawingBufferHeight/r]),this.screenBox,this.setViewBox(t.viewBox||[.125*(this.screenBox[2]-this.screenBox[0])/r,.125*(this.screenBox[3]-this.screenBox[1])/r,.875*(this.screenBox[2]-this.screenBox[0])/r,.875*(this.screenBox[3]-this.screenBox[1])/r]);var n=this.viewBox,i=(n[2]-n[0])/(n[3]-n[1]);this.setDataBox(t.dataBox||[-10,-10/i,10,10/i]),this.borderColor=!1!==t.borderColor&&(t.borderColor||[0,0,0,0]).slice(),this.backgroundColor=(t.backgroundColor||[0,0,0,0]).slice(),this.gridLineEnable=(t.gridLineEnable||[!0,!0]).slice(),this.gridLineWidth=(t.gridLineWidth||[1,1]).slice(),this.gridLineColor=c(t.gridLineColor||[[.5,.5,.5,1],[.5,.5,.5,1]]),this.zeroLineEnable=(t.zeroLineEnable||[!0,!0]).slice(),this.zeroLineWidth=(t.zeroLineWidth||[4,4]).slice(),this.zeroLineColor=c(t.zeroLineColor||[[0,0,0,1],[0,0,0,1]]),this.tickMarkLength=(t.tickMarkLength||[0,0,0,0]).slice(),this.tickMarkWidth=(t.tickMarkWidth||[0,0,0,0]).slice(),this.tickMarkColor=c(t.tickMarkColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]),this.titleCenter=(t.titleCenter||[.5*(n[0]+n[2])/r,(n[3]+120)/r]).slice(),this.titleEnable=!("titleEnable"in t)||!!t.titleEnable,this.titleAngle=t.titleAngle||0,this.titleColor=(t.titleColor||[0,0,0,1]).slice(),this.labelPad=(t.labelPad||[15,15,15,15]).slice(),this.labelAngle=(t.labelAngle||[0,Math.PI/2,0,3*Math.PI/2]).slice(),this.labelEnable=(t.labelEnable||[!0,!0,!0,!0]).slice(),this.labelColor=c(t.labelColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]),this.tickPad=(t.tickPad||[15,15,15,15]).slice(),this.tickAngle=(t.tickAngle||[0,0,0,0]).slice(),this.tickEnable=(t.tickEnable||[!0,!0,!0,!0]).slice(),this.tickColor=c(t.tickColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]),this.borderLineEnable=(t.borderLineEnable||[!0,!0,!0,!0]).slice(),this.borderLineWidth=(t.borderLineWidth||[2,2,2,2]).slice(),this.borderLineColor=c(t.borderLineColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]);var a=t.ticks||[[],[]],o=this._tickBounds;o[0]=o[1]=1/0,o[2]=o[3]=-1/0;for(var s=0;s<2;++s){var l=a[s].slice(0);0!==l.length&&(l.sort(f),o[s]=Math.min(o[s],l[0].x),o[s+2]=Math.max(o[s+2],l[l.length-1].x))}this.grid.update({bounds:o,ticks:a}),this.text.update({bounds:o,ticks:a,labels:t.labels||["x","y"],labelSize:t.labelSize||[12,12],labelFont:t.labelFont||["sans-serif","sans-serif"],title:t.title||"",titleSize:t.titleSize||18,titleFont:t.titleFont||"sans-serif"}),this.static=!!t.static,this.setDirty()},u.dispose=function(){this.box.dispose(),this.grid.dispose(),this.text.dispose(),this.line.dispose();for(var t=this.objects.length-1;t>=0;--t)this.objects[t].dispose();for(this.objects.length=0,t=this.overlays.length-1;t>=0;--t)this.overlays[t].dispose();this.overlays.length=0,this.gl=null},u.addObject=function(t){this.objects.indexOf(t)<0&&(this.objects.push(t),this.setDirty())},u.removeObject=function(t){for(var e=this.objects,r=0;r<e.length;++r)if(e[r]===t){e.splice(r,1),this.setDirty();break}},u.addOverlay=function(t){this.overlays.indexOf(t)<0&&(this.overlays.push(t),this.setOverlayDirty())},u.removeOverlay=function(t){for(var e=this.overlays,r=0;r<e.length;++r)if(e[r]===t){e.splice(r,1),this.setOverlayDirty();break}}},4296:function(t,e,r){"use strict";t.exports=function(t,e){t=t||document.body;var r=[.01,1/0];"distanceLimits"in(e=e||{})&&(r[0]=e.distanceLimits[0],r[1]=e.distanceLimits[1]),"zoomMin"in e&&(r[0]=e.zoomMin),"zoomMax"in e&&(r[1]=e.zoomMax);var u=i({center:e.center||[0,0,0],up:e.up||[0,1,0],eye:e.eye||[0,0,10],mode:e.mode||"orbit",distanceLimits:r}),c=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],f=0,h=t.clientWidth,p=t.clientHeight,d={keyBindingMode:"rotate",enableWheel:!0,view:u,element:t,delay:e.delay||16,rotateSpeed:e.rotateSpeed||1,zoomSpeed:e.zoomSpeed||1,translateSpeed:e.translateSpeed||1,flipX:!!e.flipX,flipY:!!e.flipY,modes:u.modes,_ortho:e._ortho||e.projection&&"orthographic"===e.projection.type||!1,tick:function(){var e=n(),r=this.delay,i=e-2*r;u.idle(e-r),u.recalcMatrix(i),u.flush(e-(100+2*r));for(var a=!0,o=u.computedMatrix,s=0;s<16;++s)a=a&&c[s]===o[s],c[s]=o[s];var l=t.clientWidth===h&&t.clientHeight===p;return h=t.clientWidth,p=t.clientHeight,a?!l:(f=Math.exp(u.computedRadius[0]),!0)},lookAt:function(t,e,r){u.lookAt(u.lastT(),t,e,r)},rotate:function(t,e,r){u.rotate(u.lastT(),t,e,r)},pan:function(t,e,r){u.pan(u.lastT(),t,e,r)},translate:function(t,e,r){u.translate(u.lastT(),t,e,r)}};return Object.defineProperties(d,{matrix:{get:function(){return u.computedMatrix},set:function(t){return u.setMatrix(u.lastT(),t),u.computedMatrix},enumerable:!0},mode:{get:function(){return u.getMode()},set:function(t){var e=u.computedUp.slice(),r=u.computedEye.slice(),i=u.computedCenter.slice();if(u.setMode(t),"turntable"===t){var a=n();u._active.lookAt(a,r,i,e),u._active.lookAt(a+500,r,i,[0,0,1]),u._active.flush(a)}return u.getMode()},enumerable:!0},center:{get:function(){return u.computedCenter},set:function(t){return u.lookAt(u.lastT(),null,t),u.computedCenter},enumerable:!0},eye:{get:function(){return u.computedEye},set:function(t){return u.lookAt(u.lastT(),t),u.computedEye},enumerable:!0},up:{get:function(){return u.computedUp},set:function(t){return u.lookAt(u.lastT(),null,null,t),u.computedUp},enumerable:!0},distance:{get:function(){return f},set:function(t){return u.setDistance(u.lastT(),t),t},enumerable:!0},distanceLimits:{get:function(){return u.getDistanceLimits(r)},set:function(t){return u.setDistanceLimits(t),t},enumerable:!0}}),t.addEventListener("contextmenu",(function(t){return t.preventDefault(),!1})),d._lastX=-1,d._lastY=-1,d._lastMods={shift:!1,control:!1,alt:!1,meta:!1},d.enableMouseListeners=function(){function e(e,r,i,a){var o=d.keyBindingMode;if(!1!==o){var s="rotate"===o,l="pan"===o,c="zoom"===o,h=!!a.control,p=!!a.alt,v=!!a.shift,g=!!(1&e),y=!!(2&e),m=!!(4&e),x=1/t.clientHeight,b=x*(r-d._lastX),_=x*(i-d._lastY),w=d.flipX?1:-1,T=d.flipY?1:-1,k=Math.PI*d.rotateSpeed,A=n();if(-1!==d._lastX&&-1!==d._lastY&&((s&&g&&!h&&!p&&!v||g&&!h&&!p&&v)&&u.rotate(A,w*k*b,-T*k*_,0),(l&&g&&!h&&!p&&!v||y||g&&h&&!p&&!v)&&u.pan(A,-d.translateSpeed*b*f,d.translateSpeed*_*f,0),c&&g&&!h&&!p&&!v||m||g&&!h&&p&&!v)){var M=-d.zoomSpeed*_/window.innerHeight*(A-u.lastT())*100;u.pan(A,0,0,f*(Math.exp(M)-1))}return d._lastX=r,d._lastY=i,d._lastMods=a,!0}}d.mouseListener=a(t,e),t.addEventListener("touchstart",(function(r){var n=s(r.changedTouches[0],t);e(0,n[0],n[1],d._lastMods),e(1,n[0],n[1],d._lastMods)}),!!l&&{passive:!0}),t.addEventListener("touchmove",(function(r){var n=s(r.changedTouches[0],t);e(1,n[0],n[1],d._lastMods),r.preventDefault()}),!!l&&{passive:!1}),t.addEventListener("touchend",(function(t){e(0,d._lastX,d._lastY,d._lastMods)}),!!l&&{passive:!0}),d.wheelListener=o(t,(function(t,e){if(!1!==d.keyBindingMode&&d.enableWheel){var r=d.flipX?1:-1,i=d.flipY?1:-1,a=n();if(Math.abs(t)>Math.abs(e))u.rotate(a,0,0,-t*r*Math.PI*d.rotateSpeed/window.innerWidth);else if(!d._ortho){var o=-d.zoomSpeed*i*e/window.innerHeight*(a-u.lastT())/20;u.pan(a,0,0,f*(Math.exp(o)-1))}}}),!0)},d.enableMouseListeners(),d};var n=r(8161),i=r(1152),a=r(6145),o=r(6475),s=r(2565),l=r(5233)},8245:function(t,e,r){var n=r(6832),i=r(5158),a=n(["precision mediump float;\n#define GLSLIFY 1\nattribute vec2 position;\nvarying vec2 uv;\nvoid main() {\n  uv = position;\n  gl_Position = vec4(position, 0, 1);\n}"]),o=n(["precision mediump float;\n#define GLSLIFY 1\n\nuniform sampler2D accumBuffer;\nvarying vec2 uv;\n\nvoid main() {\n  vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\n  gl_FragColor = min(vec4(1,1,1,1), accum);\n}"]);t.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec2"}])}},1059:function(t,e,r){"use strict";var n=r(4296),i=r(7453),a=r(2771),o=r(6496),s=r(2611),l=r(4234),u=r(8126),c=r(6145),f=r(1120),h=r(5268),p=r(8245),d=r(2861)({tablet:!0,featureDetect:!0});function v(){this.mouse=[-1,-1],this.screen=null,this.distance=1/0,this.index=null,this.dataCoordinate=null,this.dataPosition=null,this.object=null,this.data=null}function g(t){var e=Math.round(Math.log(Math.abs(t))/Math.log(10));if(e<0){var r=Math.round(Math.pow(10,-e));return Math.ceil(t*r)/r}return e>0?(r=Math.round(Math.pow(10,e)),Math.ceil(t/r)*r):Math.ceil(t)}function y(t){return"boolean"!=typeof t||t}t.exports={createScene:function(t){(t=t||{}).camera=t.camera||{};var e=t.canvas;e||(e=document.createElement("canvas"),t.container?t.container.appendChild(e):document.body.appendChild(e));var r=t.gl;if(r||(t.glOptions&&(d=!!t.glOptions.preserveDrawingBuffer),r=function(t,e){var r=null;try{(r=t.getContext("webgl",e))||(r=t.getContext("experimental-webgl",e))}catch(t){return null}return r}(e,t.glOptions||{premultipliedAlpha:!0,antialias:!0,preserveDrawingBuffer:d})),!r)throw new Error("webgl not supported");var m=t.bounds||[[-10,-10,-10],[10,10,10]],x=new v,b=l(r,r.drawingBufferWidth,r.drawingBufferHeight,{preferFloat:!d}),_=p(r),w=t.cameraObject&&!0===t.cameraObject._ortho||t.camera.projection&&"orthographic"===t.camera.projection.type||!1,T={eye:t.camera.eye||[2,0,0],center:t.camera.center||[0,0,0],up:t.camera.up||[0,1,0],zoomMin:t.camera.zoomMax||.1,zoomMax:t.camera.zoomMin||100,mode:t.camera.mode||"turntable",_ortho:w},k=t.axes||{},A=i(r,k);A.enable=!k.disable;var M=t.spikes||{},S=o(r,M),E=[],L=[],C=[],P=[],O=!0,I=!0,D={view:null,projection:new Array(16),model:new Array(16),_ortho:!1},z=(I=!0,[r.drawingBufferWidth,r.drawingBufferHeight]),R=t.cameraObject||n(e,T),F={gl:r,contextLost:!1,pixelRatio:t.pixelRatio||1,canvas:e,selection:x,camera:R,axes:A,axesPixels:null,spikes:S,bounds:m,objects:E,shape:z,aspect:t.aspectRatio||[1,1,1],pickRadius:t.pickRadius||10,zNear:t.zNear||.01,zFar:t.zFar||1e3,fovy:t.fovy||Math.PI/4,clearColor:t.clearColor||[0,0,0,0],autoResize:y(t.autoResize),autoBounds:y(t.autoBounds),autoScale:!!t.autoScale,autoCenter:y(t.autoCenter),clipToBounds:y(t.clipToBounds),snapToData:!!t.snapToData,onselect:t.onselect||null,onrender:t.onrender||null,onclick:t.onclick||null,cameraParams:D,oncontextloss:null,mouseListener:null,_stopped:!1,getAspectratio:function(){return{x:this.aspect[0],y:this.aspect[1],z:this.aspect[2]}},setAspectratio:function(t){this.aspect[0]=t.x,this.aspect[1]=t.y,this.aspect[2]=t.z,I=!0},setBounds:function(t,e){this.bounds[0][t]=e.min,this.bounds[1][t]=e.max},setClearColor:function(t){this.clearColor=t},clearRGBA:function(){this.gl.clearColor(this.clearColor[0],this.clearColor[1],this.clearColor[2],this.clearColor[3]),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT)}},B=[r.drawingBufferWidth/F.pixelRatio|0,r.drawingBufferHeight/F.pixelRatio|0];function N(){if(!F._stopped&&F.autoResize){var t=e.parentNode,r=1,n=1;t&&t!==document.body?(r=t.clientWidth,n=t.clientHeight):(r=window.innerWidth,n=window.innerHeight);var i=0|Math.ceil(r*F.pixelRatio),a=0|Math.ceil(n*F.pixelRatio);if(i!==e.width||a!==e.height){e.width=i,e.height=a;var o=e.style;o.position=o.position||"absolute",o.left="0px",o.top="0px",o.width=r+"px",o.height=n+"px",O=!0}}}function j(){for(var t=E.length,e=P.length,n=0;n<e;++n)C[n]=0;t:for(n=0;n<t;++n){var i=E[n],a=i.pickSlots;if(a){for(var o=0;o<e;++o)if(C[o]+a<255){L[n]=o,i.setPickBase(C[o]+1),C[o]+=a;continue t}var l=s(r,z);L[n]=e,P.push(l),C.push(a),i.setPickBase(1),e+=1}else L[n]=-1}for(;e>0&&0===C[e-1];)C.pop(),P.pop().dispose()}function U(){if(F.contextLost)return!0;r.isContextLost()&&(F.contextLost=!0,F.mouseListener.enabled=!1,F.selection.object=null,F.oncontextloss&&F.oncontextloss())}F.autoResize&&N(),window.addEventListener("resize",N),F.update=function(t){F._stopped||(t=t||{},O=!0,I=!0)},F.add=function(t){F._stopped||(t.axes=A,E.push(t),L.push(-1),O=!0,I=!0,j())},F.remove=function(t){if(!F._stopped){var e=E.indexOf(t);e<0||(E.splice(e,1),L.pop(),O=!0,I=!0,j())}},F.dispose=function(){if(!F._stopped&&(F._stopped=!0,window.removeEventListener("resize",N),e.removeEventListener("webglcontextlost",U),F.mouseListener.enabled=!1,!F.contextLost)){A.dispose(),S.dispose();for(var t=0;t<E.length;++t)E[t].dispose();for(b.dispose(),t=0;t<P.length;++t)P[t].dispose();_.dispose(),r=null,A=null,S=null,E=[]}},F._mouseRotating=!1,F._prevButtons=0,F.enableMouseListeners=function(){F.mouseListener=c(e,(function(t,e,r){if(!F._stopped){var n=P.length,i=E.length,a=x.object;x.distance=1/0,x.mouse[0]=e,x.mouse[1]=r,x.object=null,x.screen=null,x.dataCoordinate=x.dataPosition=null;var o=!1;if(t&&F._prevButtons)F._mouseRotating=!0;else{F._mouseRotating&&(I=!0),F._mouseRotating=!1;for(var s=0;s<n;++s){var l=P[s].query(e,B[1]-r-1,F.pickRadius);if(l){if(l.distance>x.distance)continue;for(var u=0;u<i;++u){var c=E[u];if(L[u]===s){var f=c.pick(l);f&&(x.buttons=t,x.screen=l.coord,x.distance=l.distance,x.object=c,x.index=f.distance,x.dataPosition=f.position,x.dataCoordinate=f.dataCoordinate,x.data=f,o=!0)}}}}}a&&a!==x.object&&(a.highlight&&a.highlight(null),O=!0),x.object&&(x.object.highlight&&x.object.highlight(x.data),O=!0),(o=o||x.object!==a)&&F.onselect&&F.onselect(x),1&t&&!(1&F._prevButtons)&&F.onclick&&F.onclick(x),F._prevButtons=t}}))},e.addEventListener("webglcontextlost",U);var V=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],H=[V[0].slice(),V[1].slice()];function q(){if(!U()){N();var t=F.camera.tick();D.view=F.camera.matrix,O=O||t,I=I||t,A.pixelRatio=F.pixelRatio,S.pixelRatio=F.pixelRatio;var e=E.length,n=V[0],i=V[1];n[0]=n[1]=n[2]=1/0,i[0]=i[1]=i[2]=-1/0;for(var o=0;o<e;++o){(C=E[o]).pixelRatio=F.pixelRatio,C.axes=F.axes,O=O||!!C.dirty,I=I||!!C.dirty;var s=C.bounds;if(s)for(var l=s[0],c=s[1],p=0;p<3;++p)n[p]=Math.min(n[p],l[p]),i[p]=Math.max(i[p],c[p])}var d=F.bounds;if(F.autoBounds)for(p=0;p<3;++p){if(i[p]<n[p])n[p]=-1,i[p]=1;else{n[p]===i[p]&&(n[p]-=1,i[p]+=1);var v=.05*(i[p]-n[p]);n[p]=n[p]-v,i[p]=i[p]+v}d[0][p]=n[p],d[1][p]=i[p]}var y=!1;for(p=0;p<3;++p)y=y||H[0][p]!==d[0][p]||H[1][p]!==d[1][p],H[0][p]=d[0][p],H[1][p]=d[1][p];if(I=I||y,O=O||y){if(y){var m=[0,0,0];for(o=0;o<3;++o)m[o]=g((d[1][o]-d[0][o])/10);A.autoTicks?A.update({bounds:d,tickSpacing:m}):A.update({bounds:d})}var T=r.drawingBufferWidth,k=r.drawingBufferHeight;for(z[0]=T,z[1]=k,B[0]=0|Math.max(T/F.pixelRatio,1),B[1]=0|Math.max(k/F.pixelRatio,1),function(t,e){var r=t.bounds,n=t.cameraParams,i=n.projection,a=n.model,o=t.gl.drawingBufferWidth,s=t.gl.drawingBufferHeight,l=t.zNear,u=t.zFar,c=t.fovy,p=o/s;e?(h(i,-p,p,-1,1,l,u),n._ortho=!0):(f(i,c,p,l,u),n._ortho=!1);for(var d=0;d<16;++d)a[d]=0;a[15]=1;var v=0;for(d=0;d<3;++d)v=Math.max(v,r[1][d]-r[0][d]);for(d=0;d<3;++d)t.autoScale?a[5*d]=t.aspect[d]/(r[1][d]-r[0][d]):a[5*d]=1/v,t.autoCenter&&(a[12+d]=.5*-a[5*d]*(r[0][d]+r[1][d]))}(F,w),o=0;o<e;++o)(C=E[o]).axesBounds=d,F.clipToBounds&&(C.clipBounds=d);x.object&&(F.snapToData?S.position=x.dataCoordinate:S.position=x.dataPosition,S.bounds=d),I&&(I=!1,function(){if(!U()){r.colorMask(!0,!0,!0,!0),r.depthMask(!0),r.disable(r.BLEND),r.enable(r.DEPTH_TEST),r.depthFunc(r.LEQUAL);for(var t=E.length,e=P.length,n=0;n<e;++n){var i=P[n];i.shape=B,i.begin();for(var a=0;a<t;++a)if(L[a]===n){var o=E[a];o.drawPick&&(o.pixelRatio=1,o.drawPick(D))}i.end()}}}()),F.axesPixels=a(F.axes,D,T,k),F.onrender&&F.onrender(),r.bindFramebuffer(r.FRAMEBUFFER,null),r.viewport(0,0,T,k),F.clearRGBA(),r.depthMask(!0),r.colorMask(!0,!0,!0,!0),r.enable(r.DEPTH_TEST),r.depthFunc(r.LEQUAL),r.disable(r.BLEND),r.disable(r.CULL_FACE);var M=!1;for(A.enable&&(M=M||A.isTransparent(),A.draw(D)),S.axes=A,x.object&&S.draw(D),r.disable(r.CULL_FACE),o=0;o<e;++o)(C=E[o]).axes=A,C.pixelRatio=F.pixelRatio,C.isOpaque&&C.isOpaque()&&C.draw(D),C.isTransparent&&C.isTransparent()&&(M=!0);if(M){for(b.shape=z,b.bind(),r.clear(r.DEPTH_BUFFER_BIT),r.colorMask(!1,!1,!1,!1),r.depthMask(!0),r.depthFunc(r.LESS),A.enable&&A.isTransparent()&&A.drawTransparent(D),o=0;o<e;++o)(C=E[o]).isOpaque&&C.isOpaque()&&C.draw(D);for(r.enable(r.BLEND),r.blendEquation(r.FUNC_ADD),r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA),r.colorMask(!0,!0,!0,!0),r.depthMask(!1),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT),A.isTransparent()&&A.drawTransparent(D),o=0;o<e;++o){var C;(C=E[o]).isTransparent&&C.isTransparent()&&C.drawTransparent(D)}r.bindFramebuffer(r.FRAMEBUFFER,null),r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA),r.disable(r.DEPTH_TEST),_.bind(),b.color[0].bind(0),_.uniforms.accumBuffer=0,u(r),r.disable(r.BLEND)}for(O=!1,o=0;o<e;++o)E[o].dirty=!1}}}return F.enableMouseListeners(),function t(){F._stopped||F.contextLost||(q(),requestAnimationFrame(t))}(),F.redraw=function(){F._stopped||(O=!0,q())},F},createCamera:n}},8023:function(t,e,r){var n=r(6832);e.pointVertex=n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\n\nuniform mat3 matrix;\nuniform float pointSize;\nuniform float pointCloud;\n\nhighp float rand(vec2 co) {\n  highp float a = 12.9898;\n  highp float b = 78.233;\n  highp float c = 43758.5453;\n  highp float d = dot(co.xy, vec2(a, b));\n  highp float e = mod(d, 3.14);\n  return fract(sin(e) * c);\n}\n\nvoid main() {\n  vec3 hgPosition = matrix * vec3(position, 1);\n  gl_Position  = vec4(hgPosition.xy, 0, hgPosition.z);\n    // if we don't jitter the point size a bit, overall point cloud\n    // saturation 'jumps' on zooming, which is disturbing and confusing\n  gl_PointSize = pointSize * ((19.5 + rand(position)) / 20.0);\n  if(pointCloud != 0.0) { // pointCloud is truthy\n    // get the same square surface as circle would be\n    gl_PointSize *= 0.886;\n  }\n}"]),e.pointFragment=n(["precision mediump float;\n#define GLSLIFY 1\n\nuniform vec4 color, borderColor;\nuniform float centerFraction;\nuniform float pointCloud;\n\nvoid main() {\n  float radius;\n  vec4 baseColor;\n  if(pointCloud != 0.0) { // pointCloud is truthy\n    if(centerFraction == 1.0) {\n      gl_FragColor = color;\n    } else {\n      gl_FragColor = mix(borderColor, color, centerFraction);\n    }\n  } else {\n    radius = length(2.0 * gl_PointCoord.xy - 1.0);\n    if(radius > 1.0) {\n      discard;\n    }\n    baseColor = mix(borderColor, color, step(radius, centerFraction));\n    gl_FragColor = vec4(baseColor.rgb * baseColor.a, baseColor.a);\n  }\n}\n"]),e.pickVertex=n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\nattribute vec4 pickId;\n\nuniform mat3 matrix;\nuniform float pointSize;\nuniform vec4 pickOffset;\n\nvarying vec4 fragId;\n\nvoid main() {\n  vec3 hgPosition = matrix * vec3(position, 1);\n  gl_Position  = vec4(hgPosition.xy, 0, hgPosition.z);\n  gl_PointSize = pointSize;\n\n  vec4 id = pickId + pickOffset;\n  id.y += floor(id.x / 256.0);\n  id.x -= floor(id.x / 256.0) * 256.0;\n\n  id.z += floor(id.y / 256.0);\n  id.y -= floor(id.y / 256.0) * 256.0;\n\n  id.w += floor(id.z / 256.0);\n  id.z -= floor(id.z / 256.0) * 256.0;\n\n  fragId = id;\n}\n"]),e.pickFragment=n(["precision mediump float;\n#define GLSLIFY 1\n\nvarying vec4 fragId;\n\nvoid main() {\n  float radius = length(2.0 * gl_PointCoord.xy - 1.0);\n  if(radius > 1.0) {\n    discard;\n  }\n  gl_FragColor = fragId / 255.0;\n}\n"])},8271:function(t,e,r){"use strict";var n=r(5158),i=r(5827),a=r(5306),o=r(8023);function s(t,e,r,n,i){this.plot=t,this.offsetBuffer=e,this.pickBuffer=r,this.shader=n,this.pickShader=i,this.sizeMin=.5,this.sizeMinCap=2,this.sizeMax=20,this.areaRatio=1,this.pointCount=0,this.color=[1,0,0,1],this.borderColor=[0,0,0,1],this.blend=!1,this.pickOffset=0,this.points=null}t.exports=function(t,e){var r=t.gl,a=new s(t,i(r),i(r),n(r,o.pointVertex,o.pointFragment),n(r,o.pickVertex,o.pickFragment));return a.update(e),t.addObject(a),a};var l,u,c=s.prototype;c.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.offsetBuffer.dispose(),this.pickBuffer.dispose(),this.plot.removeObject(this)},c.update=function(t){var e;function r(e,r){return e in t?t[e]:r}t=t||{},this.sizeMin=r("sizeMin",.5),this.sizeMax=r("sizeMax",20),this.color=r("color",[1,0,0,1]).slice(),this.areaRatio=r("areaRatio",1),this.borderColor=r("borderColor",[0,0,0,1]).slice(),this.blend=r("blend",!1);var n=t.positions.length>>>1,i=t.positions instanceof Float32Array,o=t.idToIndex instanceof Int32Array&&t.idToIndex.length>=n,s=t.positions,l=i?s:a.mallocFloat32(s.length),u=o?t.idToIndex:a.mallocInt32(n);if(i||l.set(s),!o)for(l.set(s),e=0;e<n;e++)u[e]=e;this.points=s,this.offsetBuffer.update(l),this.pickBuffer.update(u),i||a.free(l),o||a.free(u),this.pointCount=n,this.pickOffset=0},c.unifiedDraw=(l=[1,0,0,0,1,0,0,0,1],u=[0,0,0,0],function(t){var e=void 0!==t,r=e?this.pickShader:this.shader,n=this.plot.gl,i=this.plot.dataBox;if(0===this.pointCount)return t;var a=i[2]-i[0],o=i[3]-i[1],s=function(t,e){var r,n=0,i=t.length>>>1;for(r=0;r<i;r++){var a=t[2*r],o=t[2*r+1];a>=e[0]&&a<=e[2]&&o>=e[1]&&o<=e[3]&&n++}return n}(this.points,i),c=this.plot.pickPixelRatio*Math.max(Math.min(this.sizeMinCap,this.sizeMin),Math.min(this.sizeMax,this.sizeMax/Math.pow(s,.33333)));l[0]=2/a,l[4]=2/o,l[6]=-2*i[0]/a-1,l[7]=-2*i[1]/o-1,this.offsetBuffer.bind(),r.bind(),r.attributes.position.pointer(),r.uniforms.matrix=l,r.uniforms.color=this.color,r.uniforms.borderColor=this.borderColor,r.uniforms.pointCloud=c<5,r.uniforms.pointSize=c,r.uniforms.centerFraction=Math.min(1,Math.max(0,Math.sqrt(1-this.areaRatio))),e&&(u[0]=255&t,u[1]=t>>8&255,u[2]=t>>16&255,u[3]=t>>24&255,this.pickBuffer.bind(),r.attributes.pickId.pointer(n.UNSIGNED_BYTE),r.uniforms.pickOffset=u,this.pickOffset=t);var f=n.getParameter(n.BLEND),h=n.getParameter(n.DITHER);return f&&!this.blend&&n.disable(n.BLEND),h&&n.disable(n.DITHER),n.drawArrays(n.POINTS,0,this.pointCount),f&&!this.blend&&n.enable(n.BLEND),h&&n.enable(n.DITHER),t+this.pointCount}),c.draw=c.unifiedDraw,c.drawPick=c.unifiedDraw,c.pick=function(t,e,r){var n=this.pickOffset,i=this.pointCount;if(r<n||r>=n+i)return null;var a=r-n,o=this.points;return{object:this,pointId:a,dataCoord:[o[2*a],o[2*a+1]]}}},6093:function(t){t.exports=function(t,e,r,n){var i,a,o,s,l,u=e[0],c=e[1],f=e[2],h=e[3],p=r[0],d=r[1],v=r[2],g=r[3];return(a=u*p+c*d+f*v+h*g)<0&&(a=-a,p=-p,d=-d,v=-v,g=-g),1-a>1e-6?(i=Math.acos(a),o=Math.sin(i),s=Math.sin((1-n)*i)/o,l=Math.sin(n*i)/o):(s=1-n,l=n),t[0]=s*u+l*p,t[1]=s*c+l*d,t[2]=s*f+l*v,t[3]=s*h+l*g,t}},8240:function(t){"use strict";t.exports=function(t){return t||0===t?t.toString():""}},4123:function(t,e,r){"use strict";var n=r(875);t.exports=function(t,e,r){var a=i[e];if(a||(a=i[e]={}),t in a)return a[t];var o={textAlign:"center",textBaseline:"middle",lineHeight:1,font:e,lineSpacing:1.25,styletags:{breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},triangles:!0},s=n(t,o);o.triangles=!1;var l,u,c=n(t,o);if(r&&1!==r){for(l=0;l<s.positions.length;++l)for(u=0;u<s.positions[l].length;++u)s.positions[l][u]/=r;for(l=0;l<c.positions.length;++l)for(u=0;u<c.positions[l].length;++u)c.positions[l][u]/=r}var f=[[1/0,1/0],[-1/0,-1/0]],h=c.positions.length;for(l=0;l<h;++l){var p=c.positions[l];for(u=0;u<2;++u)f[0][u]=Math.min(f[0][u],p[u]),f[1][u]=Math.max(f[1][u],p[u])}return a[t]=[s,c,f]};var i={}},9282:function(t,e,r){var n=r(5158),i=r(6832),a=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform vec4 highlightId;\nuniform float highlightScale;\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n    gl_Position = vec4(0,0,0,0);\n  } else {\n    float scale = 1.0;\n    if(distance(highlightId, id) < 0.0001) {\n      scale = highlightScale;\n    }\n\n    vec4 worldPosition = model * vec4(position, 1);\n    vec4 viewPosition = view * worldPosition;\n    viewPosition = viewPosition / viewPosition.w;\n    vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\n\n    gl_Position = clipPosition;\n    interpColor = color;\n    pickId = id;\n    dataCoordinate = position;\n  }\n}"]),o=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform vec2 screenSize;\nuniform vec3 clipBounds[2];\nuniform float highlightScale, pixelRatio;\nuniform vec4 highlightId;\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n    gl_Position = vec4(0,0,0,0);\n  } else {\n    float scale = pixelRatio;\n    if(distance(highlightId.bgr, id.bgr) < 0.001) {\n      scale *= highlightScale;\n    }\n\n    vec4 worldPosition = model * vec4(position, 1.0);\n    vec4 viewPosition = view * worldPosition;\n    vec4 clipPosition = projection * viewPosition;\n    clipPosition /= clipPosition.w;\n\n    gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\n    interpColor = color;\n    pickId = id;\n    dataCoordinate = position;\n  }\n}"]),s=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform float highlightScale;\nuniform vec4 highlightId;\nuniform vec3 axes[2];\nuniform mat4 model, view, projection;\nuniform vec2 screenSize;\nuniform vec3 clipBounds[2];\nuniform float scale, pixelRatio;\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n  if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n    gl_Position = vec4(0,0,0,0);\n  } else {\n    float lscale = pixelRatio * scale;\n    if(distance(highlightId, id) < 0.0001) {\n      lscale *= highlightScale;\n    }\n\n    vec4 clipCenter   = projection * view * model * vec4(position, 1);\n    vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\n    vec4 clipPosition = projection * view * model * vec4(dataPosition, 1);\n\n    gl_Position = clipPosition;\n    interpColor = color;\n    pickId = id;\n    dataCoordinate = dataPosition;\n  }\n}\n"]),l=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 fragClipBounds[2];\nuniform float opacity;\n\nvarying vec4 interpColor;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n  if (\n    outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||\n    interpColor.a * opacity == 0.\n  ) discard;\n  gl_FragColor = interpColor * opacity;\n}\n"]),u=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 fragClipBounds[2];\nuniform float pickGroup;\n\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n  if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\n\n  gl_FragColor = vec4(pickGroup, pickId.bgr);\n}"]),c=[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"glyph",type:"vec2"},{name:"id",type:"vec4"}],f={vertex:a,fragment:l,attributes:c},h={vertex:o,fragment:l,attributes:c},p={vertex:s,fragment:l,attributes:c},d={vertex:a,fragment:u,attributes:c},v={vertex:o,fragment:u,attributes:c},g={vertex:s,fragment:u,attributes:c};function y(t,e){var r=n(t,e),i=r.attributes;return i.position.location=0,i.color.location=1,i.glyph.location=2,i.id.location=3,r}e.createPerspective=function(t){return y(t,f)},e.createOrtho=function(t){return y(t,h)},e.createProject=function(t){return y(t,p)},e.createPickPerspective=function(t){return y(t,d)},e.createPickOrtho=function(t){return y(t,v)},e.createPickProject=function(t){return y(t,g)}},2182:function(t,e,r){"use strict";var n=r(3596),i=r(5827),a=r(2944),o=r(5306),s=r(104),l=r(9282),u=r(4123),c=r(8240),f=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function h(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];return t[0]=e[0]*r+e[4]*n+e[8]*i+e[12]*a,t[1]=e[1]*r+e[5]*n+e[9]*i+e[13]*a,t[2]=e[2]*r+e[6]*n+e[10]*i+e[14]*a,t[3]=e[3]*r+e[7]*n+e[11]*i+e[15]*a,t}function p(t,e,r,n){return h(n,n),h(n,n),h(n,n)}function d(t,e){this.index=t,this.dataCoordinate=this.position=e}function v(t){return!0===t||t>1?1:t}function g(t,e,r,n,i,a,o,s,l,u,c,f){this.gl=t,this.pixelRatio=1,this.shader=e,this.orthoShader=r,this.projectShader=n,this.pointBuffer=i,this.colorBuffer=a,this.glyphBuffer=o,this.idBuffer=s,this.vao=l,this.vertexCount=0,this.lineVertexCount=0,this.opacity=1,this.hasAlpha=!1,this.lineWidth=0,this.projectScale=[2/3,2/3,2/3],this.projectOpacity=[1,1,1],this.projectHasAlpha=!1,this.pickId=0,this.pickPerspectiveShader=u,this.pickOrthoShader=c,this.pickProjectShader=f,this.points=[],this._selectResult=new d(0,[0,0,0]),this.useOrtho=!0,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.axesProject=[!0,!0,!0],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.highlightId=[1,1,1,1],this.highlightScale=2,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.dirty=!0}t.exports=function(t){var e=t.gl,r=l.createPerspective(e),n=l.createOrtho(e),o=l.createProject(e),s=l.createPickPerspective(e),u=l.createPickOrtho(e),c=l.createPickProject(e),f=i(e),h=i(e),p=i(e),d=i(e),v=new g(e,r,n,o,f,h,p,d,a(e,[{buffer:f,size:3,type:e.FLOAT},{buffer:h,size:4,type:e.FLOAT},{buffer:p,size:2,type:e.FLOAT},{buffer:d,size:4,type:e.UNSIGNED_BYTE,normalized:!0}]),s,u,c);return v.update(t),v};var y=g.prototype;y.pickSlots=1,y.setPickBase=function(t){this.pickId=t},y.isTransparent=function(){if(this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&this.projectHasAlpha)return!0;return!1},y.isOpaque=function(){if(!this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&!this.projectHasAlpha)return!0;return!1};var m=[0,0],x=[0,0,0],b=[0,0,0],_=[0,0,0,1],w=[0,0,0,1],T=f.slice(),k=[0,0,0],A=[[0,0,0],[0,0,0]];function M(t){return t[0]=t[1]=t[2]=0,t}function S(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t}function E(t,e,r,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[r]=n,t}var L=[[-1e8,-1e8,-1e8],[1e8,1e8,1e8]];function C(t,e,r,n,i,a,o){var l=r.gl;if((a===r.projectHasAlpha||o)&&function(t,e,r,n){var i,a=e.axesProject,o=e.gl,l=t.uniforms,u=r.model||f,c=r.view||f,h=r.projection||f,d=e.axesBounds,v=function(t){for(var e=A,r=0;r<2;++r)for(var n=0;n<3;++n)e[r][n]=Math.max(Math.min(t[r][n],1e8),-1e8);return e}(e.clipBounds);i=e.axes&&e.axes.lastCubeProps?e.axes.lastCubeProps.axis:[1,1,1],m[0]=2/o.drawingBufferWidth,m[1]=2/o.drawingBufferHeight,t.bind(),l.view=c,l.projection=h,l.screenSize=m,l.highlightId=e.highlightId,l.highlightScale=e.highlightScale,l.clipBounds=v,l.pickGroup=e.pickId/255,l.pixelRatio=n;for(var g=0;g<3;++g)if(a[g]){l.scale=e.projectScale[g],l.opacity=e.projectOpacity[g];for(var y=T,L=0;L<16;++L)y[L]=0;for(L=0;L<4;++L)y[5*L]=1;y[5*g]=0,i[g]<0?y[12+g]=d[0][g]:y[12+g]=d[1][g],s(y,u,y),l.model=y;var C=(g+1)%3,P=(g+2)%3,O=M(x),I=M(b);O[C]=1,I[P]=1;var D=p(0,0,0,S(_,O)),z=p(0,0,0,S(w,I));if(Math.abs(D[1])>Math.abs(z[1])){var R=D;D=z,z=R,R=O,O=I,I=R;var F=C;C=P,P=F}D[0]<0&&(O[C]=-1),z[1]>0&&(I[P]=-1);var B=0,N=0;for(L=0;L<4;++L)B+=Math.pow(u[4*C+L],2),N+=Math.pow(u[4*P+L],2);O[C]/=Math.sqrt(B),I[P]/=Math.sqrt(N),l.axes[0]=O,l.axes[1]=I,l.fragClipBounds[0]=E(k,v[0],g,-1e8),l.fragClipBounds[1]=E(k,v[1],g,1e8),e.vao.bind(),e.vao.draw(o.TRIANGLES,e.vertexCount),e.lineWidth>0&&(o.lineWidth(e.lineWidth*n),e.vao.draw(o.LINES,e.lineVertexCount,e.vertexCount)),e.vao.unbind()}}(e,r,n,i),a===r.hasAlpha||o){t.bind();var u=t.uniforms;u.model=n.model||f,u.view=n.view||f,u.projection=n.projection||f,m[0]=2/l.drawingBufferWidth,m[1]=2/l.drawingBufferHeight,u.screenSize=m,u.highlightId=r.highlightId,u.highlightScale=r.highlightScale,u.fragClipBounds=L,u.clipBounds=r.axes.bounds,u.opacity=r.opacity,u.pickGroup=r.pickId/255,u.pixelRatio=i,r.vao.bind(),r.vao.draw(l.TRIANGLES,r.vertexCount),r.lineWidth>0&&(l.lineWidth(r.lineWidth*i),r.vao.draw(l.LINES,r.lineVertexCount,r.vertexCount)),r.vao.unbind()}}function P(t,e,r,i){var a;a=Array.isArray(t)?e<t.length?t[e]:void 0:t,a=c(a);var o=!0;n(a)&&(a="▼",o=!1);var s=u(a,r,i);return{mesh:s[0],lines:s[1],bounds:s[2],visible:o}}y.draw=function(t){C(this.useOrtho?this.orthoShader:this.shader,this.projectShader,this,t,this.pixelRatio,!1,!1)},y.drawTransparent=function(t){C(this.useOrtho?this.orthoShader:this.shader,this.projectShader,this,t,this.pixelRatio,!0,!1)},y.drawPick=function(t){C(this.useOrtho?this.pickOrthoShader:this.pickPerspectiveShader,this.pickProjectShader,this,t,1,!0,!0)},y.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[2]+(t.value[1]<<8)+(t.value[0]<<16);if(e>=this.pointCount||e<0)return null;var r=this.points[e],n=this._selectResult;n.index=e;for(var i=0;i<3;++i)n.position[i]=n.dataCoordinate[i]=r[i];return n},y.highlight=function(t){if(t){var e=t.index,r=255&e,n=e>>8&255,i=e>>16&255;this.highlightId=[r/255,n/255,i/255,0]}else this.highlightId=[1,1,1,1]},y.update=function(t){if("perspective"in(t=t||{})&&(this.useOrtho=!t.perspective),"orthographic"in t&&(this.useOrtho=!!t.orthographic),"lineWidth"in t&&(this.lineWidth=t.lineWidth),"project"in t)if(Array.isArray(t.project))this.axesProject=t.project;else{var e=!!t.project;this.axesProject=[e,e,e]}if("projectScale"in t)if(Array.isArray(t.projectScale))this.projectScale=t.projectScale.slice();else{var r=+t.projectScale;this.projectScale=[r,r,r]}if(this.projectHasAlpha=!1,"projectOpacity"in t){Array.isArray(t.projectOpacity)?this.projectOpacity=t.projectOpacity.slice():(r=+t.projectOpacity,this.projectOpacity=[r,r,r]);for(var n=0;n<3;++n)this.projectOpacity[n]=v(this.projectOpacity[n]),this.projectOpacity[n]<1&&(this.projectHasAlpha=!0)}this.hasAlpha=!1,"opacity"in t&&(this.opacity=v(t.opacity),this.opacity<1&&(this.hasAlpha=!0)),this.dirty=!0;var i,a,s=t.position,l=t.font||"normal",u=t.alignment||[0,0];if(2===u.length)i=u[0],a=u[1];else for(i=[],a=[],n=0;n<u.length;++n)i[n]=u[n][0],a[n]=u[n][1];var c=[1/0,1/0,1/0],f=[-1/0,-1/0,-1/0],h=t.glyph,p=t.color,d=t.size,g=t.angle,y=t.lineColor,m=-1,x=0,b=0,_=0;if(s.length){_=s.length;t:for(n=0;n<_;++n){for(var w=s[n],T=0;T<3;++T)if(isNaN(w[T])||!isFinite(w[T]))continue t;var k=(N=P(h,n,l,this.pixelRatio)).mesh,A=N.lines,M=N.bounds;x+=3*k.cells.length,b+=2*A.edges.length}}var S=x+b,E=o.mallocFloat(3*S),L=o.mallocFloat(4*S),C=o.mallocFloat(2*S),O=o.mallocUint32(S);if(S>0){var I=0,D=x,z=[0,0,0,1],R=[0,0,0,1],F=Array.isArray(p)&&Array.isArray(p[0]),B=Array.isArray(y)&&Array.isArray(y[0]);t:for(n=0;n<_;++n){for(m+=1,w=s[n],T=0;T<3;++T){if(isNaN(w[T])||!isFinite(w[T]))continue t;f[T]=Math.max(f[T],w[T]),c[T]=Math.min(c[T],w[T])}k=(N=P(h,n,l,this.pixelRatio)).mesh,A=N.lines,M=N.bounds;var N,j=N.visible;if(j)if(Array.isArray(p)){if(3===(U=F?n<p.length?p[n]:[0,0,0,0]:p).length){for(T=0;T<3;++T)z[T]=U[T];z[3]=1}else if(4===U.length){for(T=0;T<4;++T)z[T]=U[T];!this.hasAlpha&&U[3]<1&&(this.hasAlpha=!0)}}else z[0]=z[1]=z[2]=0,z[3]=1;else z=[1,1,1,0];if(j)if(Array.isArray(y)){var U;if(3===(U=B?n<y.length?y[n]:[0,0,0,0]:y).length){for(T=0;T<3;++T)R[T]=U[T];R[T]=1}else if(4===U.length){for(T=0;T<4;++T)R[T]=U[T];!this.hasAlpha&&U[3]<1&&(this.hasAlpha=!0)}}else R[0]=R[1]=R[2]=0,R[3]=1;else R=[1,1,1,0];var V=.5;j?Array.isArray(d)?V=n<d.length?+d[n]:12:d?V=+d:this.useOrtho&&(V=12):V=0;var H=0;Array.isArray(g)?H=n<g.length?+g[n]:0:g&&(H=+g);var q=Math.cos(H),G=Math.sin(H);for(w=s[n],T=0;T<3;++T)f[T]=Math.max(f[T],w[T]),c[T]=Math.min(c[T],w[T]);var Z=i,Y=a;Z=0,Array.isArray(i)?Z=n<i.length?i[n]:0:i&&(Z=i),Y=0,Array.isArray(a)?Y=n<a.length?a[n]:0:a&&(Y=a);var W=[Z*=Z>0?1-M[0][0]:Z<0?1+M[1][0]:1,Y*=Y>0?1-M[0][1]:Y<0?1+M[1][1]:1],X=k.cells||[],J=k.positions||[];for(T=0;T<X.length;++T)for(var K=X[T],$=0;$<3;++$){for(var Q=0;Q<3;++Q)E[3*I+Q]=w[Q];for(Q=0;Q<4;++Q)L[4*I+Q]=z[Q];O[I]=m;var tt=J[K[$]];C[2*I]=V*(q*tt[0]-G*tt[1]+W[0]),C[2*I+1]=V*(G*tt[0]+q*tt[1]+W[1]),I+=1}for(X=A.edges,J=A.positions,T=0;T<X.length;++T)for(K=X[T],$=0;$<2;++$){for(Q=0;Q<3;++Q)E[3*D+Q]=w[Q];for(Q=0;Q<4;++Q)L[4*D+Q]=R[Q];O[D]=m,tt=J[K[$]],C[2*D]=V*(q*tt[0]-G*tt[1]+W[0]),C[2*D+1]=V*(G*tt[0]+q*tt[1]+W[1]),D+=1}}}this.bounds=[c,f],this.points=s,this.pointCount=s.length,this.vertexCount=x,this.lineVertexCount=b,this.pointBuffer.update(E),this.colorBuffer.update(L),this.glyphBuffer.update(C),this.idBuffer.update(O),o.free(E),o.free(L),o.free(C),o.free(O)},y.dispose=function(){this.shader.dispose(),this.orthoShader.dispose(),this.pickPerspectiveShader.dispose(),this.pickOrthoShader.dispose(),this.vao.dispose(),this.pointBuffer.dispose(),this.colorBuffer.dispose(),this.glyphBuffer.dispose(),this.idBuffer.dispose()}},1884:function(t,e,r){"use strict";var n=r(6832);e.boxVertex=n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 vertex;\n\nuniform vec2 cornerA, cornerB;\n\nvoid main() {\n  gl_Position = vec4(mix(cornerA, cornerB, vertex), 0, 1);\n}\n"]),e.boxFragment=n(["precision mediump float;\n#define GLSLIFY 1\n\nuniform vec4 color;\n\nvoid main() {\n  gl_FragColor = color;\n}\n"])},6623:function(t,e,r){"use strict";var n=r(5158),i=r(5827),a=r(1884);function o(t,e,r){this.plot=t,this.boxBuffer=e,this.boxShader=r,this.enabled=!0,this.selectBox=[1/0,1/0,-1/0,-1/0],this.borderColor=[0,0,0,1],this.innerFill=!1,this.innerColor=[0,0,0,.25],this.outerFill=!0,this.outerColor=[0,0,0,.5],this.borderWidth=10}t.exports=function(t,e){var r=t.gl,s=new o(t,i(r,[0,0,0,1,1,0,1,1]),n(r,a.boxVertex,a.boxFragment));return s.update(e),t.addOverlay(s),s};var s=o.prototype;s.draw=function(){if(this.enabled){var t=this.plot,e=this.selectBox,r=this.borderWidth,n=(this.innerFill,this.innerColor),i=(this.outerFill,this.outerColor),a=this.borderColor,o=t.box,s=t.screenBox,l=t.dataBox,u=t.viewBox,c=t.pixelRatio,f=(e[0]-l[0])*(u[2]-u[0])/(l[2]-l[0])+u[0],h=(e[1]-l[1])*(u[3]-u[1])/(l[3]-l[1])+u[1],p=(e[2]-l[0])*(u[2]-u[0])/(l[2]-l[0])+u[0],d=(e[3]-l[1])*(u[3]-u[1])/(l[3]-l[1])+u[1];if(f=Math.max(f,u[0]),h=Math.max(h,u[1]),p=Math.min(p,u[2]),d=Math.min(d,u[3]),!(p<f||d<h)){o.bind();var v=s[2]-s[0],g=s[3]-s[1];if(this.outerFill&&(o.drawBox(0,0,v,h,i),o.drawBox(0,h,f,d,i),o.drawBox(0,d,v,g,i),o.drawBox(p,h,v,d,i)),this.innerFill&&o.drawBox(f,h,p,d,n),r>0){var y=r*c;o.drawBox(f-y,h-y,p+y,h+y,a),o.drawBox(f-y,d-y,p+y,d+y,a),o.drawBox(f-y,h-y,f+y,d+y,a),o.drawBox(p-y,h-y,p+y,d+y,a)}}}},s.update=function(t){t=t||{},this.innerFill=!!t.innerFill,this.outerFill=!!t.outerFill,this.innerColor=(t.innerColor||[0,0,0,.5]).slice(),this.outerColor=(t.outerColor||[0,0,0,.5]).slice(),this.borderColor=(t.borderColor||[0,0,0,1]).slice(),this.borderWidth=t.borderWidth||0,this.selectBox=(t.selectBox||this.selectBox).slice()},s.dispose=function(){this.boxBuffer.dispose(),this.boxShader.dispose(),this.plot.removeOverlay(this)}},2611:function(t,e,r){"use strict";t.exports=function(t,e){var r=e[0],a=e[1];return new l(t,n(t,r,a,{}),i.mallocUint8(r*a*4))};var n=r(4234),i=r(5306),a=r(5050),o=r(2288).nextPow2;function s(t,e,r,n,i){this.coord=[t,e],this.id=r,this.value=n,this.distance=i}function l(t,e,r){this.gl=t,this.fbo=e,this.buffer=r,this._readTimeout=null;var n=this;this._readCallback=function(){n.gl&&(e.bind(),t.readPixels(0,0,e.shape[0],e.shape[1],t.RGBA,t.UNSIGNED_BYTE,n.buffer),n._readTimeout=null)}}var u=l.prototype;Object.defineProperty(u,"shape",{get:function(){return this.gl?this.fbo.shape.slice():[0,0]},set:function(t){if(this.gl){this.fbo.shape=t;var e=this.fbo.shape[0],r=this.fbo.shape[1];if(r*e*4>this.buffer.length){i.free(this.buffer);for(var n=this.buffer=i.mallocUint8(o(r*e*4)),a=0;a<r*e*4;++a)n[a]=255}return t}}}),u.begin=function(){var t=this.gl;this.shape,t&&(this.fbo.bind(),t.clearColor(1,1,1,1),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT))},u.end=function(){var t=this.gl;t&&(t.bindFramebuffer(t.FRAMEBUFFER,null),this._readTimeout||clearTimeout(this._readTimeout),this._readTimeout=setTimeout(this._readCallback,1))},u.query=function(t,e,r){if(!this.gl)return null;var n=this.fbo.shape.slice();t|=0,e|=0,"number"!=typeof r&&(r=1);var i=0|Math.min(Math.max(t-r,0),n[0]),o=0|Math.min(Math.max(t+r,0),n[0]),l=0|Math.min(Math.max(e-r,0),n[1]),u=0|Math.min(Math.max(e+r,0),n[1]);if(o<=i||u<=l)return null;var c=[o-i,u-l],f=a(this.buffer,[c[0],c[1],4],[4,4*n[0],1],4*(i+n[0]*l)),h=function(t,e,r){for(var n=1e8,i=-1,a=-1,o=t.shape[0],s=t.shape[1],l=0;l<o;l++)for(var u=0;u<s;u++){var c=t.get(l,u,0),f=t.get(l,u,1),h=t.get(l,u,2),p=t.get(l,u,3);if(c<255||f<255||h<255||p<255){var d=e-l,v=r-u,g=d*d+v*v;g<n&&(n=g,i=l,a=u)}}return[i,a,n]}(f.hi(c[0],c[1],1),r,r),p=h[0],d=h[1];return p<0||Math.pow(this.radius,2)<h[2]?null:new s(p+i|0,d+l|0,f.get(p,d,0),[f.get(p,d,1),f.get(p,d,2),f.get(p,d,3)],Math.sqrt(h[2]))},u.dispose=function(){this.gl&&(this.fbo.dispose(),i.free(this.buffer),this.gl=null,this._readTimeout&&clearTimeout(this._readTimeout))}},5158:function(t,e,r){"use strict";var n=r(9016),i=r(4280),a=r(3984),o=r(1628),s=r(2631),l=r(9068);function u(t){this.gl=t,this.gl.lastAttribCount=0,this._vref=this._fref=this._relink=this.vertShader=this.fragShader=this.program=this.attributes=this.uniforms=this.types=null}var c=u.prototype;function f(t,e){return t.name<e.name?-1:1}c.bind=function(){var t;this.program||this._relink();var e=this.gl.getProgramParameter(this.program,this.gl.ACTIVE_ATTRIBUTES),r=this.gl.lastAttribCount;if(e>r)for(t=r;t<e;t++)this.gl.enableVertexAttribArray(t);else if(r>e)for(t=e;t<r;t++)this.gl.disableVertexAttribArray(t);this.gl.lastAttribCount=e,this.gl.useProgram(this.program)},c.dispose=function(){for(var t=this.gl.lastAttribCount,e=0;e<t;e++)this.gl.disableVertexAttribArray(e);this.gl.lastAttribCount=0,this._fref&&this._fref.dispose(),this._vref&&this._vref.dispose(),this.attributes=this.types=this.vertShader=this.fragShader=this.program=this._relink=this._fref=this._vref=null},c.update=function(t,e,r,u){if(!e||1===arguments.length){var c=t;t=c.vertex,e=c.fragment,r=c.uniforms,u=c.attributes}var h=this,p=h.gl,d=h._vref;h._vref=o.shader(p,p.VERTEX_SHADER,t),d&&d.dispose(),h.vertShader=h._vref.shader;var v=this._fref;if(h._fref=o.shader(p,p.FRAGMENT_SHADER,e),v&&v.dispose(),h.fragShader=h._fref.shader,!r||!u){var g=p.createProgram();if(p.attachShader(g,h.fragShader),p.attachShader(g,h.vertShader),p.linkProgram(g),!p.getProgramParameter(g,p.LINK_STATUS)){var y=p.getProgramInfoLog(g);throw new l(y,"Error linking program:"+y)}r=r||s.uniforms(p,g),u=u||s.attributes(p,g),p.deleteProgram(g)}(u=u.slice()).sort(f);var m,x=[],b=[],_=[];for(m=0;m<u.length;++m){var w=u[m];if(w.type.indexOf("mat")>=0){for(var T=0|w.type.charAt(w.type.length-1),k=new Array(T),A=0;A<T;++A)k[A]=_.length,b.push(w.name+"["+A+"]"),"number"==typeof w.location?_.push(w.location+A):Array.isArray(w.location)&&w.location.length===T&&"number"==typeof w.location[A]?_.push(0|w.location[A]):_.push(-1);x.push({name:w.name,type:w.type,locations:k})}else x.push({name:w.name,type:w.type,locations:[_.length]}),b.push(w.name),"number"==typeof w.location?_.push(0|w.location):_.push(-1)}var M=0;for(m=0;m<_.length;++m)if(_[m]<0){for(;_.indexOf(M)>=0;)M+=1;_[m]=M}var S=new Array(r.length);function E(){h.program=o.program(p,h._vref,h._fref,b,_);for(var t=0;t<r.length;++t)S[t]=p.getUniformLocation(h.program,r[t].name)}E(),h._relink=E,h.types={uniforms:a(r),attributes:a(u)},h.attributes=i(p,h,x,_),Object.defineProperty(h,"uniforms",n(p,h,r,S))},t.exports=function(t,e,r,n,i){var a=new u(t);return a.update(e,r,n,i),a}},9068:function(t){function e(t,e,r){this.shortMessage=e||"",this.longMessage=r||"",this.rawError=t||"",this.message="gl-shader: "+(e||t||"")+(r?"\n"+r:""),this.stack=(new Error).stack}e.prototype=new Error,e.prototype.name="GLError",e.prototype.constructor=e,t.exports=e},4280:function(t,e,r){"use strict";t.exports=function(t,e,r,i){for(var a={},o=0,u=r.length;o<u;++o){var c=r[o],f=c.name,h=c.type,p=c.locations;switch(h){case"bool":case"int":case"float":s(t,e,p[0],i,1,a,f);break;default:if(h.indexOf("vec")>=0){if((d=h.charCodeAt(h.length-1)-48)<2||d>4)throw new n("","Invalid data type for attribute "+f+": "+h);s(t,e,p[0],i,d,a,f)}else{if(!(h.indexOf("mat")>=0))throw new n("","Unknown data type for attribute "+f+": "+h);var d;if((d=h.charCodeAt(h.length-1)-48)<2||d>4)throw new n("","Invalid data type for attribute "+f+": "+h);l(t,e,p,i,d,a,f)}}}return a};var n=r(9068);function i(t,e,r,n,i,a){this._gl=t,this._wrapper=e,this._index=r,this._locations=n,this._dimension=i,this._constFunc=a}var a=i.prototype;a.pointer=function(t,e,r,n){var i=this,a=i._gl,o=i._locations[i._index];a.vertexAttribPointer(o,i._dimension,t||a.FLOAT,!!e,r||0,n||0),a.enableVertexAttribArray(o)},a.set=function(t,e,r,n){return this._constFunc(this._locations[this._index],t,e,r,n)},Object.defineProperty(a,"location",{get:function(){return this._locations[this._index]},set:function(t){return t!==this._locations[this._index]&&(this._locations[this._index]=0|t,this._wrapper.program=null),0|t}});var o=[function(t,e,r){return void 0===r.length?t.vertexAttrib1f(e,r):t.vertexAttrib1fv(e,r)},function(t,e,r,n){return void 0===r.length?t.vertexAttrib2f(e,r,n):t.vertexAttrib2fv(e,r)},function(t,e,r,n,i){return void 0===r.length?t.vertexAttrib3f(e,r,n,i):t.vertexAttrib3fv(e,r)},function(t,e,r,n,i,a){return void 0===r.length?t.vertexAttrib4f(e,r,n,i,a):t.vertexAttrib4fv(e,r)}];function s(t,e,r,n,a,s,l){var u=o[a],c=new i(t,e,r,n,a,u);Object.defineProperty(s,l,{set:function(e){return t.disableVertexAttribArray(n[r]),u(t,n[r],e),e},get:function(){return c},enumerable:!0})}function l(t,e,r,n,i,a,o){for(var l=new Array(i),u=new Array(i),c=0;c<i;++c)s(t,e,r[c],n,i,l,c),u[c]=l[c];Object.defineProperty(l,"location",{set:function(t){if(Array.isArray(t))for(var e=0;e<i;++e)u[e].location=t[e];else for(e=0;e<i;++e)u[e].location=t+e;return t},get:function(){for(var t=new Array(i),e=0;e<i;++e)t[e]=n[r[e]];return t},enumerable:!0}),l.pointer=function(e,a,o,s){e=e||t.FLOAT,a=!!a,o=o||i*i,s=s||0;for(var l=0;l<i;++l){var u=n[r[l]];t.vertexAttribPointer(u,i,e,a,o,s+l*i),t.enableVertexAttribArray(u)}};var f=new Array(i),h=t["vertexAttrib"+i+"fv"];Object.defineProperty(a,o,{set:function(e){for(var a=0;a<i;++a){var o=n[r[a]];if(t.disableVertexAttribArray(o),Array.isArray(e[0]))h.call(t,o,e[a]);else{for(var s=0;s<i;++s)f[s]=e[i*a+s];h.call(t,o,f)}}return e},get:function(){return l},enumerable:!0})}},9016:function(t,e,r){"use strict";var n=r(3984),i=r(9068);function a(t){return function(){return t}}function o(t,e){for(var r=new Array(t),n=0;n<t;++n)r[n]=e;return r}t.exports=function(t,e,r,s){function l(e){return function(n){for(var a=u("",e),o=0;o<a.length;++o){var l=a[o],c=l[0],f=l[1];if(s[f]){var h=n;if("string"==typeof c&&(0===c.indexOf(".")||0===c.indexOf("["))){var p=c;if(0===c.indexOf(".")&&(p=c.slice(1)),p.indexOf("]")===p.length-1){var d=p.indexOf("["),v=p.slice(0,d),g=p.slice(d+1,p.length-1);h=v?n[v][g]:n[g]}else h=n[p]}var y,m=r[f].type;switch(m){case"bool":case"int":case"sampler2D":case"samplerCube":t.uniform1i(s[f],h);break;case"float":t.uniform1f(s[f],h);break;default:var x=m.indexOf("vec");if(!(0<=x&&x<=1&&m.length===4+x)){if(0===m.indexOf("mat")&&4===m.length){if((y=m.charCodeAt(m.length-1)-48)<2||y>4)throw new i("","Invalid uniform dimension type for matrix "+name+": "+m);t["uniformMatrix"+y+"fv"](s[f],!1,h);break}throw new i("","Unknown uniform data type for "+name+": "+m)}if((y=m.charCodeAt(m.length-1)-48)<2||y>4)throw new i("","Invalid data type");switch(m.charAt(0)){case"b":case"i":t["uniform"+y+"iv"](s[f],h);break;case"v":t["uniform"+y+"fv"](s[f],h);break;default:throw new i("","Unrecognized data type for vector "+name+": "+m)}}}}}}function u(t,e){if("object"!=typeof e)return[[t,e]];var r=[];for(var n in e){var i=e[n],a=t;parseInt(n)+""===n?a+="["+n+"]":a+="."+n,"object"==typeof i?r.push.apply(r,u(a,i)):r.push([a,i])}return r}function c(t,e,n){if("object"==typeof n){var u=f(n);Object.defineProperty(t,e,{get:a(u),set:l(n),enumerable:!0,configurable:!1})}else s[n]?Object.defineProperty(t,e,{get:(c=n,function(t,e,r){return t.getUniform(e.program,r[c])}),set:l(n),enumerable:!0,configurable:!1}):t[e]=function(t){switch(t){case"bool":return!1;case"int":case"sampler2D":case"samplerCube":case"float":return 0;default:var e=t.indexOf("vec");if(0<=e&&e<=1&&t.length===4+e){if((r=t.charCodeAt(t.length-1)-48)<2||r>4)throw new i("","Invalid data type");return"b"===t.charAt(0)?o(r,!1):o(r,0)}if(0===t.indexOf("mat")&&4===t.length){var r;if((r=t.charCodeAt(t.length-1)-48)<2||r>4)throw new i("","Invalid uniform dimension type for matrix "+name+": "+t);return o(r*r,0)}throw new i("","Unknown uniform data type for "+name+": "+t)}}(r[n].type);var c}function f(t){var e;if(Array.isArray(t)){e=new Array(t.length);for(var r=0;r<t.length;++r)c(e,r,t[r])}else for(var n in e={},t)c(e,n,t[n]);return e}var h=n(r,!0);return{get:a(f(h)),set:l(h),enumerable:!0,configurable:!0}}},3984:function(t){"use strict";t.exports=function(t,e){for(var r={},n=0;n<t.length;++n)for(var i=t[n].name.split("."),a=r,o=0;o<i.length;++o){var s=i[o].split("[");if(s.length>1){s[0]in a||(a[s[0]]=[]),a=a[s[0]];for(var l=1;l<s.length;++l){var u=parseInt(s[l]);l<s.length-1||o<i.length-1?(u in a||(l<s.length-1?a[u]=[]:a[u]={}),a=a[u]):a[u]=e?n:t[n].type}}else o<i.length-1?(s[0]in a||(a[s[0]]={}),a=a[s[0]]):a[s[0]]=e?n:t[n].type}return r}},2631:function(t,e){"use strict";e.uniforms=function(t,e){for(var r=t.getProgramParameter(e,t.ACTIVE_UNIFORMS),n=[],a=0;a<r;++a){var o=t.getActiveUniform(e,a);if(o){var s=i(t,o.type);if(o.size>1)for(var l=0;l<o.size;++l)n.push({name:o.name.replace("[0]","["+l+"]"),type:s});else n.push({name:o.name,type:s})}}return n},e.attributes=function(t,e){for(var r=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES),n=[],a=0;a<r;++a){var o=t.getActiveAttrib(e,a);o&&n.push({name:o.name,type:i(t,o.type)})}return n};var r={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube"},n=null;function i(t,e){if(!n){var i=Object.keys(r);n={};for(var a=0;a<i.length;++a){var o=i[a];n[t[o]]=r[o]}}return n[e]}},1628:function(t,e,r){"use strict";e.shader=function(t,e,r){return c(t).getShaderReference(e,r)},e.program=function(t,e,r,n,i){return c(t).getProgram(e,r,n,i)};var n=r(9068),i=r(3530),a=new("undefined"==typeof WeakMap?r(4037):WeakMap),o=0;function s(t,e,r,n,i,a,o){this.id=t,this.src=e,this.type=r,this.shader=n,this.count=a,this.programs=[],this.cache=o}function l(t){this.gl=t,this.shaders=[{},{}],this.programs={}}s.prototype.dispose=function(){if(0==--this.count){for(var t=this.cache,e=t.gl,r=this.programs,n=0,i=r.length;n<i;++n){var a=t.programs[r[n]];a&&(delete t.programs[n],e.deleteProgram(a))}e.deleteShader(this.shader),delete t.shaders[this.type===e.FRAGMENT_SHADER|0][this.src]}};var u=l.prototype;function c(t){var e=a.get(t);return e||(e=new l(t),a.set(t,e)),e}u.getShaderReference=function(t,e){var r=this.gl,a=this.shaders[t===r.FRAGMENT_SHADER|0],l=a[e];if(l&&r.isShader(l.shader))l.count+=1;else{var u=function(t,e,r){var a=t.createShader(e);if(t.shaderSource(a,r),t.compileShader(a),!t.getShaderParameter(a,t.COMPILE_STATUS)){var o=t.getShaderInfoLog(a);try{var s=i(o,r,e)}catch(t){throw console.warn("Failed to format compiler error: "+t),new n(o,"Error compiling shader:\n"+o)}throw new n(o,s.short,s.long)}return a}(r,t,e);l=a[e]=new s(o++,e,t,u,[],1,this)}return l},u.getProgram=function(t,e,r,i){var a=[t.id,e.id,r.join(":"),i.join(":")].join("@"),o=this.programs[a];return o&&this.gl.isProgram(o)||(this.programs[a]=o=function(t,e,r,i,a){var o=t.createProgram();t.attachShader(o,e),t.attachShader(o,r);for(var s=0;s<i.length;++s)t.bindAttribLocation(o,a[s],i[s]);if(t.linkProgram(o),!t.getProgramParameter(o,t.LINK_STATUS)){var l=t.getProgramInfoLog(o);throw new n(l,"Error linking program: "+l)}return o}(this.gl,t.shader,e.shader,r,i),t.programs.push(a),e.programs.push(a)),o}},3050:function(t){"use strict";function e(t){this.plot=t,this.enable=[!0,!0,!1,!1],this.width=[1,1,1,1],this.color=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.center=[1/0,1/0]}t.exports=function(t,r){var n=new e(t);return n.update(r),t.addOverlay(n),n};var r=e.prototype;r.update=function(t){t=t||{},this.enable=(t.enable||[!0,!0,!1,!1]).slice(),this.width=(t.width||[1,1,1,1]).slice(),this.color=(t.color||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]).map((function(t){return t.slice()})),this.center=(t.center||[1/0,1/0]).slice(),this.plot.setOverlayDirty()},r.draw=function(){var t=this.enable,e=this.width,r=this.color,n=this.center,i=this.plot,a=i.line,o=i.dataBox,s=i.viewBox;if(a.bind(),o[0]<=n[0]&&n[0]<=o[2]&&o[1]<=n[1]&&n[1]<=o[3]){var l=s[0]+(n[0]-o[0])/(o[2]-o[0])*(s[2]-s[0]),u=s[1]+(n[1]-o[1])/(o[3]-o[1])*(s[3]-s[1]);t[0]&&a.drawLine(l,u,s[0],u,e[0],r[0]),t[1]&&a.drawLine(l,u,l,s[1],e[1],r[1]),t[2]&&a.drawLine(l,u,s[2],u,e[2],r[2]),t[3]&&a.drawLine(l,u,l,s[3],e[3],r[3])}},r.dispose=function(){this.plot.removeOverlay(this)}},3540:function(t,e,r){"use strict";var n=r(6832),i=r(5158),a=n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec3 position, color;\nattribute float weight;\n\nuniform mat4 model, view, projection;\nuniform vec3 coordinates[3];\nuniform vec4 colors[3];\nuniform vec2 screenShape;\nuniform float lineWidth;\n\nvarying vec4 fragColor;\n\nvoid main() {\n  vec3 vertexPosition = mix(coordinates[0],\n    mix(coordinates[2], coordinates[1], 0.5 * (position + 1.0)), abs(position));\n\n  vec4 clipPos = projection * view * model * vec4(vertexPosition, 1.0);\n  vec2 clipOffset = (projection * view * model * vec4(color, 0.0)).xy;\n  vec2 delta = weight * clipOffset * screenShape;\n  vec2 lineOffset = normalize(vec2(delta.y, -delta.x)) / screenShape;\n\n  gl_Position   = vec4(clipPos.xy + clipPos.w * 0.5 * lineWidth * lineOffset, clipPos.z, clipPos.w);\n  fragColor     = color.x * colors[0] + color.y * colors[1] + color.z * colors[2];\n}\n"]),o=n(["precision mediump float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n  gl_FragColor = fragColor;\n}"]);t.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec3"},{name:"color",type:"vec3"},{name:"weight",type:"float"}])}},6496:function(t,e,r){"use strict";var n=r(5827),i=r(2944),a=r(3540);t.exports=function(t,e){var r=[];function o(t,e,n,i,a,o){var s=[t,e,n,0,0,0,1];s[i+3]=1,s[i]=a,r.push.apply(r,s),s[6]=-1,r.push.apply(r,s),s[i]=o,r.push.apply(r,s),r.push.apply(r,s),s[6]=1,r.push.apply(r,s),s[i]=a,r.push.apply(r,s)}o(0,0,0,0,0,1),o(0,0,0,1,0,1),o(0,0,0,2,0,1),o(1,0,0,1,-1,1),o(1,0,0,2,-1,1),o(0,1,0,0,-1,1),o(0,1,0,2,-1,1),o(0,0,1,0,-1,1),o(0,0,1,1,-1,1);var l=n(t,r),u=i(t,[{type:t.FLOAT,buffer:l,size:3,offset:0,stride:28},{type:t.FLOAT,buffer:l,size:3,offset:12,stride:28},{type:t.FLOAT,buffer:l,size:1,offset:24,stride:28}]),c=a(t);c.attributes.position.location=0,c.attributes.color.location=1,c.attributes.weight.location=2;var f=new s(t,l,u,c);return f.update(e),f};var o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n,this.pixelRatio=1,this.bounds=[[-1e3,-1e3,-1e3],[1e3,1e3,1e3]],this.position=[0,0,0],this.lineWidth=[2,2,2],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.enabled=[!0,!0,!0],this.drawSides=[!0,!0,!0],this.axes=null}var l=s.prototype,u=[0,0,0],c=[0,0,0],f=[0,0];l.isTransparent=function(){return!1},l.drawTransparent=function(t){},l.draw=function(t){var e=this.gl,r=this.vao,n=this.shader;r.bind(),n.bind();var i,a=t.model||o,s=t.view||o,l=t.projection||o;this.axes&&(i=this.axes.lastCubeProps.axis);for(var h=u,p=c,d=0;d<3;++d)i&&i[d]<0?(h[d]=this.bounds[0][d],p[d]=this.bounds[1][d]):(h[d]=this.bounds[1][d],p[d]=this.bounds[0][d]);for(f[0]=e.drawingBufferWidth,f[1]=e.drawingBufferHeight,n.uniforms.model=a,n.uniforms.view=s,n.uniforms.projection=l,n.uniforms.coordinates=[this.position,h,p],n.uniforms.colors=this.colors,n.uniforms.screenShape=f,d=0;d<3;++d)n.uniforms.lineWidth=this.lineWidth[d]*this.pixelRatio,this.enabled[d]&&(r.draw(e.TRIANGLES,6,6*d),this.drawSides[d]&&r.draw(e.TRIANGLES,12,18+12*d));r.unbind()},l.update=function(t){t&&("bounds"in t&&(this.bounds=t.bounds),"position"in t&&(this.position=t.position),"lineWidth"in t&&(this.lineWidth=t.lineWidth),"colors"in t&&(this.colors=t.colors),"enabled"in t&&(this.enabled=t.enabled),"drawSides"in t&&(this.drawSides=t.drawSides))},l.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},9578:function(t,e,r){var n=r(6832),i=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n  // Return up-vector for only-z vector.\n  // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n  // From the above if-statement we have ||a|| > 0  U  ||b|| > 0.\n  // Assign z = 0, x = -b, y = a:\n  // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n  if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n    return normalize(vec3(-v.y, v.x, 0.0));\n  } else {\n    return normalize(vec3(0.0, v.z, -v.y));\n  }\n}\n\n// Calculate the tube vertex and normal at the given index.\n//\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\n//\n// Each tube segment is made up of a ring of vertices.\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\n// The indexes of tube segments run from 0 to 8.\n//\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\n  float segmentCount = 8.0;\n\n  float angle = 2.0 * 3.14159 * (index / segmentCount);\n\n  vec3 u = getOrthogonalVector(d);\n  vec3 v = normalize(cross(u, d));\n\n  vec3 x = u * cos(angle) * length(d);\n  vec3 y = v * sin(angle) * length(d);\n  vec3 v3 = x + y;\n\n  normal = normalize(v3);\n\n  return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 color, position;\nattribute vec2 uv;\n\nuniform float vectorScale, tubeScale;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 eyePosition, lightPosition;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n  // Scale the vector magnitude to stay constant with\n  // model & view changes.\n  vec3 normal;\n  vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\n  vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n  //Lighting geometry parameters\n  vec4 cameraCoordinate = view * tubePosition;\n  cameraCoordinate.xyz /= cameraCoordinate.w;\n  f_lightDirection = lightPosition - cameraCoordinate.xyz;\n  f_eyeDirection   = eyePosition - cameraCoordinate.xyz;\n  f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n  // vec4 m_position  = model * vec4(tubePosition, 1.0);\n  vec4 t_position  = view * tubePosition;\n  gl_Position      = projection * t_position;\n\n  f_color          = color;\n  f_data           = tubePosition.xyz;\n  f_position       = position.xyz;\n  f_uv             = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n  float NdotH = max(x, 0.0001);\n  float cos2Alpha = NdotH * NdotH;\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n  float roughness2 = roughness * roughness;\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n  return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n  vec3 lightDirection,\n  vec3 viewDirection,\n  vec3 surfaceNormal,\n  float roughness,\n  float fresnel) {\n\n  float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n  float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n  //Half angle vector\n  vec3 H = normalize(lightDirection + viewDirection);\n\n  //Geometric term\n  float NdotH = max(dot(surfaceNormal, H), 0.0);\n  float VdotH = max(dot(viewDirection, H), 0.000001);\n  float LdotH = max(dot(lightDirection, H), 0.000001);\n  float G1 = (2.0 * NdotH * VdotN) / VdotH;\n  float G2 = (2.0 * NdotH * LdotN) / LdotH;\n  float G = min(1.0, min(G1, G2));\n  \n  //Distribution term\n  float D = beckmannDistribution(NdotH, roughness);\n\n  //Fresnel term\n  float F = pow(1.0 - VdotN, fresnel);\n\n  //Multiply terms and done\n  return  G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n  vec3 N = normalize(f_normal);\n  vec3 L = normalize(f_lightDirection);\n  vec3 V = normalize(f_eyeDirection);\n\n  if(gl_FrontFacing) {\n    N = -N;\n  }\n\n  float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n  float diffuse  = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n  vec4 surfaceColor = f_color * texture2D(texture, f_uv);\n  vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular,  1.0);\n\n  gl_FragColor = litColor * opacity;\n}\n"]),o=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n  // Return up-vector for only-z vector.\n  // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n  // From the above if-statement we have ||a|| > 0  U  ||b|| > 0.\n  // Assign z = 0, x = -b, y = a:\n  // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n  if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n    return normalize(vec3(-v.y, v.x, 0.0));\n  } else {\n    return normalize(vec3(0.0, v.z, -v.y));\n  }\n}\n\n// Calculate the tube vertex and normal at the given index.\n//\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\n//\n// Each tube segment is made up of a ring of vertices.\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\n// The indexes of tube segments run from 0 to 8.\n//\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\n  float segmentCount = 8.0;\n\n  float angle = 2.0 * 3.14159 * (index / segmentCount);\n\n  vec3 u = getOrthogonalVector(d);\n  vec3 v = normalize(cross(u, d));\n\n  vec3 x = u * cos(angle) * length(d);\n  vec3 y = v * sin(angle) * length(d);\n  vec3 v3 = x + y;\n\n  normal = normalize(v3);\n\n  return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform float tubeScale;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n  vec3 normal;\n  vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\n  vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n  gl_Position = projection * view * tubePosition;\n  f_id        = id;\n  f_position  = position.xyz;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3  clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n  if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n  gl_FragColor = vec4(pickId, f_id.xyz);\n}"]);e.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec4"}]},e.pickShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec4"}]}},7307:function(t,e,r){"use strict";var n=r(2858),i=r(4020),a=["xyz","xzy","yxz","yzx","zxy","zyx"],o=function(t,e){var r,n=t.length;for(r=0;r<n;r++){var i=t[r];if(i===e)return r;if(i>e)return r-1}return r},s=function(t,e,r){return t<e?e:t>r?r:t},l=function(t){var e=1/0;t.sort((function(t,e){return t-e}));for(var r=t.length,n=1;n<r;n++){var i=Math.abs(t[n]-t[n-1]);i<e&&(e=i)}return e};t.exports=function(t,e){var r=t.startingPositions,u=t.maxLength||1e3,c=t.tubeSize||1,f=t.absoluteTubeSize,h=t.gridFill||"+x+y+z",p={};-1!==h.indexOf("-x")&&(p.reversedX=!0),-1!==h.indexOf("-y")&&(p.reversedY=!0),-1!==h.indexOf("-z")&&(p.reversedZ=!0),p.filled=a.indexOf(h.replace(/-/g,"").replace(/\+/g,""));var d=t.getVelocity||function(e){return function(t,e,r){var i=e.vectors,a=e.meshgrid,l=t[0],u=t[1],c=t[2],f=a[0].length,h=a[1].length,p=a[2].length,d=o(a[0],l),v=o(a[1],u),g=o(a[2],c),y=d+1,m=v+1,x=g+1;if(d=s(d,0,f-1),y=s(y,0,f-1),v=s(v,0,h-1),m=s(m,0,h-1),g=s(g,0,p-1),x=s(x,0,p-1),d<0||v<0||g<0||y>f-1||m>h-1||x>p-1)return n.create();var b,_,w,T,k,A,M=a[0][d],S=a[0][y],E=a[1][v],L=a[1][m],C=a[2][g],P=(l-M)/(S-M),O=(u-E)/(L-E),I=(c-C)/(a[2][x]-C);switch(isFinite(P)||(P=.5),isFinite(O)||(O=.5),isFinite(I)||(I=.5),r.reversedX&&(d=f-1-d,y=f-1-y),r.reversedY&&(v=h-1-v,m=h-1-m),r.reversedZ&&(g=p-1-g,x=p-1-x),r.filled){case 5:k=g,A=x,w=v*p,T=m*p,b=d*p*h,_=y*p*h;break;case 4:k=g,A=x,b=d*p,_=y*p,w=v*p*f,T=m*p*f;break;case 3:w=v,T=m,k=g*h,A=x*h,b=d*h*p,_=y*h*p;break;case 2:w=v,T=m,b=d*h,_=y*h,k=g*h*f,A=x*h*f;break;case 1:b=d,_=y,k=g*f,A=x*f,w=v*f*p,T=m*f*p;break;default:b=d,_=y,w=v*f,T=m*f,k=g*f*h,A=x*f*h}var D=i[b+w+k],z=i[b+w+A],R=i[b+T+k],F=i[b+T+A],B=i[_+w+k],N=i[_+w+A],j=i[_+T+k],U=i[_+T+A],V=n.create(),H=n.create(),q=n.create(),G=n.create();n.lerp(V,D,B,P),n.lerp(H,z,N,P),n.lerp(q,R,j,P),n.lerp(G,F,U,P);var Z=n.create(),Y=n.create();n.lerp(Z,V,q,O),n.lerp(Y,H,G,O);var W=n.create();return n.lerp(W,Z,Y,I),W}(e,t,p)},v=t.getDivergence||function(t,e){var r=n.create(),i=1e-4;n.add(r,t,[i,0,0]);var a=d(r);n.subtract(a,a,e),n.scale(a,a,1/i),n.add(r,t,[0,i,0]);var o=d(r);n.subtract(o,o,e),n.scale(o,o,1/i),n.add(r,t,[0,0,i]);var s=d(r);return n.subtract(s,s,e),n.scale(s,s,1/i),n.add(r,a,o),n.add(r,r,s),r},g=[],y=e[0][0],m=e[0][1],x=e[0][2],b=e[1][0],_=e[1][1],w=e[1][2],T=function(t){var e=t[0],r=t[1],n=t[2];return!(e<y||e>b||r<m||r>_||n<x||n>w)},k=10*n.distance(e[0],e[1])/u,A=k*k,M=1,S=0,E=r.length;E>1&&(M=function(t){for(var e=[],r=[],n=[],i={},a={},o={},s=t.length,u=0;u<s;u++){var c=t[u],f=c[0],h=c[1],p=c[2];i[f]||(e.push(f),i[f]=!0),a[h]||(r.push(h),a[h]=!0),o[p]||(n.push(p),o[p]=!0)}var d=l(e),v=l(r),g=l(n),y=Math.min(d,v,g);return isFinite(y)?y:1}(r));for(var L=0;L<E;L++){var C=n.create();n.copy(C,r[L]);var P=[C],O=[],I=d(C),D=C;O.push(I);var z=[],R=v(C,I),F=n.length(R);isFinite(F)&&F>S&&(S=F),z.push(F),g.push({points:P,velocities:O,divergences:z});for(var B=0;B<100*u&&P.length<u&&T(C);){B++;var N=n.clone(I),j=n.squaredLength(N);if(0===j)break;j>A&&n.scale(N,N,k/Math.sqrt(j)),n.add(N,N,C),I=d(N),n.squaredDistance(D,N)-A>-1e-4*A&&(P.push(N),D=N,O.push(I),R=v(N,I),F=n.length(R),isFinite(F)&&F>S&&(S=F),z.push(F)),C=N}}var U=function(t,e,r,a){for(var o=0,s=0;s<t.length;s++)for(var l=t[s].velocities,u=0;u<l.length;u++)o=Math.max(o,n.length(l[u]));var c=t.map((function(t){return function(t,e,r,a){for(var o=t.points,s=t.velocities,l=t.divergences,u=[],c=[],f=[],h=[],p=[],d=[],v=0,g=0,y=i.create(),m=i.create(),x=0;x<o.length;x++){var b=o[x],_=s[x],w=l[x];0===e&&(w=.05*r),g=n.length(_)/a,y=i.create(),n.copy(y,_),y[3]=w;for(var T=0;T<8;T++)p[T]=[b[0],b[1],b[2],T];if(h.length>0)for(T=0;T<8;T++){var k=(T+1)%8;u.push(h[T],p[T],p[k],p[k],h[k],h[T]),f.push(m,y,y,y,m,m),d.push(v,g,g,g,v,v);var A=u.length;c.push([A-6,A-5,A-4],[A-3,A-2,A-1])}var M=h;h=p,p=M;var S=m;m=y,y=S;var E=v;v=g,g=E}return{positions:u,cells:c,vectors:f,vertexIntensity:d}}(t,r,a,o)})),f=[],h=[],p=[],d=[];for(s=0;s<c.length;s++){var v=c[s],g=f.length;for(f=f.concat(v.positions),p=p.concat(v.vectors),d=d.concat(v.vertexIntensity),u=0;u<v.cells.length;u++){var y=v.cells[u],m=[];h.push(m);for(var x=0;x<y.length;x++)m.push(y[x]+g)}}return{positions:f,cells:h,vectors:p,vertexIntensity:d,colormap:e}}(g,t.colormap,S,M);return f?U.tubeScale=f:(0===S&&(S=1),U.tubeScale=.5*c*M/S),U};var u=r(9578),c=r(1140).createMesh;t.exports.createTubeMesh=function(t,e){return c(t,e,{shaders:u,traceType:"streamtube"})}},9054:function(t,e,r){var n=r(5158),i=r(6832),a=i(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec4 uv;\nattribute vec3 f;\nattribute vec3 normal;\n\nuniform vec3 objectOffset;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 lightPosition, eyePosition;\nuniform sampler2D colormap;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n  vec3 localCoordinate = vec3(uv.zw, f.x);\n  worldCoordinate = objectOffset + localCoordinate;\n  vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\n  vec4 clipPosition = projection * view * worldPosition;\n  gl_Position = clipPosition;\n  kill = f.y;\n  value = f.z;\n  planeCoordinate = uv.xy;\n\n  vColor = texture2D(colormap, vec2(value, value));\n\n  //Lighting geometry parameters\n  vec4 cameraCoordinate = view * worldPosition;\n  cameraCoordinate.xyz /= cameraCoordinate.w;\n  lightDirection = lightPosition - cameraCoordinate.xyz;\n  eyeDirection   = eyePosition - cameraCoordinate.xyz;\n  surfaceNormal  = normalize((vec4(normal,0) * inverseModel).xyz);\n}\n"]),o=i(["precision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n  float NdotH = max(x, 0.0001);\n  float cos2Alpha = NdotH * NdotH;\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n  float roughness2 = roughness * roughness;\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n  return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat beckmannSpecular(\n  vec3 lightDirection,\n  vec3 viewDirection,\n  vec3 surfaceNormal,\n  float roughness) {\n  return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);\n}\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 lowerBound, upperBound;\nuniform float contourTint;\nuniform vec4 contourColor;\nuniform sampler2D colormap;\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform float vertexColor;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n  if (\n    kill > 0.0 ||\n    vColor.a == 0.0 ||\n    outOfRange(clipBounds[0], clipBounds[1], worldCoordinate)\n  ) discard;\n\n  vec3 N = normalize(surfaceNormal);\n  vec3 V = normalize(eyeDirection);\n  vec3 L = normalize(lightDirection);\n\n  if(gl_FrontFacing) {\n    N = -N;\n  }\n\n  float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\n  float diffuse  = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n  //decide how to interpolate color — in vertex or in fragment\n  vec4 surfaceColor =\n    step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +\n    step(.5, vertexColor) * vColor;\n\n  vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular,  1.0);\n\n  gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\n}\n"]),s=i(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec4 uv;\nattribute float f;\n\nuniform vec3 objectOffset;\nuniform mat3 permutation;\nuniform mat4 model, view, projection;\nuniform float height, zOffset;\nuniform sampler2D colormap;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n  vec3 dataCoordinate = permutation * vec3(uv.xy, height);\n  worldCoordinate = objectOffset + dataCoordinate;\n  vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\n\n  vec4 clipPosition = projection * view * worldPosition;\n  clipPosition.z += zOffset;\n\n  gl_Position = clipPosition;\n  value = f + objectOffset.z;\n  kill = -1.0;\n  planeCoordinate = uv.zw;\n\n  vColor = texture2D(colormap, vec2(value, value));\n\n  //Don't do lighting for contours\n  surfaceNormal   = vec3(1,0,0);\n  eyeDirection    = vec3(0,1,0);\n  lightDirection  = vec3(0,0,1);\n}\n"]),l=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec2 shape;\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 surfaceNormal;\n\nvec2 splitFloat(float v) {\n  float vh = 255.0 * v;\n  float upper = floor(vh);\n  float lower = fract(vh);\n  return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\n}\n\nvoid main() {\n  if ((kill > 0.0) ||\n      (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\n\n  vec2 ux = splitFloat(planeCoordinate.x / shape.x);\n  vec2 uy = splitFloat(planeCoordinate.y / shape.y);\n  gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\n}\n"]);e.createShader=function(t){var e=n(t,a,o,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},e.createPickShader=function(t){var e=n(t,a,l,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},e.createContourShader=function(t){var e=n(t,s,o,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e},e.createPickContourShader=function(t){var e=n(t,s,l,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e}},3754:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl,r=m(e),n=b(e),s=x(e),l=_(e),u=i(e),c=a(e,[{buffer:u,size:4,stride:40,offset:0},{buffer:u,size:3,stride:40,offset:16},{buffer:u,size:3,stride:40,offset:28}]),f=i(e),h=a(e,[{buffer:f,size:4,stride:20,offset:0},{buffer:f,size:1,stride:20,offset:16}]),p=i(e),d=a(e,[{buffer:p,size:2,type:e.FLOAT}]),v=o(e,1,256,e.RGBA,e.UNSIGNED_BYTE);v.minFilter=e.LINEAR,v.magFilter=e.LINEAR;var g=new M(e,[0,0],[[0,0,0],[0,0,0]],r,n,u,c,v,s,l,f,h,p,d,[0,0,0]),y={levels:[[],[],[]]};for(var w in t)y[w]=t[w];return y.colormap=y.colormap||"jet",g.update(y),g};var n=r(2288),i=r(5827),a=r(2944),o=r(8931),s=r(5306),l=r(9156),u=r(7498),c=r(7382),f=r(5050),h=r(4162),p=r(104),d=r(7437),v=r(5070),g=r(9144),y=r(9054),m=y.createShader,x=y.createContourShader,b=y.createPickShader,_=y.createPickContourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],T=[[0,0],[0,1],[1,0],[1,1],[1,0],[0,1]],k=[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]];function A(t,e,r,n,i){this.position=t,this.index=e,this.uv=r,this.level=n,this.dataCoordinate=i}function M(t,e,r,n,i,a,o,l,u,c,h,p,d,v,g){this.gl=t,this.shape=e,this.bounds=r,this.objectOffset=g,this.intensityBounds=[],this._shader=n,this._pickShader=i,this._coordinateBuffer=a,this._vao=o,this._colorMap=l,this._contourShader=u,this._contourPickShader=c,this._contourBuffer=h,this._contourVAO=p,this._contourOffsets=[[],[],[]],this._contourCounts=[[],[],[]],this._vertexCount=0,this._pickResult=new A([0,0,0],[0,0],[0,0],[0,0,0],[0,0,0]),this._dynamicBuffer=d,this._dynamicVAO=v,this._dynamicOffsets=[0,0,0],this._dynamicCounts=[0,0,0],this.contourWidth=[1,1,1],this.contourLevels=[[1],[1],[1]],this.contourTint=[0,0,0],this.contourColor=[[.5,.5,.5,1],[.5,.5,.5,1],[.5,.5,.5,1]],this.showContour=!0,this.showSurface=!0,this.enableHighlight=[!0,!0,!0],this.highlightColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.highlightTint=[1,1,1],this.highlightLevel=[-1,-1,-1],this.enableDynamic=[!0,!0,!0],this.dynamicLevel=[NaN,NaN,NaN],this.dynamicColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.dynamicTint=[1,1,1],this.dynamicWidth=[1,1,1],this.axesBounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.surfaceProject=[!1,!1,!1],this.contourProject=[[!1,!1,!1],[!1,!1,!1],[!1,!1,!1]],this.colorBounds=[!1,!1],this._field=[f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0])],this.pickId=1,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.snapToData=!1,this.pixelRatio=1,this.opacity=1,this.lightPosition=[10,1e4,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.vertexColor=0,this.dirty=!0}!function(){for(var t=0;t<3;++t){var e=k[t],r=(t+2)%3;e[(t+1)%3+0]=1,e[r+3]=1,e[t+6]=1}}();var S=M.prototype;S.genColormap=function(t,e){var r=!1,n=c([l({colormap:t,nshades:256,format:"rgba"}).map((function(t,n){var i=e?function(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;r<e.length;++r){if(e.length<2)return 1;if(e[r][0]===t)return e[r][1];if(e[r][0]>t&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}(n/255,e):t[3];return i<1&&(r=!0),[t[0],t[1],t[2],255*i]}))]);return u.divseq(n,255),this.hasAlphaScale=r,n},S.isTransparent=function(){return this.opacity<1||this.hasAlphaScale},S.isOpaque=function(){return!this.isTransparent()},S.pickSlots=1,S.setPickBase=function(t){this.pickId=t};var E=[0,0,0],L={showSurface:!1,showContour:!1,projections:[w.slice(),w.slice(),w.slice()],clipBounds:[[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]]]};function C(t,e){var r,n,i,a=e.axes&&e.axes.lastCubeProps.axis||E,o=e.showSurface,s=e.showContour;for(r=0;r<3;++r)for(o=o||e.surfaceProject[r],n=0;n<3;++n)s=s||e.contourProject[r][n];for(r=0;r<3;++r){var l=L.projections[r];for(n=0;n<16;++n)l[n]=0;for(n=0;n<4;++n)l[5*n]=1;l[5*r]=0,l[12+r]=e.axesBounds[+(a[r]>0)][r],p(l,t.model,l);var u=L.clipBounds[r];for(i=0;i<2;++i)for(n=0;n<3;++n)u[i][n]=t.clipBounds[i][n];u[0][r]=-1e8,u[1][r]=1e8}return L.showSurface=o,L.showContour=s,L}var P={model:w,view:w,projection:w,inverseModel:w.slice(),lowerBound:[0,0,0],upperBound:[0,0,0],colorMap:0,clipBounds:[[0,0,0],[0,0,0]],height:0,contourTint:0,contourColor:[0,0,0,1],permutation:[1,0,0,0,1,0,0,0,1],zOffset:-1e-4,objectOffset:[0,0,0],kambient:1,kdiffuse:1,kspecular:1,lightPosition:[1e3,1e3,1e3],eyePosition:[0,0,0],roughness:1,fresnel:1,opacity:1,vertexColor:0},O=w.slice(),I=[1,0,0,0,1,0,0,0,1];function D(t,e){t=t||{};var r=this.gl;r.disable(r.CULL_FACE),this._colorMap.bind(0);var n=P;n.model=t.model||w,n.view=t.view||w,n.projection=t.projection||w,n.lowerBound=[this.bounds[0][0],this.bounds[0][1],this.colorBounds[0]||this.bounds[0][2]],n.upperBound=[this.bounds[1][0],this.bounds[1][1],this.colorBounds[1]||this.bounds[1][2]],n.objectOffset=this.objectOffset,n.contourColor=this.contourColor[0],n.inverseModel=d(n.inverseModel,n.model);for(var i=0;i<2;++i)for(var a=n.clipBounds[i],o=0;o<3;++o)a[o]=Math.min(Math.max(this.clipBounds[i][o],-1e8),1e8);n.kambient=this.ambientLight,n.kdiffuse=this.diffuseLight,n.kspecular=this.specularLight,n.roughness=this.roughness,n.fresnel=this.fresnel,n.opacity=this.opacity,n.height=0,n.permutation=I,n.vertexColor=this.vertexColor;var s=O;for(p(s,n.view,n.model),p(s,n.projection,s),d(s,s),i=0;i<3;++i)n.eyePosition[i]=s[12+i]/s[15];var l=s[15];for(i=0;i<3;++i)l+=this.lightPosition[i]*s[4*i+3];for(i=0;i<3;++i){var u=s[12+i];for(o=0;o<3;++o)u+=s[4*o+i]*this.lightPosition[o];n.lightPosition[i]=u/l}var c=C(n,this);if(c.showSurface){for(this._shader.bind(),this._shader.uniforms=n,this._vao.bind(),this.showSurface&&this._vertexCount&&this._vao.draw(r.TRIANGLES,this._vertexCount),i=0;i<3;++i)this.surfaceProject[i]&&this.vertexCount&&(this._shader.uniforms.model=c.projections[i],this._shader.uniforms.clipBounds=c.clipBounds[i],this._vao.draw(r.TRIANGLES,this._vertexCount));this._vao.unbind()}if(c.showContour){var f=this._contourShader;n.kambient=1,n.kdiffuse=0,n.kspecular=0,n.opacity=1,f.bind(),f.uniforms=n;var h=this._contourVAO;for(h.bind(),i=0;i<3;++i)for(f.uniforms.permutation=k[i],r.lineWidth(this.contourWidth[i]*this.pixelRatio),o=0;o<this.contourLevels[i].length;++o)o===this.highlightLevel[i]?(f.uniforms.contourColor=this.highlightColor[i],f.uniforms.contourTint=this.highlightTint[i]):0!==o&&o-1!==this.highlightLevel[i]||(f.uniforms.contourColor=this.contourColor[i],f.uniforms.contourTint=this.contourTint[i]),this._contourCounts[i][o]&&(f.uniforms.height=this.contourLevels[i][o],h.draw(r.LINES,this._contourCounts[i][o],this._contourOffsets[i][o]));for(i=0;i<3;++i)for(f.uniforms.model=c.projections[i],f.uniforms.clipBounds=c.clipBounds[i],o=0;o<3;++o)if(this.contourProject[i][o]){f.uniforms.permutation=k[o],r.lineWidth(this.contourWidth[o]*this.pixelRatio);for(var v=0;v<this.contourLevels[o].length;++v)v===this.highlightLevel[o]?(f.uniforms.contourColor=this.highlightColor[o],f.uniforms.contourTint=this.highlightTint[o]):0!==v&&v-1!==this.highlightLevel[o]||(f.uniforms.contourColor=this.contourColor[o],f.uniforms.contourTint=this.contourTint[o]),this._contourCounts[o][v]&&(f.uniforms.height=this.contourLevels[o][v],h.draw(r.LINES,this._contourCounts[o][v],this._contourOffsets[o][v]))}for(h.unbind(),(h=this._dynamicVAO).bind(),i=0;i<3;++i)if(0!==this._dynamicCounts[i])for(f.uniforms.model=n.model,f.uniforms.clipBounds=n.clipBounds,f.uniforms.permutation=k[i],r.lineWidth(this.dynamicWidth[i]*this.pixelRatio),f.uniforms.contourColor=this.dynamicColor[i],f.uniforms.contourTint=this.dynamicTint[i],f.uniforms.height=this.dynamicLevel[i],h.draw(r.LINES,this._dynamicCounts[i],this._dynamicOffsets[i]),o=0;o<3;++o)this.contourProject[o][i]&&(f.uniforms.model=c.projections[o],f.uniforms.clipBounds=c.clipBounds[o],h.draw(r.LINES,this._dynamicCounts[i],this._dynamicOffsets[i]));h.unbind()}}S.draw=function(t){return D.call(this,t,!1)},S.drawTransparent=function(t){return D.call(this,t,!0)};var z={model:w,view:w,projection:w,inverseModel:w,clipBounds:[[0,0,0],[0,0,0]],height:0,shape:[0,0],pickId:0,lowerBound:[0,0,0],upperBound:[0,0,0],zOffset:0,objectOffset:[0,0,0],permutation:[1,0,0,0,1,0,0,0,1],lightPosition:[0,0,0],eyePosition:[0,0,0]};function R(t,e){return Array.isArray(t)?[e(t[0]),e(t[1]),e(t[2])]:[e(t),e(t),e(t)]}function F(t){return Array.isArray(t)?3===t.length?[t[0],t[1],t[2],1]:[t[0],t[1],t[2],t[3]]:[0,0,0,1]}function B(t){if(Array.isArray(t)){if(Array.isArray(t))return[F(t[0]),F(t[1]),F(t[2])];var e=F(t);return[e.slice(),e.slice(),e.slice()]}}S.drawPick=function(t){t=t||{};var e=this.gl;e.disable(e.CULL_FACE);var r=z;r.model=t.model||w,r.view=t.view||w,r.projection=t.projection||w,r.shape=this._field[2].shape,r.pickId=this.pickId/255,r.lowerBound=this.bounds[0],r.upperBound=this.bounds[1],r.objectOffset=this.objectOffset,r.permutation=I;for(var n=0;n<2;++n)for(var i=r.clipBounds[n],a=0;a<3;++a)i[a]=Math.min(Math.max(this.clipBounds[n][a],-1e8),1e8);var o=C(r,this);if(o.showSurface){for(this._pickShader.bind(),this._pickShader.uniforms=r,this._vao.bind(),this._vao.draw(e.TRIANGLES,this._vertexCount),n=0;n<3;++n)this.surfaceProject[n]&&(this._pickShader.uniforms.model=o.projections[n],this._pickShader.uniforms.clipBounds=o.clipBounds[n],this._vao.draw(e.TRIANGLES,this._vertexCount));this._vao.unbind()}if(o.showContour){var s=this._contourPickShader;s.bind(),s.uniforms=r;var l=this._contourVAO;for(l.bind(),a=0;a<3;++a)for(e.lineWidth(this.contourWidth[a]*this.pixelRatio),s.uniforms.permutation=k[a],n=0;n<this.contourLevels[a].length;++n)this._contourCounts[a][n]&&(s.uniforms.height=this.contourLevels[a][n],l.draw(e.LINES,this._contourCounts[a][n],this._contourOffsets[a][n]));for(n=0;n<3;++n)for(s.uniforms.model=o.projections[n],s.uniforms.clipBounds=o.clipBounds[n],a=0;a<3;++a)if(this.contourProject[n][a]){s.uniforms.permutation=k[a],e.lineWidth(this.contourWidth[a]*this.pixelRatio);for(var u=0;u<this.contourLevels[a].length;++u)this._contourCounts[a][u]&&(s.uniforms.height=this.contourLevels[a][u],l.draw(e.LINES,this._contourCounts[a][u],this._contourOffsets[a][u]))}l.unbind()}},S.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=this._field[2].shape,r=this._pickResult,n=e[0]*(t.value[0]+(t.value[2]>>4)/16)/255,i=Math.floor(n),a=n-i,o=e[1]*(t.value[1]+(15&t.value[2])/16)/255,s=Math.floor(o),l=o-s;i+=1,s+=1;var u=r.position;u[0]=u[1]=u[2]=0;for(var c=0;c<2;++c)for(var f=c?a:1-a,h=0;h<2;++h)for(var p=i+c,d=s+h,g=f*(h?l:1-l),y=0;y<3;++y)u[y]+=this._field[y].get(p,d)*g;for(var m=this._pickResult.level,x=0;x<3;++x)if(m[x]=v.le(this.contourLevels[x],u[x]),m[x]<0)this.contourLevels[x].length>0&&(m[x]=0);else if(m[x]<this.contourLevels[x].length-1){var b=this.contourLevels[x][m[x]],_=this.contourLevels[x][m[x]+1];Math.abs(b-u[x])>Math.abs(_-u[x])&&(m[x]+=1)}for(r.index[0]=a<.5?i:i+1,r.index[1]=l<.5?s:s+1,r.uv[0]=n/e[0],r.uv[1]=o/e[1],y=0;y<3;++y)r.dataCoordinate[y]=this._field[y].get(r.index[0],r.index[1]);return r},S.padField=function(t,e){var r=e.shape.slice(),n=t.shape.slice();u.assign(t.lo(1,1).hi(r[0],r[1]),e),u.assign(t.lo(1).hi(r[0],1),e.hi(r[0],1)),u.assign(t.lo(1,n[1]-1).hi(r[0],1),e.lo(0,r[1]-1).hi(r[0],1)),u.assign(t.lo(0,1).hi(1,r[1]),e.hi(1)),u.assign(t.lo(n[0]-1,1).hi(1,r[1]),e.lo(r[0]-1)),t.set(0,0,e.get(0,0)),t.set(0,n[1]-1,e.get(0,r[1]-1)),t.set(n[0]-1,0,e.get(r[0]-1,0)),t.set(n[0]-1,n[1]-1,e.get(r[0]-1,r[1]-1))},S.update=function(t){t=t||{},this.objectOffset=t.objectOffset||this.objectOffset,this.dirty=!0,"contourWidth"in t&&(this.contourWidth=R(t.contourWidth,Number)),"showContour"in t&&(this.showContour=R(t.showContour,Boolean)),"showSurface"in t&&(this.showSurface=!!t.showSurface),"contourTint"in t&&(this.contourTint=R(t.contourTint,Boolean)),"contourColor"in t&&(this.contourColor=B(t.contourColor)),"contourProject"in t&&(this.contourProject=R(t.contourProject,(function(t){return R(t,Boolean)}))),"surfaceProject"in t&&(this.surfaceProject=t.surfaceProject),"dynamicColor"in t&&(this.dynamicColor=B(t.dynamicColor)),"dynamicTint"in t&&(this.dynamicTint=R(t.dynamicTint,Number)),"dynamicWidth"in t&&(this.dynamicWidth=R(t.dynamicWidth,Number)),"opacity"in t&&(this.opacity=t.opacity),"opacityscale"in t&&(this.opacityscale=t.opacityscale),"colorBounds"in t&&(this.colorBounds=t.colorBounds),"vertexColor"in t&&(this.vertexColor=t.vertexColor?1:0),"colormap"in t&&this._colorMap.setPixels(this.genColormap(t.colormap,this.opacityscale));var e=t.field||t.coords&&t.coords[2]||null,r=!1;if(e||(e=this._field[2].shape[0]||this._field[2].shape[2]?this._field[2].lo(1,1).hi(this._field[2].shape[0]-2,this._field[2].shape[1]-2):this._field[2].hi(0,0)),"field"in t||"coords"in t){var i=(e.shape[0]+2)*(e.shape[1]+2);i>this._field[2].data.length&&(s.freeFloat(this._field[2].data),this._field[2].data=s.mallocFloat(n.nextPow2(i))),this._field[2]=f(this._field[2].data,[e.shape[0]+2,e.shape[1]+2]),this.padField(this._field[2],e),this.shape=e.shape.slice();for(var a=this.shape,o=0;o<2;++o)this._field[2].size>this._field[o].data.length&&(s.freeFloat(this._field[o].data),this._field[o].data=s.mallocFloat(this._field[2].size)),this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2]);if(t.coords){var l=t.coords;if(!Array.isArray(l)||3!==l.length)throw new Error("gl-surface: invalid coordinates for x/y");for(o=0;o<2;++o){var u=l[o];for(y=0;y<2;++y)if(u.shape[y]!==a[y])throw new Error("gl-surface: coords have incorrect shape");this.padField(this._field[o],u)}}else if(t.ticks){var c=t.ticks;if(!Array.isArray(c)||2!==c.length)throw new Error("gl-surface: invalid ticks");for(o=0;o<2;++o){var p=c[o];if((Array.isArray(p)||p.length)&&(p=f(p)),p.shape[0]!==a[o])throw new Error("gl-surface: invalid tick length");var d=f(p.data,a);d.stride[o]=p.stride[0],d.stride[1^o]=0,this.padField(this._field[o],d)}}else{for(o=0;o<2;++o){var v=[0,0];v[o]=1,this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2],v,0)}this._field[0].set(0,0,0);for(var y=0;y<a[0];++y)this._field[0].set(y+1,0,y);for(this._field[0].set(a[0]+1,0,a[0]-1),this._field[1].set(0,0,0),y=0;y<a[1];++y)this._field[1].set(0,y+1,y);this._field[1].set(0,a[1]+1,a[1]-1)}var m=this._field,x=f(s.mallocFloat(3*m[2].size*2),[3,a[0]+2,a[1]+2,2]);for(o=0;o<3;++o)g(x.pick(o),m[o],"mirror");var b=f(s.mallocFloat(3*m[2].size),[a[0]+2,a[1]+2,3]);for(o=0;o<a[0]+2;++o)for(y=0;y<a[1]+2;++y){var _=x.get(0,o,y,0),w=x.get(0,o,y,1),k=x.get(1,o,y,0),A=x.get(1,o,y,1),M=x.get(2,o,y,0),S=x.get(2,o,y,1),E=k*S-A*M,L=M*w-S*_,C=_*A-w*k,P=Math.sqrt(E*E+L*L+C*C);P<1e-8?(P=Math.max(Math.abs(E),Math.abs(L),Math.abs(C)))<1e-8?(C=1,L=E=0,P=1):P=1/P:P=1/Math.sqrt(P),b.set(o,y,0,E*P),b.set(o,y,1,L*P),b.set(o,y,2,C*P)}s.free(x.data);var O=[1/0,1/0,1/0],I=[-1/0,-1/0,-1/0],D=1/0,z=-1/0,F=(a[0]-1)*(a[1]-1)*6,N=s.mallocFloat(n.nextPow2(10*F)),j=0,U=0;for(o=0;o<a[0]-1;++o)t:for(y=0;y<a[1]-1;++y){for(var V=0;V<2;++V)for(var H=0;H<2;++H)for(var q=0;q<3;++q){var G=this._field[q].get(1+o+V,1+y+H);if(isNaN(G)||!isFinite(G))continue t}for(q=0;q<6;++q){var Z=o+T[q][0],Y=y+T[q][1],W=this._field[0].get(Z+1,Y+1),X=this._field[1].get(Z+1,Y+1);G=this._field[2].get(Z+1,Y+1),E=b.get(Z+1,Y+1,0),L=b.get(Z+1,Y+1,1),C=b.get(Z+1,Y+1,2),t.intensity&&(J=t.intensity.get(Z,Y));var J=t.intensity?t.intensity.get(Z,Y):G+this.objectOffset[2];N[j++]=Z,N[j++]=Y,N[j++]=W,N[j++]=X,N[j++]=G,N[j++]=0,N[j++]=J,N[j++]=E,N[j++]=L,N[j++]=C,O[0]=Math.min(O[0],W+this.objectOffset[0]),O[1]=Math.min(O[1],X+this.objectOffset[1]),O[2]=Math.min(O[2],G+this.objectOffset[2]),D=Math.min(D,J),I[0]=Math.max(I[0],W+this.objectOffset[0]),I[1]=Math.max(I[1],X+this.objectOffset[1]),I[2]=Math.max(I[2],G+this.objectOffset[2]),z=Math.max(z,J),U+=1}}for(t.intensityBounds&&(D=+t.intensityBounds[0],z=+t.intensityBounds[1]),o=6;o<j;o+=10)N[o]=(N[o]-D)/(z-D);this._vertexCount=U,this._coordinateBuffer.update(N.subarray(0,j)),s.freeFloat(N),s.free(b.data),this.bounds=[O,I],this.intensity=t.intensity||this._field[2],this.intensityBounds[0]===D&&this.intensityBounds[1]===z||(r=!0),this.intensityBounds=[D,z]}if("levels"in t){var K=t.levels;for(K=Array.isArray(K[0])?K.slice():[[],[],K],o=0;o<3;++o)K[o]=K[o].slice(),K[o].sort((function(t,e){return t-e}));for(o=0;o<3;++o)for(y=0;y<K[o].length;++y)K[o][y]-=this.objectOffset[o];t:for(o=0;o<3;++o){if(K[o].length!==this.contourLevels[o].length){r=!0;break}for(y=0;y<K[o].length;++y)if(K[o][y]!==this.contourLevels[o][y]){r=!0;break t}}this.contourLevels=K}if(r){m=this._field,a=this.shape;for(var $=[],Q=0;Q<3;++Q){var tt=this.contourLevels[Q],et=[],rt=[],nt=[0,0,0];for(o=0;o<tt.length;++o){var it=h(this._field[Q],tt[o]);et.push($.length/5|0),U=0;t:for(y=0;y<it.cells.length;++y){var at=it.cells[y];for(q=0;q<2;++q){var ot=it.positions[at[q]],st=ot[0],lt=0|Math.floor(st),ut=st-lt,ct=ot[1],ft=0|Math.floor(ct),ht=ct-ft,pt=!1;e:for(var dt=0;dt<3;++dt){nt[dt]=0;var vt=(Q+dt+1)%3;for(V=0;V<2;++V){var gt=V?ut:1-ut;for(Z=0|Math.min(Math.max(lt+V,0),a[0]),H=0;H<2;++H){var yt=H?ht:1-ht;if(Y=0|Math.min(Math.max(ft+H,0),a[1]),G=dt<2?this._field[vt].get(Z,Y):(this.intensity.get(Z,Y)-this.intensityBounds[0])/(this.intensityBounds[1]-this.intensityBounds[0]),!isFinite(G)||isNaN(G)){pt=!0;break e}var mt=gt*yt;nt[dt]+=mt*G}}}if(pt){if(q>0){for(var xt=0;xt<5;++xt)$.pop();U-=1}continue t}$.push(nt[0],nt[1],ot[0],ot[1],nt[2]),U+=1}}rt.push(U)}this._contourOffsets[Q]=et,this._contourCounts[Q]=rt}var bt=s.mallocFloat($.length);for(o=0;o<$.length;++o)bt[o]=$[o];this._contourBuffer.update(bt),s.freeFloat(bt)}},S.dispose=function(){this._shader.dispose(),this._vao.dispose(),this._coordinateBuffer.dispose(),this._colorMap.dispose(),this._contourBuffer.dispose(),this._contourVAO.dispose(),this._contourShader.dispose(),this._contourPickShader.dispose(),this._dynamicBuffer.dispose(),this._dynamicVAO.dispose();for(var t=0;t<3;++t)s.freeFloat(this._field[t].data)},S.highlight=function(t){var e,r;if(!t)return this._dynamicCounts=[0,0,0],this.dyanamicLevel=[NaN,NaN,NaN],void(this.highlightLevel=[-1,-1,-1]);for(e=0;e<3;++e)this.enableHighlight[e]?this.highlightLevel[e]=t.level[e]:this.highlightLevel[e]=-1;for(r=this.snapToData?t.dataCoordinate:t.position,e=0;e<3;++e)r[e]-=this.objectOffset[e];if(this.enableDynamic[0]&&r[0]!==this.dynamicLevel[0]||this.enableDynamic[1]&&r[1]!==this.dynamicLevel[1]||this.enableDynamic[2]&&r[2]!==this.dynamicLevel[2]){for(var n=0,i=this.shape,a=s.mallocFloat(12*i[0]*i[1]),o=0;o<3;++o)if(this.enableDynamic[o]){this.dynamicLevel[o]=r[o];var l=(o+1)%3,u=(o+2)%3,c=this._field[o],f=this._field[l],p=this._field[u],d=h(c,r[o]),v=d.cells,g=d.positions;for(this._dynamicOffsets[o]=n,e=0;e<v.length;++e)for(var y=v[e],m=0;m<2;++m){var x=g[y[m]],b=+x[0],_=0|b,w=0|Math.min(_+1,i[0]),T=b-_,k=1-T,A=+x[1],M=0|A,S=0|Math.min(M+1,i[1]),E=A-M,L=1-E,C=k*L,P=k*E,O=T*L,I=T*E,D=C*f.get(_,M)+P*f.get(_,S)+O*f.get(w,M)+I*f.get(w,S),z=C*p.get(_,M)+P*p.get(_,S)+O*p.get(w,M)+I*p.get(w,S);if(isNaN(D)||isNaN(z)){m&&(n-=1);break}a[2*n+0]=D,a[2*n+1]=z,n+=1}this._dynamicCounts[o]=n-this._dynamicOffsets[o]}else this.dynamicLevel[o]=NaN,this._dynamicCounts[o]=0;this._dynamicBuffer.update(a.subarray(0,2*n)),s.freeFloat(a)}}},8931:function(t,e,r){"use strict";var n=r(5050),i=r(7498),a=r(5306);t.exports=function(t){if(arguments.length<=1)throw new Error("gl-texture2d: Missing arguments for texture2d constructor");if(o||u(t),"number"==typeof arguments[1])return y(t,arguments[1],arguments[2],arguments[3]||t.RGBA,arguments[4]||t.UNSIGNED_BYTE);if(Array.isArray(arguments[1]))return y(t,0|arguments[1][0],0|arguments[1][1],arguments[2]||t.RGBA,arguments[3]||t.UNSIGNED_BYTE);if("object"==typeof arguments[1]){var e=arguments[1],r=c(e)?e:e.raw;if(r)return m(t,r,0|e.width,0|e.height,arguments[2]||t.RGBA,arguments[3]||t.UNSIGNED_BYTE);if(e.shape&&e.data&&e.stride)return x(t,e)}throw new Error("gl-texture2d: Invalid arguments for texture2d constructor")};var o=null,s=null,l=null;function u(t){o=[t.LINEAR,t.NEAREST_MIPMAP_LINEAR,t.LINEAR_MIPMAP_NEAREST,t.LINEAR_MIPMAP_NEAREST],s=[t.NEAREST,t.LINEAR,t.NEAREST_MIPMAP_NEAREST,t.NEAREST_MIPMAP_LINEAR,t.LINEAR_MIPMAP_NEAREST,t.LINEAR_MIPMAP_LINEAR],l=[t.REPEAT,t.CLAMP_TO_EDGE,t.MIRRORED_REPEAT]}function c(t){return"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement||"undefined"!=typeof ImageData&&t instanceof ImageData}var f=function(t,e){i.muls(t,e,255)};function h(t,e,r){var n=t.gl,i=n.getParameter(n.MAX_TEXTURE_SIZE);if(e<0||e>i||r<0||r>i)throw new Error("gl-texture2d: Invalid texture size");return t._shape=[e,r],t.bind(),n.texImage2D(n.TEXTURE_2D,0,t.format,e,r,0,t.format,t.type,null),t._mipLevels=[0],t}function p(t,e,r,n,i,a){this.gl=t,this.handle=e,this.format=i,this.type=a,this._shape=[r,n],this._mipLevels=[0],this._magFilter=t.NEAREST,this._minFilter=t.NEAREST,this._wrapS=t.CLAMP_TO_EDGE,this._wrapT=t.CLAMP_TO_EDGE,this._anisoSamples=1;var o=this,s=[this._wrapS,this._wrapT];Object.defineProperties(s,[{get:function(){return o._wrapS},set:function(t){return o.wrapS=t}},{get:function(){return o._wrapT},set:function(t){return o.wrapT=t}}]),this._wrapVector=s;var l=[this._shape[0],this._shape[1]];Object.defineProperties(l,[{get:function(){return o._shape[0]},set:function(t){return o.width=t}},{get:function(){return o._shape[1]},set:function(t){return o.height=t}}]),this._shapeVector=l}var d=p.prototype;function v(t,e){return 3===t.length?1===e[2]&&e[1]===t[0]*t[2]&&e[0]===t[2]:1===e[0]&&e[1]===t[0]}function g(t){var e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e}function y(t,e,r,n,i){var a=t.getParameter(t.MAX_TEXTURE_SIZE);if(e<0||e>a||r<0||r>a)throw new Error("gl-texture2d: Invalid texture shape");if(i===t.FLOAT&&!t.getExtension("OES_texture_float"))throw new Error("gl-texture2d: Floating point textures not supported on this platform");var o=g(t);return t.texImage2D(t.TEXTURE_2D,0,n,e,r,0,n,i,null),new p(t,o,e,r,n,i)}function m(t,e,r,n,i,a){var o=g(t);return t.texImage2D(t.TEXTURE_2D,0,i,i,a,e),new p(t,o,r,n,i,a)}function x(t,e){var r=e.dtype,o=e.shape.slice(),s=t.getParameter(t.MAX_TEXTURE_SIZE);if(o[0]<0||o[0]>s||o[1]<0||o[1]>s)throw new Error("gl-texture2d: Invalid texture size");var l=v(o,e.stride.slice()),u=0;"float32"===r?u=t.FLOAT:"float64"===r?(u=t.FLOAT,l=!1,r="float32"):"uint8"===r?u=t.UNSIGNED_BYTE:(u=t.UNSIGNED_BYTE,l=!1,r="uint8");var c,h,d=0;if(2===o.length)d=t.LUMINANCE,o=[o[0],o[1],1],e=n(e.data,o,[e.stride[0],e.stride[1],1],e.offset);else{if(3!==o.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===o[2])d=t.ALPHA;else if(2===o[2])d=t.LUMINANCE_ALPHA;else if(3===o[2])d=t.RGB;else{if(4!==o[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");d=t.RGBA}}u!==t.FLOAT||t.getExtension("OES_texture_float")||(u=t.UNSIGNED_BYTE,l=!1);var y=e.size;if(l)c=0===e.offset&&e.data.length===y?e.data:e.data.subarray(e.offset,e.offset+y);else{var m=[o[2],o[2]*o[0],1];h=a.malloc(y,r);var x=n(h,o,m,0);"float32"!==r&&"float64"!==r||u!==t.UNSIGNED_BYTE?i.assign(x,e):f(x,e),c=h.subarray(0,y)}var b=g(t);return t.texImage2D(t.TEXTURE_2D,0,d,o[0],o[1],0,d,u,c),l||a.free(h),new p(t,b,o[0],o[1],d,u)}Object.defineProperties(d,{minFilter:{get:function(){return this._minFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),this._minFilter=t}},magFilter:{get:function(){return this._magFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),this._magFilter=t}},mipSamples:{get:function(){return this._anisoSamples},set:function(t){var e=this._anisoSamples;if(this._anisoSamples=0|Math.max(t,1),e!==this._anisoSamples){var r=this.gl.getExtension("EXT_texture_filter_anisotropic");r&&this.gl.texParameterf(this.gl.TEXTURE_2D,r.TEXTURE_MAX_ANISOTROPY_EXT,this._anisoSamples)}return this._anisoSamples}},wrapS:{get:function(){return this._wrapS},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,t),this._wrapS=t}},wrapT:{get:function(){return this._wrapT},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,t),this._wrapT=t}},wrap:{get:function(){return this._wrapVector},set:function(t){if(Array.isArray(t)||(t=[t,t]),2!==t.length)throw new Error("gl-texture2d: Must specify wrap mode for rows and columns");for(var e=0;e<2;++e)if(l.indexOf(t[e])<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);this._wrapS=t[0],this._wrapT=t[1];var r=this.gl;return this.bind(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,this._wrapS),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,this._wrapT),t}},shape:{get:function(){return this._shapeVector},set:function(t){if(Array.isArray(t)){if(2!==t.length)throw new Error("gl-texture2d: Invalid texture shape")}else t=[0|t,0|t];return h(this,0|t[0],0|t[1]),[0|t[0],0|t[1]]}},width:{get:function(){return this._shape[0]},set:function(t){return h(this,t|=0,this._shape[1]),t}},height:{get:function(){return this._shape[1]},set:function(t){return t|=0,h(this,this._shape[0],t),t}}}),d.bind=function(t){var e=this.gl;return void 0!==t&&e.activeTexture(e.TEXTURE0+(0|t)),e.bindTexture(e.TEXTURE_2D,this.handle),void 0!==t?0|t:e.getParameter(e.ACTIVE_TEXTURE)-e.TEXTURE0},d.dispose=function(){this.gl.deleteTexture(this.handle)},d.generateMipmap=function(){this.bind(),this.gl.generateMipmap(this.gl.TEXTURE_2D);for(var t=Math.min(this._shape[0],this._shape[1]),e=0;t>0;++e,t>>>=1)this._mipLevels.indexOf(e)<0&&this._mipLevels.push(e)},d.setPixels=function(t,e,r,o){var s=this.gl;this.bind(),Array.isArray(e)?(o=r,r=0|e[1],e=0|e[0]):(e=e||0,r=r||0),o=o||0;var l=c(t)?t:t.raw;if(l)this._mipLevels.indexOf(o)<0?(s.texImage2D(s.TEXTURE_2D,0,this.format,this.format,this.type,l),this._mipLevels.push(o)):s.texSubImage2D(s.TEXTURE_2D,o,e,r,this.format,this.type,l);else{if(!(t.shape&&t.stride&&t.data))throw new Error("gl-texture2d: Unsupported data type");if(t.shape.length<2||e+t.shape[1]>this._shape[1]>>>o||r+t.shape[0]>this._shape[0]>>>o||e<0||r<0)throw new Error("gl-texture2d: Texture dimensions are out of bounds");!function(t,e,r,o,s,l,u,c){var h=c.dtype,p=c.shape.slice();if(p.length<2||p.length>3)throw new Error("gl-texture2d: Invalid ndarray, must be 2d or 3d");var d=0,g=0,y=v(p,c.stride.slice());if("float32"===h?d=t.FLOAT:"float64"===h?(d=t.FLOAT,y=!1,h="float32"):"uint8"===h?d=t.UNSIGNED_BYTE:(d=t.UNSIGNED_BYTE,y=!1,h="uint8"),2===p.length)g=t.LUMINANCE,p=[p[0],p[1],1],c=n(c.data,p,[c.stride[0],c.stride[1],1],c.offset);else{if(3!==p.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===p[2])g=t.ALPHA;else if(2===p[2])g=t.LUMINANCE_ALPHA;else if(3===p[2])g=t.RGB;else{if(4!==p[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");g=t.RGBA}p[2]}if(g!==t.LUMINANCE&&g!==t.ALPHA||s!==t.LUMINANCE&&s!==t.ALPHA||(g=s),g!==s)throw new Error("gl-texture2d: Incompatible texture format for setPixels");var m=c.size,x=u.indexOf(o)<0;if(x&&u.push(o),d===l&&y)0===c.offset&&c.data.length===m?x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,c.data):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,c.data):x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,c.data.subarray(c.offset,c.offset+m)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,c.data.subarray(c.offset,c.offset+m));else{var b;b=l===t.FLOAT?a.mallocFloat32(m):a.mallocUint8(m);var _=n(b,p,[p[2],p[2]*p[0],1]);d===t.FLOAT&&l===t.UNSIGNED_BYTE?f(_,c):i.assign(_,c),x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,b.subarray(0,m)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,b.subarray(0,m)),l===t.FLOAT?a.freeFloat32(b):a.freeUint8(b)}}(s,e,r,o,this.format,this.type,this._mipLevels,t)}}},3056:function(t){"use strict";t.exports=function(t,e,r){e?e.bind():t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null);var n=0|t.getParameter(t.MAX_VERTEX_ATTRIBS);if(r){if(r.length>n)throw new Error("gl-vao: Too many vertex attributes");for(var i=0;i<r.length;++i){var a=r[i];if(a.buffer){var o=a.buffer,s=a.size||4,l=a.type||t.FLOAT,u=!!a.normalized,c=a.stride||0,f=a.offset||0;o.bind(),t.enableVertexAttribArray(i),t.vertexAttribPointer(i,s,l,u,c,f)}else{if("number"==typeof a)t.vertexAttrib1f(i,a);else if(1===a.length)t.vertexAttrib1f(i,a[0]);else if(2===a.length)t.vertexAttrib2f(i,a[0],a[1]);else if(3===a.length)t.vertexAttrib3f(i,a[0],a[1],a[2]);else{if(4!==a.length)throw new Error("gl-vao: Invalid vertex attribute");t.vertexAttrib4f(i,a[0],a[1],a[2],a[3])}t.disableVertexAttribArray(i)}}for(;i<n;++i)t.disableVertexAttribArray(i)}else for(t.bindBuffer(t.ARRAY_BUFFER,null),i=0;i<n;++i)t.disableVertexAttribArray(i)}},7220:function(t,e,r){"use strict";var n=r(3056);function i(t){this.gl=t,this._elements=null,this._attributes=null,this._elementsType=t.UNSIGNED_SHORT}i.prototype.bind=function(){n(this.gl,this._elements,this._attributes)},i.prototype.update=function(t,e,r){this._elements=e,this._attributes=t,this._elementsType=r||this.gl.UNSIGNED_SHORT},i.prototype.dispose=function(){},i.prototype.unbind=function(){},i.prototype.draw=function(t,e,r){r=r||0;var n=this.gl;this._elements?n.drawElements(t,e,this._elementsType,r):n.drawArrays(t,r,e)},t.exports=function(t){return new i(t)}},3778:function(t,e,r){"use strict";var n=r(3056);function i(t,e,r,n,i,a){this.location=t,this.dimension=e,this.a=r,this.b=n,this.c=i,this.d=a}function a(t,e,r){this.gl=t,this._ext=e,this.handle=r,this._attribs=[],this._useElements=!1,this._elementsType=t.UNSIGNED_SHORT}i.prototype.bind=function(t){switch(this.dimension){case 1:t.vertexAttrib1f(this.location,this.a);break;case 2:t.vertexAttrib2f(this.location,this.a,this.b);break;case 3:t.vertexAttrib3f(this.location,this.a,this.b,this.c);break;case 4:t.vertexAttrib4f(this.location,this.a,this.b,this.c,this.d)}},a.prototype.bind=function(){this._ext.bindVertexArrayOES(this.handle);for(var t=0;t<this._attribs.length;++t)this._attribs[t].bind(this.gl)},a.prototype.unbind=function(){this._ext.bindVertexArrayOES(null)},a.prototype.dispose=function(){this._ext.deleteVertexArrayOES(this.handle)},a.prototype.update=function(t,e,r){if(this.bind(),n(this.gl,e,t),this.unbind(),this._attribs.length=0,t)for(var a=0;a<t.length;++a){var o=t[a];"number"==typeof o?this._attribs.push(new i(a,1,o)):Array.isArray(o)&&this._attribs.push(new i(a,o.length,o[0],o[1],o[2],o[3]))}this._useElements=!!e,this._elementsType=r||this.gl.UNSIGNED_SHORT},a.prototype.draw=function(t,e,r){r=r||0;var n=this.gl;this._useElements?n.drawElements(t,e,this._elementsType,r):n.drawArrays(t,r,e)},t.exports=function(t,e){return new a(t,e,e.createVertexArrayOES())}},2944:function(t,e,r){"use strict";var n=r(3778),i=r(7220);function a(t){this.bindVertexArrayOES=t.bindVertexArray.bind(t),this.createVertexArrayOES=t.createVertexArray.bind(t),this.deleteVertexArrayOES=t.deleteVertexArray.bind(t)}t.exports=function(t,e,r,o){var s,l=t.createVertexArray?new a(t):t.getExtension("OES_vertex_array_object");return(s=l?n(t,l):i(t)).update(e,r,o),s}},2598:function(t){t.exports=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}},5879:function(t,e,r){t.exports=function(t,e){var r=n(t[0],t[1],t[2]),o=n(e[0],e[1],e[2]);i(r,r),i(o,o);var s=a(r,o);return s>1?0:Math.acos(s)};var n=r(5415),i=r(899),a=r(9305)},8827:function(t){t.exports=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}},7622:function(t){t.exports=function(t){var e=new Float32Array(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}},8782:function(t){t.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}},8501:function(t){t.exports=function(){var t=new Float32Array(3);return t[0]=0,t[1]=0,t[2]=0,t}},903:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t}},5981:function(t,e,r){t.exports=r(8288)},8288:function(t){t.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(r*r+n*n+i*i)}},8629:function(t,e,r){t.exports=r(7979)},7979:function(t){t.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}},9305:function(t){t.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}},154:function(t){t.exports=1e-6},4932:function(t,e,r){t.exports=function(t,e){var r=t[0],i=t[1],a=t[2],o=e[0],s=e[1],l=e[2];return Math.abs(r-o)<=n*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=n*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(a-l)<=n*Math.max(1,Math.abs(a),Math.abs(l))};var n=r(154)},5777:function(t){t.exports=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}},3306:function(t){t.exports=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}},7447:function(t,e,r){t.exports=function(t,e,r,i,a,o){var s,l;for(e||(e=3),r||(r=0),l=i?Math.min(i*e+r,t.length):t.length,s=r;s<l;s+=e)n[0]=t[s],n[1]=t[s+1],n[2]=t[s+2],a(n,n,o),t[s]=n[0],t[s+1]=n[1],t[s+2]=n[2];return t};var n=r(8501)()},5415:function(t){t.exports=function(t,e,r){var n=new Float32Array(3);return n[0]=t,n[1]=e,n[2]=r,n}},2858:function(t,e,r){t.exports={EPSILON:r(154),create:r(8501),clone:r(7622),angle:r(5879),fromValues:r(5415),copy:r(8782),set:r(831),equals:r(4932),exactEquals:r(5777),add:r(2598),subtract:r(911),sub:r(8921),multiply:r(105),mul:r(5733),divide:r(7979),div:r(8629),min:r(3605),max:r(1716),floor:r(3306),ceil:r(8827),round:r(1624),scale:r(5685),scaleAndAdd:r(6722),distance:r(8288),dist:r(5981),squaredDistance:r(6403),sqrDist:r(5294),length:r(4693),len:r(1468),squaredLength:r(4337),sqrLen:r(3303),negate:r(435),inverse:r(2073),normalize:r(899),dot:r(9305),cross:r(903),lerp:r(1868),random:r(6660),transformMat4:r(3255),transformMat3:r(9908),transformQuat:r(6568),rotateX:r(392),rotateY:r(3222),rotateZ:r(3388),forEach:r(7447)}},2073:function(t){t.exports=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}},1468:function(t,e,r){t.exports=r(4693)},4693:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}},1868:function(t){t.exports=function(t,e,r,n){var i=e[0],a=e[1],o=e[2];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=o+n*(r[2]-o),t}},1716:function(t){t.exports=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}},3605:function(t){t.exports=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}},5733:function(t,e,r){t.exports=r(105)},105:function(t){t.exports=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}},435:function(t){t.exports=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}},899:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=r*r+n*n+i*i;return a>0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a),t}},6660:function(t){t.exports=function(t,e){e=e||1;var r=2*Math.random()*Math.PI,n=2*Math.random()-1,i=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*i,t[1]=Math.sin(r)*i,t[2]=n*e,t}},392:function(t){t.exports=function(t,e,r,n){var i=r[1],a=r[2],o=e[1]-i,s=e[2]-a,l=Math.sin(n),u=Math.cos(n);return t[0]=e[0],t[1]=i+o*u-s*l,t[2]=a+o*l+s*u,t}},3222:function(t){t.exports=function(t,e,r,n){var i=r[0],a=r[2],o=e[0]-i,s=e[2]-a,l=Math.sin(n),u=Math.cos(n);return t[0]=i+s*l+o*u,t[1]=e[1],t[2]=a+s*u-o*l,t}},3388:function(t){t.exports=function(t,e,r,n){var i=r[0],a=r[1],o=e[0]-i,s=e[1]-a,l=Math.sin(n),u=Math.cos(n);return t[0]=i+o*u-s*l,t[1]=a+o*l+s*u,t[2]=e[2],t}},1624:function(t){t.exports=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}},5685:function(t){t.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}},6722:function(t){t.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}},831:function(t){t.exports=function(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}},5294:function(t,e,r){t.exports=r(6403)},3303:function(t,e,r){t.exports=r(4337)},6403:function(t){t.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}},4337:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}},8921:function(t,e,r){t.exports=r(911)},911:function(t){t.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}},9908:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t}},3255:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[3]*n+r[7]*i+r[11]*a+r[15];return o=o||1,t[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/o,t[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/o,t[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/o,t}},6568:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],u=r[3],c=u*n+s*a-l*i,f=u*i+l*n-o*a,h=u*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=c*u+p*-o+f*-l-h*-s,t[1]=f*u+p*-s+h*-o-c*-l,t[2]=h*u+p*-l+c*-s-f*-o,t}},3433:function(t){t.exports=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}},1413:function(t){t.exports=function(t){var e=new Float32Array(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}},3470:function(t){t.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}},5313:function(t){t.exports=function(){var t=new Float32Array(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t}},5446:function(t){t.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return Math.sqrt(r*r+n*n+i*i+a*a)}},205:function(t){t.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t[3]=e[3]/r[3],t}},4242:function(t){t.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}},5680:function(t){t.exports=function(t,e,r,n){var i=new Float32Array(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=n,i}},4020:function(t,e,r){t.exports={create:r(5313),clone:r(1413),fromValues:r(5680),copy:r(3470),set:r(6453),add:r(3433),subtract:r(2705),multiply:r(746),divide:r(205),min:r(2170),max:r(3030),scale:r(5510),scaleAndAdd:r(4224),distance:r(5446),squaredDistance:r(1542),length:r(8177),squaredLength:r(9037),negate:r(6459),inverse:r(8057),normalize:r(381),dot:r(4242),lerp:r(8746),random:r(3770),transformMat4:r(6342),transformQuat:r(5022)}},8057:function(t){t.exports=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t}},8177:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return Math.sqrt(e*e+r*r+n*n+i*i)}},8746:function(t){t.exports=function(t,e,r,n){var i=e[0],a=e[1],o=e[2],s=e[3];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=o+n*(r[2]-o),t[3]=s+n*(r[3]-s),t}},3030:function(t){t.exports=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t[3]=Math.max(e[3],r[3]),t}},2170:function(t){t.exports=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t[3]=Math.min(e[3],r[3]),t}},746:function(t){t.exports=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}},6459:function(t){t.exports=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}},381:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r*r+n*n+i*i+a*a;return o>0&&(o=1/Math.sqrt(o),t[0]=r*o,t[1]=n*o,t[2]=i*o,t[3]=a*o),t}},3770:function(t,e,r){var n=r(381),i=r(5510);t.exports=function(t,e){return e=e||1,t[0]=Math.random(),t[1]=Math.random(),t[2]=Math.random(),t[3]=Math.random(),n(t,t),i(t,t,e),t}},5510:function(t){t.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}},4224:function(t){t.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t}},6453:function(t){t.exports=function(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t}},1542:function(t){t.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return r*r+n*n+i*i+a*a}},9037:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return e*e+r*r+n*n+i*i}},2705:function(t){t.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}},6342:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}},5022:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],u=r[3],c=u*n+s*a-l*i,f=u*i+l*n-o*a,h=u*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=c*u+p*-o+f*-l-h*-s,t[1]=f*u+p*-s+h*-o-c*-l,t[2]=h*u+p*-l+c*-s-f*-o,t[3]=e[3],t}},9365:function(t,e,r){var n=r(8096),i=r(7896);t.exports=function(t){for(var e=Array.isArray(t)?t:n(t),r=0;r<e.length;r++){var a=e[r];if("preprocessor"===a.type){var o=a.data.match(/\#define\s+SHADER_NAME(_B64)?\s+(.+)$/);if(o&&o[2]){var s=o[1],l=o[2];return(s?i(l):l).trim()}}}}},3193:function(t,e,r){t.exports=function(t){var e,r,f,h=0,p=0,d=l,v=[],g=[],y=1,m=0,x=0,b=!1,_=!1,w="",T=a,k=n;"300 es"===(t=t||{}).version&&(T=s,k=o);var A={},M={};for(h=0;h<T.length;h++)A[T[h]]=!0;for(h=0;h<k.length;h++)M[k[h]]=!0;return function(t){return g=[],null!==t?function(t){var r;for(h=0,t.toString&&(t=t.toString()),w+=t.replace(/\r\n/g,"\n"),f=w.length;e=w[h],h<f;){switch(r=h,d){case 0:h=P();break;case 1:case 2:h=C();break;case 3:h=O();break;case 4:h=z();break;case 11:h=D();break;case 5:h=R();break;case u:h=F();break;case 9:h=L();break;case l:h=E()}r!==h&&("\n"===w[r]?(m=0,++y):++m)}return p+=h,w=w.slice(h),g}(t):(v.length&&S(v.join("")),d=10,S("(eof)"),g)};function S(t){t.length&&g.push({type:c[d],data:t,position:x,line:y,column:m})}function E(){return v=v.length?[]:v,"/"===r&&"*"===e?(x=p+h-1,d=0,r=e,h+1):"/"===r&&"/"===e?(x=p+h-1,d=1,r=e,h+1):"#"===e?(d=2,x=p+h,h):/\s/.test(e)?(d=9,x=p+h,h):(b=/\d/.test(e),_=/[^\w_]/.test(e),x=p+h,d=b?4:_?3:u,h)}function L(){return/[^\s]/g.test(e)?(S(v.join("")),d=l,h):(v.push(e),r=e,h+1)}function C(){return"\r"!==e&&"\n"!==e||"\\"===r?(v.push(e),r=e,h+1):(S(v.join("")),d=l,h)}function P(){return"/"===e&&"*"===r?(v.push(e),S(v.join("")),d=l,h+1):(v.push(e),r=e,h+1)}function O(){if("."===r&&/\d/.test(e))return d=5,h;if("/"===r&&"*"===e)return d=0,h;if("/"===r&&"/"===e)return d=1,h;if("."===e&&v.length){for(;I(v););return d=5,h}if(";"===e||")"===e||"("===e){if(v.length)for(;I(v););return S(e),d=l,h+1}var t=2===v.length&&"="!==e;if(/[\w_\d\s]/.test(e)||t){for(;I(v););return d=l,h}return v.push(e),r=e,h+1}function I(t){for(var e,r,n=0;;){if(e=i.indexOf(t.slice(0,t.length+n).join("")),r=i[e],-1===e){if(n--+t.length>0)continue;r=t.slice(0,1).join("")}return S(r),x+=r.length,(v=v.slice(r.length)).length}}function D(){return/[^a-fA-F0-9]/.test(e)?(S(v.join("")),d=l,h):(v.push(e),r=e,h+1)}function z(){return"."===e||/[eE]/.test(e)?(v.push(e),d=5,r=e,h+1):"x"===e&&1===v.length&&"0"===v[0]?(d=11,v.push(e),r=e,h+1):/[^\d]/.test(e)?(S(v.join("")),d=l,h):(v.push(e),r=e,h+1)}function R(){return"f"===e&&(v.push(e),r=e,h+=1),/[eE]/.test(e)?(v.push(e),r=e,h+1):("-"!==e&&"+"!==e||!/[eE]/.test(r))&&/[^\d]/.test(e)?(S(v.join("")),d=l,h):(v.push(e),r=e,h+1)}function F(){if(/[^\d\w_]/.test(e)){var t=v.join("");return d=M[t]?8:A[t]?7:6,S(v.join("")),d=l,h}return v.push(e),r=e,h+1}};var n=r(399),i=r(9746),a=r(9525),o=r(9458),s=r(3585),l=999,u=9999,c=["block-comment","line-comment","preprocessor","operator","integer","float","ident","builtin","keyword","whitespace","eof","integer"]},3585:function(t,e,r){var n=r(9525);n=n.slice().filter((function(t){return!/^(gl\_|texture)/.test(t)})),t.exports=n.concat(["gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","trunc","round","roundEven","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","outerProduct","transpose","determinant","inverse","texture","textureSize","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset"])},9525:function(t){t.exports=["abs","acos","all","any","asin","atan","ceil","clamp","cos","cross","dFdx","dFdy","degrees","distance","dot","equal","exp","exp2","faceforward","floor","fract","gl_BackColor","gl_BackLightModelProduct","gl_BackLightProduct","gl_BackMaterial","gl_BackSecondaryColor","gl_ClipPlane","gl_ClipVertex","gl_Color","gl_DepthRange","gl_DepthRangeParameters","gl_EyePlaneQ","gl_EyePlaneR","gl_EyePlaneS","gl_EyePlaneT","gl_Fog","gl_FogCoord","gl_FogFragCoord","gl_FogParameters","gl_FragColor","gl_FragCoord","gl_FragData","gl_FragDepth","gl_FragDepthEXT","gl_FrontColor","gl_FrontFacing","gl_FrontLightModelProduct","gl_FrontLightProduct","gl_FrontMaterial","gl_FrontSecondaryColor","gl_LightModel","gl_LightModelParameters","gl_LightModelProducts","gl_LightProducts","gl_LightSource","gl_LightSourceParameters","gl_MaterialParameters","gl_MaxClipPlanes","gl_MaxCombinedTextureImageUnits","gl_MaxDrawBuffers","gl_MaxFragmentUniformComponents","gl_MaxLights","gl_MaxTextureCoords","gl_MaxTextureImageUnits","gl_MaxTextureUnits","gl_MaxVaryingFloats","gl_MaxVertexAttribs","gl_MaxVertexTextureImageUnits","gl_MaxVertexUniformComponents","gl_ModelViewMatrix","gl_ModelViewMatrixInverse","gl_ModelViewMatrixInverseTranspose","gl_ModelViewMatrixTranspose","gl_ModelViewProjectionMatrix","gl_ModelViewProjectionMatrixInverse","gl_ModelViewProjectionMatrixInverseTranspose","gl_ModelViewProjectionMatrixTranspose","gl_MultiTexCoord0","gl_MultiTexCoord1","gl_MultiTexCoord2","gl_MultiTexCoord3","gl_MultiTexCoord4","gl_MultiTexCoord5","gl_MultiTexCoord6","gl_MultiTexCoord7","gl_Normal","gl_NormalMatrix","gl_NormalScale","gl_ObjectPlaneQ","gl_ObjectPlaneR","gl_ObjectPlaneS","gl_ObjectPlaneT","gl_Point","gl_PointCoord","gl_PointParameters","gl_PointSize","gl_Position","gl_ProjectionMatrix","gl_ProjectionMatrixInverse","gl_ProjectionMatrixInverseTranspose","gl_ProjectionMatrixTranspose","gl_SecondaryColor","gl_TexCoord","gl_TextureEnvColor","gl_TextureMatrix","gl_TextureMatrixInverse","gl_TextureMatrixInverseTranspose","gl_TextureMatrixTranspose","gl_Vertex","greaterThan","greaterThanEqual","inversesqrt","length","lessThan","lessThanEqual","log","log2","matrixCompMult","max","min","mix","mod","normalize","not","notEqual","pow","radians","reflect","refract","sign","sin","smoothstep","sqrt","step","tan","texture2D","texture2DLod","texture2DProj","texture2DProjLod","textureCube","textureCubeLod","texture2DLodEXT","texture2DProjLodEXT","textureCubeLodEXT","texture2DGradEXT","texture2DProjGradEXT","textureCubeGradEXT"]},9458:function(t,e,r){var n=r(399);t.exports=n.slice().concat(["layout","centroid","smooth","case","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","uvec2","uvec3","uvec4","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","coherent","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","image1DShadow","image2DShadow","image1DArrayShadow","image2DArrayShadow","imageBuffer","iimageBuffer","uimageBuffer","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray"])},399:function(t){t.exports=["precision","highp","mediump","lowp","attribute","const","uniform","varying","break","continue","do","for","while","if","else","in","out","inout","float","int","uint","void","bool","true","false","discard","return","mat2","mat3","mat4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","sampler1D","sampler2D","sampler3D","samplerCube","sampler1DShadow","sampler2DShadow","struct","asm","class","union","enum","typedef","template","this","packed","goto","switch","default","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler2DRect","sampler3DRect","sampler2DRectShadow","sizeof","cast","namespace","using"]},9746:function(t){t.exports=["<<=",">>=","++","--","<<",">>","<=",">=","==","!=","&&","||","+=","-=","*=","/=","%=","&=","^^","^=","|=","(",")","[","]",".","!","~","*","/","%","+","-","<",">","&","^","|","?",":","=",",",";","{","}"]},8096:function(t,e,r){var n=r(3193);t.exports=function(t,e){var r=n(e),i=[];return(i=i.concat(r(t))).concat(r(null))}},6832:function(t){t.exports=function(t){"string"==typeof t&&(t=[t]);for(var e=[].slice.call(arguments,1),r=[],n=0;n<t.length-1;n++)r.push(t[n],e[n]||"");return r.push(t[n]),r.join("")}},5233:function(t,e,r){"use strict";var n=r(4846);t.exports=n&&function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(e){t=!1}return t}()},2183:function(t,e,r){"use strict";t.exports=function(t,e){var r=t.length;if(0===r)throw new Error("Must have at least d+1 points");var i=t[0].length;if(r<=i)throw new Error("Must input at least d+1 points");var o=t.slice(0,i+1),s=n.apply(void 0,o);if(0===s)throw new Error("Input not in general position");for(var l=new Array(i+1),c=0;c<=i;++c)l[c]=c;s<0&&(l[0]=1,l[1]=0);var f=new a(l,new Array(i+1),!1),h=f.adjacent,p=new Array(i+2);for(c=0;c<=i;++c){for(var d=l.slice(),v=0;v<=i;++v)v===c&&(d[v]=-1);var g=d[0];d[0]=d[1],d[1]=g;var y=new a(d,new Array(i+1),!0);h[c]=y,p[c]=y}for(p[i+1]=f,c=0;c<=i;++c){d=h[c].vertices;var m=h[c].adjacent;for(v=0;v<=i;++v){var x=d[v];if(x<0)m[v]=f;else for(var b=0;b<=i;++b)h[b].vertices.indexOf(x)<0&&(m[v]=h[b])}}var _=new u(i,o,p),w=!!e;for(c=i+1;c<r;++c)_.insert(t[c],w);return _.boundary()};var n=r(417),i=r(8211).H;function a(t,e,r){this.vertices=t,this.adjacent=e,this.boundary=r,this.lastVisited=-1}function o(t,e,r){this.vertices=t,this.cell=e,this.index=r}function s(t,e){return i(t.vertices,e.vertices)}a.prototype.flip=function(){var t=this.vertices[0];this.vertices[0]=this.vertices[1],this.vertices[1]=t;var e=this.adjacent[0];this.adjacent[0]=this.adjacent[1],this.adjacent[1]=e};var l=[];function u(t,e,r){this.dimension=t,this.vertices=e,this.simplices=r,this.interior=r.filter((function(t){return!t.boundary})),this.tuple=new Array(t+1);for(var i=0;i<=t;++i)this.tuple[i]=this.vertices[i];var a,o=l[t];o||(o=l[t]=((a=n[t+1])||(a=n),function(t){return function(){var e=this.tuple;return t.apply(this,e)}}(a))),this.orient=o}var c=u.prototype;c.handleBoundaryDegeneracy=function(t,e){var r=this.dimension,n=this.vertices.length-1,i=this.tuple,a=this.vertices,o=[t];for(t.lastVisited=-n;o.length>0;)for(var s=(t=o.pop()).adjacent,l=0;l<=r;++l){var u=s[l];if(u.boundary&&!(u.lastVisited<=-n)){for(var c=u.vertices,f=0;f<=r;++f){var h=c[f];i[f]=h<0?e:a[h]}var p=this.orient();if(p>0)return u;u.lastVisited=-n,0===p&&o.push(u)}}return null},c.walk=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,a=this.tuple,o=e?this.interior.length*Math.random()|0:this.interior.length-1,s=this.interior[o];t:for(;!s.boundary;){for(var l=s.vertices,u=s.adjacent,c=0;c<=n;++c)a[c]=i[l[c]];for(s.lastVisited=r,c=0;c<=n;++c){var f=u[c];if(!(f.lastVisited>=r)){var h=a[c];a[c]=t;var p=this.orient();if(a[c]=h,p<0){s=f;continue t}f.boundary?f.lastVisited=-r:f.lastVisited=r}}return}return s},c.addPeaks=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,l=this.tuple,u=this.interior,c=this.simplices,f=[e];e.lastVisited=r,e.vertices[e.vertices.indexOf(-1)]=r,e.boundary=!1,u.push(e);for(var h=[];f.length>0;){var p=(e=f.pop()).vertices,d=e.adjacent,v=p.indexOf(r);if(!(v<0))for(var g=0;g<=n;++g)if(g!==v){var y=d[g];if(y.boundary&&!(y.lastVisited>=r)){var m=y.vertices;if(y.lastVisited!==-r){for(var x=0,b=0;b<=n;++b)m[b]<0?(x=b,l[b]=t):l[b]=i[m[b]];if(this.orient()>0){m[x]=r,y.boundary=!1,u.push(y),f.push(y),y.lastVisited=r;continue}y.lastVisited=-r}var _=y.adjacent,w=p.slice(),T=d.slice(),k=new a(w,T,!0);c.push(k);var A=_.indexOf(e);if(!(A<0))for(_[A]=k,T[v]=y,w[g]=-1,T[g]=e,d[g]=k,k.flip(),b=0;b<=n;++b){var M=w[b];if(!(M<0||M===r)){for(var S=new Array(n-1),E=0,L=0;L<=n;++L){var C=w[L];C<0||L===b||(S[E++]=C)}h.push(new o(S,k,b))}}}}}for(h.sort(s),g=0;g+1<h.length;g+=2){var P=h[g],O=h[g+1],I=P.index,D=O.index;I<0||D<0||(P.cell.adjacent[P.index]=O.cell,O.cell.adjacent[O.index]=P.cell)}},c.insert=function(t,e){var r=this.vertices;r.push(t);var n=this.walk(t,e);if(n){for(var i=this.dimension,a=this.tuple,o=0;o<=i;++o){var s=n.vertices[o];a[o]=s<0?t:r[s]}var l=this.orient(a);l<0||(0!==l||(n=this.handleBoundaryDegeneracy(n,t)))&&this.addPeaks(t,n)}},c.boundary=function(){for(var t=this.dimension,e=[],r=this.simplices,n=r.length,i=0;i<n;++i){var a=r[i];if(a.boundary){for(var o=new Array(t),s=a.vertices,l=0,u=0,c=0;c<=t;++c)s[c]>=0?o[l++]=s[c]:u=1&c;if(u===(1&t)){var f=o[0];o[0]=o[1],o[1]=f}e.push(o)}}return e}},9014:function(t,e,r){"use strict";var n=r(5070);function i(t,e,r,n,i){this.mid=t,this.left=e,this.right=r,this.leftPoints=n,this.rightPoints=i,this.count=(e?e.count:0)+(r?r.count:0)+n.length}t.exports=function(t){return t&&0!==t.length?new y(g(t)):new y(null)};var a=i.prototype;function o(t,e){t.mid=e.mid,t.left=e.left,t.right=e.right,t.leftPoints=e.leftPoints,t.rightPoints=e.rightPoints,t.count=e.count}function s(t,e){var r=g(e);t.mid=r.mid,t.left=r.left,t.right=r.right,t.leftPoints=r.leftPoints,t.rightPoints=r.rightPoints,t.count=r.count}function l(t,e){var r=t.intervals([]);r.push(e),s(t,r)}function u(t,e){var r=t.intervals([]),n=r.indexOf(e);return n<0?0:(r.splice(n,1),s(t,r),1)}function c(t,e,r){for(var n=0;n<t.length&&t[n][0]<=e;++n){var i=r(t[n]);if(i)return i}}function f(t,e,r){for(var n=t.length-1;n>=0&&t[n][1]>=e;--n){var i=r(t[n]);if(i)return i}}function h(t,e){for(var r=0;r<t.length;++r){var n=e(t[r]);if(n)return n}}function p(t,e){return t-e}function d(t,e){return t[0]-e[0]||t[1]-e[1]}function v(t,e){return t[1]-e[1]||t[0]-e[0]}function g(t){if(0===t.length)return null;for(var e=[],r=0;r<t.length;++r)e.push(t[r][0],t[r][1]);e.sort(p);var n=e[e.length>>1],a=[],o=[],s=[];for(r=0;r<t.length;++r){var l=t[r];l[1]<n?a.push(l):n<l[0]?o.push(l):s.push(l)}var u=s,c=s.slice();return u.sort(d),c.sort(v),new i(n,g(a),g(o),u,c)}function y(t){this.root=t}a.intervals=function(t){return t.push.apply(t,this.leftPoints),this.left&&this.left.intervals(t),this.right&&this.right.intervals(t),t},a.insert=function(t){var e=this.count-this.leftPoints.length;if(this.count+=1,t[1]<this.mid)this.left?4*(this.left.count+1)>3*(e+1)?l(this,t):this.left.insert(t):this.left=g([t]);else if(t[0]>this.mid)this.right?4*(this.right.count+1)>3*(e+1)?l(this,t):this.right.insert(t):this.right=g([t]);else{var r=n.ge(this.leftPoints,t,d),i=n.ge(this.rightPoints,t,v);this.leftPoints.splice(r,0,t),this.rightPoints.splice(i,0,t)}},a.remove=function(t){var e=this.count-this.leftPoints;if(t[1]<this.mid)return this.left?4*(this.right?this.right.count:0)>3*(e-1)?u(this,t):2===(s=this.left.remove(t))?(this.left=null,this.count-=1,1):(1===s&&(this.count-=1),s):0;if(t[0]>this.mid)return this.right?4*(this.left?this.left.count:0)>3*(e-1)?u(this,t):2===(s=this.right.remove(t))?(this.right=null,this.count-=1,1):(1===s&&(this.count-=1),s):0;if(1===this.count)return this.leftPoints[0]===t?2:0;if(1===this.leftPoints.length&&this.leftPoints[0]===t){if(this.left&&this.right){for(var r=this,i=this.left;i.right;)r=i,i=i.right;if(r===this)i.right=this.right;else{var a=this.left,s=this.right;r.count-=i.count,r.right=i.left,i.left=a,i.right=s}o(this,i),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?o(this,this.left):o(this,this.right);return 1}for(a=n.ge(this.leftPoints,t,d);a<this.leftPoints.length&&this.leftPoints[a][0]===t[0];++a)if(this.leftPoints[a]===t)for(this.count-=1,this.leftPoints.splice(a,1),s=n.ge(this.rightPoints,t,v);s<this.rightPoints.length&&this.rightPoints[s][1]===t[1];++s)if(this.rightPoints[s]===t)return this.rightPoints.splice(s,1),1;return 0},a.queryPoint=function(t,e){return t<this.mid?this.left&&(r=this.left.queryPoint(t,e))?r:c(this.leftPoints,t,e):t>this.mid?this.right&&(r=this.right.queryPoint(t,e))?r:f(this.rightPoints,t,e):h(this.leftPoints,e);var r},a.queryInterval=function(t,e,r){var n;return t<this.mid&&this.left&&(n=this.left.queryInterval(t,e,r))||e>this.mid&&this.right&&(n=this.right.queryInterval(t,e,r))?n:e<this.mid?c(this.leftPoints,e,r):t>this.mid?f(this.rightPoints,t,r):h(this.leftPoints,r)};var m=y.prototype;m.insert=function(t){this.root?this.root.insert(t):this.root=new i(t[0],null,null,[t],[t])},m.remove=function(t){if(this.root){var e=this.root.remove(t);return 2===e&&(this.root=null),0!==e}return!1},m.queryPoint=function(t,e){if(this.root)return this.root.queryPoint(t,e)},m.queryInterval=function(t,e,r){if(t<=e&&this.root)return this.root.queryInterval(t,e,r)},Object.defineProperty(m,"count",{get:function(){return this.root?this.root.count:0}}),Object.defineProperty(m,"intervals",{get:function(){return this.root?this.root.intervals([]):[]}})},9560:function(t){"use strict";t.exports=function(t){for(var e=new Array(t),r=0;r<t;++r)e[r]=r;return e}},4846:function(t){t.exports=!0},4780:function(t){function e(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}t.exports=function(t){return null!=t&&(e(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&e(t.slice(0,0))}(t)||!!t._isBuffer)}},2861:function(t){"use strict";t.exports=n,t.exports.isMobile=n,t.exports.default=n;var e=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,r=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i;function n(t){t||(t={});var n=t.ua;if(n||"undefined"==typeof navigator||(n=navigator.userAgent),n&&n.headers&&"string"==typeof n.headers["user-agent"]&&(n=n.headers["user-agent"]),"string"!=typeof n)return!1;var i=t.tablet?r.test(n):e.test(n);return!i&&t.tablet&&t.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==n.indexOf("Macintosh")&&-1!==n.indexOf("Safari")&&(i=!0),i}},3596:function(t){"use strict";t.exports=function(t){for(var e,r=t.length,n=0;n<r;n++)if(((e=t.charCodeAt(n))<9||e>13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}},3578:function(t){t.exports=function(t,e,r){return t*(1-r)+e*r}},7191:function(t,e,r){var n=r(4690),i=r(9823),a=r(7332),o=r(7787),s=r(7437),l=r(2142),u={length:r(4693),normalize:r(899),dot:r(9305),cross:r(903)},c=i(),f=i(),h=[0,0,0,0],p=[[0,0,0],[0,0,0],[0,0,0]],d=[0,0,0];function v(t,e,r,n,i){t[0]=e[0]*n+r[0]*i,t[1]=e[1]*n+r[1]*i,t[2]=e[2]*n+r[2]*i}t.exports=function(t,e,r,i,g,y){if(e||(e=[0,0,0]),r||(r=[0,0,0]),i||(i=[0,0,0]),g||(g=[0,0,0,1]),y||(y=[0,0,0,1]),!n(c,t))return!1;if(a(f,c),f[3]=0,f[7]=0,f[11]=0,f[15]=1,Math.abs(o(f)<1e-8))return!1;var m,x,b,_,w,T,k,A=c[3],M=c[7],S=c[11],E=c[12],L=c[13],C=c[14],P=c[15];if(0!==A||0!==M||0!==S){if(h[0]=A,h[1]=M,h[2]=S,h[3]=P,!s(f,f))return!1;l(f,f),m=g,b=f,_=(x=h)[0],w=x[1],T=x[2],k=x[3],m[0]=b[0]*_+b[4]*w+b[8]*T+b[12]*k,m[1]=b[1]*_+b[5]*w+b[9]*T+b[13]*k,m[2]=b[2]*_+b[6]*w+b[10]*T+b[14]*k,m[3]=b[3]*_+b[7]*w+b[11]*T+b[15]*k}else g[0]=g[1]=g[2]=0,g[3]=1;if(e[0]=E,e[1]=L,e[2]=C,function(t,e){t[0][0]=e[0],t[0][1]=e[1],t[0][2]=e[2],t[1][0]=e[4],t[1][1]=e[5],t[1][2]=e[6],t[2][0]=e[8],t[2][1]=e[9],t[2][2]=e[10]}(p,c),r[0]=u.length(p[0]),u.normalize(p[0],p[0]),i[0]=u.dot(p[0],p[1]),v(p[1],p[1],p[0],1,-i[0]),r[1]=u.length(p[1]),u.normalize(p[1],p[1]),i[0]/=r[1],i[1]=u.dot(p[0],p[2]),v(p[2],p[2],p[0],1,-i[1]),i[2]=u.dot(p[1],p[2]),v(p[2],p[2],p[1],1,-i[2]),r[2]=u.length(p[2]),u.normalize(p[2],p[2]),i[1]/=r[2],i[2]/=r[2],u.cross(d,p[1],p[2]),u.dot(p[0],d)<0)for(var O=0;O<3;O++)r[O]*=-1,p[O][0]*=-1,p[O][1]*=-1,p[O][2]*=-1;return y[0]=.5*Math.sqrt(Math.max(1+p[0][0]-p[1][1]-p[2][2],0)),y[1]=.5*Math.sqrt(Math.max(1-p[0][0]+p[1][1]-p[2][2],0)),y[2]=.5*Math.sqrt(Math.max(1-p[0][0]-p[1][1]+p[2][2],0)),y[3]=.5*Math.sqrt(Math.max(1+p[0][0]+p[1][1]+p[2][2],0)),p[2][1]>p[1][2]&&(y[0]=-y[0]),p[0][2]>p[2][0]&&(y[1]=-y[1]),p[1][0]>p[0][1]&&(y[2]=-y[2]),!0}},4690:function(t){t.exports=function(t,e){var r=e[15];if(0===r)return!1;for(var n=1/r,i=0;i<16;i++)t[i]=e[i]*n;return!0}},7649:function(t,e,r){var n=r(1868),i=r(1102),a=r(7191),o=r(7787),s=r(1116),l=f(),u=f(),c=f();function f(){return{translate:h(),scale:h(1),skew:h(),perspective:[0,0,0,1],quaternion:[0,0,0,1]}}function h(t){return[t||0,t||0,t||0]}t.exports=function(t,e,r,f){if(0===o(e)||0===o(r))return!1;var h=a(e,l.translate,l.scale,l.skew,l.perspective,l.quaternion),p=a(r,u.translate,u.scale,u.skew,u.perspective,u.quaternion);return!(!h||!p||(n(c.translate,l.translate,u.translate,f),n(c.skew,l.skew,u.skew,f),n(c.scale,l.scale,u.scale,f),n(c.perspective,l.perspective,u.perspective,f),s(c.quaternion,l.quaternion,u.quaternion,f),i(t,c.translate,c.scale,c.skew,c.perspective,c.quaternion),0))}},1102:function(t,e,r){var n={identity:r(9947),translate:r(998),multiply:r(104),create:r(9823),scale:r(3668),fromRotationTranslation:r(7280)},i=(n.create(),n.create());t.exports=function(t,e,r,a,o,s){return n.identity(t),n.fromRotationTranslation(t,s,e),t[3]=o[0],t[7]=o[1],t[11]=o[2],t[15]=o[3],n.identity(i),0!==a[2]&&(i[9]=a[2],n.multiply(t,t,i)),0!==a[1]&&(i[9]=0,i[8]=a[1],n.multiply(t,t,i)),0!==a[0]&&(i[8]=0,i[4]=a[0],n.multiply(t,t,i)),n.scale(t,t,r),t}},9298:function(t,e,r){"use strict";var n=r(5070),i=r(7649),a=r(7437),o=r(6109),s=r(7115),l=r(5240),u=r(3012),c=r(998),f=(r(3668),r(899)),h=[0,0,0];function p(t){this._components=t.slice(),this._time=[0],this.prevMatrix=t.slice(),this.nextMatrix=t.slice(),this.computedMatrix=t.slice(),this.computedInverse=t.slice(),this.computedEye=[0,0,0],this.computedUp=[0,0,0],this.computedCenter=[0,0,0],this.computedRadius=[0],this._limits=[-1/0,1/0]}t.exports=function(t){return new p((t=t||{}).matrix||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};var d=p.prototype;d.recalcMatrix=function(t){var e=this._time,r=n.le(e,t),o=this.computedMatrix;if(!(r<0)){var s=this._components;if(r===e.length-1)for(var l=16*r,u=0;u<16;++u)o[u]=s[l++];else{var c=e[r+1]-e[r],h=(l=16*r,this.prevMatrix),p=!0;for(u=0;u<16;++u)h[u]=s[l++];var d=this.nextMatrix;for(u=0;u<16;++u)d[u]=s[l++],p=p&&h[u]===d[u];if(c<1e-6||p)for(u=0;u<16;++u)o[u]=h[u];else i(o,h,d,(t-e[r])/c)}var v=this.computedUp;v[0]=o[1],v[1]=o[5],v[2]=o[9],f(v,v);var g=this.computedInverse;a(g,o);var y=this.computedEye,m=g[15];y[0]=g[12]/m,y[1]=g[13]/m,y[2]=g[14]/m;var x=this.computedCenter,b=Math.exp(this.computedRadius[0]);for(u=0;u<3;++u)x[u]=y[u]-o[2+4*u]*b}},d.idle=function(t){if(!(t<this.lastT())){for(var e=this._components,r=e.length-16,n=0;n<16;++n)e.push(e[r++]);this._time.push(t)}},d.flush=function(t){var e=n.gt(this._time,t)-2;e<0||(this._time.splice(0,e),this._components.splice(0,16*e))},d.lastT=function(){return this._time[this._time.length-1]},d.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||h,n=n||this.computedUp,this.setMatrix(t,u(this.computedMatrix,e,r,n));for(var i=0,a=0;a<3;++a)i+=Math.pow(r[a]-e[a],2);i=Math.log(Math.sqrt(i)),this.computedRadius[0]=i},d.rotate=function(t,e,r,n){this.recalcMatrix(t);var i=this.computedInverse;e&&s(i,i,e),r&&o(i,i,r),n&&l(i,i,n),this.setMatrix(t,a(this.computedMatrix,i))};var v=[0,0,0];d.pan=function(t,e,r,n){v[0]=-(e||0),v[1]=-(r||0),v[2]=-(n||0),this.recalcMatrix(t);var i=this.computedInverse;c(i,i,v),this.setMatrix(t,a(i,i))},d.translate=function(t,e,r,n){v[0]=e||0,v[1]=r||0,v[2]=n||0,this.recalcMatrix(t);var i=this.computedMatrix;c(i,i,v),this.setMatrix(t,i)},d.setMatrix=function(t,e){if(!(t<this.lastT())){this._time.push(t);for(var r=0;r<16;++r)this._components.push(e[r])}},d.setDistance=function(t,e){this.computedRadius[0]=e},d.setDistanceLimits=function(t,e){var r=this._limits;r[0]=t,r[1]=e},d.getDistanceLimits=function(t){var e=this._limits;return t?(t[0]=e[0],t[1]=e[1],t):e}},3266:function(t,e,r){"use strict";t.exports=function(t){var e=t.length;if(e<3){for(var r=new Array(e),i=0;i<e;++i)r[i]=i;return 2===e&&t[0][0]===t[1][0]&&t[0][1]===t[1][1]?[0]:r}var a=new Array(e);for(i=0;i<e;++i)a[i]=i;a.sort((function(e,r){return t[e][0]-t[r][0]||t[e][1]-t[r][1]}));var o=[a[0],a[1]],s=[a[0],a[1]];for(i=2;i<e;++i){for(var l=a[i],u=t[l],c=o.length;c>1&&n(t[o[c-2]],t[o[c-1]],u)<=0;)c-=1,o.pop();for(o.push(l),c=s.length;c>1&&n(t[s[c-2]],t[s[c-1]],u)>=0;)c-=1,s.pop();s.push(l)}r=new Array(s.length+o.length-2);for(var f=0,h=(i=0,o.length);i<h;++i)r[f++]=o[i];for(var p=s.length-2;p>0;--p)r[f++]=s[p];return r};var n=r(417)[3]},6145:function(t,e,r){"use strict";t.exports=function(t,e){e||(e=t,t=window);var r=0,i=0,a=0,o={shift:!1,alt:!1,control:!1,meta:!1},s=!1;function l(t){var e=!1;return"altKey"in t&&(e=e||t.altKey!==o.alt,o.alt=!!t.altKey),"shiftKey"in t&&(e=e||t.shiftKey!==o.shift,o.shift=!!t.shiftKey),"ctrlKey"in t&&(e=e||t.ctrlKey!==o.control,o.control=!!t.ctrlKey),"metaKey"in t&&(e=e||t.metaKey!==o.meta,o.meta=!!t.metaKey),e}function u(t,s){var u=n.x(s),c=n.y(s);"buttons"in s&&(t=0|s.buttons),(t!==r||u!==i||c!==a||l(s))&&(r=0|t,i=u||0,a=c||0,e&&e(r,i,a,o))}function c(t){u(0,t)}function f(){(r||i||a||o.shift||o.alt||o.meta||o.control)&&(i=a=0,r=0,o.shift=o.alt=o.control=o.meta=!1,e&&e(0,0,0,o))}function h(t){l(t)&&e&&e(r,i,a,o)}function p(t){0===n.buttons(t)?u(0,t):u(r,t)}function d(t){u(r|n.buttons(t),t)}function v(t){u(r&~n.buttons(t),t)}function g(){s||(s=!0,t.addEventListener("mousemove",p),t.addEventListener("mousedown",d),t.addEventListener("mouseup",v),t.addEventListener("mouseleave",c),t.addEventListener("mouseenter",c),t.addEventListener("mouseout",c),t.addEventListener("mouseover",c),t.addEventListener("blur",f),t.addEventListener("keyup",h),t.addEventListener("keydown",h),t.addEventListener("keypress",h),t!==window&&(window.addEventListener("blur",f),window.addEventListener("keyup",h),window.addEventListener("keydown",h),window.addEventListener("keypress",h)))}g();var y={element:t};return Object.defineProperties(y,{enabled:{get:function(){return s},set:function(e){e?g():s&&(s=!1,t.removeEventListener("mousemove",p),t.removeEventListener("mousedown",d),t.removeEventListener("mouseup",v),t.removeEventListener("mouseleave",c),t.removeEventListener("mouseenter",c),t.removeEventListener("mouseout",c),t.removeEventListener("mouseover",c),t.removeEventListener("blur",f),t.removeEventListener("keyup",h),t.removeEventListener("keydown",h),t.removeEventListener("keypress",h),t!==window&&(window.removeEventListener("blur",f),window.removeEventListener("keyup",h),window.removeEventListener("keydown",h),window.removeEventListener("keypress",h)))},enumerable:!0},buttons:{get:function(){return r},enumerable:!0},x:{get:function(){return i},enumerable:!0},y:{get:function(){return a},enumerable:!0},mods:{get:function(){return o},enumerable:!0}}),y};var n=r(4110)},2565:function(t){var e={left:0,top:0};t.exports=function(t,r,n){r=r||t.currentTarget||t.srcElement,Array.isArray(n)||(n=[0,0]);var i,a=t.clientX||0,o=t.clientY||0,s=(i=r)===window||i===document||i===document.body?e:i.getBoundingClientRect();return n[0]=a-s.left,n[1]=o-s.top,n}},4110:function(t,e){"use strict";function r(t){return t.target||t.srcElement||window}e.buttons=function(t){if("object"==typeof t){if("buttons"in t)return t.buttons;if("which"in t){if(2===(e=t.which))return 4;if(3===e)return 2;if(e>0)return 1<<e-1}else if("button"in t){var e;if(1===(e=t.button))return 4;if(2===e)return 2;if(e>=0)return 1<<e}}return 0},e.element=r,e.x=function(t){if("object"==typeof t){if("offsetX"in t)return t.offsetX;var e=r(t).getBoundingClientRect();return t.clientX-e.left}return 0},e.y=function(t){if("object"==typeof t){if("offsetY"in t)return t.offsetY;var e=r(t).getBoundingClientRect();return t.clientY-e.top}return 0}},6475:function(t,e,r){"use strict";var n=r(14);t.exports=function(t,e,r){"function"==typeof t&&(r=!!e,e=t,t=window);var i=n("ex",t),a=function(t){r&&t.preventDefault();var n=t.deltaX||0,a=t.deltaY||0,o=t.deltaZ||0,s=1;switch(t.deltaMode){case 1:s=i;break;case 2:s=window.innerHeight}if(a*=s,o*=s,(n*=s)||a||o)return e(n,a,o,t)};return t.addEventListener("wheel",a),a}},9284:function(t,e,r){"use strict";var n=r(5306);t.exports=function(t){function e(t){throw new Error("ndarray-extract-contour: "+t)}"object"!=typeof t&&e("Must specify arguments");var r=t.order;Array.isArray(r)||e("Must specify order");var a=t.arrayArguments||1;a<1&&e("Must have at least one array argument"),(t.scalarArguments||0)<0&&e("Scalar arg count must be > 0"),"function"!=typeof t.vertex&&e("Must specify vertex creation function"),"function"!=typeof t.cell&&e("Must specify cell creation function"),"function"!=typeof t.phase&&e("Must specify phase function");for(var o=t.getters||[],s=new Array(a),l=0;l<a;++l)o.indexOf(l)>=0?s[l]=!0:s[l]=!1;return function(t,e,r,a,o,s){var l=[s,o].join(",");return(0,i[l])(t,e,r,n.mallocUint32,n.freeUint32)}(t.vertex,t.cell,t.phase,0,r,s)};var i={"false,0,1":function(t,e,r,n,i){return function(a,o,s,l){var u,c=0|a.shape[0],f=0|a.shape[1],h=a.data,p=0|a.offset,d=0|a.stride[0],v=0|a.stride[1],g=p,y=0|-d,m=0,x=0|-v,b=0,_=-d-v|0,w=0,T=0|d,k=v-d*c|0,A=0,M=0,S=0,E=2*c|0,L=n(E),C=n(E),P=0,O=0,I=-1,D=-1,z=0,R=0|-c,F=0|c,B=0,N=-c-1|0,j=c-1|0,U=0,V=0,H=0;for(A=0;A<c;++A)L[P++]=r(h[g],o,s,l),g+=T;if(g+=k,f>0){if(M=1,L[P++]=r(h[g],o,s,l),g+=T,c>0)for(A=1,u=h[g],O=L[P]=r(u,o,s,l),z=L[P+I],B=L[P+R],U=L[P+N],O===z&&O===B&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,z,B,U,o,s,l),V=C[P]=S++),P+=1,g+=T,A=2;A<c;++A)u=h[g],O=L[P]=r(u,o,s,l),z=L[P+I],B=L[P+R],U=L[P+N],O===z&&O===B&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,z,B,U,o,s,l),V=C[P]=S++,U!==z&&e(C[P+I],V,w,m,U,z,o,s,l)),P+=1,g+=T;for(g+=k,P=0,H=I,I=D,D=H,H=R,R=F,F=H,H=N,N=j,j=H,M=2;M<f;++M){if(L[P++]=r(h[g],o,s,l),g+=T,c>0)for(A=1,u=h[g],O=L[P]=r(u,o,s,l),z=L[P+I],B=L[P+R],U=L[P+N],O===z&&O===B&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,z,B,U,o,s,l),V=C[P]=S++,U!==B&&e(C[P+R],V,b,w,B,U,o,s,l)),P+=1,g+=T,A=2;A<c;++A)u=h[g],O=L[P]=r(u,o,s,l),z=L[P+I],B=L[P+R],U=L[P+N],O===z&&O===B&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,z,B,U,o,s,l),V=C[P]=S++,U!==B&&e(C[P+R],V,b,w,B,U,o,s,l),U!==z&&e(C[P+I],V,w,m,U,z,o,s,l)),P+=1,g+=T;1&M&&(P=0),H=I,I=D,D=H,H=R,R=F,F=H,H=N,N=j,j=H,g+=k}}i(C),i(L)}},"false,1,0":function(t,e,r,n,i){return function(a,o,s,l){var u,c=0|a.shape[0],f=0|a.shape[1],h=a.data,p=0|a.offset,d=0|a.stride[0],v=0|a.stride[1],g=p,y=0|-d,m=0,x=0|-v,b=0,_=-d-v|0,w=0,T=0|v,k=d-v*f|0,A=0,M=0,S=0,E=2*f|0,L=n(E),C=n(E),P=0,O=0,I=-1,D=-1,z=0,R=0|-f,F=0|f,B=0,N=-f-1|0,j=f-1|0,U=0,V=0,H=0;for(M=0;M<f;++M)L[P++]=r(h[g],o,s,l),g+=T;if(g+=k,c>0){if(A=1,L[P++]=r(h[g],o,s,l),g+=T,f>0)for(M=1,u=h[g],O=L[P]=r(u,o,s,l),B=L[P+R],z=L[P+I],U=L[P+N],O===B&&O===z&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,B,z,U,o,s,l),V=C[P]=S++),P+=1,g+=T,M=2;M<f;++M)u=h[g],O=L[P]=r(u,o,s,l),B=L[P+R],z=L[P+I],U=L[P+N],O===B&&O===z&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,B,z,U,o,s,l),V=C[P]=S++,U!==z&&e(C[P+I],V,b,w,z,U,o,s,l)),P+=1,g+=T;for(g+=k,P=0,H=R,R=F,F=H,H=I,I=D,D=H,H=N,N=j,j=H,A=2;A<c;++A){if(L[P++]=r(h[g],o,s,l),g+=T,f>0)for(M=1,u=h[g],O=L[P]=r(u,o,s,l),B=L[P+R],z=L[P+I],U=L[P+N],O===B&&O===z&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,B,z,U,o,s,l),V=C[P]=S++,U!==B&&e(C[P+R],V,w,m,U,B,o,s,l)),P+=1,g+=T,M=2;M<f;++M)u=h[g],O=L[P]=r(u,o,s,l),B=L[P+R],z=L[P+I],U=L[P+N],O===B&&O===z&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,B,z,U,o,s,l),V=C[P]=S++,U!==z&&e(C[P+I],V,b,w,z,U,o,s,l),U!==B&&e(C[P+R],V,w,m,U,B,o,s,l)),P+=1,g+=T;1&A&&(P=0),H=R,R=F,F=H,H=I,I=D,D=H,H=N,N=j,j=H,g+=k}}i(C),i(L)}}}},9144:function(t,e,r){"use strict";var n=r(3094),i={zero:function(t,e,r,n){var i=t[0];n|=0;var a=0,o=r[0];for(a=0;a<i;++a)e[n]=0,n+=o},fdTemplate1:function(t,e,r,n,i,a,o){var s=t[0],l=r[0],u=-1*l,c=l;n|=0,o|=0;var f=0,h=l,p=a[0];for(f=0;f<s;++f)i[o]=.5*(e[n+u]-e[n+c]),n+=h,o+=p},fdTemplate2:function(t,e,r,n,i,a,o,s,l,u){var c=t[0],f=t[1],h=r[0],p=r[1],d=a[0],v=a[1],g=l[0],y=l[1],m=-1*h,x=h,b=-1*p,_=p;n|=0,o|=0,u|=0;var w=0,T=0,k=p,A=h-f*p,M=v,S=d-f*v,E=y,L=g-f*y;for(T=0;T<c;++T){for(w=0;w<f;++w)i[o]=.5*(e[n+m]-e[n+x]),s[u]=.5*(e[n+b]-e[n+_]),n+=k,o+=M,u+=E;n+=A,o+=S,u+=L}}},a={cdiff:function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=n.dtype,l=n.order,u=i.dtype,c=i.order,f=[a,o.join(),s,l.join(),u,c.join()].join(),h=e[f];return h||(e[f]=h=t([a,o,s,l,u,c])),h(r.shape.slice(0),r.data,r.stride,0|r.offset,n.data,n.stride,0|n.offset,i.data,i.stride,0|i.offset)}},zero:function(t){var e={};return function(r){var n=r.dtype,i=r.order,a=[n,i.join()].join(),o=e[a];return o||(e[a]=o=t([n,i])),o(r.shape.slice(0),r.data,r.stride,0|r.offset)}},fdTemplate1:function(t){var e={};return function(r,n){var i=r.dtype,a=r.order,o=n.dtype,s=n.order,l=[i,a.join(),o,s.join()].join(),u=e[l];return u||(e[l]=u=t([i,a,o,s])),u(r.shape.slice(0),r.data,r.stride,0|r.offset,n.data,n.stride,0|n.offset)}},fdTemplate2:function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=n.dtype,l=n.order,u=i.dtype,c=i.order,f=[a,o.join(),s,l.join(),u,c.join()].join(),h=e[f];return h||(e[f]=h=t([a,o,s,l,u,c])),h(r.shape.slice(0),r.data,r.stride,0|r.offset,n.data,n.stride,0|n.offset,i.data,i.stride,0|i.offset)}}};function o(t){return(0,a[t.funcName])(s.bind(void 0,t))}function s(t){return i[t.funcName]}function l(t){return o({funcName:t.funcName})}var u={},c={},f=l({funcName:"cdiff"}),h=l({funcName:"zero"});function p(t){return t in u?u[t]:u[t]=l({funcName:"fdTemplate"+t})}function d(t,e,r,n){return function(t,i){var a=i.shape.slice();return a[0]>2&&a[1]>2&&n(i.pick(-1,-1).lo(1,1).hi(a[0]-2,a[1]-2),t.pick(-1,-1,0).lo(1,1).hi(a[0]-2,a[1]-2),t.pick(-1,-1,1).lo(1,1).hi(a[0]-2,a[1]-2)),a[1]>2&&(r(i.pick(0,-1).lo(1).hi(a[1]-2),t.pick(0,-1,1).lo(1).hi(a[1]-2)),e(t.pick(0,-1,0).lo(1).hi(a[1]-2))),a[1]>2&&(r(i.pick(a[0]-1,-1).lo(1).hi(a[1]-2),t.pick(a[0]-1,-1,1).lo(1).hi(a[1]-2)),e(t.pick(a[0]-1,-1,0).lo(1).hi(a[1]-2))),a[0]>2&&(r(i.pick(-1,0).lo(1).hi(a[0]-2),t.pick(-1,0,0).lo(1).hi(a[0]-2)),e(t.pick(-1,0,1).lo(1).hi(a[0]-2))),a[0]>2&&(r(i.pick(-1,a[1]-1).lo(1).hi(a[0]-2),t.pick(-1,a[1]-1,0).lo(1).hi(a[0]-2)),e(t.pick(-1,a[1]-1,1).lo(1).hi(a[0]-2))),t.set(0,0,0,0),t.set(0,0,1,0),t.set(a[0]-1,0,0,0),t.set(a[0]-1,0,1,0),t.set(0,a[1]-1,0,0),t.set(0,a[1]-1,1,0),t.set(a[0]-1,a[1]-1,0,0),t.set(a[0]-1,a[1]-1,1,0),t}}t.exports=function(t,e,r){return Array.isArray(r)||(r=n(e.dimension,"string"==typeof r?r:"clamp")),0===e.size?t:0===e.dimension?(t.set(0),t):function(t){var e=t.join();if(a=c[e])return a;for(var r=t.length,n=[f,h],i=1;i<=r;++i)n.push(p(i));var a=d.apply(void 0,n);return c[e]=a,a}(r)(t,e)}},3581:function(t){"use strict";function e(t,e){var r=Math.floor(e),n=e-r,i=0<=r&&r<t.shape[0],a=0<=r+1&&r+1<t.shape[0];return(1-n)*(i?+t.get(r):0)+n*(a?+t.get(r+1):0)}function r(t,e,r){var n=Math.floor(e),i=e-n,a=0<=n&&n<t.shape[0],o=0<=n+1&&n+1<t.shape[0],s=Math.floor(r),l=r-s,u=0<=s&&s<t.shape[1],c=0<=s+1&&s+1<t.shape[1],f=a&&u?t.get(n,s):0,h=a&&c?t.get(n,s+1):0;return(1-l)*((1-i)*f+i*(o&&u?t.get(n+1,s):0))+l*((1-i)*h+i*(o&&c?t.get(n+1,s+1):0))}function n(t,e,r,n){var i=Math.floor(e),a=e-i,o=0<=i&&i<t.shape[0],s=0<=i+1&&i+1<t.shape[0],l=Math.floor(r),u=r-l,c=0<=l&&l<t.shape[1],f=0<=l+1&&l+1<t.shape[1],h=Math.floor(n),p=n-h,d=0<=h&&h<t.shape[2],v=0<=h+1&&h+1<t.shape[2],g=o&&c&&d?t.get(i,l,h):0,y=o&&f&&d?t.get(i,l+1,h):0,m=s&&c&&d?t.get(i+1,l,h):0,x=s&&f&&d?t.get(i+1,l+1,h):0,b=o&&c&&v?t.get(i,l,h+1):0,_=o&&f&&v?t.get(i,l+1,h+1):0;return(1-p)*((1-u)*((1-a)*g+a*m)+u*((1-a)*y+a*x))+p*((1-u)*((1-a)*b+a*(s&&c&&v?t.get(i+1,l,h+1):0))+u*((1-a)*_+a*(s&&f&&v?t.get(i+1,l+1,h+1):0)))}function i(t){var e,r,n=0|t.shape.length,i=new Array(n),a=new Array(n),o=new Array(n),s=new Array(n);for(e=0;e<n;++e)r=+arguments[e+1],i[e]=Math.floor(r),a[e]=r-i[e],o[e]=0<=i[e]&&i[e]<t.shape[e],s[e]=0<=i[e]+1&&i[e]+1<t.shape[e];var l,u,c,f=0;t:for(e=0;e<1<<n;++e){for(u=1,c=t.offset,l=0;l<n;++l)if(e&1<<l){if(!s[l])continue t;u*=a[l],c+=t.stride[l]*(i[l]+1)}else{if(!o[l])continue t;u*=1-a[l],c+=t.stride[l]*i[l]}f+=u*t.data[c]}return f}t.exports=function(t,a,o,s){switch(t.shape.length){case 0:return 0;case 1:return e(t,a);case 2:return r(t,a,o);case 3:return n(t,a,o,s);default:return i.apply(void 0,arguments)}},t.exports.d1=e,t.exports.d2=r,t.exports.d3=n},7498:function(t,e){"use strict";var r={"float64,2,1,0":function(){return function(t,e,r,n,i){var a=t[0],o=t[1],s=t[2],l=r[0],u=r[1],c=r[2];n|=0;var f=0,h=0,p=0,d=c,v=u-s*c,g=l-o*u;for(p=0;p<a;++p){for(h=0;h<o;++h){for(f=0;f<s;++f)e[n]/=i,n+=d;n+=v}n+=g}}},"uint8,2,0,1,float64,2,1,0":function(){return function(t,e,r,n,i,a,o,s){for(var l=t[0],u=t[1],c=t[2],f=r[0],h=r[1],p=r[2],d=a[0],v=a[1],g=a[2],y=n|=0,m=o|=0,x=0|t[0];x>0;){x<64?(l=x,x=0):(l=64,x-=64);for(var b=0|t[1];b>0;){b<64?(u=b,b=0):(u=64,b-=64),n=y+x*f+b*h,o=m+x*d+b*v;var _=0,w=0,T=0,k=p,A=f-c*p,M=h-l*f,S=g,E=d-c*g,L=v-l*d;for(T=0;T<u;++T){for(w=0;w<l;++w){for(_=0;_<c;++_)e[n]=i[o]*s,n+=k,o+=S;n+=A,o+=E}n+=M,o+=L}}}}},"float32,1,0,float32,1,0":function(){return function(t,e,r,n,i,a,o){var s=t[0],l=t[1],u=r[0],c=r[1],f=a[0],h=a[1];n|=0,o|=0;var p=0,d=0,v=c,g=u-l*c,y=h,m=f-l*h;for(d=0;d<s;++d){for(p=0;p<l;++p)e[n]=i[o],n+=v,o+=y;n+=g,o+=m}}},"float32,1,0,float32,0,1":function(){return function(t,e,r,n,i,a,o){for(var s=t[0],l=t[1],u=r[0],c=r[1],f=a[0],h=a[1],p=n|=0,d=o|=0,v=0|t[1];v>0;){v<64?(l=v,v=0):(l=64,v-=64);for(var g=0|t[0];g>0;){g<64?(s=g,g=0):(s=64,g-=64),n=p+v*c+g*u,o=d+v*h+g*f;var y=0,m=0,x=c,b=u-l*c,_=h,w=f-l*h;for(m=0;m<s;++m){for(y=0;y<l;++y)e[n]=i[o],n+=x,o+=_;n+=b,o+=w}}}}},"uint8,2,0,1,uint8,1,2,0":function(){return function(t,e,r,n,i,a,o){for(var s=t[0],l=t[1],u=t[2],c=r[0],f=r[1],h=r[2],p=a[0],d=a[1],v=a[2],g=n|=0,y=o|=0,m=0|t[2];m>0;){m<64?(u=m,m=0):(u=64,m-=64);for(var x=0|t[0];x>0;){x<64?(s=x,x=0):(s=64,x-=64);for(var b=0|t[1];b>0;){b<64?(l=b,b=0):(l=64,b-=64),n=g+m*h+x*c+b*f,o=y+m*v+x*p+b*d;var _=0,w=0,T=0,k=h,A=c-u*h,M=f-s*c,S=v,E=p-u*v,L=d-s*p;for(T=0;T<l;++T){for(w=0;w<s;++w){for(_=0;_<u;++_)e[n]=i[o],n+=k,o+=S;n+=A,o+=E}n+=M,o+=L}}}}}},"uint8,2,0,1,array,2,0,1":function(){return function(t,e,r,n,i,a,o){var s=t[0],l=t[1],u=t[2],c=r[0],f=r[1],h=r[2],p=a[0],d=a[1],v=a[2];n|=0,o|=0;var g=0,y=0,m=0,x=h,b=c-u*h,_=f-s*c,w=v,T=p-u*v,k=d-s*p;for(m=0;m<l;++m){for(y=0;y<s;++y){for(g=0;g<u;++g)e[n]=i[o],n+=x,o+=w;n+=b,o+=T}n+=_,o+=k}}}},n=function(t,e){var n=e.join(",");return(0,r[n])()},i={mul:function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=n.dtype,l=n.order,u=i.dtype,c=i.order,f=[a,o.join(),s,l.join(),u,c.join()].join(),h=e[f];return h||(e[f]=h=t([a,o,s,l,u,c])),h(r.shape.slice(0),r.data,r.stride,0|r.offset,n.data,n.stride,0|n.offset,i.data,i.stride,0|i.offset)}},muls:function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=n.dtype,l=n.order,u=[a,o.join(),s,l.join()].join(),c=e[u];return c||(e[u]=c=t([a,o,s,l])),c(r.shape.slice(0),r.data,r.stride,0|r.offset,n.data,n.stride,0|n.offset,i)}},mulseq:function(t){var e={};return function(r,n){var i=r.dtype,a=r.order,o=[i,a.join()].join(),s=e[o];return s||(e[o]=s=t([i,a])),s(r.shape.slice(0),r.data,r.stride,0|r.offset,n)}},div:function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=n.dtype,l=n.order,u=i.dtype,c=i.order,f=[a,o.join(),s,l.join(),u,c.join()].join(),h=e[f];return h||(e[f]=h=t([a,o,s,l,u,c])),h(r.shape.slice(0),r.data,r.stride,0|r.offset,n.data,n.stride,0|n.offset,i.data,i.stride,0|i.offset)}},divs:function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=n.dtype,l=n.order,u=[a,o.join(),s,l.join()].join(),c=e[u];return c||(e[u]=c=t([a,o,s,l])),c(r.shape.slice(0),r.data,r.stride,0|r.offset,n.data,n.stride,0|n.offset,i)}},divseq:function(t){var e={};return function(r,n){var i=r.dtype,a=r.order,o=[i,a.join()].join(),s=e[o];return s||(e[o]=s=t([i,a])),s(r.shape.slice(0),r.data,r.stride,0|r.offset,n)}},assign:function(t){var e={};return function(r,n){var i=r.dtype,a=r.order,o=n.dtype,s=n.order,l=[i,a.join(),o,s.join()].join(),u=e[l];return u||(e[l]=u=t([i,a,o,s])),u(r.shape.slice(0),r.data,r.stride,0|r.offset,n.data,n.stride,0|n.offset)}}};function a(t){return e={funcName:t.funcName},(0,i[e.funcName])(n.bind(void 0,e));var e}var o={mul:"*",div:"/"};!function(){for(var t in o)e[t]=a({funcName:t}),e[t+"s"]=a({funcName:t+"s"}),e[t+"seq"]=a({funcName:t+"seq"})}(),e.assign=a({funcName:"assign"})},7382:function(t,e,r){"use strict";var n=r(5050),i=r(9262);t.exports=function(t,e){for(var r=[],a=t,o=1;Array.isArray(a);)r.push(a.length),o*=a.length,a=a[0];return 0===r.length?n():(e||(e=n(new Float64Array(o),r)),i(e,t),e)}},9262:function(t){"use strict";t.exports=function(t){var e={};return function(r,n){var i=r.dtype,a=r.order,o=[i,a.join()].join(),s=e[o];return s||(e[o]=s=t([i,a])),s(r.shape.slice(0),r.data,r.stride,0|r.offset,n)}}(function(){return function(t,e,r,n,i){var a=t[0],o=t[1],s=t[2],l=r[0],u=r[1],c=r[2],f=[0,0,0];n|=0;var h=0,p=0,d=0,v=c,g=u-s*c,y=l-o*u;for(d=0;d<a;++d){for(p=0;p<o;++p){for(h=0;h<s;++h){var m,x=i;for(m=0;m<f.length-1;++m)x=x[f[m]];e[n]=x[f[f.length-1]],n+=v,++f[2]}n+=g,f[2]-=s,++f[1]}n+=y,f[1]-=o,++f[0]}}}.bind(void 0,{funcName:"convert"}))},8139:function(t,e,r){"use strict";var n=r(5306);function i(t){return"uint32"===t?[n.mallocUint32,n.freeUint32]:null}var a={"uint32,1,0":function(t,e){return function(r,n,i,a,o,s,l,u,c,f,h){var p,d,v,g,y,m,x,b,_=r*o+a,w=t(u);for(p=r+1;p<=n;++p){for(d=p,v=_+=o,y=0,m=_,g=0;g<u;++g)w[y++]=i[m],m+=c;t:for(;d-- >r;){y=0,m=v-o;e:for(g=0;g<u;++g){if((x=i[m])<(b=w[y]))break t;if(x>b)break e;m+=f,y+=h}for(y=v,m=v-o,g=0;g<u;++g)i[y]=i[m],y+=c,m+=c;v-=o}for(y=v,m=0,g=0;g<u;++g)i[y]=w[m++],y+=c}e(w)}}},o={"uint32,1,0":function(t,e,r){return function n(i,a,o,s,l,u,c,f,h,p,d){var v,g,y,m,x,b,_,w,T,k,A,M,S,E,L,C,P,O,I,D,z,R,F,B,N,j=(a-i+1)/6|0,U=i+j,V=a-j,H=i+a>>1,q=H-j,G=H+j,Z=U,Y=q,W=H,X=G,J=V,K=i+1,$=a-1,Q=!0,tt=0,et=0,rt=0,nt=f,it=e(nt),at=e(nt);A=l*Z,M=l*Y,N=s;t:for(k=0;k<f;++k){if(w=M+N,(rt=o[_=A+N]-o[w])>0){g=Z,Z=Y,Y=g;break t}if(rt<0)break t;N+=p}A=l*X,M=l*J,N=s;t:for(k=0;k<f;++k){if(w=M+N,(rt=o[_=A+N]-o[w])>0){g=X,X=J,J=g;break t}if(rt<0)break t;N+=p}A=l*Z,M=l*W,N=s;t:for(k=0;k<f;++k){if(w=M+N,(rt=o[_=A+N]-o[w])>0){g=Z,Z=W,W=g;break t}if(rt<0)break t;N+=p}A=l*Y,M=l*W,N=s;t:for(k=0;k<f;++k){if(w=M+N,(rt=o[_=A+N]-o[w])>0){g=Y,Y=W,W=g;break t}if(rt<0)break t;N+=p}A=l*Z,M=l*X,N=s;t:for(k=0;k<f;++k){if(w=M+N,(rt=o[_=A+N]-o[w])>0){g=Z,Z=X,X=g;break t}if(rt<0)break t;N+=p}A=l*W,M=l*X,N=s;t:for(k=0;k<f;++k){if(w=M+N,(rt=o[_=A+N]-o[w])>0){g=W,W=X,X=g;break t}if(rt<0)break t;N+=p}A=l*Y,M=l*J,N=s;t:for(k=0;k<f;++k){if(w=M+N,(rt=o[_=A+N]-o[w])>0){g=Y,Y=J,J=g;break t}if(rt<0)break t;N+=p}A=l*Y,M=l*W,N=s;t:for(k=0;k<f;++k){if(w=M+N,(rt=o[_=A+N]-o[w])>0){g=Y,Y=W,W=g;break t}if(rt<0)break t;N+=p}A=l*X,M=l*J,N=s;t:for(k=0;k<f;++k){if(w=M+N,(rt=o[_=A+N]-o[w])>0){g=X,X=J,J=g;break t}if(rt<0)break t;N+=p}for(A=l*Z,M=l*Y,S=l*W,E=l*X,L=l*J,C=l*U,P=l*H,O=l*V,B=0,N=s,k=0;k<f;++k)_=A+N,w=M+N,T=S+N,I=E+N,D=L+N,z=C+N,R=P+N,F=O+N,it[B]=o[w],at[B]=o[I],Q=Q&&it[B]===at[B],y=o[_],m=o[T],x=o[D],o[z]=y,o[R]=m,o[F]=x,++B,N+=h;for(A=l*q,M=l*i,N=s,k=0;k<f;++k)w=M+N,o[_=A+N]=o[w],N+=h;for(A=l*G,M=l*a,N=s,k=0;k<f;++k)w=M+N,o[_=A+N]=o[w],N+=h;if(Q)for(b=K;b<=$;++b){for(_=s+b*l,B=0,k=0;k<f&&0==(rt=o[_]-it[B]);++k)B+=d,_+=p;if(0!==rt)if(rt<0){if(b!==K)for(A=l*b,M=l*K,N=s,k=0;k<f;++k)w=M+N,v=o[_=A+N],o[_]=o[w],o[w]=v,N+=h;++K}else for(;;){for(_=s+$*l,B=0,k=0;k<f&&0==(rt=o[_]-it[B]);++k)B+=d,_+=p;if(!(rt>0)){if(rt<0){for(A=l*b,M=l*K,S=l*$,N=s,k=0;k<f;++k)w=M+N,T=S+N,v=o[_=A+N],o[_]=o[w],o[w]=o[T],o[T]=v,N+=h;++K,--$;break}for(A=l*b,M=l*$,N=s,k=0;k<f;++k)w=M+N,v=o[_=A+N],o[_]=o[w],o[w]=v,N+=h;--$;break}$--}}else for(b=K;b<=$;++b){for(_=s+b*l,B=0,k=0;k<f&&0==(tt=o[_]-it[B]);++k)B+=d,_+=p;if(tt<0){if(b!==K)for(A=l*b,M=l*K,N=s,k=0;k<f;++k)w=M+N,v=o[_=A+N],o[_]=o[w],o[w]=v,N+=h;++K}else{for(_=s+b*l,B=0,k=0;k<f&&0==(et=o[_]-at[B]);++k)B+=d,_+=p;if(et>0)for(;;){for(_=s+$*l,B=0,k=0;k<f&&0==(rt=o[_]-at[B]);++k)B+=d,_+=p;if(!(rt>0)){for(_=s+$*l,B=0,k=0;k<f&&0==(rt=o[_]-it[B]);++k)B+=d,_+=p;if(rt<0){for(A=l*b,M=l*K,S=l*$,N=s,k=0;k<f;++k)w=M+N,T=S+N,v=o[_=A+N],o[_]=o[w],o[w]=o[T],o[T]=v,N+=h;++K,--$}else{for(A=l*b,M=l*$,N=s,k=0;k<f;++k)w=M+N,v=o[_=A+N],o[_]=o[w],o[w]=v,N+=h;--$}break}if(--$<b)break}}}for(A=l*i,M=l*(K-1),B=0,N=s,k=0;k<f;++k)w=M+N,o[_=A+N]=o[w],o[w]=it[B],++B,N+=h;for(A=l*a,M=l*($+1),B=0,N=s,k=0;k<f;++k)w=M+N,o[_=A+N]=o[w],o[w]=at[B],++B,N+=h;if(K-2-i<=32?t(i,K-2,o,s,l,u,c,f,h,p,d):n(i,K-2,o,s,l,u,c,f,h,p,d),a-($+2)<=32?t($+2,a,o,s,l,u,c,f,h,p,d):n($+2,a,o,s,l,u,c,f,h,p,d),Q)return r(it),void r(at);if(K<U&&$>V){t:for(;;){for(_=s+K*l,B=0,N=s,k=0;k<f;++k){if(o[_]!==it[B])break t;++B,_+=h}++K}t:for(;;){for(_=s+$*l,B=0,N=s,k=0;k<f;++k){if(o[_]!==at[B])break t;++B,_+=h}--$}for(b=K;b<=$;++b){for(_=s+b*l,B=0,k=0;k<f&&0==(tt=o[_]-it[B]);++k)B+=d,_+=p;if(0===tt){if(b!==K)for(A=l*b,M=l*K,N=s,k=0;k<f;++k)w=M+N,v=o[_=A+N],o[_]=o[w],o[w]=v,N+=h;++K}else{for(_=s+b*l,B=0,k=0;k<f&&0==(et=o[_]-at[B]);++k)B+=d,_+=p;if(0===et)for(;;){for(_=s+$*l,B=0,k=0;k<f&&0==(rt=o[_]-at[B]);++k)B+=d,_+=p;if(0!==rt){for(_=s+$*l,B=0,k=0;k<f&&0==(rt=o[_]-it[B]);++k)B+=d,_+=p;if(rt<0){for(A=l*b,M=l*K,S=l*$,N=s,k=0;k<f;++k)w=M+N,T=S+N,v=o[_=A+N],o[_]=o[w],o[w]=o[T],o[T]=v,N+=h;++K,--$}else{for(A=l*b,M=l*$,N=s,k=0;k<f;++k)w=M+N,v=o[_=A+N],o[_]=o[w],o[w]=v,N+=h;--$}break}if(--$<b)break}}}}r(it),r(at),$-K<=32?t(K,$,o,s,l,u,c,f,h,p,d):n(K,$,o,s,l,u,c,f,h,p,d)}}},s={"uint32,1,0":function(t,e){return function(r){var n=r.data,i=0|r.offset,a=r.shape,o=r.stride,s=0|o[0],l=0|a[0],u=0|o[1],c=0|a[1],f=u,h=u;l<=32?t(0,l-1,n,i,s,u,l,c,f,h,1):e(0,l-1,n,i,s,u,l,c,f,h,1)}}};t.exports=function(t,e){var r=[e,t].join(","),n=s[r],l=function(t,e){var r=i(e),n=[e,t].join(","),o=a[n];return r?o(r[0],r[1]):o()}(t,e),u=function(t,e,r){var n=i(e),a=[e,t].join(","),s=o[a];return t.length>1&&n?s(r,n[0],n[1]):s(r)}(t,e,l);return n(l,u)}},8729:function(t,e,r){"use strict";var n=r(8139),i={};t.exports=function(t){var e=t.order,r=t.dtype,a=[e,r].join(":"),o=i[a];return o||(i[a]=o=n(e,r)),o(t),t}},5050:function(t,e,r){var n=r(4780),i="undefined"!=typeof Float64Array;function a(t,e){return t[0]-e[0]}function o(){var t,e=this.stride,r=new Array(e.length);for(t=0;t<r.length;++t)r[t]=[Math.abs(e[t]),t];r.sort(a);var n=new Array(r.length);for(t=0;t<n.length;++t)n[t]=r[t][1];return n}var s={T:function(t){function e(t){this.data=t}var r=e.prototype;return r.dtype=t,r.index=function(){return-1},r.size=0,r.dimension=-1,r.shape=r.stride=r.order=[],r.lo=r.hi=r.transpose=r.step=function(){return new e(this.data)},r.get=r.set=function(){},r.pick=function(){return null},function(t){return new e(t)}},0:function(t,e){function r(t,e){this.data=t,this.offset=e}var n=r.prototype;return n.dtype=t,n.index=function(){return this.offset},n.dimension=0,n.size=1,n.shape=n.stride=n.order=[],n.lo=n.hi=n.transpose=n.step=function(){return new r(this.data,this.offset)},n.pick=function(){return e(this.data)},n.valueOf=n.get=function(){return"generic"===t?this.data.get(this.offset):this.data[this.offset]},n.set=function(e){return"generic"===t?this.data.set(this.offset,e):this.data[this.offset]=e},function(t,e,n,i){return new r(t,i)}},1:function(t,e,r){function n(t,e,r,n){this.data=t,this.shape=[e],this.stride=[r],this.offset=0|n}var i=n.prototype;return i.dtype=t,i.dimension=1,Object.defineProperty(i,"size",{get:function(){return this.shape[0]}}),i.order=[0],i.set=function(e,r){return"generic"===t?this.data.set(this.offset+this.stride[0]*e,r):this.data[this.offset+this.stride[0]*e]=r},i.get=function(e){return"generic"===t?this.data.get(this.offset+this.stride[0]*e):this.data[this.offset+this.stride[0]*e]},i.index=function(t){return this.offset+this.stride[0]*t},i.hi=function(t){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,this.stride[0],this.offset)},i.lo=function(t){var e=this.offset,r=0,i=this.shape[0],a=this.stride[0];return"number"==typeof t&&t>=0&&(e+=a*(r=0|t),i-=r),new n(this.data,i,a,e)},i.step=function(t){var e=this.shape[0],r=this.stride[0],i=this.offset,a=0,o=Math.ceil;return"number"==typeof t&&((a=0|t)<0?(i+=r*(e-1),e=o(-e/a)):e=o(e/a),r*=a),new n(this.data,e,r,i)},i.transpose=function(t){t=void 0===t?0:0|t;var e=this.shape,r=this.stride;return new n(this.data,e[t],r[t],this.offset)},i.pick=function(t){var r=[],n=[],i=this.offset;return"number"==typeof t&&t>=0?i=i+this.stride[0]*t|0:(r.push(this.shape[0]),n.push(this.stride[0])),(0,e[r.length+1])(this.data,r,n,i)},function(t,e,r,i){return new n(t,e[0],r[0],i)}},2:function(t,e,r){function n(t,e,r,n,i,a){this.data=t,this.shape=[e,r],this.stride=[n,i],this.offset=0|a}var i=n.prototype;return i.dtype=t,i.dimension=2,Object.defineProperty(i,"size",{get:function(){return this.shape[0]*this.shape[1]}}),Object.defineProperty(i,"order",{get:function(){return Math.abs(this.stride[0])>Math.abs(this.stride[1])?[1,0]:[0,1]}}),i.set=function(e,r,n){return"generic"===t?this.data.set(this.offset+this.stride[0]*e+this.stride[1]*r,n):this.data[this.offset+this.stride[0]*e+this.stride[1]*r]=n},i.get=function(e,r){return"generic"===t?this.data.get(this.offset+this.stride[0]*e+this.stride[1]*r):this.data[this.offset+this.stride[0]*e+this.stride[1]*r]},i.index=function(t,e){return this.offset+this.stride[0]*t+this.stride[1]*e},i.hi=function(t,e){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,"number"!=typeof e||e<0?this.shape[1]:0|e,this.stride[0],this.stride[1],this.offset)},i.lo=function(t,e){var r=this.offset,i=0,a=this.shape[0],o=this.shape[1],s=this.stride[0],l=this.stride[1];return"number"==typeof t&&t>=0&&(r+=s*(i=0|t),a-=i),"number"==typeof e&&e>=0&&(r+=l*(i=0|e),o-=i),new n(this.data,a,o,s,l,r)},i.step=function(t,e){var r=this.shape[0],i=this.shape[1],a=this.stride[0],o=this.stride[1],s=this.offset,l=0,u=Math.ceil;return"number"==typeof t&&((l=0|t)<0?(s+=a*(r-1),r=u(-r/l)):r=u(r/l),a*=l),"number"==typeof e&&((l=0|e)<0?(s+=o*(i-1),i=u(-i/l)):i=u(i/l),o*=l),new n(this.data,r,i,a,o,s)},i.transpose=function(t,e){t=void 0===t?0:0|t,e=void 0===e?1:0|e;var r=this.shape,i=this.stride;return new n(this.data,r[t],r[e],i[t],i[e],this.offset)},i.pick=function(t,r){var n=[],i=[],a=this.offset;return"number"==typeof t&&t>=0?a=a+this.stride[0]*t|0:(n.push(this.shape[0]),i.push(this.stride[0])),"number"==typeof r&&r>=0?a=a+this.stride[1]*r|0:(n.push(this.shape[1]),i.push(this.stride[1])),(0,e[n.length+1])(this.data,n,i,a)},function(t,e,r,i){return new n(t,e[0],e[1],r[0],r[1],i)}},3:function(t,e,r){function n(t,e,r,n,i,a,o,s){this.data=t,this.shape=[e,r,n],this.stride=[i,a,o],this.offset=0|s}var i=n.prototype;return i.dtype=t,i.dimension=3,Object.defineProperty(i,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]}}),Object.defineProperty(i,"order",{get:function(){var t=Math.abs(this.stride[0]),e=Math.abs(this.stride[1]),r=Math.abs(this.stride[2]);return t>e?e>r?[2,1,0]:t>r?[1,2,0]:[1,0,2]:t>r?[2,0,1]:r>e?[0,1,2]:[0,2,1]}}),i.set=function(e,r,n,i){return"generic"===t?this.data.set(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n,i):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n]=i},i.get=function(e,r,n){return"generic"===t?this.data.get(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n]},i.index=function(t,e,r){return this.offset+this.stride[0]*t+this.stride[1]*e+this.stride[2]*r},i.hi=function(t,e,r){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,"number"!=typeof e||e<0?this.shape[1]:0|e,"number"!=typeof r||r<0?this.shape[2]:0|r,this.stride[0],this.stride[1],this.stride[2],this.offset)},i.lo=function(t,e,r){var i=this.offset,a=0,o=this.shape[0],s=this.shape[1],l=this.shape[2],u=this.stride[0],c=this.stride[1],f=this.stride[2];return"number"==typeof t&&t>=0&&(i+=u*(a=0|t),o-=a),"number"==typeof e&&e>=0&&(i+=c*(a=0|e),s-=a),"number"==typeof r&&r>=0&&(i+=f*(a=0|r),l-=a),new n(this.data,o,s,l,u,c,f,i)},i.step=function(t,e,r){var i=this.shape[0],a=this.shape[1],o=this.shape[2],s=this.stride[0],l=this.stride[1],u=this.stride[2],c=this.offset,f=0,h=Math.ceil;return"number"==typeof t&&((f=0|t)<0?(c+=s*(i-1),i=h(-i/f)):i=h(i/f),s*=f),"number"==typeof e&&((f=0|e)<0?(c+=l*(a-1),a=h(-a/f)):a=h(a/f),l*=f),"number"==typeof r&&((f=0|r)<0?(c+=u*(o-1),o=h(-o/f)):o=h(o/f),u*=f),new n(this.data,i,a,o,s,l,u,c)},i.transpose=function(t,e,r){t=void 0===t?0:0|t,e=void 0===e?1:0|e,r=void 0===r?2:0|r;var i=this.shape,a=this.stride;return new n(this.data,i[t],i[e],i[r],a[t],a[e],a[r],this.offset)},i.pick=function(t,r,n){var i=[],a=[],o=this.offset;return"number"==typeof t&&t>=0?o=o+this.stride[0]*t|0:(i.push(this.shape[0]),a.push(this.stride[0])),"number"==typeof r&&r>=0?o=o+this.stride[1]*r|0:(i.push(this.shape[1]),a.push(this.stride[1])),"number"==typeof n&&n>=0?o=o+this.stride[2]*n|0:(i.push(this.shape[2]),a.push(this.stride[2])),(0,e[i.length+1])(this.data,i,a,o)},function(t,e,r,i){return new n(t,e[0],e[1],e[2],r[0],r[1],r[2],i)}},4:function(t,e,r){function n(t,e,r,n,i,a,o,s,l,u){this.data=t,this.shape=[e,r,n,i],this.stride=[a,o,s,l],this.offset=0|u}var i=n.prototype;return i.dtype=t,i.dimension=4,Object.defineProperty(i,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]*this.shape[3]}}),Object.defineProperty(i,"order",{get:r}),i.set=function(e,r,n,i,a){return"generic"===t?this.data.set(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i,a):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i]=a},i.get=function(e,r,n,i){return"generic"===t?this.data.get(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i]},i.index=function(t,e,r,n){return this.offset+this.stride[0]*t+this.stride[1]*e+this.stride[2]*r+this.stride[3]*n},i.hi=function(t,e,r,i){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,"number"!=typeof e||e<0?this.shape[1]:0|e,"number"!=typeof r||r<0?this.shape[2]:0|r,"number"!=typeof i||i<0?this.shape[3]:0|i,this.stride[0],this.stride[1],this.stride[2],this.stride[3],this.offset)},i.lo=function(t,e,r,i){var a=this.offset,o=0,s=this.shape[0],l=this.shape[1],u=this.shape[2],c=this.shape[3],f=this.stride[0],h=this.stride[1],p=this.stride[2],d=this.stride[3];return"number"==typeof t&&t>=0&&(a+=f*(o=0|t),s-=o),"number"==typeof e&&e>=0&&(a+=h*(o=0|e),l-=o),"number"==typeof r&&r>=0&&(a+=p*(o=0|r),u-=o),"number"==typeof i&&i>=0&&(a+=d*(o=0|i),c-=o),new n(this.data,s,l,u,c,f,h,p,d,a)},i.step=function(t,e,r,i){var a=this.shape[0],o=this.shape[1],s=this.shape[2],l=this.shape[3],u=this.stride[0],c=this.stride[1],f=this.stride[2],h=this.stride[3],p=this.offset,d=0,v=Math.ceil;return"number"==typeof t&&((d=0|t)<0?(p+=u*(a-1),a=v(-a/d)):a=v(a/d),u*=d),"number"==typeof e&&((d=0|e)<0?(p+=c*(o-1),o=v(-o/d)):o=v(o/d),c*=d),"number"==typeof r&&((d=0|r)<0?(p+=f*(s-1),s=v(-s/d)):s=v(s/d),f*=d),"number"==typeof i&&((d=0|i)<0?(p+=h*(l-1),l=v(-l/d)):l=v(l/d),h*=d),new n(this.data,a,o,s,l,u,c,f,h,p)},i.transpose=function(t,e,r,i){t=void 0===t?0:0|t,e=void 0===e?1:0|e,r=void 0===r?2:0|r,i=void 0===i?3:0|i;var a=this.shape,o=this.stride;return new n(this.data,a[t],a[e],a[r],a[i],o[t],o[e],o[r],o[i],this.offset)},i.pick=function(t,r,n,i){var a=[],o=[],s=this.offset;return"number"==typeof t&&t>=0?s=s+this.stride[0]*t|0:(a.push(this.shape[0]),o.push(this.stride[0])),"number"==typeof r&&r>=0?s=s+this.stride[1]*r|0:(a.push(this.shape[1]),o.push(this.stride[1])),"number"==typeof n&&n>=0?s=s+this.stride[2]*n|0:(a.push(this.shape[2]),o.push(this.stride[2])),"number"==typeof i&&i>=0?s=s+this.stride[3]*i|0:(a.push(this.shape[3]),o.push(this.stride[3])),(0,e[a.length+1])(this.data,a,o,s)},function(t,e,r,i){return new n(t,e[0],e[1],e[2],e[3],r[0],r[1],r[2],r[3],i)}},5:function(t,e,r){function n(t,e,r,n,i,a,o,s,l,u,c,f){this.data=t,this.shape=[e,r,n,i,a],this.stride=[o,s,l,u,c],this.offset=0|f}var i=n.prototype;return i.dtype=t,i.dimension=5,Object.defineProperty(i,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]*this.shape[3]*this.shape[4]}}),Object.defineProperty(i,"order",{get:r}),i.set=function(e,r,n,i,a,o){return"generic"===t?this.data.set(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i+this.stride[4]*a,o):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i+this.stride[4]*a]=o},i.get=function(e,r,n,i,a){return"generic"===t?this.data.get(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i+this.stride[4]*a):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i+this.stride[4]*a]},i.index=function(t,e,r,n,i){return this.offset+this.stride[0]*t+this.stride[1]*e+this.stride[2]*r+this.stride[3]*n+this.stride[4]*i},i.hi=function(t,e,r,i,a){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,"number"!=typeof e||e<0?this.shape[1]:0|e,"number"!=typeof r||r<0?this.shape[2]:0|r,"number"!=typeof i||i<0?this.shape[3]:0|i,"number"!=typeof a||a<0?this.shape[4]:0|a,this.stride[0],this.stride[1],this.stride[2],this.stride[3],this.stride[4],this.offset)},i.lo=function(t,e,r,i,a){var o=this.offset,s=0,l=this.shape[0],u=this.shape[1],c=this.shape[2],f=this.shape[3],h=this.shape[4],p=this.stride[0],d=this.stride[1],v=this.stride[2],g=this.stride[3],y=this.stride[4];return"number"==typeof t&&t>=0&&(o+=p*(s=0|t),l-=s),"number"==typeof e&&e>=0&&(o+=d*(s=0|e),u-=s),"number"==typeof r&&r>=0&&(o+=v*(s=0|r),c-=s),"number"==typeof i&&i>=0&&(o+=g*(s=0|i),f-=s),"number"==typeof a&&a>=0&&(o+=y*(s=0|a),h-=s),new n(this.data,l,u,c,f,h,p,d,v,g,y,o)},i.step=function(t,e,r,i,a){var o=this.shape[0],s=this.shape[1],l=this.shape[2],u=this.shape[3],c=this.shape[4],f=this.stride[0],h=this.stride[1],p=this.stride[2],d=this.stride[3],v=this.stride[4],g=this.offset,y=0,m=Math.ceil;return"number"==typeof t&&((y=0|t)<0?(g+=f*(o-1),o=m(-o/y)):o=m(o/y),f*=y),"number"==typeof e&&((y=0|e)<0?(g+=h*(s-1),s=m(-s/y)):s=m(s/y),h*=y),"number"==typeof r&&((y=0|r)<0?(g+=p*(l-1),l=m(-l/y)):l=m(l/y),p*=y),"number"==typeof i&&((y=0|i)<0?(g+=d*(u-1),u=m(-u/y)):u=m(u/y),d*=y),"number"==typeof a&&((y=0|a)<0?(g+=v*(c-1),c=m(-c/y)):c=m(c/y),v*=y),new n(this.data,o,s,l,u,c,f,h,p,d,v,g)},i.transpose=function(t,e,r,i,a){t=void 0===t?0:0|t,e=void 0===e?1:0|e,r=void 0===r?2:0|r,i=void 0===i?3:0|i,a=void 0===a?4:0|a;var o=this.shape,s=this.stride;return new n(this.data,o[t],o[e],o[r],o[i],o[a],s[t],s[e],s[r],s[i],s[a],this.offset)},i.pick=function(t,r,n,i,a){var o=[],s=[],l=this.offset;return"number"==typeof t&&t>=0?l=l+this.stride[0]*t|0:(o.push(this.shape[0]),s.push(this.stride[0])),"number"==typeof r&&r>=0?l=l+this.stride[1]*r|0:(o.push(this.shape[1]),s.push(this.stride[1])),"number"==typeof n&&n>=0?l=l+this.stride[2]*n|0:(o.push(this.shape[2]),s.push(this.stride[2])),"number"==typeof i&&i>=0?l=l+this.stride[3]*i|0:(o.push(this.shape[3]),s.push(this.stride[3])),"number"==typeof a&&a>=0?l=l+this.stride[4]*a|0:(o.push(this.shape[4]),s.push(this.stride[4])),(0,e[o.length+1])(this.data,o,s,l)},function(t,e,r,i){return new n(t,e[0],e[1],e[2],e[3],e[4],r[0],r[1],r[2],r[3],r[4],i)}}};function l(t,e){var r=-1===e?"T":String(e),n=s[r];return-1===e?n(t):0===e?n(t,u[t][0]):n(t,u[t],o)}var u={generic:[],buffer:[],array:[],float32:[],float64:[],int8:[],int16:[],int32:[],uint8_clamped:[],uint8:[],uint16:[],uint32:[],bigint64:[],biguint64:[]};t.exports=function(t,e,r,a){if(void 0===t)return(0,u.array[0])([]);"number"==typeof t&&(t=[t]),void 0===e&&(e=[t.length]);var o=e.length;if(void 0===r){r=new Array(o);for(var s=o-1,c=1;s>=0;--s)r[s]=c,c*=e[s]}if(void 0===a)for(a=0,s=0;s<o;++s)r[s]<0&&(a-=(e[s]-1)*r[s]);for(var f=function(t){if(n(t))return"buffer";if(i)switch(Object.prototype.toString.call(t)){case"[object Float64Array]":return"float64";case"[object Float32Array]":return"float32";case"[object Int8Array]":return"int8";case"[object Int16Array]":return"int16";case"[object Int32Array]":return"int32";case"[object Uint8ClampedArray]":return"uint8_clamped";case"[object Uint8Array]":return"uint8";case"[object Uint16Array]":return"uint16";case"[object Uint32Array]":return"uint32";case"[object BigInt64Array]":return"bigint64";case"[object BigUint64Array]":return"biguint64"}return Array.isArray(t)?"array":"generic"}(t),h=u[f];h.length<=o+1;)h.push(l(f,h.length-1));return(0,h[o+1])(t,e,r,a)}},8551:function(t,e,r){"use strict";var n=r(8362),i=Math.pow(2,-1074),a=-1>>>0;t.exports=function(t,e){if(isNaN(t)||isNaN(e))return NaN;if(t===e)return t;if(0===t)return e<0?-i:i;var r=n.hi(t),o=n.lo(t);return e>t==t>0?o===a?(r+=1,o=0):o+=1:0===o?(o=a,r-=1):o-=1,n.pack(o,r)}},115:function(t,e){e.vertexNormals=function(t,e,r){for(var n=e.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;o<n;++o)i[o]=[0,0,0];for(o=0;o<t.length;++o)for(var s=t[o],l=0,u=s[s.length-1],c=s[0],f=0;f<s.length;++f){l=u,u=c,c=s[(f+1)%s.length];for(var h=e[l],p=e[u],d=e[c],v=new Array(3),g=0,y=new Array(3),m=0,x=0;x<3;++x)v[x]=h[x]-p[x],g+=v[x]*v[x],y[x]=d[x]-p[x],m+=y[x]*y[x];if(g*m>a){var b=i[u],_=1/Math.sqrt(g*m);for(x=0;x<3;++x){var w=(x+1)%3,T=(x+2)%3;b[x]+=_*(y[w]*v[T]-y[T]*v[w])}}}for(o=0;o<n;++o){b=i[o];var k=0;for(x=0;x<3;++x)k+=b[x]*b[x];if(k>a)for(_=1/Math.sqrt(k),x=0;x<3;++x)b[x]*=_;else for(x=0;x<3;++x)b[x]=0}return i},e.faceNormals=function(t,e,r){for(var n=t.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;o<n;++o){for(var s=t[o],l=new Array(3),u=0;u<3;++u)l[u]=e[s[u]];var c=new Array(3),f=new Array(3);for(u=0;u<3;++u)c[u]=l[1][u]-l[0][u],f[u]=l[2][u]-l[0][u];var h=new Array(3),p=0;for(u=0;u<3;++u){var d=(u+1)%3,v=(u+2)%3;h[u]=c[d]*f[v]-c[v]*f[d],p+=h[u]*h[u]}for(p=p>a?1/Math.sqrt(p):0,u=0;u<3;++u)h[u]*=p;i[o]=h}return i}},567:function(t){"use strict";t.exports=function(t,e,r,n,i,a,o,s,l,u){var c=e+a+u;if(f>0){var f=Math.sqrt(c+1);t[0]=.5*(o-l)/f,t[1]=.5*(s-n)/f,t[2]=.5*(r-a)/f,t[3]=.5*f}else{var h=Math.max(e,a,u);f=Math.sqrt(2*h-c+1),e>=h?(t[0]=.5*f,t[1]=.5*(i+r)/f,t[2]=.5*(s+n)/f,t[3]=.5*(o-l)/f):a>=h?(t[0]=.5*(r+i)/f,t[1]=.5*f,t[2]=.5*(l+o)/f,t[3]=.5*(s-n)/f):(t[0]=.5*(n+s)/f,t[1]=.5*(o+l)/f,t[2]=.5*f,t[3]=.5*(r-i)/f)}return t}},7774:function(t,e,r){"use strict";t.exports=function(t){var e=(t=t||{}).center||[0,0,0],r=t.rotation||[0,0,0,1],n=t.radius||1;e=[].slice.call(e,0,3),c(r=[].slice.call(r,0,4),r);var i=new f(r,e,Math.log(n));return i.setDistanceLimits(t.zoomMin,t.zoomMax),("eye"in t||"up"in t)&&i.lookAt(0,t.eye,t.center,t.up),i};var n=r(8444),i=r(3012),a=r(5950),o=r(7437),s=r(567);function l(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function u(t,e,r,n){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2)+Math.pow(n,2))}function c(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=u(r,n,i,a);o>1e-6?(t[0]=r/o,t[1]=n/o,t[2]=i/o,t[3]=a/o):(t[0]=t[1]=t[2]=0,t[3]=1)}function f(t,e,r){this.radius=n([r]),this.center=n(e),this.rotation=n(t),this.computedRadius=this.radius.curve(0),this.computedCenter=this.center.curve(0),this.computedRotation=this.rotation.curve(0),this.computedUp=[.1,0,0],this.computedEye=[.1,0,0],this.computedMatrix=[.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.recalcMatrix(0)}var h=f.prototype;h.lastT=function(){return Math.max(this.radius.lastT(),this.center.lastT(),this.rotation.lastT())},h.recalcMatrix=function(t){this.radius.curve(t),this.center.curve(t),this.rotation.curve(t);var e=this.computedRotation;c(e,e);var r=this.computedMatrix;a(r,e);var n=this.computedCenter,i=this.computedEye,o=this.computedUp,s=Math.exp(this.computedRadius[0]);i[0]=n[0]+s*r[2],i[1]=n[1]+s*r[6],i[2]=n[2]+s*r[10],o[0]=r[1],o[1]=r[5],o[2]=r[9];for(var l=0;l<3;++l){for(var u=0,f=0;f<3;++f)u+=r[l+4*f]*i[f];r[12+l]=-u}},h.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r},h.idle=function(t){this.center.idle(t),this.radius.idle(t),this.rotation.idle(t)},h.flush=function(t){this.center.flush(t),this.radius.flush(t),this.rotation.flush(t)},h.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=i[1],o=i[5],s=i[9],u=l(a,o,s);a/=u,o/=u,s/=u;var c=i[0],f=i[4],h=i[8],p=c*a+f*o+h*s,d=l(c-=a*p,f-=o*p,h-=s*p);c/=d,f/=d,h/=d;var v=i[2],g=i[6],y=i[10],m=v*a+g*o+y*s,x=v*c+g*f+y*h,b=l(v-=m*a+x*c,g-=m*o+x*f,y-=m*s+x*h);v/=b,g/=b,y/=b;var _=c*e+a*r,w=f*e+o*r,T=h*e+s*r;this.center.move(t,_,w,T);var k=Math.exp(this.computedRadius[0]);k=Math.max(1e-4,k+n),this.radius.set(t,Math.log(k))},h.rotate=function(t,e,r,n){this.recalcMatrix(t),e=e||0,r=r||0;var i=this.computedMatrix,a=i[0],o=i[4],s=i[8],c=i[1],f=i[5],h=i[9],p=i[2],d=i[6],v=i[10],g=e*a+r*c,y=e*o+r*f,m=e*s+r*h,x=-(d*m-v*y),b=-(v*g-p*m),_=-(p*y-d*g),w=Math.sqrt(Math.max(0,1-Math.pow(x,2)-Math.pow(b,2)-Math.pow(_,2))),T=u(x,b,_,w);T>1e-6?(x/=T,b/=T,_/=T,w/=T):(x=b=_=0,w=1);var k=this.computedRotation,A=k[0],M=k[1],S=k[2],E=k[3],L=A*w+E*x+M*_-S*b,C=M*w+E*b+S*x-A*_,P=S*w+E*_+A*b-M*x,O=E*w-A*x-M*b-S*_;if(n){x=p,b=d,_=v;var I=Math.sin(n)/l(x,b,_);x*=I,b*=I,_*=I,O=O*(w=Math.cos(e))-(L=L*w+O*x+C*_-P*b)*x-(C=C*w+O*b+P*x-L*_)*b-(P=P*w+O*_+L*b-C*x)*_}var D=u(L,C,P,O);D>1e-6?(L/=D,C/=D,P/=D,O/=D):(L=C=P=0,O=1),this.rotation.set(t,L,C,P,O)},h.lookAt=function(t,e,r,n){this.recalcMatrix(t),r=r||this.computedCenter,e=e||this.computedEye,n=n||this.computedUp;var a=this.computedMatrix;i(a,e,r,n);var o=this.computedRotation;s(o,a[0],a[1],a[2],a[4],a[5],a[6],a[8],a[9],a[10]),c(o,o),this.rotation.set(t,o[0],o[1],o[2],o[3]);for(var l=0,u=0;u<3;++u)l+=Math.pow(r[u]-e[u],2);this.radius.set(t,.5*Math.log(Math.max(l,1e-6))),this.center.set(t,r[0],r[1],r[2])},h.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},h.setMatrix=function(t,e){var r=this.computedRotation;s(r,e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]),c(r,r),this.rotation.set(t,r[0],r[1],r[2],r[3]);var n=this.computedMatrix;o(n,e);var i=n[15];if(Math.abs(i)>1e-6){var a=n[12]/i,l=n[13]/i,u=n[14]/i;this.recalcMatrix(t);var f=Math.exp(this.computedRadius[0]);this.center.set(t,a-n[2]*f,l-n[6]*f,u-n[10]*f),this.radius.idle(t)}else this.center.idle(t),this.radius.idle(t)},h.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},h.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},h.getDistanceLimits=function(t){var e=this.radius.bounds;return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},h.toJSON=function(){return this.recalcMatrix(this.lastT()),{center:this.computedCenter.slice(),rotation:this.computedRotation.slice(),distance:Math.log(this.computedRadius[0]),zoomMin:this.radius.bounds[0][0],zoomMax:this.radius.bounds[1][0]}},h.fromJSON=function(t){var e=this.lastT(),r=t.center;r&&this.center.set(e,r[0],r[1],r[2]);var n=t.rotation;n&&this.rotation.set(e,n[0],n[1],n[2],n[3]);var i=t.distance;i&&i>0&&this.radius.set(e,Math.log(i)),this.setDistanceLimits(t.zoomMin,t.zoomMax)}},4930:function(t,e,r){"use strict";var n=r(6184);t.exports=function(t,e,r){return n(r=void 0!==r?r+"":" ",e)+t}},4405:function(t){t.exports=function(t,e){e||(e=[0,""]),t=String(t);var r=parseFloat(t,10);return e[0]=r,e[1]=t.match(/[\d.\-\+]*\s*(.*)/)[1]||"",e}},4166:function(t,e,r){"use strict";t.exports=function(t,e){for(var r=0|e.length,i=t.length,a=[new Array(r),new Array(r)],o=0;o<r;++o)a[0][o]=[],a[1][o]=[];for(o=0;o<i;++o){var s=t[o];a[0][s[0]].push(s),a[1][s[1]].push(s)}var l=[];for(o=0;o<r;++o)a[0][o].length+a[1][o].length===0&&l.push([o]);function u(t,e){var r=a[e][t[e]];r.splice(r.indexOf(t),1)}function c(t,r,i){for(var o,s,l,c=0;c<2;++c)if(a[c][r].length>0){o=a[c][r][0],l=c;break}s=o[1^l];for(var f=0;f<2;++f)for(var h=a[f][r],p=0;p<h.length;++p){var d=h[p],v=d[1^f];n(e[t],e[r],e[s],e[v])>0&&(o=d,s=v,l=f)}return i||o&&u(o,l),s}function f(t,r){var i=a[r][t][0],o=[t];u(i,r);for(var s=i[1^r];;){for(;s!==t;)o.push(s),s=c(o[o.length-2],s,!1);if(a[0][t].length+a[1][t].length===0)break;var l=o[o.length-1],f=t,h=o[1],p=c(l,f,!0);if(n(e[l],e[f],e[h],e[p])<0)break;o.push(t),s=c(l,f)}return o}function h(t,e){return e[1]===e[e.length-1]}for(o=0;o<r;++o)for(var p=0;p<2;++p){for(var d=[];a[p][o].length>0;){a[0][o].length;var v=f(o,p);h(0,v)?d.push.apply(d,v):(d.length>0&&l.push(d),d=v)}d.length>0&&l.push(d)}return l};var n=r(9398)},3959:function(t,e,r){"use strict";t.exports=function(t,e){for(var r=n(t,e.length),i=new Array(e.length),a=new Array(e.length),o=[],s=0;s<e.length;++s){var l=r[s].length;a[s]=l,i[s]=!0,l<=1&&o.push(s)}for(;o.length>0;){var u=o.pop();i[u]=!1;var c=r[u];for(s=0;s<c.length;++s){var f=c[s];0==--a[f]&&o.push(f)}}var h=new Array(e.length),p=[];for(s=0;s<e.length;++s)i[s]?(u=p.length,h[s]=u,p.push(e[s])):h[s]=-1;var d=[];for(s=0;s<t.length;++s){var v=t[s];i[v[0]]&&i[v[1]]&&d.push([h[v[0]],h[v[1]]])}return[d,p]};var n=r(8348)},8040:function(t,e,r){"use strict";t.exports=function(t,e){var r=u(t,e);t=r[0];for(var f=(e=r[1]).length,h=(t.length,n(t,e.length)),p=0;p<f;++p)if(h[p].length%2==1)throw new Error("planar-graph-to-polyline: graph must be manifold");var d=i(t,e),v=(d=d.filter((function(t){for(var r=t.length,n=[0],i=0;i<r;++i){var a=e[t[i]],l=e[t[(i+1)%r]],u=o(-a[0],a[1]),c=o(-a[0],l[1]),f=o(l[0],a[1]),h=o(l[0],l[1]);n=s(n,s(s(u,c),s(f,h)))}return n[n.length-1]>0}))).length,g=new Array(v),y=new Array(v);for(p=0;p<v;++p){g[p]=p;var m=new Array(v),x=d[p].map((function(t){return e[t]})),b=a([x]),_=0;t:for(var w=0;w<v;++w)if(m[w]=0,p!==w){for(var T=(H=d[w]).length,k=0;k<T;++k){var A=b(e[H[k]]);if(0!==A){A<0&&(m[w]=1,_+=1);continue t}}m[w]=1,_+=1}y[p]=[_,p,m]}for(y.sort((function(t,e){return e[0]-t[0]})),p=0;p<v;++p){var M=(m=y[p])[1],S=m[2];for(w=0;w<v;++w)S[w]&&(g[w]=M)}var E=function(t){for(var e=new Array(t),r=0;r<t;++r)e[r]=[];return e}(v);for(p=0;p<v;++p)E[p].push(g[p]),E[g[p]].push(p);var L={},C=c(f,!1);for(p=0;p<v;++p)for(T=(H=d[p]).length,w=0;w<T;++w){var P=H[w],O=H[(w+1)%T],I=Math.min(P,O)+":"+Math.max(P,O);if(I in L){var D=L[I];E[D].push(p),E[p].push(D),C[P]=C[O]=!0}else L[I]=p}function z(t){for(var e=t.length,r=0;r<e;++r)if(!C[t[r]])return!1;return!0}var R=[],F=c(v,-1);for(p=0;p<v;++p)g[p]!==p||z(d[p])?F[p]=-1:(R.push(p),F[p]=0);for(r=[];R.length>0;){var B=R.pop(),N=E[B];l(N,(function(t,e){return t-e}));var j,U=N.length,V=F[B];if(0===V){var H=d[B];j=[H]}for(p=0;p<U;++p){var q=N[p];F[q]>=0||(F[q]=1^V,R.push(q),0===V&&(z(H=d[q])||(H.reverse(),j.push(H))))}0===V&&r.push(j)}return r};var n=r(8348),i=r(4166),a=r(211),o=r(9660),s=r(9662),l=r(1215),u=r(3959);function c(t,e){for(var r=new Array(t),n=0;n<t;++n)r[n]=e;return r}},211:function(t,e,r){t.exports=function(t){for(var e=t.length,r=[],a=[],s=0;s<e;++s)for(var c=t[s],f=c.length,h=f-1,p=0;p<f;h=p++){var d=c[h],v=c[p];d[0]===v[0]?a.push([d,v]):r.push([d,v])}if(0===r.length)return 0===a.length?u:(g=l(a),function(t){return g(t[0],t[1])?0:1});var g,y=i(r),m=function(t,e){return function(r){var i=o.le(e,r[0]);if(i<0)return 1;var a=t[i];if(!a){if(!(i>0&&e[i]===r[0]))return 1;a=t[i-1]}for(var s=1;a;){var l=a.key,u=n(r,l[0],l[1]);if(l[0][0]<l[1][0])if(u<0)a=a.left;else{if(!(u>0))return 0;s=-1,a=a.right}else if(u>0)a=a.left;else{if(!(u<0))return 0;s=1,a=a.right}}return s}}(y.slabs,y.coordinates);return 0===a.length?m:function(t,e){return function(r){return t(r[0],r[1])?0:e(r)}}(l(a),m)};var n=r(417)[3],i=r(4385),a=r(9014),o=r(5070);function s(){return!0}function l(t){for(var e={},r=0;r<t.length;++r){var n=t[r],i=n[0][0],o=n[0][1],l=n[1][1],u=[Math.min(o,l),Math.max(o,l)];i in e?e[i].push(u):e[i]=[u]}var c={},f=Object.keys(e);for(r=0;r<f.length;++r){var h=e[f[r]];c[f[r]]=a(h)}return function(t){return function(e,r){var n=t[e];return!!n&&!!n.queryPoint(r,s)}}(c)}function u(t){return 1}},7309:function(t){"use strict";var e=new Float64Array(4),r=new Float64Array(4),n=new Float64Array(4);t.exports=function(t,i,a,o,s){e.length<o.length&&(e=new Float64Array(o.length),r=new Float64Array(o.length),n=new Float64Array(o.length));for(var l=0;l<o.length;++l)e[l]=t[l]-o[l],r[l]=i[l]-t[l],n[l]=a[l]-t[l];var u=0,c=0,f=0,h=0,p=0,d=0;for(l=0;l<o.length;++l){var v=r[l],g=n[l],y=e[l];u+=v*v,c+=v*g,f+=g*g,h+=y*v,p+=y*g,d+=y*y}var m,x,b,_,w,T=Math.abs(u*f-c*c),k=c*p-f*h,A=c*h-u*p;if(k+A<=T)if(k<0)A<0&&h<0?(A=0,-h>=u?(k=1,m=u+2*h+d):m=h*(k=-h/u)+d):(k=0,p>=0?(A=0,m=d):-p>=f?(A=1,m=f+2*p+d):m=p*(A=-p/f)+d);else if(A<0)A=0,h>=0?(k=0,m=d):-h>=u?(k=1,m=u+2*h+d):m=h*(k=-h/u)+d;else{var M=1/T;m=(k*=M)*(u*k+c*(A*=M)+2*h)+A*(c*k+f*A+2*p)+d}else k<0?(b=f+p)>(x=c+h)?(_=b-x)>=(w=u-2*c+f)?(k=1,A=0,m=u+2*h+d):m=(k=_/w)*(u*k+c*(A=1-k)+2*h)+A*(c*k+f*A+2*p)+d:(k=0,b<=0?(A=1,m=f+2*p+d):p>=0?(A=0,m=d):m=p*(A=-p/f)+d):A<0?(b=u+h)>(x=c+p)?(_=b-x)>=(w=u-2*c+f)?(A=1,k=0,m=f+2*p+d):m=(k=1-(A=_/w))*(u*k+c*A+2*h)+A*(c*k+f*A+2*p)+d:(A=0,b<=0?(k=1,m=u+2*h+d):h>=0?(k=0,m=d):m=h*(k=-h/u)+d):(_=f+p-c-h)<=0?(k=0,A=1,m=f+2*p+d):_>=(w=u-2*c+f)?(k=1,A=0,m=u+2*h+d):m=(k=_/w)*(u*k+c*(A=1-k)+2*h)+A*(c*k+f*A+2*p)+d;var S=1-k-A;for(l=0;l<o.length;++l)s[l]=S*t[l]+k*i[l]+A*a[l];return m<0?0:m}},1116:function(t,e,r){t.exports=r(6093)},7584:function(t,e,r){"use strict";var n=r(1539);t.exports=function(t,e){for(var r=t.length,i=new Array(r),a=0;a<r;++a)i[a]=n(t[a],e[a]);return i}},2826:function(t,e,r){"use strict";t.exports=function(t){for(var e=new Array(t.length),r=0;r<t.length;++r)e[r]=n(t[r]);return e};var n=r(5125)},4469:function(t,e,r){"use strict";var n=r(5125),i=r(3962);t.exports=function(t,e){for(var r=n(e),a=t.length,o=new Array(a),s=0;s<a;++s)o[s]=i(t[s],r);return o}},6695:function(t,e,r){"use strict";var n=r(4354);t.exports=function(t,e){for(var r=t.length,i=new Array(r),a=0;a<r;++a)i[a]=n(t[a],e[a]);return i}},7037:function(t,e,r){"use strict";var n=r(9209),i=r(1284),a=r(9887);t.exports=function(t){t.sort(i);for(var e=t.length,r=0,o=0;o<e;++o){var s=t[o],l=a(s);if(0!==l){if(r>0){var u=t[r-1];if(0===n(s,u)&&a(u)!==l){r-=1;continue}}t[r++]=s}}return t.length=r,t}},6184:function(t){"use strict";var e,r="";t.exports=function(t,n){if("string"!=typeof t)throw new TypeError("expected a string");if(1===n)return t;if(2===n)return t+t;var i=t.length*n;if(e!==t||void 0===e)e=t,r="";else if(r.length>=i)return r.substr(0,i);for(;i>r.length&&n>1;)1&n&&(r+=t),n>>=1,t+=t;return r=(r+=t).substr(0,i)}},8161:function(t,e,r){t.exports=r.g.performance&&r.g.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}},402:function(t){"use strict";t.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r,o=t[i];(l=o-((r=a+o)-a))&&(t[--n]=r,r=l)}var s=0;for(i=n;i<e;++i){var l;(l=(o=r)-((r=(a=t[i])+o)-a))&&(t[s++]=l)}return t[s++]=r,t.length=s,t}},8167:function(t,e,r){"use strict";var n=r(9660),i=r(9662),a=r(8289),o=r(402);function s(t,e,r,n){return function(e){return n(t(r(e[0][0],e[1][1]),r(-e[0][1],e[1][0])))}}function l(t,e,r,n){return function(i){return n(t(e(t(r(i[1][1],i[2][2]),r(-i[1][2],i[2][1])),i[0][0]),t(e(t(r(i[1][0],i[2][2]),r(-i[1][2],i[2][0])),-i[0][1]),e(t(r(i[1][0],i[2][1]),r(-i[1][1],i[2][0])),i[0][2]))))}}function u(t,e,r,n){return function(i){return n(t(t(e(t(e(t(r(i[2][2],i[3][3]),r(-i[2][3],i[3][2])),i[1][1]),t(e(t(r(i[2][1],i[3][3]),r(-i[2][3],i[3][1])),-i[1][2]),e(t(r(i[2][1],i[3][2]),r(-i[2][2],i[3][1])),i[1][3]))),i[0][0]),e(t(e(t(r(i[2][2],i[3][3]),r(-i[2][3],i[3][2])),i[1][0]),t(e(t(r(i[2][0],i[3][3]),r(-i[2][3],i[3][0])),-i[1][2]),e(t(r(i[2][0],i[3][2]),r(-i[2][2],i[3][0])),i[1][3]))),-i[0][1])),t(e(t(e(t(r(i[2][1],i[3][3]),r(-i[2][3],i[3][1])),i[1][0]),t(e(t(r(i[2][0],i[3][3]),r(-i[2][3],i[3][0])),-i[1][1]),e(t(r(i[2][0],i[3][1]),r(-i[2][1],i[3][0])),i[1][3]))),i[0][2]),e(t(e(t(r(i[2][1],i[3][2]),r(-i[2][2],i[3][1])),i[1][0]),t(e(t(r(i[2][0],i[3][2]),r(-i[2][2],i[3][0])),-i[1][1]),e(t(r(i[2][0],i[3][1]),r(-i[2][1],i[3][0])),i[1][2]))),-i[0][3]))))}}function c(t,e,r,n){return function(i){return n(t(t(e(t(t(e(t(e(t(r(i[3][3],i[4][4]),r(-i[3][4],i[4][3])),i[2][2]),t(e(t(r(i[3][2],i[4][4]),r(-i[3][4],i[4][2])),-i[2][3]),e(t(r(i[3][2],i[4][3]),r(-i[3][3],i[4][2])),i[2][4]))),i[1][1]),e(t(e(t(r(i[3][3],i[4][4]),r(-i[3][4],i[4][3])),i[2][1]),t(e(t(r(i[3][1],i[4][4]),r(-i[3][4],i[4][1])),-i[2][3]),e(t(r(i[3][1],i[4][3]),r(-i[3][3],i[4][1])),i[2][4]))),-i[1][2])),t(e(t(e(t(r(i[3][2],i[4][4]),r(-i[3][4],i[4][2])),i[2][1]),t(e(t(r(i[3][1],i[4][4]),r(-i[3][4],i[4][1])),-i[2][2]),e(t(r(i[3][1],i[4][2]),r(-i[3][2],i[4][1])),i[2][4]))),i[1][3]),e(t(e(t(r(i[3][2],i[4][3]),r(-i[3][3],i[4][2])),i[2][1]),t(e(t(r(i[3][1],i[4][3]),r(-i[3][3],i[4][1])),-i[2][2]),e(t(r(i[3][1],i[4][2]),r(-i[3][2],i[4][1])),i[2][3]))),-i[1][4]))),i[0][0]),e(t(t(e(t(e(t(r(i[3][3],i[4][4]),r(-i[3][4],i[4][3])),i[2][2]),t(e(t(r(i[3][2],i[4][4]),r(-i[3][4],i[4][2])),-i[2][3]),e(t(r(i[3][2],i[4][3]),r(-i[3][3],i[4][2])),i[2][4]))),i[1][0]),e(t(e(t(r(i[3][3],i[4][4]),r(-i[3][4],i[4][3])),i[2][0]),t(e(t(r(i[3][0],i[4][4]),r(-i[3][4],i[4][0])),-i[2][3]),e(t(r(i[3][0],i[4][3]),r(-i[3][3],i[4][0])),i[2][4]))),-i[1][2])),t(e(t(e(t(r(i[3][2],i[4][4]),r(-i[3][4],i[4][2])),i[2][0]),t(e(t(r(i[3][0],i[4][4]),r(-i[3][4],i[4][0])),-i[2][2]),e(t(r(i[3][0],i[4][2]),r(-i[3][2],i[4][0])),i[2][4]))),i[1][3]),e(t(e(t(r(i[3][2],i[4][3]),r(-i[3][3],i[4][2])),i[2][0]),t(e(t(r(i[3][0],i[4][3]),r(-i[3][3],i[4][0])),-i[2][2]),e(t(r(i[3][0],i[4][2]),r(-i[3][2],i[4][0])),i[2][3]))),-i[1][4]))),-i[0][1])),t(e(t(t(e(t(e(t(r(i[3][3],i[4][4]),r(-i[3][4],i[4][3])),i[2][1]),t(e(t(r(i[3][1],i[4][4]),r(-i[3][4],i[4][1])),-i[2][3]),e(t(r(i[3][1],i[4][3]),r(-i[3][3],i[4][1])),i[2][4]))),i[1][0]),e(t(e(t(r(i[3][3],i[4][4]),r(-i[3][4],i[4][3])),i[2][0]),t(e(t(r(i[3][0],i[4][4]),r(-i[3][4],i[4][0])),-i[2][3]),e(t(r(i[3][0],i[4][3]),r(-i[3][3],i[4][0])),i[2][4]))),-i[1][1])),t(e(t(e(t(r(i[3][1],i[4][4]),r(-i[3][4],i[4][1])),i[2][0]),t(e(t(r(i[3][0],i[4][4]),r(-i[3][4],i[4][0])),-i[2][1]),e(t(r(i[3][0],i[4][1]),r(-i[3][1],i[4][0])),i[2][4]))),i[1][3]),e(t(e(t(r(i[3][1],i[4][3]),r(-i[3][3],i[4][1])),i[2][0]),t(e(t(r(i[3][0],i[4][3]),r(-i[3][3],i[4][0])),-i[2][1]),e(t(r(i[3][0],i[4][1]),r(-i[3][1],i[4][0])),i[2][3]))),-i[1][4]))),i[0][2]),t(e(t(t(e(t(e(t(r(i[3][2],i[4][4]),r(-i[3][4],i[4][2])),i[2][1]),t(e(t(r(i[3][1],i[4][4]),r(-i[3][4],i[4][1])),-i[2][2]),e(t(r(i[3][1],i[4][2]),r(-i[3][2],i[4][1])),i[2][4]))),i[1][0]),e(t(e(t(r(i[3][2],i[4][4]),r(-i[3][4],i[4][2])),i[2][0]),t(e(t(r(i[3][0],i[4][4]),r(-i[3][4],i[4][0])),-i[2][2]),e(t(r(i[3][0],i[4][2]),r(-i[3][2],i[4][0])),i[2][4]))),-i[1][1])),t(e(t(e(t(r(i[3][1],i[4][4]),r(-i[3][4],i[4][1])),i[2][0]),t(e(t(r(i[3][0],i[4][4]),r(-i[3][4],i[4][0])),-i[2][1]),e(t(r(i[3][0],i[4][1]),r(-i[3][1],i[4][0])),i[2][4]))),i[1][2]),e(t(e(t(r(i[3][1],i[4][2]),r(-i[3][2],i[4][1])),i[2][0]),t(e(t(r(i[3][0],i[4][2]),r(-i[3][2],i[4][0])),-i[2][1]),e(t(r(i[3][0],i[4][1]),r(-i[3][1],i[4][0])),i[2][2]))),-i[1][4]))),-i[0][3]),e(t(t(e(t(e(t(r(i[3][2],i[4][3]),r(-i[3][3],i[4][2])),i[2][1]),t(e(t(r(i[3][1],i[4][3]),r(-i[3][3],i[4][1])),-i[2][2]),e(t(r(i[3][1],i[4][2]),r(-i[3][2],i[4][1])),i[2][3]))),i[1][0]),e(t(e(t(r(i[3][2],i[4][3]),r(-i[3][3],i[4][2])),i[2][0]),t(e(t(r(i[3][0],i[4][3]),r(-i[3][3],i[4][0])),-i[2][2]),e(t(r(i[3][0],i[4][2]),r(-i[3][2],i[4][0])),i[2][3]))),-i[1][1])),t(e(t(e(t(r(i[3][1],i[4][3]),r(-i[3][3],i[4][1])),i[2][0]),t(e(t(r(i[3][0],i[4][3]),r(-i[3][3],i[4][0])),-i[2][1]),e(t(r(i[3][0],i[4][1]),r(-i[3][1],i[4][0])),i[2][3]))),i[1][2]),e(t(e(t(r(i[3][1],i[4][2]),r(-i[3][2],i[4][1])),i[2][0]),t(e(t(r(i[3][0],i[4][2]),r(-i[3][2],i[4][0])),-i[2][1]),e(t(r(i[3][0],i[4][1]),r(-i[3][1],i[4][0])),i[2][2]))),-i[1][3]))),i[0][4])))))}}function f(t){return(2===t?s:3===t?l:4===t?u:5===t?c:void 0)(i,a,n,o)}var h=[function(){return[0]},function(t){return[t[0][0]]}];function p(t,e,r,n,i,a,o,s){return function(l){switch(l.length){case 0:return t(l);case 1:return e(l);case 2:return r(l);case 3:return n(l);case 4:return i(l);case 5:return a(l)}var u=o[l.length];return u||(u=o[l.length]=s(l.length)),u(l)}}!function(){for(;h.length<6;)h.push(f(h.length));t.exports=p.apply(void 0,h.concat([h,f]));for(var e=0;e<h.length;++e)t.exports[e]=h[e]}()},9130:function(t,e,r){"use strict";var n=r(9660),i=r(9662);t.exports=function(t,e){for(var r=n(t[0],e[0]),a=1;a<t.length;++a)r=i(r,n(t[a],e[a]));return r}},2227:function(t,e,r){"use strict";var n=r(9660),i=r(9662),a=r(4078),o=r(8289);function s(t){return(3===t?l:4===t?u:5===t?c:f)(i,a,n,o)}function l(t,e,r,n){return function(i,a,o){var s=r(i[0],i[0]),l=n(s,a[0]),u=n(s,o[0]),c=r(a[0],a[0]),f=n(c,i[0]),h=n(c,o[0]),p=r(o[0],o[0]),d=n(p,i[0]),v=n(p,a[0]),g=t(e(v,h),e(f,l)),y=e(d,u),m=e(g,y);return m[m.length-1]}}function u(t,e,r,n){return function(i,a,o,s){var l=t(r(i[0],i[0]),r(i[1],i[1])),u=n(l,a[0]),c=n(l,o[0]),f=n(l,s[0]),h=t(r(a[0],a[0]),r(a[1],a[1])),p=n(h,i[0]),d=n(h,o[0]),v=n(h,s[0]),g=t(r(o[0],o[0]),r(o[1],o[1])),y=n(g,i[0]),m=n(g,a[0]),x=n(g,s[0]),b=t(r(s[0],s[0]),r(s[1],s[1])),_=n(b,i[0]),w=n(b,a[0]),T=n(b,o[0]),k=t(t(n(e(T,x),a[1]),t(n(e(w,v),-o[1]),n(e(m,d),s[1]))),t(n(e(w,v),i[1]),t(n(e(_,f),-a[1]),n(e(p,u),s[1])))),A=t(t(n(e(T,x),i[1]),t(n(e(_,f),-o[1]),n(e(y,c),s[1]))),t(n(e(m,d),i[1]),t(n(e(y,c),-a[1]),n(e(p,u),o[1])))),M=e(k,A);return M[M.length-1]}}function c(t,e,r,n){return function(i,a,o,s,l){var u=t(r(i[0],i[0]),t(r(i[1],i[1]),r(i[2],i[2]))),c=n(u,a[0]),f=n(u,o[0]),h=n(u,s[0]),p=n(u,l[0]),d=t(r(a[0],a[0]),t(r(a[1],a[1]),r(a[2],a[2]))),v=n(d,i[0]),g=n(d,o[0]),y=n(d,s[0]),m=n(d,l[0]),x=t(r(o[0],o[0]),t(r(o[1],o[1]),r(o[2],o[2]))),b=n(x,i[0]),_=n(x,a[0]),w=n(x,s[0]),T=n(x,l[0]),k=t(r(s[0],s[0]),t(r(s[1],s[1]),r(s[2],s[2]))),A=n(k,i[0]),M=n(k,a[0]),S=n(k,o[0]),E=n(k,l[0]),L=t(r(l[0],l[0]),t(r(l[1],l[1]),r(l[2],l[2]))),C=n(L,i[0]),P=n(L,a[0]),O=n(L,o[0]),I=n(L,s[0]),D=t(t(t(n(t(n(e(I,E),o[1]),t(n(e(O,T),-s[1]),n(e(S,w),l[1]))),a[2]),t(n(t(n(e(I,E),a[1]),t(n(e(P,m),-s[1]),n(e(M,y),l[1]))),-o[2]),n(t(n(e(O,T),a[1]),t(n(e(P,m),-o[1]),n(e(_,g),l[1]))),s[2]))),t(n(t(n(e(S,w),a[1]),t(n(e(M,y),-o[1]),n(e(_,g),s[1]))),-l[2]),t(n(t(n(e(I,E),a[1]),t(n(e(P,m),-s[1]),n(e(M,y),l[1]))),i[2]),n(t(n(e(I,E),i[1]),t(n(e(C,p),-s[1]),n(e(A,h),l[1]))),-a[2])))),t(t(n(t(n(e(P,m),i[1]),t(n(e(C,p),-a[1]),n(e(v,c),l[1]))),s[2]),t(n(t(n(e(M,y),i[1]),t(n(e(A,h),-a[1]),n(e(v,c),s[1]))),-l[2]),n(t(n(e(S,w),a[1]),t(n(e(M,y),-o[1]),n(e(_,g),s[1]))),i[2]))),t(n(t(n(e(S,w),i[1]),t(n(e(A,h),-o[1]),n(e(b,f),s[1]))),-a[2]),t(n(t(n(e(M,y),i[1]),t(n(e(A,h),-a[1]),n(e(v,c),s[1]))),o[2]),n(t(n(e(_,g),i[1]),t(n(e(b,f),-a[1]),n(e(v,c),o[1]))),-s[2]))))),z=t(t(t(n(t(n(e(I,E),o[1]),t(n(e(O,T),-s[1]),n(e(S,w),l[1]))),i[2]),n(t(n(e(I,E),i[1]),t(n(e(C,p),-s[1]),n(e(A,h),l[1]))),-o[2])),t(n(t(n(e(O,T),i[1]),t(n(e(C,p),-o[1]),n(e(b,f),l[1]))),s[2]),n(t(n(e(S,w),i[1]),t(n(e(A,h),-o[1]),n(e(b,f),s[1]))),-l[2]))),t(t(n(t(n(e(O,T),a[1]),t(n(e(P,m),-o[1]),n(e(_,g),l[1]))),i[2]),n(t(n(e(O,T),i[1]),t(n(e(C,p),-o[1]),n(e(b,f),l[1]))),-a[2])),t(n(t(n(e(P,m),i[1]),t(n(e(C,p),-a[1]),n(e(v,c),l[1]))),o[2]),n(t(n(e(_,g),i[1]),t(n(e(b,f),-a[1]),n(e(v,c),o[1]))),-l[2])))),R=e(D,z);return R[R.length-1]}}function f(t,e,r,n){return function(i,a,o,s,l,u){var c=t(t(r(i[0],i[0]),r(i[1],i[1])),t(r(i[2],i[2]),r(i[3],i[3]))),f=n(c,a[0]),h=n(c,o[0]),p=n(c,s[0]),d=n(c,l[0]),v=n(c,u[0]),g=t(t(r(a[0],a[0]),r(a[1],a[1])),t(r(a[2],a[2]),r(a[3],a[3]))),y=n(g,i[0]),m=n(g,o[0]),x=n(g,s[0]),b=n(g,l[0]),_=n(g,u[0]),w=t(t(r(o[0],o[0]),r(o[1],o[1])),t(r(o[2],o[2]),r(o[3],o[3]))),T=n(w,i[0]),k=n(w,a[0]),A=n(w,s[0]),M=n(w,l[0]),S=n(w,u[0]),E=t(t(r(s[0],s[0]),r(s[1],s[1])),t(r(s[2],s[2]),r(s[3],s[3]))),L=n(E,i[0]),C=n(E,a[0]),P=n(E,o[0]),O=n(E,l[0]),I=n(E,u[0]),D=t(t(r(l[0],l[0]),r(l[1],l[1])),t(r(l[2],l[2]),r(l[3],l[3]))),z=n(D,i[0]),R=n(D,a[0]),F=n(D,o[0]),B=n(D,s[0]),N=n(D,u[0]),j=t(t(r(u[0],u[0]),r(u[1],u[1])),t(r(u[2],u[2]),r(u[3],u[3]))),U=n(j,i[0]),V=n(j,a[0]),H=n(j,o[0]),q=n(j,s[0]),G=n(j,l[0]),Z=t(t(t(n(t(t(n(t(n(e(G,N),s[1]),t(n(e(q,I),-l[1]),n(e(B,O),u[1]))),o[2]),n(t(n(e(G,N),o[1]),t(n(e(H,S),-l[1]),n(e(F,M),u[1]))),-s[2])),t(n(t(n(e(q,I),o[1]),t(n(e(H,S),-s[1]),n(e(P,A),u[1]))),l[2]),n(t(n(e(B,O),o[1]),t(n(e(F,M),-s[1]),n(e(P,A),l[1]))),-u[2]))),a[3]),t(n(t(t(n(t(n(e(G,N),s[1]),t(n(e(q,I),-l[1]),n(e(B,O),u[1]))),a[2]),n(t(n(e(G,N),a[1]),t(n(e(V,_),-l[1]),n(e(R,b),u[1]))),-s[2])),t(n(t(n(e(q,I),a[1]),t(n(e(V,_),-s[1]),n(e(C,x),u[1]))),l[2]),n(t(n(e(B,O),a[1]),t(n(e(R,b),-s[1]),n(e(C,x),l[1]))),-u[2]))),-o[3]),n(t(t(n(t(n(e(G,N),o[1]),t(n(e(H,S),-l[1]),n(e(F,M),u[1]))),a[2]),n(t(n(e(G,N),a[1]),t(n(e(V,_),-l[1]),n(e(R,b),u[1]))),-o[2])),t(n(t(n(e(H,S),a[1]),t(n(e(V,_),-o[1]),n(e(k,m),u[1]))),l[2]),n(t(n(e(F,M),a[1]),t(n(e(R,b),-o[1]),n(e(k,m),l[1]))),-u[2]))),s[3]))),t(t(n(t(t(n(t(n(e(q,I),o[1]),t(n(e(H,S),-s[1]),n(e(P,A),u[1]))),a[2]),n(t(n(e(q,I),a[1]),t(n(e(V,_),-s[1]),n(e(C,x),u[1]))),-o[2])),t(n(t(n(e(H,S),a[1]),t(n(e(V,_),-o[1]),n(e(k,m),u[1]))),s[2]),n(t(n(e(P,A),a[1]),t(n(e(C,x),-o[1]),n(e(k,m),s[1]))),-u[2]))),-l[3]),n(t(t(n(t(n(e(B,O),o[1]),t(n(e(F,M),-s[1]),n(e(P,A),l[1]))),a[2]),n(t(n(e(B,O),a[1]),t(n(e(R,b),-s[1]),n(e(C,x),l[1]))),-o[2])),t(n(t(n(e(F,M),a[1]),t(n(e(R,b),-o[1]),n(e(k,m),l[1]))),s[2]),n(t(n(e(P,A),a[1]),t(n(e(C,x),-o[1]),n(e(k,m),s[1]))),-l[2]))),u[3])),t(n(t(t(n(t(n(e(G,N),s[1]),t(n(e(q,I),-l[1]),n(e(B,O),u[1]))),a[2]),n(t(n(e(G,N),a[1]),t(n(e(V,_),-l[1]),n(e(R,b),u[1]))),-s[2])),t(n(t(n(e(q,I),a[1]),t(n(e(V,_),-s[1]),n(e(C,x),u[1]))),l[2]),n(t(n(e(B,O),a[1]),t(n(e(R,b),-s[1]),n(e(C,x),l[1]))),-u[2]))),i[3]),n(t(t(n(t(n(e(G,N),s[1]),t(n(e(q,I),-l[1]),n(e(B,O),u[1]))),i[2]),n(t(n(e(G,N),i[1]),t(n(e(U,v),-l[1]),n(e(z,d),u[1]))),-s[2])),t(n(t(n(e(q,I),i[1]),t(n(e(U,v),-s[1]),n(e(L,p),u[1]))),l[2]),n(t(n(e(B,O),i[1]),t(n(e(z,d),-s[1]),n(e(L,p),l[1]))),-u[2]))),-a[3])))),t(t(t(n(t(t(n(t(n(e(G,N),a[1]),t(n(e(V,_),-l[1]),n(e(R,b),u[1]))),i[2]),n(t(n(e(G,N),i[1]),t(n(e(U,v),-l[1]),n(e(z,d),u[1]))),-a[2])),t(n(t(n(e(V,_),i[1]),t(n(e(U,v),-a[1]),n(e(y,f),u[1]))),l[2]),n(t(n(e(R,b),i[1]),t(n(e(z,d),-a[1]),n(e(y,f),l[1]))),-u[2]))),s[3]),n(t(t(n(t(n(e(q,I),a[1]),t(n(e(V,_),-s[1]),n(e(C,x),u[1]))),i[2]),n(t(n(e(q,I),i[1]),t(n(e(U,v),-s[1]),n(e(L,p),u[1]))),-a[2])),t(n(t(n(e(V,_),i[1]),t(n(e(U,v),-a[1]),n(e(y,f),u[1]))),s[2]),n(t(n(e(C,x),i[1]),t(n(e(L,p),-a[1]),n(e(y,f),s[1]))),-u[2]))),-l[3])),t(n(t(t(n(t(n(e(B,O),a[1]),t(n(e(R,b),-s[1]),n(e(C,x),l[1]))),i[2]),n(t(n(e(B,O),i[1]),t(n(e(z,d),-s[1]),n(e(L,p),l[1]))),-a[2])),t(n(t(n(e(R,b),i[1]),t(n(e(z,d),-a[1]),n(e(y,f),l[1]))),s[2]),n(t(n(e(C,x),i[1]),t(n(e(L,p),-a[1]),n(e(y,f),s[1]))),-l[2]))),u[3]),n(t(t(n(t(n(e(q,I),o[1]),t(n(e(H,S),-s[1]),n(e(P,A),u[1]))),a[2]),n(t(n(e(q,I),a[1]),t(n(e(V,_),-s[1]),n(e(C,x),u[1]))),-o[2])),t(n(t(n(e(H,S),a[1]),t(n(e(V,_),-o[1]),n(e(k,m),u[1]))),s[2]),n(t(n(e(P,A),a[1]),t(n(e(C,x),-o[1]),n(e(k,m),s[1]))),-u[2]))),i[3]))),t(t(n(t(t(n(t(n(e(q,I),o[1]),t(n(e(H,S),-s[1]),n(e(P,A),u[1]))),i[2]),n(t(n(e(q,I),i[1]),t(n(e(U,v),-s[1]),n(e(L,p),u[1]))),-o[2])),t(n(t(n(e(H,S),i[1]),t(n(e(U,v),-o[1]),n(e(T,h),u[1]))),s[2]),n(t(n(e(P,A),i[1]),t(n(e(L,p),-o[1]),n(e(T,h),s[1]))),-u[2]))),-a[3]),n(t(t(n(t(n(e(q,I),a[1]),t(n(e(V,_),-s[1]),n(e(C,x),u[1]))),i[2]),n(t(n(e(q,I),i[1]),t(n(e(U,v),-s[1]),n(e(L,p),u[1]))),-a[2])),t(n(t(n(e(V,_),i[1]),t(n(e(U,v),-a[1]),n(e(y,f),u[1]))),s[2]),n(t(n(e(C,x),i[1]),t(n(e(L,p),-a[1]),n(e(y,f),s[1]))),-u[2]))),o[3])),t(n(t(t(n(t(n(e(H,S),a[1]),t(n(e(V,_),-o[1]),n(e(k,m),u[1]))),i[2]),n(t(n(e(H,S),i[1]),t(n(e(U,v),-o[1]),n(e(T,h),u[1]))),-a[2])),t(n(t(n(e(V,_),i[1]),t(n(e(U,v),-a[1]),n(e(y,f),u[1]))),o[2]),n(t(n(e(k,m),i[1]),t(n(e(T,h),-a[1]),n(e(y,f),o[1]))),-u[2]))),-s[3]),n(t(t(n(t(n(e(P,A),a[1]),t(n(e(C,x),-o[1]),n(e(k,m),s[1]))),i[2]),n(t(n(e(P,A),i[1]),t(n(e(L,p),-o[1]),n(e(T,h),s[1]))),-a[2])),t(n(t(n(e(C,x),i[1]),t(n(e(L,p),-a[1]),n(e(y,f),s[1]))),o[2]),n(t(n(e(k,m),i[1]),t(n(e(T,h),-a[1]),n(e(y,f),o[1]))),-s[2]))),u[3]))))),Y=t(t(t(n(t(t(n(t(n(e(G,N),s[1]),t(n(e(q,I),-l[1]),n(e(B,O),u[1]))),o[2]),n(t(n(e(G,N),o[1]),t(n(e(H,S),-l[1]),n(e(F,M),u[1]))),-s[2])),t(n(t(n(e(q,I),o[1]),t(n(e(H,S),-s[1]),n(e(P,A),u[1]))),l[2]),n(t(n(e(B,O),o[1]),t(n(e(F,M),-s[1]),n(e(P,A),l[1]))),-u[2]))),i[3]),t(n(t(t(n(t(n(e(G,N),s[1]),t(n(e(q,I),-l[1]),n(e(B,O),u[1]))),i[2]),n(t(n(e(G,N),i[1]),t(n(e(U,v),-l[1]),n(e(z,d),u[1]))),-s[2])),t(n(t(n(e(q,I),i[1]),t(n(e(U,v),-s[1]),n(e(L,p),u[1]))),l[2]),n(t(n(e(B,O),i[1]),t(n(e(z,d),-s[1]),n(e(L,p),l[1]))),-u[2]))),-o[3]),n(t(t(n(t(n(e(G,N),o[1]),t(n(e(H,S),-l[1]),n(e(F,M),u[1]))),i[2]),n(t(n(e(G,N),i[1]),t(n(e(U,v),-l[1]),n(e(z,d),u[1]))),-o[2])),t(n(t(n(e(H,S),i[1]),t(n(e(U,v),-o[1]),n(e(T,h),u[1]))),l[2]),n(t(n(e(F,M),i[1]),t(n(e(z,d),-o[1]),n(e(T,h),l[1]))),-u[2]))),s[3]))),t(t(n(t(t(n(t(n(e(q,I),o[1]),t(n(e(H,S),-s[1]),n(e(P,A),u[1]))),i[2]),n(t(n(e(q,I),i[1]),t(n(e(U,v),-s[1]),n(e(L,p),u[1]))),-o[2])),t(n(t(n(e(H,S),i[1]),t(n(e(U,v),-o[1]),n(e(T,h),u[1]))),s[2]),n(t(n(e(P,A),i[1]),t(n(e(L,p),-o[1]),n(e(T,h),s[1]))),-u[2]))),-l[3]),n(t(t(n(t(n(e(B,O),o[1]),t(n(e(F,M),-s[1]),n(e(P,A),l[1]))),i[2]),n(t(n(e(B,O),i[1]),t(n(e(z,d),-s[1]),n(e(L,p),l[1]))),-o[2])),t(n(t(n(e(F,M),i[1]),t(n(e(z,d),-o[1]),n(e(T,h),l[1]))),s[2]),n(t(n(e(P,A),i[1]),t(n(e(L,p),-o[1]),n(e(T,h),s[1]))),-l[2]))),u[3])),t(n(t(t(n(t(n(e(G,N),o[1]),t(n(e(H,S),-l[1]),n(e(F,M),u[1]))),a[2]),n(t(n(e(G,N),a[1]),t(n(e(V,_),-l[1]),n(e(R,b),u[1]))),-o[2])),t(n(t(n(e(H,S),a[1]),t(n(e(V,_),-o[1]),n(e(k,m),u[1]))),l[2]),n(t(n(e(F,M),a[1]),t(n(e(R,b),-o[1]),n(e(k,m),l[1]))),-u[2]))),i[3]),n(t(t(n(t(n(e(G,N),o[1]),t(n(e(H,S),-l[1]),n(e(F,M),u[1]))),i[2]),n(t(n(e(G,N),i[1]),t(n(e(U,v),-l[1]),n(e(z,d),u[1]))),-o[2])),t(n(t(n(e(H,S),i[1]),t(n(e(U,v),-o[1]),n(e(T,h),u[1]))),l[2]),n(t(n(e(F,M),i[1]),t(n(e(z,d),-o[1]),n(e(T,h),l[1]))),-u[2]))),-a[3])))),t(t(t(n(t(t(n(t(n(e(G,N),a[1]),t(n(e(V,_),-l[1]),n(e(R,b),u[1]))),i[2]),n(t(n(e(G,N),i[1]),t(n(e(U,v),-l[1]),n(e(z,d),u[1]))),-a[2])),t(n(t(n(e(V,_),i[1]),t(n(e(U,v),-a[1]),n(e(y,f),u[1]))),l[2]),n(t(n(e(R,b),i[1]),t(n(e(z,d),-a[1]),n(e(y,f),l[1]))),-u[2]))),o[3]),n(t(t(n(t(n(e(H,S),a[1]),t(n(e(V,_),-o[1]),n(e(k,m),u[1]))),i[2]),n(t(n(e(H,S),i[1]),t(n(e(U,v),-o[1]),n(e(T,h),u[1]))),-a[2])),t(n(t(n(e(V,_),i[1]),t(n(e(U,v),-a[1]),n(e(y,f),u[1]))),o[2]),n(t(n(e(k,m),i[1]),t(n(e(T,h),-a[1]),n(e(y,f),o[1]))),-u[2]))),-l[3])),t(n(t(t(n(t(n(e(F,M),a[1]),t(n(e(R,b),-o[1]),n(e(k,m),l[1]))),i[2]),n(t(n(e(F,M),i[1]),t(n(e(z,d),-o[1]),n(e(T,h),l[1]))),-a[2])),t(n(t(n(e(R,b),i[1]),t(n(e(z,d),-a[1]),n(e(y,f),l[1]))),o[2]),n(t(n(e(k,m),i[1]),t(n(e(T,h),-a[1]),n(e(y,f),o[1]))),-l[2]))),u[3]),n(t(t(n(t(n(e(B,O),o[1]),t(n(e(F,M),-s[1]),n(e(P,A),l[1]))),a[2]),n(t(n(e(B,O),a[1]),t(n(e(R,b),-s[1]),n(e(C,x),l[1]))),-o[2])),t(n(t(n(e(F,M),a[1]),t(n(e(R,b),-o[1]),n(e(k,m),l[1]))),s[2]),n(t(n(e(P,A),a[1]),t(n(e(C,x),-o[1]),n(e(k,m),s[1]))),-l[2]))),i[3]))),t(t(n(t(t(n(t(n(e(B,O),o[1]),t(n(e(F,M),-s[1]),n(e(P,A),l[1]))),i[2]),n(t(n(e(B,O),i[1]),t(n(e(z,d),-s[1]),n(e(L,p),l[1]))),-o[2])),t(n(t(n(e(F,M),i[1]),t(n(e(z,d),-o[1]),n(e(T,h),l[1]))),s[2]),n(t(n(e(P,A),i[1]),t(n(e(L,p),-o[1]),n(e(T,h),s[1]))),-l[2]))),-a[3]),n(t(t(n(t(n(e(B,O),a[1]),t(n(e(R,b),-s[1]),n(e(C,x),l[1]))),i[2]),n(t(n(e(B,O),i[1]),t(n(e(z,d),-s[1]),n(e(L,p),l[1]))),-a[2])),t(n(t(n(e(R,b),i[1]),t(n(e(z,d),-a[1]),n(e(y,f),l[1]))),s[2]),n(t(n(e(C,x),i[1]),t(n(e(L,p),-a[1]),n(e(y,f),s[1]))),-l[2]))),o[3])),t(n(t(t(n(t(n(e(F,M),a[1]),t(n(e(R,b),-o[1]),n(e(k,m),l[1]))),i[2]),n(t(n(e(F,M),i[1]),t(n(e(z,d),-o[1]),n(e(T,h),l[1]))),-a[2])),t(n(t(n(e(R,b),i[1]),t(n(e(z,d),-a[1]),n(e(y,f),l[1]))),o[2]),n(t(n(e(k,m),i[1]),t(n(e(T,h),-a[1]),n(e(y,f),o[1]))),-l[2]))),-s[3]),n(t(t(n(t(n(e(P,A),a[1]),t(n(e(C,x),-o[1]),n(e(k,m),s[1]))),i[2]),n(t(n(e(P,A),i[1]),t(n(e(L,p),-o[1]),n(e(T,h),s[1]))),-a[2])),t(n(t(n(e(C,x),i[1]),t(n(e(L,p),-a[1]),n(e(y,f),s[1]))),o[2]),n(t(n(e(k,m),i[1]),t(n(e(T,h),-a[1]),n(e(y,f),o[1]))),-s[2]))),l[3]))))),W=e(Z,Y);return W[W.length-1]}}var h=[function(){return 0},function(){return 0},function(){return 0}];function p(t){var e=h[t.length];return e||(e=h[t.length]=s(t.length)),e.apply(void 0,t)}function d(t,e,r,n,i,a,o,s){return function(e,r,l,u,c,f){switch(arguments.length){case 0:case 1:return 0;case 2:return n(e,r);case 3:return i(e,r,l);case 4:return a(e,r,l,u);case 5:return o(e,r,l,u,c);case 6:return s(e,r,l,u,c,f)}for(var h=new Array(arguments.length),p=0;p<arguments.length;++p)h[p]=arguments[p];return t(h)}}!function(){for(;h.length<=6;)h.push(s(h.length));t.exports=d.apply(void 0,[p].concat(h));for(var e=0;e<=6;++e)t.exports[e]=h[e]}()},6606:function(t,e,r){"use strict";var n=r(8167);function i(t){return(2===t?a:3===t?o:4===t?s:5===t?l:u)(t<6?n[t]:n)}function a(t){return function(e,r){return[t([[+r[0],+e[0][1]],[+r[1],+e[1][1]]]),t([[+e[0][0],+r[0]],[+e[1][0],+r[1]]]),t(e)]}}function o(t){return function(e,r){return[t([[+r[0],+e[0][1],+e[0][2]],[+r[1],+e[1][1],+e[1][2]],[+r[2],+e[2][1],+e[2][2]]]),t([[+e[0][0],+r[0],+e[0][2]],[+e[1][0],+r[1],+e[1][2]],[+e[2][0],+r[2],+e[2][2]]]),t([[+e[0][0],+e[0][1],+r[0]],[+e[1][0],+e[1][1],+r[1]],[+e[2][0],+e[2][1],+r[2]]]),t(e)]}}function s(t){return function(e,r){return[t([[+r[0],+e[0][1],+e[0][2],+e[0][3]],[+r[1],+e[1][1],+e[1][2],+e[1][3]],[+r[2],+e[2][1],+e[2][2],+e[2][3]],[+r[3],+e[3][1],+e[3][2],+e[3][3]]]),t([[+e[0][0],+r[0],+e[0][2],+e[0][3]],[+e[1][0],+r[1],+e[1][2],+e[1][3]],[+e[2][0],+r[2],+e[2][2],+e[2][3]],[+e[3][0],+r[3],+e[3][2],+e[3][3]]]),t([[+e[0][0],+e[0][1],+r[0],+e[0][3]],[+e[1][0],+e[1][1],+r[1],+e[1][3]],[+e[2][0],+e[2][1],+r[2],+e[2][3]],[+e[3][0],+e[3][1],+r[3],+e[3][3]]]),t([[+e[0][0],+e[0][1],+e[0][2],+r[0]],[+e[1][0],+e[1][1],+e[1][2],+r[1]],[+e[2][0],+e[2][1],+e[2][2],+r[2]],[+e[3][0],+e[3][1],+e[3][2],+r[3]]]),t(e)]}}function l(t){return function(e,r){return[t([[+r[0],+e[0][1],+e[0][2],+e[0][3],+e[0][4]],[+r[1],+e[1][1],+e[1][2],+e[1][3],+e[1][4]],[+r[2],+e[2][1],+e[2][2],+e[2][3],+e[2][4]],[+r[3],+e[3][1],+e[3][2],+e[3][3],+e[3][4]],[+r[4],+e[4][1],+e[4][2],+e[4][3],+e[4][4]]]),t([[+e[0][0],+r[0],+e[0][2],+e[0][3],+e[0][4]],[+e[1][0],+r[1],+e[1][2],+e[1][3],+e[1][4]],[+e[2][0],+r[2],+e[2][2],+e[2][3],+e[2][4]],[+e[3][0],+r[3],+e[3][2],+e[3][3],+e[3][4]],[+e[4][0],+r[4],+e[4][2],+e[4][3],+e[4][4]]]),t([[+e[0][0],+e[0][1],+r[0],+e[0][3],+e[0][4]],[+e[1][0],+e[1][1],+r[1],+e[1][3],+e[1][4]],[+e[2][0],+e[2][1],+r[2],+e[2][3],+e[2][4]],[+e[3][0],+e[3][1],+r[3],+e[3][3],+e[3][4]],[+e[4][0],+e[4][1],+r[4],+e[4][3],+e[4][4]]]),t([[+e[0][0],+e[0][1],+e[0][2],+r[0],+e[0][4]],[+e[1][0],+e[1][1],+e[1][2],+r[1],+e[1][4]],[+e[2][0],+e[2][1],+e[2][2],+r[2],+e[2][4]],[+e[3][0],+e[3][1],+e[3][2],+r[3],+e[3][4]],[+e[4][0],+e[4][1],+e[4][2],+r[4],+e[4][4]]]),t([[+e[0][0],+e[0][1],+e[0][2],+e[0][3],+r[0]],[+e[1][0],+e[1][1],+e[1][2],+e[1][3],+r[1]],[+e[2][0],+e[2][1],+e[2][2],+e[2][3],+r[2]],[+e[3][0],+e[3][1],+e[3][2],+e[3][3],+r[3]],[+e[4][0],+e[4][1],+e[4][2],+e[4][3],+r[4]]]),t(e)]}}function u(t){return function(e,r){return[t([[+r[0],+e[0][1],+e[0][2],+e[0][3],+e[0][4],+e[0][5]],[+r[1],+e[1][1],+e[1][2],+e[1][3],+e[1][4],+e[1][5]],[+r[2],+e[2][1],+e[2][2],+e[2][3],+e[2][4],+e[2][5]],[+r[3],+e[3][1],+e[3][2],+e[3][3],+e[3][4],+e[3][5]],[+r[4],+e[4][1],+e[4][2],+e[4][3],+e[4][4],+e[4][5]],[+r[5],+e[5][1],+e[5][2],+e[5][3],+e[5][4],+e[5][5]]]),t([[+e[0][0],+r[0],+e[0][2],+e[0][3],+e[0][4],+e[0][5]],[+e[1][0],+r[1],+e[1][2],+e[1][3],+e[1][4],+e[1][5]],[+e[2][0],+r[2],+e[2][2],+e[2][3],+e[2][4],+e[2][5]],[+e[3][0],+r[3],+e[3][2],+e[3][3],+e[3][4],+e[3][5]],[+e[4][0],+r[4],+e[4][2],+e[4][3],+e[4][4],+e[4][5]],[+e[5][0],+r[5],+e[5][2],+e[5][3],+e[5][4],+e[5][5]]]),t([[+e[0][0],+e[0][1],+r[0],+e[0][3],+e[0][4],+e[0][5]],[+e[1][0],+e[1][1],+r[1],+e[1][3],+e[1][4],+e[1][5]],[+e[2][0],+e[2][1],+r[2],+e[2][3],+e[2][4],+e[2][5]],[+e[3][0],+e[3][1],+r[3],+e[3][3],+e[3][4],+e[3][5]],[+e[4][0],+e[4][1],+r[4],+e[4][3],+e[4][4],+e[4][5]],[+e[5][0],+e[5][1],+r[5],+e[5][3],+e[5][4],+e[5][5]]]),t([[+e[0][0],+e[0][1],+e[0][2],+r[0],+e[0][4],+e[0][5]],[+e[1][0],+e[1][1],+e[1][2],+r[1],+e[1][4],+e[1][5]],[+e[2][0],+e[2][1],+e[2][2],+r[2],+e[2][4],+e[2][5]],[+e[3][0],+e[3][1],+e[3][2],+r[3],+e[3][4],+e[3][5]],[+e[4][0],+e[4][1],+e[4][2],+r[4],+e[4][4],+e[4][5]],[+e[5][0],+e[5][1],+e[5][2],+r[5],+e[5][4],+e[5][5]]]),t([[+e[0][0],+e[0][1],+e[0][2],+e[0][3],+r[0],+e[0][5]],[+e[1][0],+e[1][1],+e[1][2],+e[1][3],+r[1],+e[1][5]],[+e[2][0],+e[2][1],+e[2][2],+e[2][3],+r[2],+e[2][5]],[+e[3][0],+e[3][1],+e[3][2],+e[3][3],+r[3],+e[3][5]],[+e[4][0],+e[4][1],+e[4][2],+e[4][3],+r[4],+e[4][5]],[+e[5][0],+e[5][1],+e[5][2],+e[5][3],+r[5],+e[5][5]]]),t([[+e[0][0],+e[0][1],+e[0][2],+e[0][3],+e[0][4],+r[0]],[+e[1][0],+e[1][1],+e[1][2],+e[1][3],+e[1][4],+r[1]],[+e[2][0],+e[2][1],+e[2][2],+e[2][3],+e[2][4],+r[2]],[+e[3][0],+e[3][1],+e[3][2],+e[3][3],+e[3][4],+r[3]],[+e[4][0],+e[4][1],+e[4][2],+e[4][3],+e[4][4],+r[4]],[+e[5][0],+e[5][1],+e[5][2],+e[5][3],+e[5][4],+r[5]]]),t(e)]}}var c=[function(){return[[0]]},function(t,e){return[[e[0]],[t[0][0]]]}];function f(t,e,r,n,i,a,o,s){return function(l,u){switch(l.length){case 0:return t(l,u);case 1:return e(l,u);case 2:return r(l,u);case 3:return n(l,u);case 4:return i(l,u);case 5:return a(l,u)}var c=o[l.length];return c||(c=o[l.length]=s(l.length)),c(l,u)}}!function(){for(;c.length<6;)c.push(i(c.length));t.exports=f.apply(void 0,c.concat([c,i]));for(var e=0;e<6;++e)t.exports[e]=c[e]}()},417:function(t,e,r){"use strict";var n=r(9660),i=r(9662),a=r(8289),o=r(4078);function s(t,e,r,n){return function(r,i,a){var o=t(t(e(i[1],a[0]),e(-a[1],i[0])),t(e(r[1],i[0]),e(-i[1],r[0]))),s=t(e(r[1],a[0]),e(-a[1],r[0])),l=n(o,s);return l[l.length-1]}}function l(t,e,r,n){return function(i,a,o,s){var l=t(t(r(t(e(o[1],s[0]),e(-s[1],o[0])),a[2]),t(r(t(e(a[1],s[0]),e(-s[1],a[0])),-o[2]),r(t(e(a[1],o[0]),e(-o[1],a[0])),s[2]))),t(r(t(e(a[1],s[0]),e(-s[1],a[0])),i[2]),t(r(t(e(i[1],s[0]),e(-s[1],i[0])),-a[2]),r(t(e(i[1],a[0]),e(-a[1],i[0])),s[2])))),u=t(t(r(t(e(o[1],s[0]),e(-s[1],o[0])),i[2]),t(r(t(e(i[1],s[0]),e(-s[1],i[0])),-o[2]),r(t(e(i[1],o[0]),e(-o[1],i[0])),s[2]))),t(r(t(e(a[1],o[0]),e(-o[1],a[0])),i[2]),t(r(t(e(i[1],o[0]),e(-o[1],i[0])),-a[2]),r(t(e(i[1],a[0]),e(-a[1],i[0])),o[2])))),c=n(l,u);return c[c.length-1]}}function u(t,e,r,n){return function(i,a,o,s,l){var u=t(t(t(r(t(r(t(e(s[1],l[0]),e(-l[1],s[0])),o[2]),t(r(t(e(o[1],l[0]),e(-l[1],o[0])),-s[2]),r(t(e(o[1],s[0]),e(-s[1],o[0])),l[2]))),a[3]),t(r(t(r(t(e(s[1],l[0]),e(-l[1],s[0])),a[2]),t(r(t(e(a[1],l[0]),e(-l[1],a[0])),-s[2]),r(t(e(a[1],s[0]),e(-s[1],a[0])),l[2]))),-o[3]),r(t(r(t(e(o[1],l[0]),e(-l[1],o[0])),a[2]),t(r(t(e(a[1],l[0]),e(-l[1],a[0])),-o[2]),r(t(e(a[1],o[0]),e(-o[1],a[0])),l[2]))),s[3]))),t(r(t(r(t(e(o[1],s[0]),e(-s[1],o[0])),a[2]),t(r(t(e(a[1],s[0]),e(-s[1],a[0])),-o[2]),r(t(e(a[1],o[0]),e(-o[1],a[0])),s[2]))),-l[3]),t(r(t(r(t(e(s[1],l[0]),e(-l[1],s[0])),a[2]),t(r(t(e(a[1],l[0]),e(-l[1],a[0])),-s[2]),r(t(e(a[1],s[0]),e(-s[1],a[0])),l[2]))),i[3]),r(t(r(t(e(s[1],l[0]),e(-l[1],s[0])),i[2]),t(r(t(e(i[1],l[0]),e(-l[1],i[0])),-s[2]),r(t(e(i[1],s[0]),e(-s[1],i[0])),l[2]))),-a[3])))),t(t(r(t(r(t(e(a[1],l[0]),e(-l[1],a[0])),i[2]),t(r(t(e(i[1],l[0]),e(-l[1],i[0])),-a[2]),r(t(e(i[1],a[0]),e(-a[1],i[0])),l[2]))),s[3]),t(r(t(r(t(e(a[1],s[0]),e(-s[1],a[0])),i[2]),t(r(t(e(i[1],s[0]),e(-s[1],i[0])),-a[2]),r(t(e(i[1],a[0]),e(-a[1],i[0])),s[2]))),-l[3]),r(t(r(t(e(o[1],s[0]),e(-s[1],o[0])),a[2]),t(r(t(e(a[1],s[0]),e(-s[1],a[0])),-o[2]),r(t(e(a[1],o[0]),e(-o[1],a[0])),s[2]))),i[3]))),t(r(t(r(t(e(o[1],s[0]),e(-s[1],o[0])),i[2]),t(r(t(e(i[1],s[0]),e(-s[1],i[0])),-o[2]),r(t(e(i[1],o[0]),e(-o[1],i[0])),s[2]))),-a[3]),t(r(t(r(t(e(a[1],s[0]),e(-s[1],a[0])),i[2]),t(r(t(e(i[1],s[0]),e(-s[1],i[0])),-a[2]),r(t(e(i[1],a[0]),e(-a[1],i[0])),s[2]))),o[3]),r(t(r(t(e(a[1],o[0]),e(-o[1],a[0])),i[2]),t(r(t(e(i[1],o[0]),e(-o[1],i[0])),-a[2]),r(t(e(i[1],a[0]),e(-a[1],i[0])),o[2]))),-s[3]))))),c=t(t(t(r(t(r(t(e(s[1],l[0]),e(-l[1],s[0])),o[2]),t(r(t(e(o[1],l[0]),e(-l[1],o[0])),-s[2]),r(t(e(o[1],s[0]),e(-s[1],o[0])),l[2]))),i[3]),r(t(r(t(e(s[1],l[0]),e(-l[1],s[0])),i[2]),t(r(t(e(i[1],l[0]),e(-l[1],i[0])),-s[2]),r(t(e(i[1],s[0]),e(-s[1],i[0])),l[2]))),-o[3])),t(r(t(r(t(e(o[1],l[0]),e(-l[1],o[0])),i[2]),t(r(t(e(i[1],l[0]),e(-l[1],i[0])),-o[2]),r(t(e(i[1],o[0]),e(-o[1],i[0])),l[2]))),s[3]),r(t(r(t(e(o[1],s[0]),e(-s[1],o[0])),i[2]),t(r(t(e(i[1],s[0]),e(-s[1],i[0])),-o[2]),r(t(e(i[1],o[0]),e(-o[1],i[0])),s[2]))),-l[3]))),t(t(r(t(r(t(e(o[1],l[0]),e(-l[1],o[0])),a[2]),t(r(t(e(a[1],l[0]),e(-l[1],a[0])),-o[2]),r(t(e(a[1],o[0]),e(-o[1],a[0])),l[2]))),i[3]),r(t(r(t(e(o[1],l[0]),e(-l[1],o[0])),i[2]),t(r(t(e(i[1],l[0]),e(-l[1],i[0])),-o[2]),r(t(e(i[1],o[0]),e(-o[1],i[0])),l[2]))),-a[3])),t(r(t(r(t(e(a[1],l[0]),e(-l[1],a[0])),i[2]),t(r(t(e(i[1],l[0]),e(-l[1],i[0])),-a[2]),r(t(e(i[1],a[0]),e(-a[1],i[0])),l[2]))),o[3]),r(t(r(t(e(a[1],o[0]),e(-o[1],a[0])),i[2]),t(r(t(e(i[1],o[0]),e(-o[1],i[0])),-a[2]),r(t(e(i[1],a[0]),e(-a[1],i[0])),o[2]))),-l[3])))),f=n(u,c);return f[f.length-1]}}function c(t){return(3===t?s:4===t?l:u)(i,n,a,o)}var f=c(3),h=c(4),p=[function(){return 0},function(){return 0},function(t,e){return e[0]-t[0]},function(t,e,r){var n,i=(t[1]-r[1])*(e[0]-r[0]),a=(t[0]-r[0])*(e[1]-r[1]),o=i-a;if(i>0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=33306690738754716e-32*n;return o>=s||o<=-s?o:f(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],u=r[1]-n[1],c=t[2]-n[2],f=e[2]-n[2],p=r[2]-n[2],d=a*u,v=o*l,g=o*s,y=i*u,m=i*l,x=a*s,b=c*(d-v)+f*(g-y)+p*(m-x),_=7771561172376103e-31*((Math.abs(d)+Math.abs(v))*Math.abs(c)+(Math.abs(g)+Math.abs(y))*Math.abs(f)+(Math.abs(m)+Math.abs(x))*Math.abs(p));return b>_||-b>_?b:h(t,e,r,n)}];function d(t){var e=p[t.length];return e||(e=p[t.length]=c(t.length)),e.apply(void 0,t)}function v(t,e,r,n,i,a,o){return function(e,r,s,l,u){switch(arguments.length){case 0:case 1:return 0;case 2:return n(e,r);case 3:return i(e,r,s);case 4:return a(e,r,s,l);case 5:return o(e,r,s,l,u)}for(var c=new Array(arguments.length),f=0;f<arguments.length;++f)c[f]=arguments[f];return t(c)}}!function(){for(;p.length<=5;)p.push(c(p.length));t.exports=v.apply(void 0,[d].concat(p));for(var e=0;e<=5;++e)t.exports[e]=p[e]}()},2019:function(t,e,r){"use strict";var n=r(9662),i=r(8289);t.exports=function(t,e){if(1===t.length)return i(e,t[0]);if(1===e.length)return i(t,e[0]);if(0===t.length||0===e.length)return[0];var r=[0];if(t.length<e.length)for(var a=0;a<t.length;++a)r=n(r,i(e,t[a]));else for(a=0;a<e.length;++a)r=n(r,i(t,e[a]));return r}},8289:function(t,e,r){"use strict";var n=r(9660),i=r(87);t.exports=function(t,e){var r=t.length;if(1===r){var a=n(t[0],e);return a[0]?a:[a[1]]}var o=new Array(2*r),s=[.1,.1],l=[.1,.1],u=0;n(t[0],e,s),s[0]&&(o[u++]=s[0]);for(var c=1;c<r;++c){n(t[c],e,l);var f=s[1];i(f,l[0],s),s[0]&&(o[u++]=s[0]);var h=l[1],p=s[1],d=h+p,v=p-(d-h);s[1]=d,v&&(o[u++]=v)}return s[1]&&(o[u++]=s[1]),0===u&&(o[u++]=0),o.length=u,o}},4434:function(t,e,r){"use strict";t.exports=function(t,e,r,i){var a=n(t,r,i),o=n(e,r,i);if(a>0&&o>0||a<0&&o<0)return!1;var s=n(r,t,e),l=n(i,t,e);return!(s>0&&l>0||s<0&&l<0)&&(0!==a||0!==o||0!==s||0!==l||function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),u=r[i],c=n[i],f=Math.min(u,c);if(Math.max(u,c)<s||l<f)return!1}return!0}(t,e,r,i))};var n=r(417)[3]},4078:function(t){"use strict";t.exports=function(t,e){var r=0|t.length,n=0|e.length;if(1===r&&1===n)return function(t,e){var r=t+e,n=r-t,i=t-(r-n)+(e-n);return i?[i,r]:[r]}(t[0],-e[0]);var i,a,o=new Array(r+n),s=0,l=0,u=0,c=Math.abs,f=t[l],h=c(f),p=-e[u],d=c(p);h<d?(a=f,(l+=1)<r&&(h=c(f=t[l]))):(a=p,(u+=1)<n&&(d=c(p=-e[u]))),l<r&&h<d||u>=n?(i=f,(l+=1)<r&&(h=c(f=t[l]))):(i=p,(u+=1)<n&&(d=c(p=-e[u])));for(var v,g,y=i+a,m=y-i,x=a-m,b=x,_=y;l<r&&u<n;)h<d?(i=f,(l+=1)<r&&(h=c(f=t[l]))):(i=p,(u+=1)<n&&(d=c(p=-e[u]))),(x=(a=b)-(m=(y=i+a)-i))&&(o[s++]=x),b=_-((v=_+y)-(g=v-_))+(y-g),_=v;for(;l<r;)(x=(a=b)-(m=(y=(i=f)+a)-i))&&(o[s++]=x),b=_-((v=_+y)-(g=v-_))+(y-g),_=v,(l+=1)<r&&(f=t[l]);for(;u<n;)(x=(a=b)-(m=(y=(i=p)+a)-i))&&(o[s++]=x),b=_-((v=_+y)-(g=v-_))+(y-g),_=v,(u+=1)<n&&(p=-e[u]);return b&&(o[s++]=b),_&&(o[s++]=_),s||(o[s++]=0),o.length=s,o}},9662:function(t){"use strict";t.exports=function(t,e){var r=0|t.length,n=0|e.length;if(1===r&&1===n)return function(t,e){var r=t+e,n=r-t,i=t-(r-n)+(e-n);return i?[i,r]:[r]}(t[0],e[0]);var i,a,o=new Array(r+n),s=0,l=0,u=0,c=Math.abs,f=t[l],h=c(f),p=e[u],d=c(p);h<d?(a=f,(l+=1)<r&&(h=c(f=t[l]))):(a=p,(u+=1)<n&&(d=c(p=e[u]))),l<r&&h<d||u>=n?(i=f,(l+=1)<r&&(h=c(f=t[l]))):(i=p,(u+=1)<n&&(d=c(p=e[u])));for(var v,g,y=i+a,m=y-i,x=a-m,b=x,_=y;l<r&&u<n;)h<d?(i=f,(l+=1)<r&&(h=c(f=t[l]))):(i=p,(u+=1)<n&&(d=c(p=e[u]))),(x=(a=b)-(m=(y=i+a)-i))&&(o[s++]=x),b=_-((v=_+y)-(g=v-_))+(y-g),_=v;for(;l<r;)(x=(a=b)-(m=(y=(i=f)+a)-i))&&(o[s++]=x),b=_-((v=_+y)-(g=v-_))+(y-g),_=v,(l+=1)<r&&(f=t[l]);for(;u<n;)(x=(a=b)-(m=(y=(i=p)+a)-i))&&(o[s++]=x),b=_-((v=_+y)-(g=v-_))+(y-g),_=v,(u+=1)<n&&(p=e[u]);return b&&(o[s++]=b),_&&(o[s++]=_),s||(o[s++]=0),o.length=s,o}},8691:function(t,e,r){"use strict";t.exports=function(t){return i(n(t))};var n=r(2692),i=r(7037)},7212:function(t,e,r){"use strict";t.exports=function(t,e,r,s){if(r=r||0,void 0===s&&(s=function(t){for(var e=t.length,r=0,n=0;n<e;++n)r=0|Math.max(r,t[n].length);return r-1}(t)),0===t.length||s<1)return{cells:[],vertexIds:[],vertexWeights:[]};var l=function(t,e){for(var r=t.length,n=i.mallocUint8(r),a=0;a<r;++a)n[a]=t[a]<e|0;return n}(e,+r),u=function(t,e){for(var r=t.length,o=e*(e+1)/2*r|0,s=i.mallocUint32(2*o),l=0,u=0;u<r;++u)for(var c=t[u],f=(e=c.length,0);f<e;++f)for(var h=0;h<f;++h){var p=c[h],d=c[f];s[l++]=0|Math.min(p,d),s[l++]=0|Math.max(p,d)}a(n(s,[l/2|0,2]));var v=2;for(u=2;u<l;u+=2)s[u-2]===s[u]&&s[u-1]===s[u+1]||(s[v++]=s[u],s[v++]=s[u+1]);return n(s,[v/2|0,2])}(t,s),c=function(t,e,r,a){for(var o=t.data,s=t.shape[0],l=i.mallocDouble(s),u=0,c=0;c<s;++c){var f=o[2*c],h=o[2*c+1];if(r[f]!==r[h]){var p=e[f],d=e[h];o[2*u]=f,o[2*u+1]=h,l[u++]=(d-a)/(d-p)}}return t.shape[0]=u,n(l,[u])}(u,e,l,+r),f=function(t,e){var r=i.mallocInt32(2*e),n=t.shape[0],a=t.data;r[0]=0;for(var o=0,s=0;s<n;++s){var l=a[2*s];if(l!==o){for(r[2*o+1]=s;++o<l;)r[2*o]=s,r[2*o+1]=s;r[2*o]=s}}for(r[2*o+1]=n;++o<e;)r[2*o]=r[2*o+1]=n;return r}(u,0|e.length),h=o(s)(t,u.data,f,l),p=function(t){for(var e=0|t.shape[0],r=t.data,n=new Array(e),i=0;i<e;++i)n[i]=[r[2*i],r[2*i+1]];return n}(u),d=[].slice.call(c.data,0,c.shape[0]);return i.free(l),i.free(u.data),i.free(c.data),i.free(f),{cells:h,vertexIds:p,vertexWeights:d}};var n=r(5050),i=r(5306),a=r(8729),o=r(1168)},1168:function(t){"use strict";t.exports=function(t){return e[t]()};var e=[function(){return function(t,e,r,n){for(var i=t.length,a=0;a<i;++a)t[a].length;return[]}},function(){function t(t,e,r,n){for(var i=0|Math.min(r,n),a=0|Math.max(r,n),o=t[2*i],s=t[2*i+1];o<s;){var l=o+s>>1,u=e[2*l+1];if(u===a)return l;a<u?s=l:o=l+1}return o}return function(e,r,n,i){for(var a=e.length,o=[],s=0;s<a;++s){var l=e[s];if(2===l.length){var u=(i[l[0]]<<0)+(i[l[1]]<<1);if(0===u||3===u)continue;switch(u){case 0:case 3:break;case 1:o.push([t(n,r,l[0],l[1])]);break;case 2:o.push([t(n,r,l[1],l[0])])}}}return o}},function(){function t(t,e,r,n){for(var i=0|Math.min(r,n),a=0|Math.max(r,n),o=t[2*i],s=t[2*i+1];o<s;){var l=o+s>>1,u=e[2*l+1];if(u===a)return l;a<u?s=l:o=l+1}return o}return function(e,r,n,i){for(var a=e.length,o=[],s=0;s<a;++s){var l=e[s],u=l.length;if(3===u){if(0==(c=(i[l[0]]<<0)+(i[l[1]]<<1)+(i[l[2]]<<2))||7===c)continue;switch(c){case 0:case 7:break;case 1:o.push([t(n,r,l[0],l[2]),t(n,r,l[0],l[1])]);break;case 2:o.push([t(n,r,l[1],l[0]),t(n,r,l[1],l[2])]);break;case 3:o.push([t(n,r,l[0],l[2]),t(n,r,l[1],l[2])]);break;case 4:o.push([t(n,r,l[2],l[1]),t(n,r,l[2],l[0])]);break;case 5:o.push([t(n,r,l[2],l[1]),t(n,r,l[0],l[1])]);break;case 6:o.push([t(n,r,l[1],l[0]),t(n,r,l[2],l[0])])}}else if(2===u){var c;if(0==(c=(i[l[0]]<<0)+(i[l[1]]<<1))||3===c)continue;switch(c){case 0:case 3:break;case 1:o.push([t(n,r,l[0],l[1])]);break;case 2:o.push([t(n,r,l[1],l[0])])}}}return o}},function(){function t(t,e,r,n){for(var i=0|Math.min(r,n),a=0|Math.max(r,n),o=t[2*i],s=t[2*i+1];o<s;){var l=o+s>>1,u=e[2*l+1];if(u===a)return l;a<u?s=l:o=l+1}return o}return function(e,r,n,i){for(var a=e.length,o=[],s=0;s<a;++s){var l=e[s],u=l.length;if(4===u){if(0==(c=(i[l[0]]<<0)+(i[l[1]]<<1)+(i[l[2]]<<2)+(i[l[3]]<<3))||15===c)continue;switch(c){case 0:case 15:break;case 1:o.push([t(n,r,l[0],l[1]),t(n,r,l[0],l[2]),t(n,r,l[0],l[3])]);break;case 2:o.push([t(n,r,l[1],l[2]),t(n,r,l[1],l[0]),t(n,r,l[1],l[3])]);break;case 3:o.push([t(n,r,l[1],l[2]),t(n,r,l[0],l[2]),t(n,r,l[0],l[3])],[t(n,r,l[1],l[3]),t(n,r,l[1],l[2]),t(n,r,l[0],l[3])]);break;case 4:o.push([t(n,r,l[2],l[0]),t(n,r,l[2],l[1]),t(n,r,l[2],l[3])]);break;case 5:o.push([t(n,r,l[0],l[1]),t(n,r,l[2],l[1]),t(n,r,l[0],l[3])],[t(n,r,l[2],l[1]),t(n,r,l[2],l[3]),t(n,r,l[0],l[3])]);break;case 6:o.push([t(n,r,l[2],l[0]),t(n,r,l[1],l[0]),t(n,r,l[1],l[3])],[t(n,r,l[2],l[3]),t(n,r,l[2],l[0]),t(n,r,l[1],l[3])]);break;case 7:o.push([t(n,r,l[0],l[3]),t(n,r,l[1],l[3]),t(n,r,l[2],l[3])]);break;case 8:o.push([t(n,r,l[3],l[1]),t(n,r,l[3],l[0]),t(n,r,l[3],l[2])]);break;case 9:o.push([t(n,r,l[3],l[1]),t(n,r,l[0],l[1]),t(n,r,l[0],l[2])],[t(n,r,l[3],l[2]),t(n,r,l[3],l[1]),t(n,r,l[0],l[2])]);break;case 10:o.push([t(n,r,l[1],l[0]),t(n,r,l[3],l[0]),t(n,r,l[1],l[2])],[t(n,r,l[3],l[0]),t(n,r,l[3],l[2]),t(n,r,l[1],l[2])]);break;case 11:o.push([t(n,r,l[1],l[2]),t(n,r,l[0],l[2]),t(n,r,l[3],l[2])]);break;case 12:o.push([t(n,r,l[3],l[0]),t(n,r,l[2],l[0]),t(n,r,l[2],l[1])],[t(n,r,l[3],l[1]),t(n,r,l[3],l[0]),t(n,r,l[2],l[1])]);break;case 13:o.push([t(n,r,l[0],l[1]),t(n,r,l[2],l[1]),t(n,r,l[3],l[1])]);break;case 14:o.push([t(n,r,l[2],l[0]),t(n,r,l[1],l[0]),t(n,r,l[3],l[0])])}}else if(3===u){if(0==(c=(i[l[0]]<<0)+(i[l[1]]<<1)+(i[l[2]]<<2))||7===c)continue;switch(c){case 0:case 7:break;case 1:o.push([t(n,r,l[0],l[2]),t(n,r,l[0],l[1])]);break;case 2:o.push([t(n,r,l[1],l[0]),t(n,r,l[1],l[2])]);break;case 3:o.push([t(n,r,l[0],l[2]),t(n,r,l[1],l[2])]);break;case 4:o.push([t(n,r,l[2],l[1]),t(n,r,l[2],l[0])]);break;case 5:o.push([t(n,r,l[2],l[1]),t(n,r,l[0],l[1])]);break;case 6:o.push([t(n,r,l[1],l[0]),t(n,r,l[2],l[0])])}}else if(2===u){var c;if(0==(c=(i[l[0]]<<0)+(i[l[1]]<<1))||3===c)continue;switch(c){case 0:case 3:break;case 1:o.push([t(n,r,l[0],l[1])]);break;case 2:o.push([t(n,r,l[1],l[0])])}}}return o}}]},8211:function(t,e,r){"use strict";r(2288),r(1731),e.H=function(t,e){var r=t.length,n=t.length-e.length,i=Math.min;if(n)return n;switch(r){case 0:return 0;case 1:return t[0]-e[0];case 2:return(s=t[0]+t[1]-e[0]-e[1])||i(t[0],t[1])-i(e[0],e[1]);case 3:var a=t[0]+t[1],o=e[0]+e[1];if(s=a+t[2]-(o+e[2]))return s;var s,l=i(t[0],t[1]),u=i(e[0],e[1]);return(s=i(l,t[2])-i(u,e[2]))||i(l+t[2],a)-i(u+e[2],o);default:var c=t.slice(0);c.sort();var f=e.slice(0);f.sort();for(var h=0;h<r;++h)if(n=c[h]-f[h])return n;return 0}}},9392:function(t,e){"use strict";function r(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}e.INT_BITS=32,e.INT_MAX=2147483647,e.INT_MIN=-1<<31,e.sign=function(t){return(t>0)-(t<0)},e.abs=function(t){var e=t>>31;return(t^e)-e},e.min=function(t,e){return e^(t^e)&-(t<e)},e.max=function(t,e){return t^(t^e)&-(t<e)},e.isPow2=function(t){return!(t&t-1||!t)},e.log2=function(t){var e,r;return e=(t>65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},e.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},e.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},e.countTrailingZeros=r,e.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,1+((t|=t>>>8)|t>>>16)},e.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},e.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var n=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<<i&255}}(n),e.reverse=function(t){return n[255&t]<<24|n[t>>>8&255]<<16|n[t>>>16&255]<<8|n[t>>>24&255]},e.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},e.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},e.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},e.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},e.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>r(t)+1}},6656:function(t,e,r){"use strict";var n=r(9392),i=r(9521);function a(t,e){var r=t.length,n=t.length-e.length,i=Math.min;if(n)return n;switch(r){case 0:return 0;case 1:return t[0]-e[0];case 2:return(s=t[0]+t[1]-e[0]-e[1])||i(t[0],t[1])-i(e[0],e[1]);case 3:var a=t[0]+t[1],o=e[0]+e[1];if(s=a+t[2]-(o+e[2]))return s;var s,l=i(t[0],t[1]),u=i(e[0],e[1]);return(s=i(l,t[2])-i(u,e[2]))||i(l+t[2],a)-i(u+e[2],o);default:var c=t.slice(0);c.sort();var f=e.slice(0);f.sort();for(var h=0;h<r;++h)if(n=c[h]-f[h])return n;return 0}}function o(t,e){return a(t[0],e[0])}function s(t,e){if(e){for(var r=t.length,n=new Array(r),i=0;i<r;++i)n[i]=[t[i],e[i]];for(n.sort(o),i=0;i<r;++i)t[i]=n[i][0],e[i]=n[i][1];return t}return t.sort(a),t}function l(t){if(0===t.length)return[];for(var e=1,r=t.length,n=1;n<r;++n){var i=t[n];if(a(i,t[n-1])){if(n===e){e++;continue}t[e++]=i}}return t.length=e,t}function u(t,e){for(var r=0,n=t.length-1,i=-1;r<=n;){var o=r+n>>1,s=a(t[o],e);s<=0?(0===s&&(i=o),r=o+1):s>0&&(n=o-1)}return i}function c(t,e){for(var r=new Array(t.length),i=0,o=r.length;i<o;++i)r[i]=[];for(var s=[],l=(i=0,e.length);i<l;++i)for(var c=e[i],f=c.length,h=1,p=1<<f;h<p;++h){s.length=n.popCount(h);for(var d=0,v=0;v<f;++v)h&1<<v&&(s[d++]=c[v]);var g=u(t,s);if(!(g<0))for(;r[g++].push(i),!(g>=t.length||0!==a(t[g],s)););}return r}function f(t,e){if(e<0)return[];for(var r=[],i=(1<<e+1)-1,a=0;a<t.length;++a)for(var o=t[a],l=i;l<1<<o.length;l=n.nextCombination(l)){for(var u=new Array(e+1),c=0,f=0;f<o.length;++f)l&1<<f&&(u[c++]=o[f]);r.push(u)}return s(r)}e.dimension=function(t){for(var e=0,r=Math.max,n=0,i=t.length;n<i;++n)e=r(e,t[n].length);return e-1},e.countVertices=function(t){for(var e=-1,r=Math.max,n=0,i=t.length;n<i;++n)for(var a=t[n],o=0,s=a.length;o<s;++o)e=r(e,a[o]);return e+1},e.cloneCells=function(t){for(var e=new Array(t.length),r=0,n=t.length;r<n;++r)e[r]=t[r].slice(0);return e},e.compareCells=a,e.normalize=s,e.unique=l,e.findCell=u,e.incidence=c,e.dual=function(t,e){if(!e)return c(l(f(t,0)),t);for(var r=new Array(e),n=0;n<e;++n)r[n]=[];n=0;for(var i=t.length;n<i;++n)for(var a=t[n],o=0,s=a.length;o<s;++o)r[a[o]].push(n);return r},e.explode=function(t){for(var e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0|i.length,o=1,l=1<<a;o<l;++o){for(var u=[],c=0;c<a;++c)o>>>c&1&&u.push(i[c]);e.push(u)}return s(e)},e.skeleton=f,e.boundary=function(t){for(var e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0,o=i.length;a<o;++a){for(var l=new Array(i.length-1),u=0,c=0;u<o;++u)u!==a&&(l[c++]=i[u]);e.push(l)}return s(e)},e.connectedComponents=function(t,e){return e?function(t,e){for(var r=new i(e),n=0;n<t.length;++n)for(var a=t[n],o=0;o<a.length;++o)for(var s=o+1;s<a.length;++s)r.link(a[o],a[s]);var l=[],u=r.ranks;for(n=0;n<u.length;++n)u[n]=-1;for(n=0;n<t.length;++n){var c=r.find(t[n][0]);u[c]<0?(u[c]=l.length,l.push([t[n].slice(0)])):l[u[c]].push(t[n].slice(0))}return l}(t,e):function(t){for(var e=l(s(f(t,0))),r=new i(e.length),n=0;n<t.length;++n)for(var a=t[n],o=0;o<a.length;++o)for(var c=u(e,[a[o]]),h=o+1;h<a.length;++h)r.link(c,u(e,[a[h]]));var p=[],d=r.ranks;for(n=0;n<d.length;++n)d[n]=-1;for(n=0;n<t.length;++n){var v=r.find(u(e,[t[n][0]]));d[v]<0?(d[v]=p.length,p.push([t[n].slice(0)])):p[d[v]].push(t[n].slice(0))}return p}(t)}},9521:function(t){"use strict";function e(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e<t;++e)this.roots[e]=e,this.ranks[e]=0}t.exports=e,e.prototype.length=function(){return this.roots.length},e.prototype.makeSet=function(){var t=this.roots.length;return this.roots.push(t),this.ranks.push(0),t},e.prototype.find=function(t){for(var e=this.roots;e[t]!==t;){var r=e[t];e[t]=e[r],t=r}return t},e.prototype.link=function(t,e){var r=this.find(t),n=this.find(e);if(r!==n){var i=this.ranks,a=this.roots,o=i[r],s=i[n];o<s?a[r]=n:s<o?a[n]=r:(a[n]=r,++i[r])}}},8243:function(t,e,r){"use strict";t.exports=function(t,e,r){for(var a=e.length,o=t.length,s=new Array(a),l=new Array(a),u=new Array(a),c=new Array(a),f=0;f<a;++f)s[f]=l[f]=-1,u[f]=1/0,c[f]=!1;for(f=0;f<o;++f){var h=t[f];if(2!==h.length)throw new Error("Input must be a graph");var p=h[1],d=h[0];-1!==l[d]?l[d]=-2:l[d]=p,-1!==s[p]?s[p]=-2:s[p]=d}function v(t){if(c[t])return 1/0;var r,i,a,o=s[t],u=l[t];return o<0||u<0?1/0:(r=e[t],i=e[o],a=e[u],Math.abs(n(r,i,a))/Math.sqrt(Math.pow(i[0]-a[0],2)+Math.pow(i[1]-a[1],2)))}function g(t,e){var r=k[t],n=k[e];k[t]=n,k[e]=r,A[r]=e,A[n]=t}function y(t){return u[k[t]]}function m(t){return 1&t?t-1>>1:(t>>1)-1}function x(t){for(var e=y(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n<M){var o=y(n);o<r&&(a=n,r=o)}if(i<M&&y(i)<r&&(a=i),a===t)return t;g(t,a),t=a}}function b(t){for(var e=y(t);t>0;){var r=m(t);if(!(r>=0&&e<y(r)))return t;g(t,r),t=r}}function _(){if(M>0){var t=k[0];return g(0,M-1),M-=1,x(0),t}return-1}function w(t,e){var r=k[t];return u[r]===e?t:(u[r]=-1/0,b(t),_(),u[r]=e,b((M+=1)-1))}function T(t){if(!c[t]){c[t]=!0;var e=s[t],r=l[t];s[r]>=0&&(s[r]=e),l[e]>=0&&(l[e]=r),A[e]>=0&&w(A[e],v(e)),A[r]>=0&&w(A[r],v(r))}}var k=[],A=new Array(a);for(f=0;f<a;++f)(u[f]=v(f))<1/0?(A[f]=k.length,k.push(f)):A[f]=-1;var M=k.length;for(f=M>>1;f>=0;--f)x(f);for(;;){var S=_();if(S<0||u[S]>r)break;T(S)}var E=[];for(f=0;f<a;++f)c[f]||(A[f]=E.length,E.push(e[f].slice()));function L(t,e){if(t[e]<0)return e;var r=e,n=e;do{var i=t[n];if(!c[n]||i<0||i===n)break;if(i=t[n=i],!c[n]||i<0||i===n)break;n=i,r=t[r]}while(r!==n);for(var a=e;a!==n;a=t[a])t[a]=n;return n}E.length;var C=[];return t.forEach((function(t){var e=L(s,t[0]),r=L(l,t[1]);if(e>=0&&r>=0&&e!==r){var n=A[e],i=A[r];n!==i&&C.push([n,i])}})),i.unique(i.normalize(C)),{positions:E,edges:C}};var n=r(417),i=r(6656)},6638:function(t,e,r){"use strict";t.exports=function(t,e){var r,a,o,s;if(e[0][0]<e[1][0])r=e[0],a=e[1];else{if(!(e[0][0]>e[1][0]))return i(e,t);r=e[1],a=e[0]}if(t[0][0]<t[1][0])o=t[0],s=t[1];else{if(!(t[0][0]>t[1][0]))return-i(t,e);o=t[1],s=t[0]}var l=n(r,a,s),u=n(r,a,o);if(l<0){if(u<=0)return l}else if(l>0){if(u>=0)return l}else if(u)return u;if(l=n(s,o,a),u=n(s,o,r),l<0){if(u<=0)return l}else if(l>0){if(u>=0)return l}else if(u)return u;return a[0]-s[0]};var n=r(417);function i(t,e){var r,i,a,o;if(e[0][0]<e[1][0])r=e[0],i=e[1];else{if(!(e[0][0]>e[1][0])){var s=Math.min(t[0][1],t[1][1]),l=Math.max(t[0][1],t[1][1]),u=Math.min(e[0][1],e[1][1]),c=Math.max(e[0][1],e[1][1]);return l<u?l-u:s>c?s-c:l-c}r=e[1],i=e[0]}t[0][1]<t[1][1]?(a=t[0],o=t[1]):(a=t[1],o=t[0]);var f=n(i,r,a);return f||(f=n(i,r,o))||o-i}},4385:function(t,e,r){"use strict";t.exports=function(t){for(var e=t.length,r=2*e,n=new Array(r),a=0;a<e;++a){var l=t[a],u=l[0][0]<l[1][0];n[2*a]=new f(l[0][0],l,u,a),n[2*a+1]=new f(l[1][0],l,!u,a)}n.sort((function(t,e){var r=t.x-e.x;return r||(r=t.create-e.create)||Math.min(t.segment[0][1],t.segment[1][1])-Math.min(e.segment[0][1],e.segment[1][1])}));var h=i(o),p=[],d=[],v=[];for(a=0;a<r;){for(var g=n[a].x,y=[];a<r;){var m=n[a];if(m.x!==g)break;a+=1,m.segment[0][0]===m.x&&m.segment[1][0]===m.x?m.create&&(m.segment[0][1]<m.segment[1][1]?(y.push(new c(m.segment[0][1],m.index,!0,!0)),y.push(new c(m.segment[1][1],m.index,!1,!1))):(y.push(new c(m.segment[1][1],m.index,!0,!1)),y.push(new c(m.segment[0][1],m.index,!1,!0)))):h=m.create?h.insert(m.segment,m.index):h.remove(m.segment)}p.push(h.root),d.push(g),v.push(y)}return new s(p,d,v)};var n=r(5070),i=r(7080),a=r(417),o=r(6638);function s(t,e,r){this.slabs=t,this.coordinates=e,this.horizontal=r}function l(t,e){return t.y-e}function u(t,e){for(var r=null;t;){var n,i,o=t.key;o[0][0]<o[1][0]?(n=o[0],i=o[1]):(n=o[1],i=o[0]);var s=a(n,i,e);if(s<0)t=t.left;else if(s>0)if(e[0]!==o[1][0])r=t,t=t.right;else{if(l=u(t.right,e))return l;t=t.left}else{if(e[0]!==o[1][0])return t;var l;if(l=u(t.right,e))return l;t=t.left}}return r}function c(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function f(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}s.prototype.castUp=function(t){var e=n.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=u(this.slabs[e],t),i=-1;if(r&&(i=r.value),this.coordinates[e]===t[0]){var s=null;if(r&&(s=r.key),e>0){var c=u(this.slabs[e-1],t);c&&(s?o(c.key,s)>0&&(s=c.key,i=c.value):(i=c.value,s=c.key))}var f=this.horizontal[e];if(f.length>0){var h=n.ge(f,t[1],l);if(h<f.length){var p=f[h];if(t[1]===p.y){if(p.closed)return p.index;for(;h<f.length-1&&f[h+1].y===t[1];)if((p=f[h+=1]).closed)return p.index;if(p.y===t[1]&&!p.start){if((h+=1)>=f.length)return i;p=f[h]}}if(p.start)if(s){var d=a(s[0],s[1],[t[0],p.y]);s[0][0]>s[1][0]&&(d=-d),d>0&&(i=p.index)}else i=p.index;else p.y!==t[1]&&(i=p.index)}}}return i}},4670:function(t,e,r){"use strict";var n=r(9130),i=r(9662);function a(t,e){var r=i(n(t,e),[e[e.length-1]]);return r[r.length-1]}function o(t,e,r,n){var i=-e/(n-e);i<0?i=0:i>1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l<o;++l)s[l]=i*t[l]+a*r[l];return s}t.exports=function(t,e){for(var r=[],n=[],i=a(t[t.length-1],e),s=t[t.length-1],l=t[0],u=0;u<t.length;++u,s=l){var c=a(l=t[u],e);if(i<0&&c>0||i>0&&c<0){var f=o(s,c,l,i);r.push(f),n.push(f.slice())}c<0?n.push(l.slice()):c>0?r.push(l.slice()):(r.push(l.slice()),n.push(l.slice())),i=c}return{positive:r,negative:n}},t.exports.positive=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l<t.length;++l,i=s){var u=a(s=t[l],e);(n<0&&u>0||n>0&&u<0)&&r.push(o(i,u,s,n)),u>=0&&r.push(s.slice()),n=u}return r},t.exports.negative=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l<t.length;++l,i=s){var u=a(s=t[l],e);(n<0&&u>0||n>0&&u<0)&&r.push(o(i,u,s,n)),u<=0&&r.push(s.slice()),n=u}return r}},8974:function(t,e,r){var n;!function(){"use strict";var i={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function a(t){return s(u(t),arguments)}function o(t,e){return a.apply(null,[t].concat(e||[]))}function s(t,e){var r,n,o,s,l,u,c,f,h,p=1,d=t.length,v="";for(n=0;n<d;n++)if("string"==typeof t[n])v+=t[n];else if("object"==typeof t[n]){if((s=t[n]).keys)for(r=e[p],o=0;o<s.keys.length;o++){if(null==r)throw new Error(a('[sprintf] Cannot access property "%s" of undefined value "%s"',s.keys[o],s.keys[o-1]));r=r[s.keys[o]]}else r=s.param_no?e[s.param_no]:e[p++];if(i.not_type.test(s.type)&&i.not_primitive.test(s.type)&&r instanceof Function&&(r=r()),i.numeric_arg.test(s.type)&&"number"!=typeof r&&isNaN(r))throw new TypeError(a("[sprintf] expecting number but found %T",r));switch(i.number.test(s.type)&&(f=r>=0),s.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,s.width?parseInt(s.width):0);break;case"e":r=s.precision?parseFloat(r).toExponential(s.precision):parseFloat(r).toExponential();break;case"f":r=s.precision?parseFloat(r).toFixed(s.precision):parseFloat(r);break;case"g":r=s.precision?String(Number(r.toPrecision(s.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=s.precision?r.substring(0,s.precision):r;break;case"t":r=String(!!r),r=s.precision?r.substring(0,s.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=s.precision?r.substring(0,s.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=s.precision?r.substring(0,s.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}i.json.test(s.type)?v+=r:(!i.number.test(s.type)||f&&!s.sign?h="":(h=f?"+":"-",r=r.toString().replace(i.sign,"")),u=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",c=s.width-(h+r).length,l=s.width&&c>0?u.repeat(c):"",v+=s.align?h+r+l:"0"===u?h+l+r:l+h+r)}return v}var l=Object.create(null);function u(t){if(l[t])return l[t];for(var e,r=t,n=[],a=0;r;){if(null!==(e=i.text.exec(r)))n.push(e[0]);else if(null!==(e=i.modulo.exec(r)))n.push("%");else{if(null===(e=i.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){a|=1;var o=[],s=e[2],u=[];if(null===(u=i.key.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(o.push(u[1]);""!==(s=s.substring(u[0].length));)if(null!==(u=i.key_access.exec(s)))o.push(u[1]);else{if(null===(u=i.index_access.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");o.push(u[1])}e[2]=o}else a|=2;if(3===a)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}r=r.substring(e[0].length)}return l[t]=n}e.sprintf=a,e.vsprintf=o,"undefined"!=typeof window&&(window.sprintf=a,window.vsprintf=o,void 0===(n=function(){return{sprintf:a,vsprintf:o}}.call(e,r,e,t))||(t.exports=n))}()},4162:function(t,e,r){"use strict";t.exports=function(t,e){if(t.dimension<=0)return{positions:[],cells:[]};if(1===t.dimension)return function(t,e){for(var r=i(t,e),n=r.length,a=new Array(n),o=new Array(n),s=0;s<n;++s)a[s]=[r[s]],o[s]=[s];return{positions:a,cells:o}}(t,e);var r=t.order.join()+"-"+t.dtype,s=o[r];return e=+e||0,s||(s=o[r]=function(t,e){var r=t.length+"d",i=a[r];if(i)return i(n,t,e)}(t.order,t.dtype)),s(t,e)};var n=r(9284),i=r(9584),a={"2d":function(t,e,r){var n=t({order:e,scalarArguments:3,getters:"generic"===r?[0]:void 0,phase:function(t,e,r,n){return t>n|0},vertex:function(t,e,r,n,i,a,o,s,l,u,c,f,h){var p=(o<<0)+(s<<1)+(l<<2)+(u<<3)|0;if(0!==p&&15!==p)switch(p){case 0:case 15:c.push([t-.5,e-.5]);break;case 1:c.push([t-.25-.25*(n+r-2*h)/(r-n),e-.25-.25*(i+r-2*h)/(r-i)]);break;case 2:c.push([t-.75-.25*(-n-r+2*h)/(n-r),e-.25-.25*(a+n-2*h)/(n-a)]);break;case 3:c.push([t-.5,e-.5-.5*(i+r+a+n-4*h)/(r-i+n-a)]);break;case 4:c.push([t-.25-.25*(a+i-2*h)/(i-a),e-.75-.25*(-i-r+2*h)/(i-r)]);break;case 5:c.push([t-.5-.5*(n+r+a+i-4*h)/(r-n+i-a),e-.5]);break;case 6:c.push([t-.5-.25*(-n-r+a+i)/(n-r+i-a),e-.5-.25*(-i-r+a+n)/(i-r+n-a)]);break;case 7:c.push([t-.75-.25*(a+i-2*h)/(i-a),e-.75-.25*(a+n-2*h)/(n-a)]);break;case 8:c.push([t-.75-.25*(-a-i+2*h)/(a-i),e-.75-.25*(-a-n+2*h)/(a-n)]);break;case 9:c.push([t-.5-.25*(n+r+-a-i)/(r-n+a-i),e-.5-.25*(i+r+-a-n)/(r-i+a-n)]);break;case 10:c.push([t-.5-.5*(-n-r-a-i+4*h)/(n-r+a-i),e-.5]);break;case 11:c.push([t-.25-.25*(-a-i+2*h)/(a-i),e-.75-.25*(i+r-2*h)/(r-i)]);break;case 12:c.push([t-.5,e-.5-.5*(-i-r-a-n+4*h)/(i-r+a-n)]);break;case 13:c.push([t-.75-.25*(n+r-2*h)/(r-n),e-.25-.25*(-a-n+2*h)/(a-n)]);break;case 14:c.push([t-.25-.25*(-n-r+2*h)/(n-r),e-.25-.25*(-i-r+2*h)/(i-r)])}},cell:function(t,e,r,n,i,a,o,s,l){i?s.push([t,e]):s.push([e,t])}});return function(t,e){var r=[],i=[];return n(t,r,i,e),{positions:r,cells:i}}}},o={}},6946:function(t,e,r){"use strict";t.exports=function t(e,r,i){i=i||{};var a=o[e];a||(a=o[e]={" ":{data:new Float32Array(0),shape:.2}});var s=a[r];if(!s)if(r.length<=1||!/\d/.test(r))s=a[r]=function(t){for(var e=t.cells,r=t.positions,n=new Float32Array(6*e.length),i=0,a=0,o=0;o<e.length;++o)for(var s=e[o],l=0;l<3;++l){var u=r[s[l]];n[i++]=u[0],n[i++]=u[1]+1.4,a=Math.max(u[0],a)}return{data:n,shape:a}}(n(r,{triangles:!0,font:e,textAlign:i.textAlign||"left",textBaseline:"alphabetic",styletags:{breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0}}));else{for(var l=r.split(/(\d|\s)/),u=new Array(l.length),c=0,f=0,h=0;h<l.length;++h)u[h]=t(e,l[h]),c+=u[h].data.length,f+=u[h].shape,h>0&&(f+=.02);var p=new Float32Array(c),d=0,v=-.5*f;for(h=0;h<u.length;++h){for(var g=u[h].data,y=0;y<g.length;y+=2)p[d++]=g[y]+v,p[d++]=g[y+1];v+=u[h].shape+.02}s=a[r]={data:p,shape:f}}return s};var n=r(875),a=window||i.global||{},o=a.__TEXT_CACHE||{};a.__TEXT_CACHE={}},14:function(t,e,r){"use strict";var n=r(4405);function i(t,e){var r=n(getComputedStyle(t).getPropertyValue(e));return r[0]*a(r[1],t)}function a(t,e){switch(e=e||document.body,t=(t||"px").trim().toLowerCase(),e!==window&&e!==document||(e=document.body),t){case"%":return e.clientHeight/100;case"ch":case"ex":return function(t,e){var r=document.createElement("div");r.style["font-size"]="128"+t,e.appendChild(r);var n=i(r,"font-size")/128;return e.removeChild(r),n}(t,e);case"em":return i(e,"font-size");case"rem":return i(document.body,"font-size");case"vw":return window.innerWidth/100;case"vh":return window.innerHeight/100;case"vmin":return Math.min(window.innerWidth,window.innerHeight)/100;case"vmax":return Math.max(window.innerWidth,window.innerHeight)/100;case"in":return 96;case"cm":return 96/2.54;case"mm":return 96/25.4;case"pt":return 96/72;case"pc":return 16}return 1}t.exports=a},3440:function(t,e,r){"use strict";t.exports=function(t){var e=(t=t||{}).center||[0,0,0],r=t.up||[0,1,0],n=t.right||f(r),i=t.radius||1,a=t.theta||0,c=t.phi||0;if(e=[].slice.call(e,0,3),r=[].slice.call(r,0,3),s(r,r),n=[].slice.call(n,0,3),s(n,n),"eye"in t){var p=t.eye,d=[p[0]-e[0],p[1]-e[1],p[2]-e[2]];o(n,d,r),u(n[0],n[1],n[2])<1e-6?n=f(r):s(n,n),i=u(d[0],d[1],d[2]);var v=l(r,d)/i,g=l(n,d)/i;c=Math.acos(v),a=Math.acos(g)}return i=Math.log(i),new h(t.zoomMin,t.zoomMax,e,r,n,i,a,c)};var n=r(8444),i=r(7437),a=r(4422),o=r(903),s=r(899),l=r(9305);function u(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function c(t){return Math.min(1,Math.max(-1,t))}function f(t){var e=Math.abs(t[0]),r=Math.abs(t[1]),n=Math.abs(t[2]),i=[0,0,0];e>Math.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,l=0;l<3;++l)a+=t[l]*t[l],o+=i[l]*t[l];for(l=0;l<3;++l)i[l]-=o/a*t[l];return s(i,i),i}function h(t,e,r,i,a,o,s,l){this.center=n(r),this.up=n(i),this.right=n(a),this.radius=n([o]),this.angle=n([s,l]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var u=0;u<16;++u)this.computedMatrix[u]=.5;this.recalcMatrix(0)}var p=h.prototype;p.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},p.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},p.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var l=Math.sqrt(n),c=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,c+=r[a]*r[a],e[a]/=l;var f=Math.sqrt(c);for(a=0;a<3;++a)r[a]/=f;var h=this.computedToward;o(h,e,r),s(h,h);var p=Math.exp(this.computedRadius[0]),d=this.computedAngle[0],v=this.computedAngle[1],g=Math.cos(d),y=Math.sin(d),m=Math.cos(v),x=Math.sin(v),b=this.computedCenter,_=g*m,w=y*m,T=x,k=-g*x,A=-y*x,M=m,S=this.computedEye,E=this.computedMatrix;for(a=0;a<3;++a){var L=_*r[a]+w*h[a]+T*e[a];E[4*a+1]=k*r[a]+A*h[a]+M*e[a],E[4*a+2]=L,E[4*a+3]=0}var C=E[1],P=E[5],O=E[9],I=E[2],D=E[6],z=E[10],R=P*z-O*D,F=O*I-C*z,B=C*D-P*I,N=u(R,F,B);for(R/=N,F/=N,B/=N,E[0]=R,E[4]=F,E[8]=B,a=0;a<3;++a)S[a]=b[a]+E[2+4*a]*p;for(a=0;a<3;++a){c=0;for(var j=0;j<3;++j)c+=E[a+4*j]*S[j];E[12+a]=-c}E[15]=1},p.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var d=[0,0,0];p.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;d[0]=i[2],d[1]=i[6],d[2]=i[10];for(var o=this.computedUp,s=this.computedRight,l=this.computedToward,u=0;u<3;++u)i[4*u]=o[u],i[4*u+1]=s[u],i[4*u+2]=l[u];for(a(i,i,n,d),u=0;u<3;++u)o[u]=i[4*u],s[u]=i[4*u+1];this.up.set(t,o[0],o[1],o[2]),this.right.set(t,s[0],s[1],s[2])}},p.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=u(a,o,s);a/=l,o/=l,s/=l;var c=i[0],f=i[4],h=i[8],p=c*a+f*o+h*s,d=u(c-=a*p,f-=o*p,h-=s*p),v=(c/=d)*e+a*r,g=(f/=d)*e+o*r,y=(h/=d)*e+s*r;this.center.move(t,v,g,y);var m=Math.exp(this.computedRadius[0]);m=Math.max(1e-4,m+n),this.radius.set(t,Math.log(m))},p.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},p.setMatrix=function(t,e,r,n){var a=1;"number"==typeof r&&(a=0|r),(a<0||a>3)&&(a=1);var o=(a+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var s=e[a],l=e[a+4],f=e[a+8];if(n){var h=Math.abs(s),p=Math.abs(l),d=Math.abs(f),v=Math.max(h,p,d);h===v?(s=s<0?-1:1,l=f=0):d===v?(f=f<0?-1:1,s=l=0):(l=l<0?-1:1,s=f=0)}else{var g=u(s,l,f);s/=g,l/=g,f/=g}var y,m,x=e[o],b=e[o+4],_=e[o+8],w=x*s+b*l+_*f,T=u(x-=s*w,b-=l*w,_-=f*w),k=l*(_/=T)-f*(b/=T),A=f*(x/=T)-s*_,M=s*b-l*x,S=u(k,A,M);if(k/=S,A/=S,M/=S,this.center.jump(t,q,G,Z),this.radius.idle(t),this.up.jump(t,s,l,f),this.right.jump(t,x,b,_),2===a){var E=e[1],L=e[5],C=e[9],P=E*x+L*b+C*_,O=E*k+L*A+C*M;y=R<0?-Math.PI/2:Math.PI/2,m=Math.atan2(O,P)}else{var I=e[2],D=e[6],z=e[10],R=I*s+D*l+z*f,F=I*x+D*b+z*_,B=I*k+D*A+z*M;y=Math.asin(c(R)),m=Math.atan2(B,F)}this.angle.jump(t,m,y),this.recalcMatrix(t);var N=e[2],j=e[6],U=e[10],V=this.computedMatrix;i(V,e);var H=V[15],q=V[12]/H,G=V[13]/H,Z=V[14]/H,Y=Math.exp(this.computedRadius[0]);this.center.jump(t,q-N*Y,G-j*Y,Z-U*Y)},p.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},p.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},p.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},p.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},p.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=u(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],f=e[1]-r[1],h=e[2]-r[2],p=u(l,f,h);if(!(p<1e-6)){l/=p,f/=p,h/=p;var d=this.computedRight,v=d[0],g=d[1],y=d[2],m=i*v+a*g+o*y,x=u(v-=m*i,g-=m*a,y-=m*o);if(!(x<.01&&(x=u(v=a*h-o*f,g=o*l-i*h,y=i*f-a*l))<1e-6)){v/=x,g/=x,y/=x,this.up.set(t,i,a,o),this.right.set(t,v,g,y),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(p));var b=a*y-o*g,_=o*v-i*y,w=i*g-a*v,T=u(b,_,w),k=i*l+a*f+o*h,A=v*l+g*f+y*h,M=(b/=T)*l+(_/=T)*f+(w/=T)*h,S=Math.asin(c(k)),E=Math.atan2(M,A),L=this.angle._state,C=L[L.length-1],P=L[L.length-2];C%=2*Math.PI;var O=Math.abs(C+2*Math.PI-E),I=Math.abs(C-E),D=Math.abs(C-2*Math.PI-E);O<I&&(C+=2*Math.PI),D<I&&(C-=2*Math.PI),this.angle.jump(this.angle.lastT(),C,P),this.angle.set(t,E,S)}}}}},9660:function(t){"use strict";t.exports=function(t,r,n){var i=t*r,a=e*t,o=a-(a-t),s=t-o,l=e*r,u=l-(l-r),c=r-u,f=s*c-(i-o*u-s*u-o*c);return n?(n[0]=f,n[1]=i,n):[f,i]};var e=+(Math.pow(2,27)+1)},87:function(t){"use strict";t.exports=function(t,e,r){var n=t+e,i=n-t,a=e-i,o=t-(n-i);return r?(r[0]=o+a,r[1]=n,r):[o+a,n]}},5306:function(t,e,r){"use strict";var n=r(2288),i=r(3094),a=r(2146).lW;r.g.__TYPEDARRAY_POOL||(r.g.__TYPEDARRAY_POOL={UINT8:i([32,0]),UINT16:i([32,0]),UINT32:i([32,0]),BIGUINT64:i([32,0]),INT8:i([32,0]),INT16:i([32,0]),INT32:i([32,0]),BIGINT64:i([32,0]),FLOAT:i([32,0]),DOUBLE:i([32,0]),DATA:i([32,0]),UINT8C:i([32,0]),BUFFER:i([32,0])});var o="undefined"!=typeof Uint8ClampedArray,s="undefined"!=typeof BigUint64Array,l="undefined"!=typeof BigInt64Array,u=r.g.__TYPEDARRAY_POOL;u.UINT8C||(u.UINT8C=i([32,0])),u.BIGUINT64||(u.BIGUINT64=i([32,0])),u.BIGINT64||(u.BIGINT64=i([32,0])),u.BUFFER||(u.BUFFER=i([32,0]));var c=u.DATA,f=u.BUFFER;function h(t){if(t){var e=t.length||t.byteLength,r=n.log2(e);c[r].push(t)}}function p(t){t=n.nextPow2(t);var e=n.log2(t),r=c[e];return r.length>0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function v(t){return new Uint16Array(p(2*t),0,t)}function g(t){return new Uint32Array(p(4*t),0,t)}function y(t){return new Int8Array(p(t),0,t)}function m(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function A(t){return new DataView(p(t),0,t)}function M(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}e.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);c[r].push(t)}},e.freeUint8=e.freeUint16=e.freeUint32=e.freeBigUint64=e.freeInt8=e.freeInt16=e.freeInt32=e.freeBigInt64=e.freeFloat32=e.freeFloat=e.freeFloat64=e.freeDouble=e.freeUint8Clamped=e.freeDataView=function(t){h(t.buffer)},e.freeArrayBuffer=h,e.freeBuffer=function(t){f[n.log2(t.length)].push(t)},e.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return v(t);case"uint32":return g(t);case"int8":return y(t);case"int16":return m(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return M(t);case"data":case"dataview":return A(t);default:return null}return null},e.mallocArrayBuffer=p,e.mallocUint8=d,e.mallocUint16=v,e.mallocUint32=g,e.mallocInt8=y,e.mallocInt16=m,e.mallocInt32=x,e.mallocFloat32=e.mallocFloat=b,e.mallocFloat64=e.mallocDouble=_,e.mallocUint8Clamped=w,e.mallocBigUint64=T,e.mallocBigInt64=k,e.mallocDataView=A,e.mallocBuffer=M,e.clearCache=function(){for(var t=0;t<32;++t)u.UINT8[t].length=0,u.UINT16[t].length=0,u.UINT32[t].length=0,u.INT8[t].length=0,u.INT16[t].length=0,u.INT32[t].length=0,u.FLOAT[t].length=0,u.DOUBLE[t].length=0,u.BIGUINT64[t].length=0,u.BIGINT64[t].length=0,u.UINT8C[t].length=0,c[t].length=0,f[t].length=0}},1731:function(t){"use strict";function e(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e<t;++e)this.roots[e]=e,this.ranks[e]=0}t.exports=e;var r=e.prototype;Object.defineProperty(r,"length",{get:function(){return this.roots.length}}),r.makeSet=function(){var t=this.roots.length;return this.roots.push(t),this.ranks.push(0),t},r.find=function(t){for(var e=t,r=this.roots;r[t]!==t;)t=r[t];for(;r[e]!==t;){var n=r[e];r[e]=t,e=n}return t},r.link=function(t,e){var r=this.find(t),n=this.find(e);if(r!==n){var i=this.ranks,a=this.roots,o=i[r],s=i[n];o<s?a[r]=n:s<o?a[n]=r:(a[n]=r,++i[r])}}},1215:function(t){"use strict";t.exports=function(t,e,r){return 0===t.length?t:e?(r||t.sort(e),function(t,e){for(var r=1,n=t.length,i=t[0],a=t[0],o=1;o<n;++o)if(a=i,e(i=t[o],a)){if(o===r){r++;continue}t[r++]=i}return t.length=r,t}(t,e)):(r||t.sort(),function(t){for(var e=1,r=t.length,n=t[0],i=t[0],a=1;a<r;++a,i=n)if(i=n,(n=t[a])!==i){if(a===e){e++;continue}t[e++]=n}return t.length=e,t}(t))}},875:function(t,e,r){"use strict";t.exports=function(t,e){return"object"==typeof e&&null!==e||(e={}),n(t,e.canvas||i,e.context||a,e)};var n=r(712),i=null,a=null;"undefined"!=typeof document&&((i=document.createElement("canvas")).width=8192,i.height=1024,a=i.getContext("2d"))},712:function(t,e,r){t.exports=function(t,e,r,n){var a=64,o=1.25,s={breaklines:!1,bolds:!1,italics:!1,subscripts:!1,superscripts:!1};return n&&(n.size&&n.size>0&&(a=n.size),n.lineSpacing&&n.lineSpacing>0&&(o=n.lineSpacing),n.styletags&&n.styletags.breaklines&&(s.breaklines=!!n.styletags.breaklines),n.styletags&&n.styletags.bolds&&(s.bolds=!!n.styletags.bolds),n.styletags&&n.styletags.italics&&(s.italics=!!n.styletags.italics),n.styletags&&n.styletags.subscripts&&(s.subscripts=!!n.styletags.subscripts),n.styletags&&n.styletags.superscripts&&(s.superscripts=!!n.styletags.superscripts)),r.font=[n.fontStyle,n.fontVariant,n.fontWeight,a+"px",n.font].filter((function(t){return t})).join(" "),r.textAlign="start",r.textBaseline="alphabetic",r.direction="ltr",d(function(t,e,r,n,a,o){r=r.replace(/\n/g,""),r=!0===o.breaklines?r.replace(/\<br\>/g,"\n"):r.replace(/\<br\>/g," ");var s="",l=[];for(v=0;v<r.length;++v)l[v]=s;!0===o.bolds&&(l=f("b",u,r,l)),!0===o.italics&&(l=f("i",c,r,l)),!0===o.superscripts&&(l=f("sup","+1",r,l)),!0===o.subscripts&&(l=f("sub","-1",r,l));var h=[],p="";for(v=0;v<r.length;++v)null!==l[v]&&(p+=r[v],h.push(l[v]));var d,v,g,y,m,x=p.split("\n"),b=x.length,_=Math.round(a*n),w=n,T=2*n,k=0,A=b*_+T;t.height<A&&(t.height=A),e.fillStyle="#000",e.fillRect(0,0,t.width,t.height),e.fillStyle="#fff";var M=0,S="";function E(){if(""!==S){var t=e.measureText(S).width;e.fillText(S,w+g,T+y),g+=t}}function L(){return Math.round(m)+"px "}function C(t,r){var n=""+e.font;if(!0===o.subscripts){var i=t.indexOf("-"),a=r.indexOf("-"),s=i>-1?parseInt(t[1+i]):0,l=a>-1?parseInt(r[1+a]):0;s!==l&&(n=n.replace(L(),"?px "),m*=Math.pow(.75,l-s),n=n.replace("?px ",L())),y+=.25*_*(l-s)}if(!0===o.superscripts){var f=t.indexOf("+"),h=r.indexOf("+"),p=f>-1?parseInt(t[1+f]):0,d=h>-1?parseInt(r[1+h]):0;p!==d&&(n=n.replace(L(),"?px "),m*=Math.pow(.75,d-p),n=n.replace("?px ",L())),y-=.25*_*(d-p)}if(!0===o.bolds){var v=t.indexOf(u)>-1,g=r.indexOf(u)>-1;!v&&g&&(n=x?n.replace("italic ","italic bold "):"bold "+n),v&&!g&&(n=n.replace("bold ",""))}if(!0===o.italics){var x=t.indexOf(c)>-1,b=r.indexOf(c)>-1;!x&&b&&(n="italic "+n),x&&!b&&(n=n.replace("italic ",""))}e.font=n}for(d=0;d<b;++d){var P=x[d]+"\n";for(g=0,y=d*_,m=n,S="",v=0;v<P.length;++v){var O=v+M<h.length?h[v+M]:h[h.length-1];s===O?S+=P[v]:(E(),S=P[v],void 0!==O&&(C(s,O),s=O))}E(),M+=P.length;var I=0|Math.round(g+2*w);k<I&&(k=I)}var D=k,z=T+_*b;return i(e.getImageData(0,0,D,z).data,[z,D,4]).pick(-1,-1,0).transpose(1,0)}(e,r,t,a,o,s),n,a)},t.exports.processPixels=d;var n=r(4162),i=r(5050),a=r(8243),o=r(197),s=r(7761),l=r(8040),u="b|",c="i|";function f(t,e,r,n){for(var i="<"+t+">",a="</"+t+">",o=i.length,s=a.length,l="+"===e[0]||"-"===e[0],u=0,c=-s;u>-1&&-1!==(u=r.indexOf(i,u))&&-1!==(c=r.indexOf(a,u+o))&&!(c<=u);){for(var f=u;f<c+s;++f)if(f<u+o||f>=c)n[f]=null,r=r.substr(0,f)+" "+r.substr(f+1);else if(null!==n[f]){var h=n[f].indexOf(e[0]);-1===h?n[f]+=e:l&&(n[f]=n[f].substr(0,h+1)+(1+parseInt(n[f][h+1]))+n[f].substr(h+2))}var p=u+o,d=r.substr(p,c-p).indexOf(i);u=-1!==d?d:c+s}return n}function h(t,e){var r=n(t,128);return e?a(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function p(t,e,r,n){var i=h(t,n),a=function(t,e,r){for(var n=e.textAlign||"start",i=e.textBaseline||"alphabetic",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l<s;++l)for(var u=t[l],c=0;c<2;++c)a[c]=0|Math.min(a[c],u[c]),o[c]=0|Math.max(o[c],u[c]);var f=0;switch(n){case"center":f=-.5*(a[0]+o[0]);break;case"right":case"end":f=-o[0];break;case"left":case"start":f=-a[0];break;default:throw new Error("vectorize-text: Unrecognized textAlign: '"+n+"'")}var h=0;switch(i){case"hanging":case"top":h=-a[1];break;case"middle":h=-.5*(a[1]+o[1]);break;case"alphabetic":case"ideographic":h=-3*r;break;case"bottom":h=-o[1];break;default:throw new Error("vectorize-text: Unrecoginized textBaseline: '"+i+"'")}var p=1/r;return"lineHeight"in e?p*=+e.lineHeight:"width"in e?p=e.width/(o[0]-a[0]):"height"in e&&(p=e.height/(o[1]-a[1])),t.map((function(t){return[p*(t[0]+f),p*(t[1]+h)]}))}(i.positions,e,r),u=i.edges,c="ccw"===e.orientation;if(o(a,u),e.polygons||e.polygon||e.polyline){for(var f=l(u,a),p=new Array(f.length),d=0;d<f.length;++d){for(var v=f[d],g=new Array(v.length),y=0;y<v.length;++y){for(var m=v[y],x=new Array(m.length),b=0;b<m.length;++b)x[b]=a[m[b]].slice();c&&x.reverse(),g[y]=x}p[d]=g}return p}return e.triangles||e.triangulate||e.triangle?{cells:s(a,u,{delaunay:!1,exterior:!1,interior:!0}),positions:a}:{edges:u,positions:a}}function d(t,e,r){try{return p(t,e,r,!0)}catch(t){}try{return p(t,e,r,!1)}catch(t){}return e.polygons||e.polyline||e.polygon?[]:e.triangles||e.triangulate||e.triangle?{cells:[],positions:[]}:{edges:[],positions:[]}}},5346:function(t){!function(){"use strict";if("undefined"==typeof ses||!ses.ok||ses.ok()){"undefined"!=typeof ses&&(ses.weakMapPermitHostObjects=g);var e=!1;if("function"==typeof WeakMap){var r=WeakMap;if("undefined"!=typeof navigator&&/Firefox/.test(navigator.userAgent));else{var n=new r,i=Object.freeze({});if(n.set(i,1),1===n.get(i))return void(t.exports=WeakMap);e=!0}}Object.prototype.hasOwnProperty;var a=Object.getOwnPropertyNames,o=Object.defineProperty,s=Object.isExtensible,l="weakmap:",u="weakmap:ident:"+Math.random()+"___";if("undefined"!=typeof crypto&&"function"==typeof crypto.getRandomValues&&"function"==typeof ArrayBuffer&&"function"==typeof Uint8Array){var c=new ArrayBuffer(25),f=new Uint8Array(c);crypto.getRandomValues(f),u="weakmap:rand:"+Array.prototype.map.call(f,(function(t){return(t%36).toString(36)})).join("")+"___"}if(o(Object,"getOwnPropertyNames",{value:function(t){return a(t).filter(y)}}),"getPropertyNames"in Object){var h=Object.getPropertyNames;o(Object,"getPropertyNames",{value:function(t){return h(t).filter(y)}})}!function(){var t=Object.freeze;o(Object,"freeze",{value:function(e){return m(e),t(e)}});var e=Object.seal;o(Object,"seal",{value:function(t){return m(t),e(t)}});var r=Object.preventExtensions;o(Object,"preventExtensions",{value:function(t){return m(t),r(t)}})}();var p=!1,d=0,v=function(){this instanceof v||b();var t=[],e=[],r=d++;return Object.create(v.prototype,{get___:{value:x((function(n,i){var a,o=m(n);return o?r in o?o[r]:i:(a=t.indexOf(n))>=0?e[a]:i}))},has___:{value:x((function(e){var n=m(e);return n?r in n:t.indexOf(e)>=0}))},set___:{value:x((function(n,i){var a,o=m(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this}))},delete___:{value:x((function(n){var i,a,o=m(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0||(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,0))}))}})};v.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),"function"==typeof r?function(){function n(){this instanceof v||b();var t,n=new r,i=void 0,a=!1;return t=e?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new v),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new v),i.set___(t,e)}else n.set(t,e);return this},Object.create(v.prototype,{get___:{value:x((function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)}))},has___:{value:x((function(t){return n.has(t)||!!i&&i.has___(t)}))},set___:{value:x(t)},delete___:{value:x((function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e}))},permitHostObjects___:{value:x((function(t){if(t!==g)throw new Error("bogus call to permitHostObjects___");a=!0}))}})}e&&"undefined"!=typeof Proxy&&(Proxy=void 0),n.prototype=v.prototype,t.exports=n,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():("undefined"!=typeof Proxy&&(Proxy=void 0),t.exports=v)}function g(t){t.permitHostObjects___&&t.permitHostObjects___(g)}function y(t){return!(t.substr(0,l.length)==l&&"___"===t.substr(t.length-3))}function m(t){if(t!==Object(t))throw new TypeError("Not an object: "+t);var e=t[u];if(e&&e.key===t)return e;if(s(t)){e={key:t};try{return o(t,u,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function x(t){return t.prototype=null,Object.freeze(t)}function b(){p||"undefined"==typeof console||(p=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}}()},9222:function(t,e,r){var n=r(7178);t.exports=function(){var t={};return function(e){if(("object"!=typeof e||null===e)&&"function"!=typeof e)throw new Error("Weakmap-shim: Key must be object");var r=e.valueOf(t);return r&&r.identity===t?r:n(e,t)}}},7178:function(t){t.exports=function(t,e){var r={identity:e},n=t.valueOf;return Object.defineProperty(t,"valueOf",{value:function(t){return t!==e?n.apply(this,arguments):r},writable:!0}),r}},4037:function(t,e,r){var n=r(9222);t.exports=function(){var t=n();return{get:function(e,r){var n=t(e);return n.hasOwnProperty("value")?n.value:r},set:function(e,r){return t(e).value=r,this},has:function(e){return"value"in t(e)},delete:function(e){return delete t(e).value}}}},6183:function(t){"use strict";t.exports=function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=[a,o.join()].join(),l=e[s];return l||(e[s]=l=t([a,o])),l(r.shape.slice(0),r.data,r.stride,0|r.offset,n,i)}}(function(){return function(t,e,r,n,i,a){var o=t[0],s=r[0],l=[0],u=s;n|=0;var c=0,f=s;for(c=0;c<o;++c){var h=e[n]-a,p=e[n+u]-a;h>=0!=p>=0&&i.push(l[0]+.5+.5*(h+p)/(h-p)),n+=f,++l[0]}}}.bind(void 0,{funcName:"zeroCrossings"}))},9584:function(t,e,r){"use strict";t.exports=function(t,e){var r=[];return e=+e||0,n(t.hi(t.shape[0]-1),r,e),r};var n=r(6183)},6601:function(){}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var a=e[n]={id:n,loaded:!1,exports:{}};return t[n].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}return r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t},r(7386)}()},t.exports=n()},12856:function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return a=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},a(t,e)}function o(t,e){if(e&&("object"===u(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return s(t)}function s(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function u(t){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u(t)}var c=r(95341),f=r(95280),h="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=v,e.SlowBuffer=function(t){return+t!=t&&(t=0),v.alloc(+t)},e.INSPECT_MAX_BYTES=50;var p=2147483647;function d(t){if(t>p)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,v.prototype),e}function v(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return m(t)}return g(t,e,r)}function g(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!v.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=0|w(t,e),n=d(r),i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(rt(t,Uint8Array)){var e=new Uint8Array(t);return b(e.buffer,e.byteOffset,e.byteLength)}return x(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+u(t));if(rt(t,ArrayBuffer)||t&&rt(t.buffer,ArrayBuffer))return b(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(rt(t,SharedArrayBuffer)||t&&rt(t.buffer,SharedArrayBuffer)))return b(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return v.from(n,e,r);var i=function(t){if(v.isBuffer(t)){var e=0|_(t.length),r=d(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||nt(t.length)?d(0):x(t):"Buffer"===t.type&&Array.isArray(t.data)?x(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return v.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+u(t))}function y(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function m(t){return y(t),d(t<0?0:0|_(t))}function x(t){for(var e=t.length<0?0:0|_(t.length),r=d(e),n=0;n<e;n+=1)r[n]=255&t[n];return r}function b(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('"length" is outside of buffer bounds');var n;return n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r),Object.setPrototypeOf(n,v.prototype),n}function _(t){if(t>=p)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+p.toString(16)+" bytes");return 0|t}function w(t,e){if(v.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||rt(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+u(t));var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Q(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return tt(t).length;default:if(i)return n?-1:Q(t).length;e=(""+e).toLowerCase(),i=!0}}function T(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return F(this,e,r);case"utf8":case"utf-8":return I(this,e,r);case"ascii":return z(this,e,r);case"latin1":case"binary":return R(this,e,r);case"base64":return O(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function k(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function A(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),nt(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=v.from(e,n)),v.isBuffer(e))return 0===e.length?-1:M(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):M(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function M(t,e,r,n,i){var a,o=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function u(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var c=-1;for(a=r;a<s;a++)if(u(t,a)===u(e,-1===c?0:a-c)){if(-1===c&&(c=a),a-c+1===l)return c*o}else-1!==c&&(a-=a-c),c=-1}else for(r+l>s&&(r=s-l),a=r;a>=0;a--){for(var f=!0,h=0;h<l;h++)if(u(t,a+h)!==u(e,h)){f=!1;break}if(f)return a}return-1}function S(t,e,r,n){r=Number(r)||0;var i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;var a,o=e.length;for(n>o/2&&(n=o/2),a=0;a<n;++a){var s=parseInt(e.substr(2*a,2),16);if(nt(s))return a;t[r+a]=s}return a}function E(t,e,r,n){return et(Q(e,t.length-r),t,r,n)}function L(t,e,r,n){return et(function(t){for(var e=[],r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function C(t,e,r,n){return et(tt(e),t,r,n)}function P(t,e,r,n){return et(function(t,e){for(var r,n,i,a=[],o=0;o<t.length&&!((e-=2)<0);++o)n=(r=t.charCodeAt(o))>>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function O(t,e,r){return 0===e&&r===t.length?c.fromByteArray(t):c.fromByteArray(t.slice(e,r))}function I(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i<r;){var a=t[i],o=null,s=a>239?4:a>223?3:a>191?2:1;if(i+s<=r){var l=void 0,u=void 0,c=void 0,f=void 0;switch(s){case 1:a<128&&(o=a);break;case 2:128==(192&(l=t[i+1]))&&(f=(31&a)<<6|63&l)>127&&(o=f);break;case 3:l=t[i+1],u=t[i+2],128==(192&l)&&128==(192&u)&&(f=(15&a)<<12|(63&l)<<6|63&u)>2047&&(f<55296||f>57343)&&(o=f);break;case 4:l=t[i+1],u=t[i+2],c=t[i+3],128==(192&l)&&128==(192&u)&&128==(192&c)&&(f=(15&a)<<18|(63&l)<<12|(63&u)<<6|63&c)>65535&&f<1114112&&(o=f)}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return function(t){var e=t.length;if(e<=D)return String.fromCharCode.apply(String,t);for(var r="",n=0;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=D));return r}(n)}e.kMaxLength=p,v.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),v.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(v.prototype,"parent",{enumerable:!0,get:function(){if(v.isBuffer(this))return this.buffer}}),Object.defineProperty(v.prototype,"offset",{enumerable:!0,get:function(){if(v.isBuffer(this))return this.byteOffset}}),v.poolSize=8192,v.from=function(t,e,r){return g(t,e,r)},Object.setPrototypeOf(v.prototype,Uint8Array.prototype),Object.setPrototypeOf(v,Uint8Array),v.alloc=function(t,e,r){return function(t,e,r){return y(t),t<=0?d(t):void 0!==e?"string"==typeof r?d(t).fill(e,r):d(t).fill(e):d(t)}(t,e,r)},v.allocUnsafe=function(t){return m(t)},v.allocUnsafeSlow=function(t){return m(t)},v.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==v.prototype},v.compare=function(t,e){if(rt(t,Uint8Array)&&(t=v.from(t,t.offset,t.byteLength)),rt(e,Uint8Array)&&(e=v.from(e,e.offset,e.byteLength)),!v.isBuffer(t)||!v.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i<a;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0},v.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},v.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return v.alloc(0);var r;if(void 0===e)for(e=0,r=0;r<t.length;++r)e+=t[r].length;var n=v.allocUnsafe(e),i=0;for(r=0;r<t.length;++r){var a=t[r];if(rt(a,Uint8Array))i+a.length>n.length?(v.isBuffer(a)||(a=v.from(a)),a.copy(n,i)):Uint8Array.prototype.set.call(n,a,i);else{if(!v.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,i)}i+=a.length}return n},v.byteLength=w,v.prototype._isBuffer=!0,v.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)k(this,e,e+1);return this},v.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)k(this,e,e+3),k(this,e+1,e+2);return this},v.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)k(this,e,e+7),k(this,e+1,e+6),k(this,e+2,e+5),k(this,e+3,e+4);return this},v.prototype.toString=function(){var t=this.length;return 0===t?"":0===arguments.length?I(this,0,t):T.apply(this,arguments)},v.prototype.toLocaleString=v.prototype.toString,v.prototype.equals=function(t){if(!v.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===v.compare(this,t)},v.prototype.inspect=function(){var t="",r=e.INSPECT_MAX_BYTES;return t=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(t+=" ... "),"<Buffer "+t+">"},h&&(v.prototype[h]=v.prototype.inspect),v.prototype.compare=function(t,e,r,n,i){if(rt(t,Uint8Array)&&(t=v.from(t,t.offset,t.byteLength)),!v.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+u(t));if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0),s=Math.min(a,o),l=this.slice(n,i),c=t.slice(e,r),f=0;f<s;++f)if(l[f]!==c[f]){a=l[f],o=c[f];break}return a<o?-1:o<a?1:0},v.prototype.includes=function(t,e,r){return-1!==this.indexOf(t,e,r)},v.prototype.indexOf=function(t,e,r){return A(this,t,e,r,!0)},v.prototype.lastIndexOf=function(t,e,r){return A(this,t,e,r,!1)},v.prototype.write=function(t,e,r,n){if(void 0===e)n="utf8",r=this.length,e=0;else if(void 0===r&&"string"==typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return S(this,t,e,r);case"utf8":case"utf-8":return E(this,t,e,r);case"ascii":case"latin1":case"binary":return L(this,t,e,r);case"base64":return C(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},v.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;function z(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function R(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function F(t,e,r){var n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);for(var i="",a=e;a<r;++a)i+=it[t[a]];return i}function B(t,e,r){for(var n=t.slice(e,r),i="",a=0;a<n.length-1;a+=2)i+=String.fromCharCode(n[a]+256*n[a+1]);return i}function N(t,e,r){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>r)throw new RangeError("Trying to access beyond buffer length")}function j(t,e,r,n,i,a){if(!v.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<a)throw new RangeError('"value" argument is out of bounds');if(r+n>t.length)throw new RangeError("Index out of range")}function U(t,e,r,n,i){X(e,n,i,t,r,7);var a=Number(e&BigInt(4294967295));t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a;var o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,r}function V(t,e,r,n,i){X(e,n,i,t,r,7);var a=Number(e&BigInt(4294967295));t[r+7]=a,a>>=8,t[r+6]=a,a>>=8,t[r+5]=a,a>>=8,t[r+4]=a;var o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=o,o>>=8,t[r+2]=o,o>>=8,t[r+1]=o,o>>=8,t[r]=o,r+8}function H(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function q(t,e,r,n,i){return e=+e,r>>>=0,i||H(t,0,r,4),f.write(t,e,r,n,23,4),r+4}function G(t,e,r,n,i){return e=+e,r>>>=0,i||H(t,0,r,8),f.write(t,e,r,n,52,8),r+8}v.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t);var n=this.subarray(t,e);return Object.setPrototypeOf(n,v.prototype),n},v.prototype.readUintLE=v.prototype.readUIntLE=function(t,e,r){t>>>=0,e>>>=0,r||N(t,e,this.length);for(var n=this[t],i=1,a=0;++a<e&&(i*=256);)n+=this[t+a]*i;return n},v.prototype.readUintBE=v.prototype.readUIntBE=function(t,e,r){t>>>=0,e>>>=0,r||N(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},v.prototype.readUint8=v.prototype.readUInt8=function(t,e){return t>>>=0,e||N(t,1,this.length),this[t]},v.prototype.readUint16LE=v.prototype.readUInt16LE=function(t,e){return t>>>=0,e||N(t,2,this.length),this[t]|this[t+1]<<8},v.prototype.readUint16BE=v.prototype.readUInt16BE=function(t,e){return t>>>=0,e||N(t,2,this.length),this[t]<<8|this[t+1]},v.prototype.readUint32LE=v.prototype.readUInt32LE=function(t,e){return t>>>=0,e||N(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},v.prototype.readUint32BE=v.prototype.readUInt32BE=function(t,e){return t>>>=0,e||N(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},v.prototype.readBigUInt64LE=at((function(t){J(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||K(t,this.length-8);var n=e+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,24),i=this[++t]+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+r*Math.pow(2,24);return BigInt(n)+(BigInt(i)<<BigInt(32))})),v.prototype.readBigUInt64BE=at((function(t){J(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||K(t,this.length-8);var n=e*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+this[++t],i=this[++t]*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+r;return(BigInt(n)<<BigInt(32))+BigInt(i)})),v.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||N(t,e,this.length);for(var n=this[t],i=1,a=0;++a<e&&(i*=256);)n+=this[t+a]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*e)),n},v.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||N(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},v.prototype.readInt8=function(t,e){return t>>>=0,e||N(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},v.prototype.readInt16LE=function(t,e){t>>>=0,e||N(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},v.prototype.readInt16BE=function(t,e){t>>>=0,e||N(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},v.prototype.readInt32LE=function(t,e){return t>>>=0,e||N(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},v.prototype.readInt32BE=function(t,e){return t>>>=0,e||N(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},v.prototype.readBigInt64LE=at((function(t){J(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||K(t,this.length-8);var n=this[t+4]+this[t+5]*Math.pow(2,8)+this[t+6]*Math.pow(2,16)+(r<<24);return(BigInt(n)<<BigInt(32))+BigInt(e+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,24))})),v.prototype.readBigInt64BE=at((function(t){J(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||K(t,this.length-8);var n=(e<<24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+this[++t];return(BigInt(n)<<BigInt(32))+BigInt(this[++t]*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+r)})),v.prototype.readFloatLE=function(t,e){return t>>>=0,e||N(t,4,this.length),f.read(this,t,!0,23,4)},v.prototype.readFloatBE=function(t,e){return t>>>=0,e||N(t,4,this.length),f.read(this,t,!1,23,4)},v.prototype.readDoubleLE=function(t,e){return t>>>=0,e||N(t,8,this.length),f.read(this,t,!0,52,8)},v.prototype.readDoubleBE=function(t,e){return t>>>=0,e||N(t,8,this.length),f.read(this,t,!1,52,8)},v.prototype.writeUintLE=v.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||j(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a<r&&(i*=256);)this[e+a]=t/i&255;return e+r},v.prototype.writeUintBE=v.prototype.writeUIntBE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||j(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+r},v.prototype.writeUint8=v.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,1,255,0),this[e]=255&t,e+1},v.prototype.writeUint16LE=v.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},v.prototype.writeUint16BE=v.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},v.prototype.writeUint32LE=v.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},v.prototype.writeUint32BE=v.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},v.prototype.writeBigUInt64LE=at((function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return U(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),v.prototype.writeBigUInt64BE=at((function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return V(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),v.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);j(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a<r&&(o*=256);)t<0&&0===s&&0!==this[e+a-1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},v.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);j(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},v.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},v.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},v.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},v.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},v.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||j(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},v.prototype.writeBigInt64LE=at((function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return U(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),v.prototype.writeBigInt64BE=at((function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return V(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),v.prototype.writeFloatLE=function(t,e,r){return q(this,t,e,!0,r)},v.prototype.writeFloatBE=function(t,e,r){return q(this,t,e,!1,r)},v.prototype.writeDoubleLE=function(t,e,r){return G(this,t,e,!0,r)},v.prototype.writeDoubleBE=function(t,e,r){return G(this,t,e,!1,r)},v.prototype.copy=function(t,e,r,n){if(!v.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-r&&(n=t.length-e+r);var i=n-r;return this===t&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,r,n):Uint8Array.prototype.set.call(t,this.subarray(r,n),e),i},v.prototype.fill=function(t,e,r,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!v.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){var i=t.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(t=i)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<r)throw new RangeError("Out of range index");if(r<=e)return this;var a;if(e>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(a=e;a<r;++a)this[a]=t;else{var o=v.isBuffer(t)?t:v.from(t,n),s=o.length;if(0===s)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(a=0;a<r-e;++a)this[a+e]=o[a%s]}return this};var Z={};function Y(t,e,r){Z[t]=function(r){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&a(t,e)}(d,r);var u,c,f,h,p=(f=d,h=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,e=l(f);if(h){var r=l(this).constructor;t=Reflect.construct(e,arguments,r)}else t=e.apply(this,arguments);return o(this,t)});function d(){var r;return n(this,d),r=p.call(this),Object.defineProperty(s(r),"message",{value:e.apply(s(r),arguments),writable:!0,configurable:!0}),r.name="".concat(r.name," [").concat(t,"]"),r.stack,delete r.name,r}return u=d,(c=[{key:"code",get:function(){return t},set:function(t){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:t,writable:!0})}},{key:"toString",value:function(){return"".concat(this.name," [").concat(t,"]: ").concat(this.message)}}])&&i(u.prototype,c),Object.defineProperty(u,"prototype",{writable:!1}),d}(r)}function W(t){for(var e="",r=t.length,n="-"===t[0]?1:0;r>=n+4;r-=3)e="_".concat(t.slice(r-3,r)).concat(e);return"".concat(t.slice(0,r)).concat(e)}function X(t,e,r,n,i,a){if(t>r||t<e){var o,s="bigint"==typeof e?"n":"";throw o=a>3?0===e||e===BigInt(0)?">= 0".concat(s," and < 2").concat(s," ** ").concat(8*(a+1)).concat(s):">= -(2".concat(s," ** ").concat(8*(a+1)-1).concat(s,") and < 2 ** ")+"".concat(8*(a+1)-1).concat(s):">= ".concat(e).concat(s," and <= ").concat(r).concat(s),new Z.ERR_OUT_OF_RANGE("value",o,t)}!function(t,e,r){J(e,"offset"),void 0!==t[e]&&void 0!==t[e+r]||K(e,t.length-(r+1))}(n,i,a)}function J(t,e){if("number"!=typeof t)throw new Z.ERR_INVALID_ARG_TYPE(e,"number",t)}function K(t,e,r){if(Math.floor(t)!==t)throw J(t,r),new Z.ERR_OUT_OF_RANGE(r||"offset","an integer",t);if(e<0)throw new Z.ERR_BUFFER_OUT_OF_BOUNDS;throw new Z.ERR_OUT_OF_RANGE(r||"offset",">= ".concat(r?1:0," and <= ").concat(e),t)}Y("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?"".concat(t," is outside of buffer bounds"):"Attempt to access memory outside buffer bounds"}),RangeError),Y("ERR_INVALID_ARG_TYPE",(function(t,e){return'The "'.concat(t,'" argument must be of type number. Received type ').concat(u(e))}),TypeError),Y("ERR_OUT_OF_RANGE",(function(t,e,r){var n='The value of "'.concat(t,'" is out of range.'),i=r;return Number.isInteger(r)&&Math.abs(r)>Math.pow(2,32)?i=W(String(r)):"bigint"==typeof r&&(i=String(r),(r>Math.pow(BigInt(2),BigInt(32))||r<-Math.pow(BigInt(2),BigInt(32)))&&(i=W(i)),i+="n"),n+" It must be ".concat(e,". Received ").concat(i)}),RangeError);var $=/[^+/0-9A-Za-z-_]/g;function Q(t,e){var r;e=e||1/0;for(var n=t.length,i=null,a=[],o=0;o<n;++o){if((r=t.charCodeAt(o))>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function tt(t){return c.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace($,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function et(t,e,r,n){var i;for(i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function rt(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function nt(t){return t!=t}var it=function(){for(var t="0123456789abcdef",e=new Array(256),r=0;r<16;++r)for(var n=16*r,i=0;i<16;++i)e[n+i]=t[r]+t[i];return e}();function at(t){return"undefined"==typeof BigInt?ot:t}function ot(){throw new Error("BigInt not supported")}},35791:function(t){"use strict";t.exports=i,t.exports.isMobile=i,t.exports.default=i;var e=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,r=/CrOS/,n=/android|ipad|playbook|silk/i;function i(t){t||(t={});var i=t.ua;if(i||"undefined"==typeof navigator||(i=navigator.userAgent),i&&i.headers&&"string"==typeof i.headers["user-agent"]&&(i=i.headers["user-agent"]),"string"!=typeof i)return!1;var a=e.test(i)&&!r.test(i)||!!t.tablet&&n.test(i);return!a&&t.tablet&&t.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==i.indexOf("Macintosh")&&-1!==i.indexOf("Safari")&&(a=!0),a}},86781:function(t,e,r){"use strict";r.r(e),r.d(e,{sankeyCenter:function(){return h},sankeyCircular:function(){return L},sankeyJustify:function(){return f},sankeyLeft:function(){return u},sankeyRight:function(){return c}});var n=r(33064),i=r(15140),a=r(45879),o=r(2502),s=r.n(o);function l(t){return t.target.depth}function u(t){return t.depth}function c(t,e){return e-1-t.height}function f(t,e){return t.sourceLinks.length?t.depth:e-1}function h(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?(0,n.VV)(t.sourceLinks,l)-1:0}function p(t){return function(){return t}}var d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function v(t,e){return y(t.source,e.source)||t.index-e.index}function g(t,e){return y(t.target,e.target)||t.index-e.index}function y(t,e){return t.partOfCycle===e.partOfCycle?t.y0-e.y0:"top"===t.circularLinkType||"bottom"===e.circularLinkType?-1:1}function m(t){return t.value}function x(t){return(t.y0+t.y1)/2}function b(t){return x(t.source)}function _(t){return x(t.target)}function w(t){return t.index}function T(t){return t.nodes}function k(t){return t.links}function A(t,e){var r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function M(t,e){return e(t)}var S=25,E=10;function L(){var t,e,r=0,a=0,o=1,s=1,l=24,u=w,c=f,h=T,M=k,L=32,O=2,D=null;function z(){var t={nodes:h.apply(null,arguments),links:M.apply(null,arguments)};F(t),C(t,0,D),B(t),N(t),P(t,u),j(t,L,u),U(t);for(var e=4,r=0;r<e;r++)W(t,s,u),X(t,0,u),Z(t,a,s,u),W(t,s,u),X(t,0,u);return Q(t,a,s),R(t,O,s,u),t}function F(t){t.nodes.forEach((function(t,e){t.index=e,t.sourceLinks=[],t.targetLinks=[]}));var e=(0,i.UI)(t.nodes,u);return t.links.forEach((function(t,r){t.index=r;var n=t.source,i=t.target;"object"!==(void 0===n?"undefined":d(n))&&(n=t.source=A(e,n)),"object"!==(void 0===i?"undefined":d(i))&&(i=t.target=A(e,i)),n.sourceLinks.push(t),i.targetLinks.push(t)})),t}function B(t){t.nodes.forEach((function(t){t.partOfCycle=!1,t.value=Math.max((0,n.Sm)(t.sourceLinks,m),(0,n.Sm)(t.targetLinks,m)),t.sourceLinks.forEach((function(e){e.circular&&(t.partOfCycle=!0,t.circularLinkType=e.circularLinkType)})),t.targetLinks.forEach((function(e){e.circular&&(t.partOfCycle=!0,t.circularLinkType=e.circularLinkType)}))}))}function N(t){var e,r,n;for(e=t.nodes,r=[],n=0;e.length;++n,e=r,r=[])e.forEach((function(t){t.depth=n,t.sourceLinks.forEach((function(t){r.indexOf(t.target)<0&&!t.circular&&r.push(t.target)}))}));for(e=t.nodes,r=[],n=0;e.length;++n,e=r,r=[])e.forEach((function(t){t.height=n,t.targetLinks.forEach((function(t){r.indexOf(t.source)<0&&!t.circular&&r.push(t.source)}))}));t.nodes.forEach((function(t){t.column=Math.floor(c.call(null,t,n))}))}function j(u,c,f){var h=(0,i.b1)().key((function(t){return t.column})).sortKeys(n.j2).entries(u.nodes).map((function(t){return t.values}));!function(i){if(e){var c=1/0;h.forEach((function(t){var r=s*e/(t.length+1);c=r<c?r:c})),t=c}var f=(0,n.VV)(h,(function(e){return(s-a-(e.length-1)*t)/(0,n.Sm)(e,m)}));f*=.3,u.links.forEach((function(t){t.width=t.value*f}));var p=function(t){var e=0,r=0,i=0,a=0,o=(0,n.Fp)(t.nodes,(function(t){return t.column}));return t.links.forEach((function(t){t.circular&&("top"==t.circularLinkType?e+=t.width:r+=t.width,0==t.target.column&&(a+=t.width),t.source.column==o&&(i+=t.width))})),{top:e=e>0?e+S+E:e,bottom:r=r>0?r+S+E:r,left:a=a>0?a+S+E:a,right:i=i>0?i+S+E:i}}(u),d=function(t,e){var i=(0,n.Fp)(t.nodes,(function(t){return t.column})),u=o-r,c=s-a,f=u/(u+e.right+e.left),h=c/(c+e.top+e.bottom);return r=r*f+e.left,o=0==e.right?o:o*f,a=a*h+e.top,s*=h,t.nodes.forEach((function(t){t.x0=r+t.column*((o-r-l)/i),t.x1=t.x0+l})),h}(u,p);f*=d,u.links.forEach((function(t){t.width=t.value*f})),h.forEach((function(t){var e=t.length;t.forEach((function(t,r){t.depth==h.length-1&&1==e||0==t.depth&&1==e?(t.y0=s/2-t.value*f,t.y1=t.y0+t.value*f):t.partOfCycle?0==I(t,i)?(t.y0=s/2+r,t.y1=t.y0+t.value*f):"top"==t.circularLinkType?(t.y0=a+r,t.y1=t.y0+t.value*f):(t.y0=s-t.value*f-r,t.y1=t.y0+t.value*f):0==p.top||0==p.bottom?(t.y0=(s-a)/e*r,t.y1=t.y0+t.value*f):(t.y0=(s-a)/2-e/2+r,t.y1=t.y0+t.value*f)}))}))}(f),g();for(var p=1,d=c;d>0;--d)v(p*=.99,f),g();function v(t,e){var r=h.length;h.forEach((function(i){var a=i.length,o=i[0].depth;i.forEach((function(i){var l;if(i.sourceLinks.length||i.targetLinks.length)if(i.partOfCycle&&I(i,e)>0);else if(0==o&&1==a)l=i.y1-i.y0,i.y0=s/2-l/2,i.y1=s/2+l/2;else if(o==r-1&&1==a)l=i.y1-i.y0,i.y0=s/2-l/2,i.y1=s/2+l/2;else{var u=(0,n.J6)(i.sourceLinks,_),c=(0,n.J6)(i.targetLinks,b),f=((u&&c?(u+c)/2:u||c)-x(i))*t;i.y0+=f,i.y1+=f}}))}))}function g(){h.forEach((function(e){var r,n,i,o=a,l=e.length;for(e.sort(y),i=0;i<l;++i)(n=o-(r=e[i]).y0)>0&&(r.y0+=n,r.y1+=n),o=r.y1+t;if((n=o-t-s)>0)for(o=r.y0-=n,r.y1-=n,i=l-2;i>=0;--i)(n=(r=e[i]).y1+t-o)>0&&(r.y0-=n,r.y1-=n),o=r.y0}))}}function U(t){t.nodes.forEach((function(t){t.sourceLinks.sort(g),t.targetLinks.sort(v)})),t.nodes.forEach((function(t){var e=t.y0,r=e,n=t.y1,i=n;t.sourceLinks.forEach((function(t){t.circular?(t.y0=n-t.width/2,n-=t.width):(t.y0=e+t.width/2,e+=t.width)})),t.targetLinks.forEach((function(t){t.circular?(t.y1=i-t.width/2,i-=t.width):(t.y1=r+t.width/2,r+=t.width)}))}))}return z.nodeId=function(t){return arguments.length?(u="function"==typeof t?t:p(t),z):u},z.nodeAlign=function(t){return arguments.length?(c="function"==typeof t?t:p(t),z):c},z.nodeWidth=function(t){return arguments.length?(l=+t,z):l},z.nodePadding=function(e){return arguments.length?(t=+e,z):t},z.nodes=function(t){return arguments.length?(h="function"==typeof t?t:p(t),z):h},z.links=function(t){return arguments.length?(M="function"==typeof t?t:p(t),z):M},z.size=function(t){return arguments.length?(r=a=0,o=+t[0],s=+t[1],z):[o-r,s-a]},z.extent=function(t){return arguments.length?(r=+t[0][0],o=+t[1][0],a=+t[0][1],s=+t[1][1],z):[[r,a],[o,s]]},z.iterations=function(t){return arguments.length?(L=+t,z):L},z.circularLinkGap=function(t){return arguments.length?(O=+t,z):O},z.nodePaddingRatio=function(t){return arguments.length?(e=+t,z):e},z.sortNodes=function(t){return arguments.length?(D=t,z):D},z.update=function(t){return P(t,u),U(t),t.links.forEach((function(t){t.circular&&(t.circularLinkType=t.y0+t.y1<s?"top":"bottom",t.source.circularLinkType=t.circularLinkType,t.target.circularLinkType=t.circularLinkType)})),W(t,s,u,!1),X(t,0,u),R(t,O,s,u),t},z}function C(t,e,r){var n=0;if(null===r){for(var i=[],a=0;a<t.links.length;a++){var o=t.links[a],l=o.source.index,u=o.target.index;i[l]||(i[l]=[]),i[u]||(i[u]=[]),-1===i[l].indexOf(u)&&i[l].push(u)}var c=s()(i);c.sort((function(t,e){return t.length-e.length}));var f={};for(a=0;a<c.length;a++){var h=c[a].slice(-2);f[h[0]]||(f[h[0]]={}),f[h[0]][h[1]]=!0}t.links.forEach((function(t){var e=t.target.index,r=t.source.index;e===r||f[r]&&f[r][e]?(t.circular=!0,t.circularLinkID=n,n+=1):t.circular=!1}))}else t.links.forEach((function(t){t.source[r]<t.target[r]?t.circular=!1:(t.circular=!0,t.circularLinkID=n,n+=1)}))}function P(t,e){var r=0,n=0;t.links.forEach((function(i){i.circular&&(i.source.circularLinkType||i.target.circularLinkType?i.circularLinkType=i.source.circularLinkType?i.source.circularLinkType:i.target.circularLinkType:i.circularLinkType=r<n?"top":"bottom","top"==i.circularLinkType?r+=1:n+=1,t.nodes.forEach((function(t){M(t,e)!=M(i.source,e)&&M(t,e)!=M(i.target,e)||(t.circularLinkType=i.circularLinkType)})))})),t.links.forEach((function(t){t.circular&&(t.source.circularLinkType==t.target.circularLinkType&&(t.circularLinkType=t.source.circularLinkType),$(t,e)&&(t.circularLinkType=t.source.circularLinkType))}))}function O(t){var e=Math.abs(t.y1-t.y0),r=Math.abs(t.target.x0-t.source.x1);return Math.atan(r/e)}function I(t,e){var r=0;t.sourceLinks.forEach((function(t){r=t.circular&&!$(t,e)?r+1:r}));var n=0;return t.targetLinks.forEach((function(t){n=t.circular&&!$(t,e)?n+1:n})),r+n}function D(t){var e=t.source.sourceLinks,r=0;e.forEach((function(t){r=t.circular?r+1:r}));var n=t.target.targetLinks,i=0;return n.forEach((function(t){i=t.circular?i+1:i})),!(r>1||i>1)}function z(t,e,r){return t.sort(F),t.forEach((function(n,i){var a,o,s=0;if($(n,r)&&D(n))n.circularPathData.verticalBuffer=s+n.width/2;else{for(var l=0;l<i;l++)if(a=t[i],o=t[l],!(a.source.column<o.target.column||a.target.column>o.source.column)){var u=t[l].circularPathData.verticalBuffer+t[l].width/2+e;s=u>s?u:s}n.circularPathData.verticalBuffer=s+n.width/2}})),t}function R(t,e,r,i){var o=(0,n.VV)(t.links,(function(t){return t.source.y0}));t.links.forEach((function(t){t.circular&&(t.circularPathData={})})),z(t.links.filter((function(t){return"top"==t.circularLinkType})),e,i),z(t.links.filter((function(t){return"bottom"==t.circularLinkType})),e,i),t.links.forEach((function(n){if(n.circular){if(n.circularPathData.arcRadius=n.width+E,n.circularPathData.leftNodeBuffer=5,n.circularPathData.rightNodeBuffer=5,n.circularPathData.sourceWidth=n.source.x1-n.source.x0,n.circularPathData.sourceX=n.source.x0+n.circularPathData.sourceWidth,n.circularPathData.targetX=n.target.x0,n.circularPathData.sourceY=n.y0,n.circularPathData.targetY=n.y1,$(n,i)&&D(n))n.circularPathData.leftSmallArcRadius=E+n.width/2,n.circularPathData.leftLargeArcRadius=E+n.width/2,n.circularPathData.rightSmallArcRadius=E+n.width/2,n.circularPathData.rightLargeArcRadius=E+n.width/2,"bottom"==n.circularLinkType?(n.circularPathData.verticalFullExtent=n.source.y1+S+n.circularPathData.verticalBuffer,n.circularPathData.verticalLeftInnerExtent=n.circularPathData.verticalFullExtent-n.circularPathData.leftLargeArcRadius,n.circularPathData.verticalRightInnerExtent=n.circularPathData.verticalFullExtent-n.circularPathData.rightLargeArcRadius):(n.circularPathData.verticalFullExtent=n.source.y0-S-n.circularPathData.verticalBuffer,n.circularPathData.verticalLeftInnerExtent=n.circularPathData.verticalFullExtent+n.circularPathData.leftLargeArcRadius,n.circularPathData.verticalRightInnerExtent=n.circularPathData.verticalFullExtent+n.circularPathData.rightLargeArcRadius);else{var s=n.source.column,l=n.circularLinkType,u=t.links.filter((function(t){return t.source.column==s&&t.circularLinkType==l}));"bottom"==n.circularLinkType?u.sort(N):u.sort(B);var c=0;u.forEach((function(t,r){t.circularLinkID==n.circularLinkID&&(n.circularPathData.leftSmallArcRadius=E+n.width/2+c,n.circularPathData.leftLargeArcRadius=E+n.width/2+r*e+c),c+=t.width})),s=n.target.column,u=t.links.filter((function(t){return t.target.column==s&&t.circularLinkType==l})),"bottom"==n.circularLinkType?u.sort(U):u.sort(j),c=0,u.forEach((function(t,r){t.circularLinkID==n.circularLinkID&&(n.circularPathData.rightSmallArcRadius=E+n.width/2+c,n.circularPathData.rightLargeArcRadius=E+n.width/2+r*e+c),c+=t.width})),"bottom"==n.circularLinkType?(n.circularPathData.verticalFullExtent=Math.max(r,n.source.y1,n.target.y1)+S+n.circularPathData.verticalBuffer,n.circularPathData.verticalLeftInnerExtent=n.circularPathData.verticalFullExtent-n.circularPathData.leftLargeArcRadius,n.circularPathData.verticalRightInnerExtent=n.circularPathData.verticalFullExtent-n.circularPathData.rightLargeArcRadius):(n.circularPathData.verticalFullExtent=o-S-n.circularPathData.verticalBuffer,n.circularPathData.verticalLeftInnerExtent=n.circularPathData.verticalFullExtent+n.circularPathData.leftLargeArcRadius,n.circularPathData.verticalRightInnerExtent=n.circularPathData.verticalFullExtent+n.circularPathData.rightLargeArcRadius)}n.circularPathData.leftInnerExtent=n.circularPathData.sourceX+n.circularPathData.leftNodeBuffer,n.circularPathData.rightInnerExtent=n.circularPathData.targetX-n.circularPathData.rightNodeBuffer,n.circularPathData.leftFullExtent=n.circularPathData.sourceX+n.circularPathData.leftLargeArcRadius+n.circularPathData.leftNodeBuffer,n.circularPathData.rightFullExtent=n.circularPathData.targetX-n.circularPathData.rightLargeArcRadius-n.circularPathData.rightNodeBuffer}if(n.circular)n.path=function(t){return"top"==t.circularLinkType?"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 0 "+t.circularPathData.leftFullExtent+" "+(t.circularPathData.sourceY-t.circularPathData.leftSmallArcRadius)+" L"+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 0 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 0 "+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" L"+t.circularPathData.rightFullExtent+" "+(t.circularPathData.targetY-t.circularPathData.rightSmallArcRadius)+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 0 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY:"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 1 "+t.circularPathData.leftFullExtent+" "+(t.circularPathData.sourceY+t.circularPathData.leftSmallArcRadius)+" L"+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 1 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 1 "+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" L"+t.circularPathData.rightFullExtent+" "+(t.circularPathData.targetY+t.circularPathData.rightSmallArcRadius)+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 1 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY}(n);else{var f=(0,a.h5)().source((function(t){return[t.source.x0+(t.source.x1-t.source.x0),t.y0]})).target((function(t){return[t.target.x0,t.y1]}));n.path=f(n)}}))}function F(t,e){return V(t)==V(e)?"bottom"==t.circularLinkType?N(t,e):B(t,e):V(e)-V(t)}function B(t,e){return t.y0-e.y0}function N(t,e){return e.y0-t.y0}function j(t,e){return t.y1-e.y1}function U(t,e){return e.y1-t.y1}function V(t){return t.target.column-t.source.column}function H(t){return t.target.x0-t.source.x1}function q(t,e){var r=O(t),n=H(e)/Math.tan(r);return"up"==K(t)?t.y1+n:t.y1-n}function G(t,e){var r=O(t),n=H(e)/Math.tan(r);return"up"==K(t)?t.y1-n:t.y1+n}function Z(t,e,r,n){t.links.forEach((function(i){if(!i.circular&&i.target.column-i.source.column>1){var a=i.source.column+1,o=i.target.column-1,s=1,l=o-a+1;for(s=1;a<=o;a++,s++)t.nodes.forEach((function(o){if(o.column==a){var u,c=s/(l+1),f=Math.pow(1-c,3),h=3*c*Math.pow(1-c,2),p=3*Math.pow(c,2)*(1-c),d=Math.pow(c,3),v=f*i.y0+h*i.y0+p*i.y1+d*i.y1,g=v-i.width/2,y=v+i.width/2;g>o.y0&&g<o.y1?(u=o.y1-g+10,u="bottom"==o.circularLinkType?u:-u,o=Y(o,u,e,r),t.nodes.forEach((function(t){var i,a;M(t,n)!=M(o,n)&&t.column==o.column&&(a=t,(i=o).y0>a.y0&&i.y0<a.y1||i.y1>a.y0&&i.y1<a.y1||i.y0<a.y0&&i.y1>a.y1)&&Y(t,u,e,r)}))):(y>o.y0&&y<o.y1||g<o.y0&&y>o.y1)&&(u=y-o.y0+10,o=Y(o,u,e,r),t.nodes.forEach((function(t){M(t,n)!=M(o,n)&&t.column==o.column&&t.y0<o.y1&&t.y1>o.y1&&Y(t,u,e,r)})))}}))}}))}function Y(t,e,r,n){return t.y0+e>=r&&t.y1+e<=n&&(t.y0=t.y0+e,t.y1=t.y1+e,t.targetLinks.forEach((function(t){t.y1=t.y1+e})),t.sourceLinks.forEach((function(t){t.y0=t.y0+e}))),t}function W(t,e,r,n){t.nodes.forEach((function(i){n&&i.y+(i.y1-i.y0)>e&&(i.y=i.y-(i.y+(i.y1-i.y0)-e));var a=t.links.filter((function(t){return M(t.source,r)==M(i,r)})),o=a.length;o>1&&a.sort((function(t,e){if(!t.circular&&!e.circular){if(t.target.column==e.target.column)return t.y1-e.y1;if(!J(t,e))return t.y1-e.y1;if(t.target.column>e.target.column){var r=G(e,t);return t.y1-r}if(e.target.column>t.target.column)return G(t,e)-e.y1}return t.circular&&!e.circular?"top"==t.circularLinkType?-1:1:e.circular&&!t.circular?"top"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&"top"==t.circularLinkType?t.target.column===e.target.column?t.target.y1-e.target.y1:e.target.column-t.target.column:t.circularLinkType===e.circularLinkType&&"bottom"==t.circularLinkType?t.target.column===e.target.column?e.target.y1-t.target.y1:t.target.column-e.target.column:"top"==t.circularLinkType?-1:1:void 0}));var s=i.y0;a.forEach((function(t){t.y0=s+t.width/2,s+=t.width})),a.forEach((function(t,e){if("bottom"==t.circularLinkType){for(var r=e+1,n=0;r<o;r++)n+=a[r].width;t.y0=i.y1-n-t.width/2}}))}))}function X(t,e,r){t.nodes.forEach((function(e){var n=t.links.filter((function(t){return M(t.target,r)==M(e,r)})),i=n.length;i>1&&n.sort((function(t,e){if(!t.circular&&!e.circular){if(t.source.column==e.source.column)return t.y0-e.y0;if(!J(t,e))return t.y0-e.y0;if(e.source.column<t.source.column){var r=q(e,t);return t.y0-r}if(t.source.column<e.source.column)return q(t,e)-e.y0}return t.circular&&!e.circular?"top"==t.circularLinkType?-1:1:e.circular&&!t.circular?"top"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&"top"==t.circularLinkType?t.source.column===e.source.column?t.source.y1-e.source.y1:t.source.column-e.source.column:t.circularLinkType===e.circularLinkType&&"bottom"==t.circularLinkType?t.source.column===e.source.column?t.source.y1-e.source.y1:e.source.column-t.source.column:"top"==t.circularLinkType?-1:1:void 0}));var a=e.y0;n.forEach((function(t){t.y1=a+t.width/2,a+=t.width})),n.forEach((function(t,r){if("bottom"==t.circularLinkType){for(var a=r+1,o=0;a<i;a++)o+=n[a].width;t.y1=e.y1-o-t.width/2}}))}))}function J(t,e){return K(t)==K(e)}function K(t){return t.y0-t.y1>0?"up":"down"}function $(t,e){return M(t.source,e)==M(t.target,e)}function Q(t,e,r){var i=t.nodes,a=t.links,o=!1,s=!1;if(a.forEach((function(t){"top"==t.circularLinkType?o=!0:"bottom"==t.circularLinkType&&(s=!0)})),0==o||0==s){var l=(0,n.VV)(i,(function(t){return t.y0})),u=(r-e)/((0,n.Fp)(i,(function(t){return t.y1}))-l);i.forEach((function(t){var e=(t.y1-t.y0)*u;t.y0=(t.y0-l)*u,t.y1=t.y0+e})),a.forEach((function(t){t.y0=(t.y0-l)*u,t.y1=(t.y1-l)*u,t.width=t.width*u}))}}},30838:function(t,e,r){"use strict";r.r(e),r.d(e,{sankey:function(){return w},sankeyCenter:function(){return u},sankeyJustify:function(){return l},sankeyLeft:function(){return o},sankeyLinkHorizontal:function(){return M},sankeyRight:function(){return s}});var n=r(33064),i=r(15140);function a(t){return t.target.depth}function o(t){return t.depth}function s(t,e){return e-1-t.height}function l(t,e){return t.sourceLinks.length?t.depth:e-1}function u(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?(0,n.VV)(t.sourceLinks,a)-1:0}function c(t){return function(){return t}}function f(t,e){return p(t.source,e.source)||t.index-e.index}function h(t,e){return p(t.target,e.target)||t.index-e.index}function p(t,e){return t.y0-e.y0}function d(t){return t.value}function v(t){return(t.y0+t.y1)/2}function g(t){return v(t.source)*t.value}function y(t){return v(t.target)*t.value}function m(t){return t.index}function x(t){return t.nodes}function b(t){return t.links}function _(t,e){var r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function w(){var t=0,e=0,r=1,a=1,o=24,s=8,u=m,w=l,T=x,k=b,A=32;function M(){var t={nodes:T.apply(null,arguments),links:k.apply(null,arguments)};return S(t),E(t),L(t),C(t),P(t),t}function S(t){t.nodes.forEach((function(t,e){t.index=e,t.sourceLinks=[],t.targetLinks=[]}));var e=(0,i.UI)(t.nodes,u);t.links.forEach((function(t,r){t.index=r;var n=t.source,i=t.target;"object"!=typeof n&&(n=t.source=_(e,n)),"object"!=typeof i&&(i=t.target=_(e,i)),n.sourceLinks.push(t),i.targetLinks.push(t)}))}function E(t){t.nodes.forEach((function(t){t.value=Math.max((0,n.Sm)(t.sourceLinks,d),(0,n.Sm)(t.targetLinks,d))}))}function L(e){var n,i,a;for(n=e.nodes,i=[],a=0;n.length;++a,n=i,i=[])n.forEach((function(t){t.depth=a,t.sourceLinks.forEach((function(t){i.indexOf(t.target)<0&&i.push(t.target)}))}));for(n=e.nodes,i=[],a=0;n.length;++a,n=i,i=[])n.forEach((function(t){t.height=a,t.targetLinks.forEach((function(t){i.indexOf(t.source)<0&&i.push(t.source)}))}));var s=(r-t-o)/(a-1);e.nodes.forEach((function(e){e.x1=(e.x0=t+Math.max(0,Math.min(a-1,Math.floor(w.call(null,e,a))))*s)+o}))}function C(t){var r=(0,i.b1)().key((function(t){return t.x0})).sortKeys(n.j2).entries(t.nodes).map((function(t){return t.values}));!function(){var i=(0,n.Fp)(r,(function(t){return t.length})),o=.6666666666666666*(a-e)/(i-1);s>o&&(s=o);var l=(0,n.VV)(r,(function(t){return(a-e-(t.length-1)*s)/(0,n.Sm)(t,d)}));r.forEach((function(t){t.forEach((function(t,e){t.y1=(t.y0=e)+t.value*l}))})),t.links.forEach((function(t){t.width=t.value*l}))}(),f();for(var o=1,l=A;l>0;--l)c(o*=.99),f(),u(o),f();function u(t){r.forEach((function(e){e.forEach((function(e){if(e.targetLinks.length){var r=((0,n.Sm)(e.targetLinks,g)/(0,n.Sm)(e.targetLinks,d)-v(e))*t;e.y0+=r,e.y1+=r}}))}))}function c(t){r.slice().reverse().forEach((function(e){e.forEach((function(e){if(e.sourceLinks.length){var r=((0,n.Sm)(e.sourceLinks,y)/(0,n.Sm)(e.sourceLinks,d)-v(e))*t;e.y0+=r,e.y1+=r}}))}))}function f(){r.forEach((function(t){var r,n,i,o=e,l=t.length;for(t.sort(p),i=0;i<l;++i)(n=o-(r=t[i]).y0)>0&&(r.y0+=n,r.y1+=n),o=r.y1+s;if((n=o-s-a)>0)for(o=r.y0-=n,r.y1-=n,i=l-2;i>=0;--i)(n=(r=t[i]).y1+s-o)>0&&(r.y0-=n,r.y1-=n),o=r.y0}))}}function P(t){t.nodes.forEach((function(t){t.sourceLinks.sort(h),t.targetLinks.sort(f)})),t.nodes.forEach((function(t){var e=t.y0,r=e;t.sourceLinks.forEach((function(t){t.y0=e+t.width/2,e+=t.width})),t.targetLinks.forEach((function(t){t.y1=r+t.width/2,r+=t.width}))}))}return M.update=function(t){return P(t),t},M.nodeId=function(t){return arguments.length?(u="function"==typeof t?t:c(t),M):u},M.nodeAlign=function(t){return arguments.length?(w="function"==typeof t?t:c(t),M):w},M.nodeWidth=function(t){return arguments.length?(o=+t,M):o},M.nodePadding=function(t){return arguments.length?(s=+t,M):s},M.nodes=function(t){return arguments.length?(T="function"==typeof t?t:c(t),M):T},M.links=function(t){return arguments.length?(k="function"==typeof t?t:c(t),M):k},M.size=function(n){return arguments.length?(t=e=0,r=+n[0],a=+n[1],M):[r-t,a-e]},M.extent=function(n){return arguments.length?(t=+n[0][0],r=+n[1][0],e=+n[0][1],a=+n[1][1],M):[[t,e],[r,a]]},M.iterations=function(t){return arguments.length?(A=+t,M):A},M}var T=r(45879);function k(t){return[t.source.x1,t.y0]}function A(t){return[t.target.x0,t.y1]}function M(){return(0,T.h5)().source(k).target(A)}},39898:function(t,e,r){var n,i;(function(){var a={version:"3.8.0"},o=[].slice,s=function(t){return o.call(t)},l=self.document;function u(t){return t&&(t.ownerDocument||t.document||t).documentElement}function c(t){return t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView)}if(l)try{s(l.documentElement.childNodes)[0].nodeType}catch(t){s=function(t){for(var e=t.length,r=new Array(e);e--;)r[e]=t[e];return r}}if(Date.now||(Date.now=function(){return+new Date}),l)try{l.createElement("DIV").style.setProperty("opacity",0,"")}catch(t){var f=this.Element.prototype,h=f.setAttribute,p=f.setAttributeNS,d=this.CSSStyleDeclaration.prototype,v=d.setProperty;f.setAttribute=function(t,e){h.call(this,t,e+"")},f.setAttributeNS=function(t,e,r){p.call(this,t,e,r+"")},d.setProperty=function(t,e,r){v.call(this,t,e+"",r)}}function g(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function y(t){return null===t?NaN:+t}function m(t){return!isNaN(t)}function x(t){return{left:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n<i;){var a=n+i>>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n<i;){var a=n+i>>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}a.ascending=g,a.descending=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN},a.min=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i<a;)if(null!=(n=t[i])&&n>=n){r=n;break}for(;++i<a;)null!=(n=t[i])&&r>n&&(r=n)}else{for(;++i<a;)if(null!=(n=e.call(t,t[i],i))&&n>=n){r=n;break}for(;++i<a;)null!=(n=e.call(t,t[i],i))&&r>n&&(r=n)}return r},a.max=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i<a;)if(null!=(n=t[i])&&n>=n){r=n;break}for(;++i<a;)null!=(n=t[i])&&n>r&&(r=n)}else{for(;++i<a;)if(null!=(n=e.call(t,t[i],i))&&n>=n){r=n;break}for(;++i<a;)null!=(n=e.call(t,t[i],i))&&n>r&&(r=n)}return r},a.extent=function(t,e){var r,n,i,a=-1,o=t.length;if(1===arguments.length){for(;++a<o;)if(null!=(n=t[a])&&n>=n){r=i=n;break}for(;++a<o;)null!=(n=t[a])&&(r>n&&(r=n),i<n&&(i=n))}else{for(;++a<o;)if(null!=(n=e.call(t,t[a],a))&&n>=n){r=i=n;break}for(;++a<o;)null!=(n=e.call(t,t[a],a))&&(r>n&&(r=n),i<n&&(i=n))}return[r,i]},a.sum=function(t,e){var r,n=0,i=t.length,a=-1;if(1===arguments.length)for(;++a<i;)m(r=+t[a])&&(n+=r);else for(;++a<i;)m(r=+e.call(t,t[a],a))&&(n+=r);return n},a.mean=function(t,e){var r,n=0,i=t.length,a=-1,o=i;if(1===arguments.length)for(;++a<i;)m(r=y(t[a]))?n+=r:--o;else for(;++a<i;)m(r=y(e.call(t,t[a],a)))?n+=r:--o;if(o)return n/o},a.quantile=function(t,e){var r=(t.length-1)*e+1,n=Math.floor(r),i=+t[n-1],a=r-n;return a?i+a*(t[n]-i):i},a.median=function(t,e){var r,n=[],i=t.length,o=-1;if(1===arguments.length)for(;++o<i;)m(r=y(t[o]))&&n.push(r);else for(;++o<i;)m(r=y(e.call(t,t[o],o)))&&n.push(r);if(n.length)return a.quantile(n.sort(g),.5)},a.variance=function(t,e){var r,n,i=t.length,a=0,o=0,s=-1,l=0;if(1===arguments.length)for(;++s<i;)m(r=y(t[s]))&&(o+=(n=r-a)*(r-(a+=n/++l)));else for(;++s<i;)m(r=y(e.call(t,t[s],s)))&&(o+=(n=r-a)*(r-(a+=n/++l)));if(l>1)return o/(l-1)},a.deviation=function(){var t=a.variance.apply(this,arguments);return t?Math.sqrt(t):t};var b=x(g);function _(t){return t.length}a.bisectLeft=b.left,a.bisect=a.bisectRight=b.right,a.bisector=function(t){return x(1===t.length?function(e,r){return g(t(e),r)}:t)},a.shuffle=function(t,e,r){(a=arguments.length)<3&&(r=t.length,a<2&&(e=0));for(var n,i,a=r-e;a;)i=Math.random()*a--|0,n=t[a+e],t[a+e]=t[i+e],t[i+e]=n;return t},a.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},a.pairs=function(t){for(var e=0,r=t.length-1,n=t[0],i=new Array(r<0?0:r);e<r;)i[e]=[n,n=t[++e]];return i},a.transpose=function(t){if(!(i=t.length))return[];for(var e=-1,r=a.min(t,_),n=new Array(r);++e<r;)for(var i,o=-1,s=n[e]=new Array(i);++o<i;)s[o]=t[o][e];return n},a.zip=function(){return a.transpose(arguments)},a.keys=function(t){var e=[];for(var r in t)e.push(r);return e},a.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},a.entries=function(t){var e=[];for(var r in t)e.push({key:r,value:t[r]});return e},a.merge=function(t){for(var e,r,n,i=t.length,a=-1,o=0;++a<i;)o+=t[a].length;for(r=new Array(o);--i>=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r};var w=Math.abs;function T(t){for(var e=1;t*e%1;)e*=10;return e}function k(t,e){for(var r in e)Object.defineProperty(t.prototype,r,{value:e[r],enumerable:!1})}function A(){this._=Object.create(null)}function M(t){return"__proto__"==(t+="")||"\0"===t[0]?"\0"+t:t}function S(t){return"\0"===(t+="")[0]?t.slice(1):t}function E(t){return M(t)in this._}function L(t){return(t=M(t))in this._&&delete this._[t]}function C(){var t=[];for(var e in this._)t.push(S(e));return t}function P(){var t=0;for(var e in this._)++t;return t}function O(){for(var t in this._)return!1;return!0}function I(){this._=Object.create(null)}function D(t){return t}function z(t,e,r){return function(){var n=r.apply(e,arguments);return n===e?t:n}}function R(t,e){if(e in t)return e;e=e.charAt(0).toUpperCase()+e.slice(1);for(var r=0,n=F.length;r<n;++r){var i=F[r]+e;if(i in t)return i}}a.range=function(t,e,r){if(arguments.length<3&&(r=1,arguments.length<2&&(e=t,t=0)),(e-t)/r==1/0)throw new Error("infinite range");var n,i=[],a=T(w(r)),o=-1;if(t*=a,e*=a,(r*=a)<0)for(;(n=t+r*++o)>e;)i.push(n/a);else for(;(n=t+r*++o)<e;)i.push(n/a);return i},a.map=function(t,e){var r=new A;if(t instanceof A)t.forEach((function(t,e){r.set(t,e)}));else if(Array.isArray(t)){var n,i=-1,a=t.length;if(1===arguments.length)for(;++i<a;)r.set(i,t[i]);else for(;++i<a;)r.set(e.call(t,n=t[i],i),n)}else for(var o in t)r.set(o,t[o]);return r},k(A,{has:E,get:function(t){return this._[M(t)]},set:function(t,e){return this._[M(t)]=e},remove:L,keys:C,values:function(){var t=[];for(var e in this._)t.push(this._[e]);return t},entries:function(){var t=[];for(var e in this._)t.push({key:S(e),value:this._[e]});return t},size:P,empty:O,forEach:function(t){for(var e in this._)t.call(this,S(e),this._[e])}}),a.nest=function(){var t,e,r={},n=[],i=[];function o(i,a,s){if(s>=n.length)return e?e.call(r,a):t?a.sort(t):a;for(var l,u,c,f,h=-1,p=a.length,d=n[s++],v=new A;++h<p;)(f=v.get(l=d(u=a[h])))?f.push(u):v.set(l,[u]);return i?(u=i(),c=function(t,e){u.set(t,o(i,e,s))}):(u={},c=function(t,e){u[t]=o(i,e,s)}),v.forEach(c),u}function s(t,e){if(e>=n.length)return t;var r=[],a=i[e++];return t.forEach((function(t,n){r.push({key:t,values:s(n,e)})})),a?r.sort((function(t,e){return a(t.key,e.key)})):r}return r.map=function(t,e){return o(e,t,0)},r.entries=function(t){return s(o(a.map,t,0),0)},r.key=function(t){return n.push(t),r},r.sortKeys=function(t){return i[n.length-1]=t,r},r.sortValues=function(e){return t=e,r},r.rollup=function(t){return e=t,r},r},a.set=function(t){var e=new I;if(t)for(var r=0,n=t.length;r<n;++r)e.add(t[r]);return e},k(I,{has:E,add:function(t){return this._[M(t+="")]=!0,t},remove:L,values:C,size:P,empty:O,forEach:function(t){for(var e in this._)t.call(this,S(e))}}),a.behavior={},a.rebind=function(t,e){for(var r,n=1,i=arguments.length;++n<i;)t[r=arguments[n]]=z(t,e,e[r]);return t};var F=["webkit","ms","moz","Moz","o","O"];function B(){}function N(){}function j(t){var e=[],r=new A;function n(){for(var r,n=e,i=-1,a=n.length;++i<a;)(r=n[i].on)&&r.apply(this,arguments);return t}return n.on=function(n,i){var a,o=r.get(n);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,a=e.indexOf(o)).concat(e.slice(a+1)),r.remove(n)),i&&e.push(r.set(n,{on:i})),t)},n}function U(){a.event.preventDefault()}function V(){for(var t,e=a.event;t=e.sourceEvent;)e=t;return e}function H(t){for(var e=new N,r=0,n=arguments.length;++r<n;)e[arguments[r]]=j(e);return e.of=function(r,n){return function(i){try{var o=i.sourceEvent=a.event;i.target=t,a.event=i,e[i.type].apply(r,n)}finally{a.event=o}}},e}a.dispatch=function(){for(var t=new N,e=-1,r=arguments.length;++e<r;)t[arguments[e]]=j(t);return t},N.prototype.on=function(t,e){var r=t.indexOf("."),n="";if(r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),t)return arguments.length<2?this[t].on(n):this[t].on(n,e);if(2===arguments.length){if(null==e)for(t in this)this.hasOwnProperty(t)&&this[t].on(n,null);return this}},a.event=null,a.requote=function(t){return t.replace(q,"\\$&")};var q=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,G={}.__proto__?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)t[r]=e[r]};function Z(t){return G(t,J),t}var Y=function(t,e){return e.querySelector(t)},W=function(t,e){return e.querySelectorAll(t)},X=function(t,e){var r=t.matches||t[R(t,"matchesSelector")];return X=function(t,e){return r.call(t,e)},X(t,e)};"function"==typeof Sizzle&&(Y=function(t,e){return Sizzle(t,e)[0]||null},W=Sizzle,X=Sizzle.matchesSelector),a.selection=function(){return a.select(l.documentElement)};var J=a.selection.prototype=[];function K(t){return"function"==typeof t?t:function(){return Y(t,this)}}function $(t){return"function"==typeof t?t:function(){return W(t,this)}}J.select=function(t){var e,r,n,i,a=[];t=K(t);for(var o=-1,s=this.length;++o<s;){a.push(e=[]),e.parentNode=(n=this[o]).parentNode;for(var l=-1,u=n.length;++l<u;)(i=n[l])?(e.push(r=t.call(i,i.__data__,l,o)),r&&"__data__"in i&&(r.__data__=i.__data__)):e.push(null)}return Z(a)},J.selectAll=function(t){var e,r,n=[];t=$(t);for(var i=-1,a=this.length;++i<a;)for(var o=this[i],l=-1,u=o.length;++l<u;)(r=o[l])&&(n.push(e=s(t.call(r,r.__data__,l,i))),e.parentNode=r);return Z(n)};var Q="http://www.w3.org/1999/xhtml",tt={svg:"http://www.w3.org/2000/svg",xhtml:Q,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function et(t,e){return t=a.ns.qualify(t),null==e?t.local?function(){this.removeAttributeNS(t.space,t.local)}:function(){this.removeAttribute(t)}:"function"==typeof e?t.local?function(){var r=e.apply(this,arguments);null==r?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}:function(){var r=e.apply(this,arguments);null==r?this.removeAttribute(t):this.setAttribute(t,r)}:t.local?function(){this.setAttributeNS(t.space,t.local,e)}:function(){this.setAttribute(t,e)}}function rt(t){return t.trim().replace(/\s+/g," ")}function nt(t){return new RegExp("(?:^|\\s+)"+a.requote(t)+"(?:\\s+|$)","g")}function it(t){return(t+"").trim().split(/^|\s+/)}function at(t,e){var r=(t=it(t).map(ot)).length;return"function"==typeof e?function(){for(var n=-1,i=e.apply(this,arguments);++n<r;)t[n](this,i)}:function(){for(var n=-1;++n<r;)t[n](this,e)}}function ot(t){var e=nt(t);return function(r,n){if(i=r.classList)return n?i.add(t):i.remove(t);var i=r.getAttribute("class")||"";n?(e.lastIndex=0,e.test(i)||r.setAttribute("class",rt(i+" "+t))):r.setAttribute("class",rt(i.replace(e," ")))}}function st(t,e,r){return null==e?function(){this.style.removeProperty(t)}:"function"==typeof e?function(){var n=e.apply(this,arguments);null==n?this.style.removeProperty(t):this.style.setProperty(t,n,r)}:function(){this.style.setProperty(t,e,r)}}function lt(t,e){return null==e?function(){delete this[t]}:"function"==typeof e?function(){var r=e.apply(this,arguments);null==r?delete this[t]:this[t]=r}:function(){this[t]=e}}function ut(t){return"function"==typeof t?t:(t=a.ns.qualify(t)).local?function(){return this.ownerDocument.createElementNS(t.space,t.local)}:function(){var e=this.ownerDocument,r=this.namespaceURI;return r===Q&&e.documentElement.namespaceURI===Q?e.createElement(t):e.createElementNS(r,t)}}function ct(){var t=this.parentNode;t&&t.removeChild(this)}function ft(t){return{__data__:t}}function ht(t){return function(){return X(this,t)}}function pt(t){return arguments.length||(t=g),function(e,r){return e&&r?t(e.__data__,r.__data__):!e-!r}}function dt(t,e){for(var r=0,n=t.length;r<n;r++)for(var i,a=t[r],o=0,s=a.length;o<s;o++)(i=a[o])&&e(i,o,r);return t}function vt(t){return G(t,gt),t}a.ns={prefix:tt,qualify:function(t){var e=t.indexOf(":"),r=t;return e>=0&&"xmlns"!==(r=t.slice(0,e))&&(t=t.slice(e+1)),tt.hasOwnProperty(r)?{space:tt[r],local:t}:t}},J.attr=function(t,e){if(arguments.length<2){if("string"==typeof t){var r=this.node();return(t=a.ns.qualify(t)).local?r.getAttributeNS(t.space,t.local):r.getAttribute(t)}for(e in t)this.each(et(e,t[e]));return this}return this.each(et(t,e))},J.classed=function(t,e){if(arguments.length<2){if("string"==typeof t){var r=this.node(),n=(t=it(t)).length,i=-1;if(e=r.classList){for(;++i<n;)if(!e.contains(t[i]))return!1}else for(e=r.getAttribute("class");++i<n;)if(!nt(t[i]).test(e))return!1;return!0}for(e in t)this.each(at(e,t[e]));return this}return this.each(at(t,e))},J.style=function(t,e,r){var n=arguments.length;if(n<3){if("string"!=typeof t){for(r in n<2&&(e=""),t)this.each(st(r,t[r],e));return this}if(n<2){var i=this.node();return c(i).getComputedStyle(i,null).getPropertyValue(t)}r=""}return this.each(st(t,e,r))},J.property=function(t,e){if(arguments.length<2){if("string"==typeof t)return this.node()[t];for(e in t)this.each(lt(e,t[e]));return this}return this.each(lt(t,e))},J.text=function(t){return arguments.length?this.each("function"==typeof t?function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}:null==t?function(){this.textContent=""}:function(){this.textContent=t}):this.node().textContent},J.html=function(t){return arguments.length?this.each("function"==typeof t?function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}:null==t?function(){this.innerHTML=""}:function(){this.innerHTML=t}):this.node().innerHTML},J.append=function(t){return t=ut(t),this.select((function(){return this.appendChild(t.apply(this,arguments))}))},J.insert=function(t,e){return t=ut(t),e=K(e),this.select((function(){return this.insertBefore(t.apply(this,arguments),e.apply(this,arguments)||null)}))},J.remove=function(){return this.each(ct)},J.data=function(t,e){var r,n,i=-1,a=this.length;if(!arguments.length){for(t=new Array(a=(r=this[0]).length);++i<a;)(n=r[i])&&(t[i]=n.__data__);return t}function o(t,r){var n,i,a,o=t.length,c=r.length,f=Math.min(o,c),h=new Array(c),p=new Array(c),d=new Array(o);if(e){var v,g=new A,y=new Array(o);for(n=-1;++n<o;)(i=t[n])&&(g.has(v=e.call(i,i.__data__,n))?d[n]=i:g.set(v,i),y[n]=v);for(n=-1;++n<c;)(i=g.get(v=e.call(r,a=r[n],n)))?!0!==i&&(h[n]=i,i.__data__=a):p[n]=ft(a),g.set(v,!0);for(n=-1;++n<o;)n in y&&!0!==g.get(y[n])&&(d[n]=t[n])}else{for(n=-1;++n<f;)i=t[n],a=r[n],i?(i.__data__=a,h[n]=i):p[n]=ft(a);for(;n<c;++n)p[n]=ft(r[n]);for(;n<o;++n)d[n]=t[n]}p.update=h,p.parentNode=h.parentNode=d.parentNode=t.parentNode,s.push(p),l.push(h),u.push(d)}var s=vt([]),l=Z([]),u=Z([]);if("function"==typeof t)for(;++i<a;)o(r=this[i],t.call(r,r.parentNode.__data__,i));else for(;++i<a;)o(r=this[i],t);return l.enter=function(){return s},l.exit=function(){return u},l},J.datum=function(t){return arguments.length?this.property("__data__",t):this.property("__data__")},J.filter=function(t){var e,r,n,i=[];"function"!=typeof t&&(t=ht(t));for(var a=0,o=this.length;a<o;a++){i.push(e=[]),e.parentNode=(r=this[a]).parentNode;for(var s=0,l=r.length;s<l;s++)(n=r[s])&&t.call(n,n.__data__,s,a)&&e.push(n)}return Z(i)},J.order=function(){for(var t=-1,e=this.length;++t<e;)for(var r,n=this[t],i=n.length-1,a=n[i];--i>=0;)(r=n[i])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},J.sort=function(t){t=pt.apply(this,arguments);for(var e=-1,r=this.length;++e<r;)this[e].sort(t);return this.order()},J.each=function(t){return dt(this,(function(e,r,n){t.call(e,e.__data__,r,n)}))},J.call=function(t){var e=s(arguments);return t.apply(e[0]=this,e),this},J.empty=function(){return!this.node()},J.node=function(){for(var t=0,e=this.length;t<e;t++)for(var r=this[t],n=0,i=r.length;n<i;n++){var a=r[n];if(a)return a}return null},J.size=function(){var t=0;return dt(this,(function(){++t})),t};var gt=[];function yt(t){var e,r;return function(n,i,a){var o,s=t[a].update,l=s.length;for(a!=r&&(r=a,e=0),i>=e&&(e=i+1);!(o=s[e])&&++e<l;);return o}}function mt(t,e,r){var n="__on"+t,i=t.indexOf("."),o=bt;i>0&&(t=t.slice(0,i));var l=xt.get(t);function u(){var e=this[n];e&&(this.removeEventListener(t,e,e.$),delete this[n])}return l&&(t=l,o=_t),i?e?function(){var i=o(e,s(arguments));u.call(this),this.addEventListener(t,this[n]=i,i.$=r),i._=e}:u:e?B:function(){var e,r=new RegExp("^__on([^.]+)"+a.requote(t)+"$");for(var n in this)if(e=n.match(r)){var i=this[n];this.removeEventListener(e[1],i,i.$),delete this[n]}}}a.selection.enter=vt,a.selection.enter.prototype=gt,gt.append=J.append,gt.empty=J.empty,gt.node=J.node,gt.call=J.call,gt.size=J.size,gt.select=function(t){for(var e,r,n,i,a,o=[],s=-1,l=this.length;++s<l;){n=(i=this[s]).update,o.push(e=[]),e.parentNode=i.parentNode;for(var u=-1,c=i.length;++u<c;)(a=i[u])?(e.push(n[u]=r=t.call(i.parentNode,a.__data__,u,s)),r.__data__=a.__data__):e.push(null)}return Z(o)},gt.insert=function(t,e){return arguments.length<2&&(e=yt(this)),J.insert.call(this,t,e)},a.select=function(t){var e;return"string"==typeof t?(e=[Y(t,l)]).parentNode=l.documentElement:(e=[t]).parentNode=u(t),Z([e])},a.selectAll=function(t){var e;return"string"==typeof t?(e=s(W(t,l))).parentNode=l.documentElement:(e=s(t)).parentNode=null,Z([e])},J.on=function(t,e,r){var n=arguments.length;if(n<3){if("string"!=typeof t){for(r in n<2&&(e=!1),t)this.each(mt(r,t[r],e));return this}if(n<2)return(n=this.node()["__on"+t])&&n._;r=!1}return this.each(mt(t,e,r))};var xt=a.map({mouseenter:"mouseover",mouseleave:"mouseout"});function bt(t,e){return function(r){var n=a.event;a.event=r,e[0]=this.__data__;try{t.apply(this,e)}finally{a.event=n}}}function _t(t,e){var r=bt(t,e);return function(t){var e=this,n=t.relatedTarget;n&&(n===e||8&n.compareDocumentPosition(e))||r.call(e,t)}}l&&xt.forEach((function(t){"on"+t in l&&xt.remove(t)}));var wt,Tt=0;function kt(t){var e=".dragsuppress-"+ ++Tt,r="click"+e,n=a.select(c(t)).on("touchmove"+e,U).on("dragstart"+e,U).on("selectstart"+e,U);if(null==wt&&(wt=!("onselectstart"in t)&&R(t.style,"userSelect")),wt){var i=u(t).style,o=i[wt];i[wt]="none"}return function(t){if(n.on(e,null),wt&&(i[wt]=o),t){var a=function(){n.on(r,null)};n.on(r,(function(){U(),a()}),!0),setTimeout(a,0)}}}a.mouse=function(t){return Mt(t,V())};var At=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;function Mt(t,e){e.changedTouches&&(e=e.changedTouches[0]);var r=t.ownerSVGElement||t;if(r.createSVGPoint){var n=r.createSVGPoint();if(At<0){var i=c(t);if(i.scrollX||i.scrollY){var o=(r=a.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important"))[0][0].getScreenCTM();At=!(o.f||o.e),r.remove()}}return At?(n.x=e.pageX,n.y=e.pageY):(n.x=e.clientX,n.y=e.clientY),[(n=n.matrixTransform(t.getScreenCTM().inverse())).x,n.y]}var s=t.getBoundingClientRect();return[e.clientX-s.left-t.clientLeft,e.clientY-s.top-t.clientTop]}function St(){return a.event.changedTouches[0].identifier}a.touch=function(t,e,r){if(arguments.length<3&&(r=e,e=V().changedTouches),e)for(var n,i=0,a=e.length;i<a;++i)if((n=e[i]).identifier===r)return Mt(t,n)},a.behavior.drag=function(){var t=H(i,"drag","dragstart","dragend"),e=null,r=o(B,a.mouse,c,"mousemove","mouseup"),n=o(St,a.touch,D,"touchmove","touchend");function i(){this.on("mousedown.drag",r).on("touchstart.drag",n)}function o(r,n,i,o,s){return function(){var l,u=this,c=a.event.target.correspondingElement||a.event.target,f=u.parentNode,h=t.of(u,arguments),p=0,d=r(),v=".drag"+(null==d?"":"-"+d),g=a.select(i(c)).on(o+v,x).on(s+v,b),y=kt(c),m=n(f,d);function x(){var t,e,r=n(f,d);r&&(t=r[0]-m[0],e=r[1]-m[1],p|=t|e,m=r,h({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:t,dy:e}))}function b(){n(f,d)&&(g.on(o+v,null).on(s+v,null),y(p),h({type:"dragend"}))}l=e?[(l=e.apply(u,arguments)).x-m[0],l.y-m[1]]:[0,0],h({type:"dragstart"})}}return i.origin=function(t){return arguments.length?(e=t,i):e},a.rebind(i,t,"on")},a.touches=function(t,e){return arguments.length<2&&(e=V().touches),e?s(e).map((function(e){var r=Mt(t,e);return r.identifier=e.identifier,r})):[]};var Et=1e-6,Lt=Math.PI,Ct=2*Lt,Pt=Ct-Et,Ot=Lt/2,It=Lt/180,Dt=180/Lt;function zt(t){return t>1?Ot:t<-1?-Ot:Math.asin(t)}function Rt(t){return((t=Math.exp(t))+1/t)/2}var Ft=Math.SQRT2;a.interpolateZoom=function(t,e){var r,n,i=t[0],a=t[1],o=t[2],s=e[0],l=e[1],u=e[2],c=s-i,f=l-a,h=c*c+f*f;if(h<1e-12)n=Math.log(u/o)/Ft,r=function(t){return[i+t*c,a+t*f,o*Math.exp(Ft*t*n)]};else{var p=Math.sqrt(h),d=(u*u-o*o+4*h)/(2*o*2*p),v=(u*u-o*o-4*h)/(2*u*2*p),g=Math.log(Math.sqrt(d*d+1)-d),y=Math.log(Math.sqrt(v*v+1)-v);n=(y-g)/Ft,r=function(t){var e,r=t*n,s=Rt(g),l=o/(2*p)*(s*(e=Ft*r+g,((e=Math.exp(2*e))-1)/(e+1))-function(t){return((t=Math.exp(t))-1/t)/2}(g));return[i+l*c,a+l*f,o*s/Rt(Ft*r+g)]}}return r.duration=1e3*n,r},a.behavior.zoom=function(){var t,e,r,n,i,o,s,u,f,h={x:0,y:0,k:1},p=[960,500],d=jt,v=250,g=0,y="mousedown.zoom",m="mousemove.zoom",x="mouseup.zoom",b="touchstart.zoom",_=H(w,"zoomstart","zoom","zoomend");function w(t){t.on(y,P).on(Nt+".zoom",I).on("dblclick.zoom",D).on(b,O)}function T(t){return[(t[0]-h.x)/h.k,(t[1]-h.y)/h.k]}function k(t){h.k=Math.max(d[0],Math.min(d[1],t))}function A(t,e){e=function(t){return[t[0]*h.k+h.x,t[1]*h.k+h.y]}(e),h.x+=t[0]-e[0],h.y+=t[1]-e[1]}function M(t,r,n,i){t.__chart__={x:h.x,y:h.y,k:h.k},k(Math.pow(2,i)),A(e=r,n),t=a.select(t),v>0&&(t=t.transition().duration(v)),t.call(w.event)}function S(){s&&s.domain(o.range().map((function(t){return(t-h.x)/h.k})).map(o.invert)),f&&f.domain(u.range().map((function(t){return(t-h.y)/h.k})).map(u.invert))}function E(t){g++||t({type:"zoomstart"})}function L(t){S(),t({type:"zoom",scale:h.k,translate:[h.x,h.y]})}function C(t){--g||(t({type:"zoomend"}),e=null)}function P(){var t=this,e=_.of(t,arguments),r=0,n=a.select(c(t)).on(m,s).on(x,l),i=T(a.mouse(t)),o=kt(t);function s(){r=1,A(a.mouse(t),i),L(e)}function l(){n.on(m,null).on(x,null),o(r),C(e)}$i.call(t),E(e)}function O(){var t,e=this,r=_.of(e,arguments),n={},o=0,s=".zoom-"+a.event.changedTouches[0].identifier,l="touchmove"+s,u="touchend"+s,c=[],f=a.select(e),p=kt(e);function d(){var r=a.touches(e);return t=h.k,r.forEach((function(t){t.identifier in n&&(n[t.identifier]=T(t))})),r}function v(){var t=a.event.target;a.select(t).on(l,g).on(u,m),c.push(t);for(var r=a.event.changedTouches,s=0,f=r.length;s<f;++s)n[r[s].identifier]=null;var p=d(),v=Date.now();if(1===p.length){if(v-i<500){var y=p[0];M(e,y,n[y.identifier],Math.floor(Math.log(h.k)/Math.LN2)+1),U()}i=v}else if(p.length>1){y=p[0];var x=p[1],b=y[0]-x[0],_=y[1]-x[1];o=b*b+_*_}}function g(){var s,l,u,c,f=a.touches(e);$i.call(e);for(var h=0,p=f.length;h<p;++h,c=null)if(u=f[h],c=n[u.identifier]){if(l)break;s=u,l=c}if(c){var d=(d=u[0]-s[0])*d+(d=u[1]-s[1])*d,v=o&&Math.sqrt(d/o);s=[(s[0]+u[0])/2,(s[1]+u[1])/2],l=[(l[0]+c[0])/2,(l[1]+c[1])/2],k(v*t)}i=null,A(s,l),L(r)}function m(){if(a.event.touches.length){for(var t=a.event.changedTouches,e=0,i=t.length;e<i;++e)delete n[t[e].identifier];for(var o in n)return void d()}a.selectAll(c).on(s,null),f.on(y,P).on(b,O),p(),C(r)}v(),E(r),f.on(y,null).on(b,v)}function I(){var i=_.of(this,arguments);n?clearTimeout(n):($i.call(this),t=T(e=r||a.mouse(this)),E(i)),n=setTimeout((function(){n=null,C(i)}),50),U(),k(Math.pow(2,.002*Bt())*h.k),A(e,t),L(i)}function D(){var t=a.mouse(this),e=Math.log(h.k)/Math.LN2;M(this,t,T(t),a.event.shiftKey?Math.ceil(e)-1:Math.floor(e)+1)}return Nt||(Nt="onwheel"in l?(Bt=function(){return-a.event.deltaY*(a.event.deltaMode?120:1)},"wheel"):"onmousewheel"in l?(Bt=function(){return a.event.wheelDelta},"mousewheel"):(Bt=function(){return-a.event.detail},"MozMousePixelScroll")),w.event=function(t){t.each((function(){var t=_.of(this,arguments),r=h;ea?a.select(this).transition().each("start.zoom",(function(){h=this.__chart__||{x:0,y:0,k:1},E(t)})).tween("zoom:zoom",(function(){var n=p[0],i=p[1],o=e?e[0]:n/2,s=e?e[1]:i/2,l=a.interpolateZoom([(o-h.x)/h.k,(s-h.y)/h.k,n/h.k],[(o-r.x)/r.k,(s-r.y)/r.k,n/r.k]);return function(e){var r=l(e),i=n/r[2];this.__chart__=h={x:o-r[0]*i,y:s-r[1]*i,k:i},L(t)}})).each("interrupt.zoom",(function(){C(t)})).each("end.zoom",(function(){C(t)})):(this.__chart__=h,E(t),L(t),C(t))}))},w.translate=function(t){return arguments.length?(h={x:+t[0],y:+t[1],k:h.k},S(),w):[h.x,h.y]},w.scale=function(t){return arguments.length?(h={x:h.x,y:h.y,k:null},k(+t),S(),w):h.k},w.scaleExtent=function(t){return arguments.length?(d=null==t?jt:[+t[0],+t[1]],w):d},w.center=function(t){return arguments.length?(r=t&&[+t[0],+t[1]],w):r},w.size=function(t){return arguments.length?(p=t&&[+t[0],+t[1]],w):p},w.duration=function(t){return arguments.length?(v=+t,w):v},w.x=function(t){return arguments.length?(s=t,o=t.copy(),h={x:0,y:0,k:1},w):s},w.y=function(t){return arguments.length?(f=t,u=t.copy(),h={x:0,y:0,k:1},w):f},a.rebind(w,_,"on")};var Bt,Nt,jt=[0,1/0];function Ut(){}function Vt(t,e,r){return this instanceof Vt?(this.h=+t,this.s=+e,void(this.l=+r)):arguments.length<2?t instanceof Vt?new Vt(t.h,t.s,t.l):ue(""+t,ce,Vt):new Vt(t,e,r)}a.color=Ut,Ut.prototype.toString=function(){return this.rgb()+""},a.hsl=Vt;var Ht=Vt.prototype=new Ut;function qt(t,e,r){var n,i;function a(t){return Math.round(255*function(t){return t>360?t-=360:t<0&&(t+=360),t<60?n+(i-n)*t/60:t<180?i:t<240?n+(i-n)*(240-t)/60:n}(t))}return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)||e<0?0:e>1?1:e,n=2*(r=r<0?0:r>1?1:r)-(i=r<=.5?r*(1+e):r+e-r*e),new ie(a(t+120),a(t),a(t-120))}function Gt(t,e,r){return this instanceof Gt?(this.h=+t,this.c=+e,void(this.l=+r)):arguments.length<2?t instanceof Gt?new Gt(t.h,t.c,t.l):te(t instanceof Wt?t.l:(t=fe((t=a.rgb(t)).r,t.g,t.b)).l,t.a,t.b):new Gt(t,e,r)}Ht.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new Vt(this.h,this.s,this.l/t)},Ht.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new Vt(this.h,this.s,t*this.l)},Ht.rgb=function(){return qt(this.h,this.s,this.l)},a.hcl=Gt;var Zt=Gt.prototype=new Ut;function Yt(t,e,r){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new Wt(r,Math.cos(t*=It)*e,Math.sin(t)*e)}function Wt(t,e,r){return this instanceof Wt?(this.l=+t,this.a=+e,void(this.b=+r)):arguments.length<2?t instanceof Wt?new Wt(t.l,t.a,t.b):t instanceof Gt?Yt(t.h,t.c,t.l):fe((t=ie(t)).r,t.g,t.b):new Wt(t,e,r)}Zt.brighter=function(t){return new Gt(this.h,this.c,Math.min(100,this.l+Xt*(arguments.length?t:1)))},Zt.darker=function(t){return new Gt(this.h,this.c,Math.max(0,this.l-Xt*(arguments.length?t:1)))},Zt.rgb=function(){return Yt(this.h,this.c,this.l).rgb()},a.lab=Wt;var Xt=18,Jt=.95047,Kt=1.08883,$t=Wt.prototype=new Ut;function Qt(t,e,r){var n=(t+16)/116,i=n+e/500,a=n-r/200;return new ie(ne(3.2404542*(i=ee(i)*Jt)-1.5371385*(n=1*ee(n))-.4985314*(a=ee(a)*Kt)),ne(-.969266*i+1.8760108*n+.041556*a),ne(.0556434*i-.2040259*n+1.0572252*a))}function te(t,e,r){return t>0?new Gt(Math.atan2(r,e)*Dt,Math.sqrt(e*e+r*r),t):new Gt(NaN,NaN,t)}function ee(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function re(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function ne(t){return Math.round(255*(t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function ie(t,e,r){return this instanceof ie?(this.r=~~t,this.g=~~e,void(this.b=~~r)):arguments.length<2?t instanceof ie?new ie(t.r,t.g,t.b):ue(""+t,ie,qt):new ie(t,e,r)}function ae(t){return new ie(t>>16,t>>8&255,255&t)}function oe(t){return ae(t)+""}$t.brighter=function(t){return new Wt(Math.min(100,this.l+Xt*(arguments.length?t:1)),this.a,this.b)},$t.darker=function(t){return new Wt(Math.max(0,this.l-Xt*(arguments.length?t:1)),this.a,this.b)},$t.rgb=function(){return Qt(this.l,this.a,this.b)},a.rgb=ie;var se=ie.prototype=new Ut;function le(t){return t<16?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function ue(t,e,r){var n,i,a,o=0,s=0,l=0;if(n=/([a-z]+)\((.*)\)/.exec(t=t.toLowerCase()))switch(i=n[2].split(","),n[1]){case"hsl":return r(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return e(pe(i[0]),pe(i[1]),pe(i[2]))}return(a=de.get(t))?e(a.r,a.g,a.b):(null==t||"#"!==t.charAt(0)||isNaN(a=parseInt(t.slice(1),16))||(4===t.length?(o=(3840&a)>>4,o|=o>>4,s=240&a,s|=s>>4,l=15&a,l|=l<<4):7===t.length&&(o=(16711680&a)>>16,s=(65280&a)>>8,l=255&a)),e(o,s,l))}function ce(t,e,r){var n,i,a=Math.min(t/=255,e/=255,r/=255),o=Math.max(t,e,r),s=o-a,l=(o+a)/2;return s?(i=l<.5?s/(o+a):s/(2-o-a),n=t==o?(e-r)/s+(e<r?6:0):e==o?(r-t)/s+2:(t-e)/s+4,n*=60):(n=NaN,i=l>0&&l<1?0:n),new Vt(n,i,l)}function fe(t,e,r){var n=re((.4124564*(t=he(t))+.3575761*(e=he(e))+.1804375*(r=he(r)))/Jt),i=re((.2126729*t+.7151522*e+.072175*r)/1);return Wt(116*i-16,500*(n-i),200*(i-re((.0193339*t+.119192*e+.9503041*r)/Kt)))}function he(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function pe(t){var e=parseFloat(t);return"%"===t.charAt(t.length-1)?Math.round(2.55*e):e}se.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var e=this.r,r=this.g,n=this.b,i=30;return e||r||n?(e&&e<i&&(e=i),r&&r<i&&(r=i),n&&n<i&&(n=i),new ie(Math.min(255,e/t),Math.min(255,r/t),Math.min(255,n/t))):new ie(i,i,i)},se.darker=function(t){return new ie((t=Math.pow(.7,arguments.length?t:1))*this.r,t*this.g,t*this.b)},se.hsl=function(){return ce(this.r,this.g,this.b)},se.toString=function(){return"#"+le(this.r)+le(this.g)+le(this.b)};var de=a.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});function ve(t){return"function"==typeof t?t:function(){return t}}function ge(t){return function(e,r,n){return 2===arguments.length&&"function"==typeof r&&(n=r,r=null),ye(e,r,t,n)}}function ye(t,e,r,n){var i={},o=a.dispatch("beforesend","progress","load","error"),l={},u=new XMLHttpRequest,c=null;function f(){var t,e=u.status;if(!e&&function(t){var e=t.responseType;return e&&"text"!==e?t.response:t.responseText}(u)||e>=200&&e<300||304===e){try{t=r.call(i,u)}catch(t){return void o.error.call(i,t)}o.load.call(i,t)}else o.error.call(i,u)}return self.XDomainRequest&&!("withCredentials"in u)&&/^(http(s)?:)?\/\//.test(t)&&(u=new XDomainRequest),"onload"in u?u.onload=u.onerror=f:u.onreadystatechange=function(){u.readyState>3&&f()},u.onprogress=function(t){var e=a.event;a.event=t;try{o.progress.call(i,u)}finally{a.event=e}},i.header=function(t,e){return t=(t+"").toLowerCase(),arguments.length<2?l[t]:(null==e?delete l[t]:l[t]=e+"",i)},i.mimeType=function(t){return arguments.length?(e=null==t?null:t+"",i):e},i.responseType=function(t){return arguments.length?(c=t,i):c},i.response=function(t){return r=t,i},["get","post"].forEach((function(t){i[t]=function(){return i.send.apply(i,[t].concat(s(arguments)))}})),i.send=function(r,n,a){if(2===arguments.length&&"function"==typeof n&&(a=n,n=null),u.open(r,t,!0),null==e||"accept"in l||(l.accept=e+",*/*"),u.setRequestHeader)for(var s in l)u.setRequestHeader(s,l[s]);return null!=e&&u.overrideMimeType&&u.overrideMimeType(e),null!=c&&(u.responseType=c),null!=a&&i.on("error",a).on("load",(function(t){a(null,t)})),o.beforesend.call(i,u),u.send(null==n?null:n),i},i.abort=function(){return u.abort(),i},a.rebind(i,o,"on"),null==n?i:i.get(function(t){return 1===t.length?function(e,r){t(null==e?r:null)}:t}(n))}de.forEach((function(t,e){de.set(t,ae(e))})),a.functor=ve,a.xhr=ge(D),a.dsv=function(t,e){var r=new RegExp('["'+t+"\n]"),n=t.charCodeAt(0);function i(t,r,n){arguments.length<3&&(n=r,r=null);var i=ye(t,e,null==r?a:o(r),n);return i.row=function(t){return arguments.length?i.response(null==(r=t)?a:o(t)):r},i}function a(t){return i.parse(t.responseText)}function o(t){return function(e){return i.parse(e.responseText,t)}}function s(e){return e.map(l).join(t)}function l(t){return r.test(t)?'"'+t.replace(/\"/g,'""')+'"':t}return i.parse=function(t,e){var r;return i.parseRows(t,(function(t,n){if(r)return r(t,n-1);var i=function(e){for(var r={},n=t.length,i=0;i<n;++i)r[t[i]]=e[i];return r};r=e?function(t,r){return e(i(t),r)}:i}))},i.parseRows=function(t,e){var r,i,a={},o={},s=[],l=t.length,u=0,c=0;function f(){if(u>=l)return o;if(i)return i=!1,a;var e=u;if(34===t.charCodeAt(e)){for(var r=e;r++<l;)if(34===t.charCodeAt(r)){if(34!==t.charCodeAt(r+1))break;++r}return u=r+2,13===(s=t.charCodeAt(r+1))?(i=!0,10===t.charCodeAt(r+2)&&++u):10===s&&(i=!0),t.slice(e+1,r).replace(/""/g,'"')}for(;u<l;){var s,c=1;if(10===(s=t.charCodeAt(u++)))i=!0;else if(13===s)i=!0,10===t.charCodeAt(u)&&(++u,++c);else if(s!==n)continue;return t.slice(e,u-c)}return t.slice(e)}for(;(r=f())!==o;){for(var h=[];r!==a&&r!==o;)h.push(r),r=f();e&&null==(h=e(h,c++))||s.push(h)}return s},i.format=function(e){if(Array.isArray(e[0]))return i.formatRows(e);var r=new I,n=[];return e.forEach((function(t){for(var e in t)r.has(e)||n.push(r.add(e))})),[n.map(l).join(t)].concat(e.map((function(e){return n.map((function(t){return l(e[t])})).join(t)}))).join("\n")},i.formatRows=function(t){return t.map(s).join("\n")},i},a.csv=a.dsv(",","text/csv"),a.tsv=a.dsv("\t","text/tab-separated-values");var me,xe,be,_e,we=this[R(this,"requestAnimationFrame")]||function(t){setTimeout(t,17)};function Te(t,e,r){var n=arguments.length;n<2&&(e=0),n<3&&(r=Date.now());var i=r+e,a={c:t,t:i,n:null};return xe?xe.n=a:me=a,xe=a,be||(_e=clearTimeout(_e),be=1,we(ke)),a}function ke(){var t=Ae(),e=Me()-t;e>24?(isFinite(e)&&(clearTimeout(_e),_e=setTimeout(ke,e)),be=0):(be=1,we(ke))}function Ae(){for(var t=Date.now(),e=me;e;)t>=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function Me(){for(var t,e=me,r=1/0;e;)e.c?(e.t<r&&(r=e.t),e=(t=e).n):e=t?t.n=e.n:me=e.n;return xe=t,r}function Se(t){return t[0]}function Ee(t){return t[1]}function Le(t){for(var e,r,n,i=t.length,a=[0,1],o=2,s=2;s<i;s++){for(;o>1&&(e=t[a[o-2]],r=t[a[o-1]],n=t[s],(r[0]-e[0])*(n[1]-e[1])-(r[1]-e[1])*(n[0]-e[0])<=0);)--o;a[o++]=s}return a.slice(0,o)}function Ce(t,e){return t[0]-e[0]||t[1]-e[1]}a.timer=function(){Te.apply(this,arguments)},a.timer.flush=function(){Ae(),Me()},a.round=function(t,e){return e?Math.round(t*(e=Math.pow(10,e)))/e:Math.round(t)},a.geom={},a.geom.hull=function(t){var e=Se,r=Ee;if(arguments.length)return n(t);function n(t){if(t.length<3)return[];var n,i=ve(e),a=ve(r),o=t.length,s=[],l=[];for(n=0;n<o;n++)s.push([+i.call(this,t[n],n),+a.call(this,t[n],n),n]);for(s.sort(Ce),n=0;n<o;n++)l.push([s[n][0],-s[n][1]]);var u=Le(s),c=Le(l),f=c[0]===u[0],h=c[c.length-1]===u[u.length-1],p=[];for(n=u.length-1;n>=0;--n)p.push(t[s[u[n]][2]]);for(n=+f;n<c.length-h;++n)p.push(t[s[c[n]][2]]);return p}return n.x=function(t){return arguments.length?(e=t,n):e},n.y=function(t){return arguments.length?(r=t,n):r},n},a.geom.polygon=function(t){return G(t,Pe),t};var Pe=a.geom.polygon.prototype=[];function Oe(t,e,r){return(r[0]-e[0])*(t[1]-e[1])<(r[1]-e[1])*(t[0]-e[0])}function Ie(t,e,r,n){var i=t[0],a=r[0],o=e[0]-i,s=n[0]-a,l=t[1],u=r[1],c=e[1]-l,f=n[1]-u,h=(s*(l-u)-f*(i-a))/(f*o-s*c);return[i+h*o,l+h*c]}function De(t){var e=t[0],r=t[t.length-1];return!(e[0]-r[0]||e[1]-r[1])}Pe.area=function(){for(var t,e=-1,r=this.length,n=this[r-1],i=0;++e<r;)t=n,n=this[e],i+=t[1]*n[0]-t[0]*n[1];return.5*i},Pe.centroid=function(t){var e,r,n=-1,i=this.length,a=0,o=0,s=this[i-1];for(arguments.length||(t=-1/(6*this.area()));++n<i;)e=s,s=this[n],r=e[0]*s[1]-s[0]*e[1],a+=(e[0]+s[0])*r,o+=(e[1]+s[1])*r;return[a*t,o*t]},Pe.clip=function(t){for(var e,r,n,i,a,o,s=De(t),l=-1,u=this.length-De(this),c=this[u-1];++l<u;){for(e=t.slice(),t.length=0,i=this[l],a=e[(n=e.length-s)-1],r=-1;++r<n;)Oe(o=e[r],c,i)?(Oe(a,c,i)||t.push(Ie(a,o,c,i)),t.push(o)):Oe(a,c,i)&&t.push(Ie(a,o,c,i)),a=o;s&&t.push(t[0]),c=i}return t};var ze,Re,Fe,Be,Ne,je=[],Ue=[];function Ve(){or(this),this.edge=this.site=this.circle=null}function He(t){var e=je.pop()||new Ve;return e.site=t,e}function qe(t){Qe(t),Fe.remove(t),je.push(t),or(t)}function Ge(t){var e=t.circle,r=e.x,n=e.cy,i={x:r,y:n},a=t.P,o=t.N,s=[t];qe(t);for(var l=a;l.circle&&w(r-l.circle.x)<Et&&w(n-l.circle.cy)<Et;)a=l.P,s.unshift(l),qe(l),l=a;s.unshift(l),Qe(l);for(var u=o;u.circle&&w(r-u.circle.x)<Et&&w(n-u.circle.cy)<Et;)o=u.N,s.push(u),qe(u),u=o;s.push(u),Qe(u);var c,f=s.length;for(c=1;c<f;++c)u=s[c],l=s[c-1],nr(u.edge,l.site,u.site,i);l=s[0],(u=s[f-1]).edge=rr(l.site,u.site,null,i),$e(l),$e(u)}function Ze(t){for(var e,r,n,i,a=t.x,o=t.y,s=Fe._;s;)if((n=Ye(s,o)-a)>Et)s=s.L;else{if(!((i=a-We(s,o))>Et)){n>-Et?(e=s.P,r=s):i>-Et?(e=s,r=s.N):e=r=s;break}if(!s.R){e=s;break}s=s.R}var l=He(t);if(Fe.insert(e,l),e||r){if(e===r)return Qe(e),r=He(e.site),Fe.insert(l,r),l.edge=r.edge=rr(e.site,l.site),$e(e),void $e(r);if(r){Qe(e),Qe(r);var u=e.site,c=u.x,f=u.y,h=t.x-c,p=t.y-f,d=r.site,v=d.x-c,g=d.y-f,y=2*(h*g-p*v),m=h*h+p*p,x=v*v+g*g,b={x:(g*m-p*x)/y+c,y:(h*x-v*m)/y+f};nr(r.edge,u,d,b),l.edge=rr(u,t,null,b),r.edge=rr(t,d,null,b),$e(e),$e(r)}else l.edge=rr(e.site,l.site)}}function Ye(t,e){var r=t.site,n=r.x,i=r.y,a=i-e;if(!a)return n;var o=t.P;if(!o)return-1/0;var s=(r=o.site).x,l=r.y,u=l-e;if(!u)return s;var c=s-n,f=1/a-1/u,h=c/u;return f?(-h+Math.sqrt(h*h-2*f*(c*c/(-2*u)-l+u/2+i-a/2)))/f+n:(n+s)/2}function We(t,e){var r=t.N;if(r)return Ye(r,e);var n=t.site;return n.y===e?n.x:1/0}function Xe(t){this.site=t,this.edges=[]}function Je(t,e){return e.angle-t.angle}function Ke(){or(this),this.x=this.y=this.arc=this.site=this.cy=null}function $e(t){var e=t.P,r=t.N;if(e&&r){var n=e.site,i=t.site,a=r.site;if(n!==a){var o=i.x,s=i.y,l=n.x-o,u=n.y-s,c=a.x-o,f=2*(l*(g=a.y-s)-u*c);if(!(f>=-1e-12)){var h=l*l+u*u,p=c*c+g*g,d=(g*h-u*p)/f,v=(l*p-c*h)/f,g=v+s,y=Ue.pop()||new Ke;y.arc=t,y.site=i,y.x=d+o,y.y=g+Math.sqrt(d*d+v*v),y.cy=g,t.circle=y;for(var m=null,x=Ne._;x;)if(y.y<x.y||y.y===x.y&&y.x<=x.x){if(!x.L){m=x.P;break}x=x.L}else{if(!x.R){m=x;break}x=x.R}Ne.insert(m,y),m||(Be=y)}}}}function Qe(t){var e=t.circle;e&&(e.P||(Be=e.N),Ne.remove(e),Ue.push(e),or(e),t.circle=null)}function tr(t,e){var r=t.b;if(r)return!0;var n,i,a=t.a,o=e[0][0],s=e[1][0],l=e[0][1],u=e[1][1],c=t.l,f=t.r,h=c.x,p=c.y,d=f.x,v=f.y,g=(h+d)/2,y=(p+v)/2;if(v===p){if(g<o||g>=s)return;if(h>d){if(a){if(a.y>=u)return}else a={x:g,y:l};r={x:g,y:u}}else{if(a){if(a.y<l)return}else a={x:g,y:u};r={x:g,y:l}}}else if(i=y-(n=(h-d)/(v-p))*g,n<-1||n>1)if(h>d){if(a){if(a.y>=u)return}else a={x:(l-i)/n,y:l};r={x:(u-i)/n,y:u}}else{if(a){if(a.y<l)return}else a={x:(u-i)/n,y:u};r={x:(l-i)/n,y:l}}else if(p<v){if(a){if(a.x>=s)return}else a={x:o,y:n*o+i};r={x:s,y:n*s+i}}else{if(a){if(a.x<o)return}else a={x:s,y:n*s+i};r={x:o,y:n*o+i}}return t.a=a,t.b=r,!0}function er(t,e){this.l=t,this.r=e,this.a=this.b=null}function rr(t,e,r,n){var i=new er(t,e);return ze.push(i),r&&nr(i,t,e,r),n&&nr(i,e,t,n),Re[t.i].edges.push(new ir(i,t,e)),Re[e.i].edges.push(new ir(i,e,t)),i}function nr(t,e,r,n){t.a||t.b?t.l===r?t.b=n:t.a=n:(t.a=n,t.l=e,t.r=r)}function ir(t,e,r){var n=t.a,i=t.b;this.edge=t,this.site=e,this.angle=r?Math.atan2(r.y-e.y,r.x-e.x):t.l===e?Math.atan2(i.x-n.x,n.y-i.y):Math.atan2(n.x-i.x,i.y-n.y)}function ar(){this._=null}function or(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function sr(t,e){var r=e,n=e.R,i=r.U;i?i.L===r?i.L=n:i.R=n:t._=n,n.U=i,r.U=n,r.R=n.L,r.R&&(r.R.U=r),n.L=r}function lr(t,e){var r=e,n=e.L,i=r.U;i?i.L===r?i.L=n:i.R=n:t._=n,n.U=i,r.U=n,r.L=n.R,r.L&&(r.L.U=r),n.R=r}function ur(t){for(;t.L;)t=t.L;return t}function cr(t,e){var r,n,i,a=t.sort(fr).pop();for(ze=[],Re=new Array(t.length),Fe=new ar,Ne=new ar;;)if(i=Be,a&&(!i||a.y<i.y||a.y===i.y&&a.x<i.x))a.x===r&&a.y===n||(Re[a.i]=new Xe(a),Ze(a),r=a.x,n=a.y),a=t.pop();else{if(!i)break;Ge(i.arc)}e&&(function(t){for(var e,r,n,i,a,o=ze,s=(r=t[0][0],n=t[0][1],i=t[1][0],a=t[1][1],function(t){var e,o=t.a,s=t.b,l=o.x,u=o.y,c=0,f=1,h=s.x-l,p=s.y-u;if(e=r-l,h||!(e>0)){if(e/=h,h<0){if(e<c)return;e<f&&(f=e)}else if(h>0){if(e>f)return;e>c&&(c=e)}if(e=i-l,h||!(e<0)){if(e/=h,h<0){if(e>f)return;e>c&&(c=e)}else if(h>0){if(e<c)return;e<f&&(f=e)}if(e=n-u,p||!(e>0)){if(e/=p,p<0){if(e<c)return;e<f&&(f=e)}else if(p>0){if(e>f)return;e>c&&(c=e)}if(e=a-u,p||!(e<0)){if(e/=p,p<0){if(e>f)return;e>c&&(c=e)}else if(p>0){if(e<c)return;e<f&&(f=e)}return c>0&&(t.a={x:l+c*h,y:u+c*p}),f<1&&(t.b={x:l+f*h,y:u+f*p}),t}}}}}),l=o.length;l--;)(!tr(e=o[l],t)||!s(e)||w(e.a.x-e.b.x)<Et&&w(e.a.y-e.b.y)<Et)&&(e.a=e.b=null,o.splice(l,1))}(e),function(t){for(var e,r,n,i,a,o,s,l,u,c,f=t[0][0],h=t[1][0],p=t[0][1],d=t[1][1],v=Re,g=v.length;g--;)if((a=v[g])&&a.prepare())for(l=(s=a.edges).length,o=0;o<l;)n=(c=s[o].end()).x,i=c.y,e=(u=s[++o%l].start()).x,r=u.y,(w(n-e)>Et||w(i-r)>Et)&&(s.splice(o,0,new ir((y=a.site,m=c,x=w(n-f)<Et&&d-i>Et?{x:f,y:w(e-f)<Et?r:d}:w(i-d)<Et&&h-n>Et?{x:w(r-d)<Et?e:h,y:d}:w(n-h)<Et&&i-p>Et?{x:h,y:w(e-h)<Et?r:p}:w(i-p)<Et&&n-f>Et?{x:w(r-p)<Et?e:f,y:p}:null,b=void 0,(b=new er(y,null)).a=m,b.b=x,ze.push(b),b),a.site,null)),++l);var y,m,x,b}(e));var o={cells:Re,edges:ze};return Fe=Ne=ze=Re=null,o}function fr(t,e){return e.y-t.y||e.x-t.x}Xe.prototype.prepare=function(){for(var t,e=this.edges,r=e.length;r--;)(t=e[r].edge).b&&t.a||e.splice(r,1);return e.sort(Je),e.length},ir.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},ar.prototype={insert:function(t,e){var r,n,i;if(t){if(e.P=t,e.N=t.N,t.N&&(t.N.P=e),t.N=e,t.R){for(t=t.R;t.L;)t=t.L;t.L=e}else t.R=e;r=t}else this._?(t=ur(this._),e.P=null,e.N=t,t.P=t.L=e,r=t):(e.P=e.N=null,this._=e,r=null);for(e.L=e.R=null,e.U=r,e.C=!0,t=e;r&&r.C;)r===(n=r.U).L?(i=n.R)&&i.C?(r.C=i.C=!1,n.C=!0,t=n):(t===r.R&&(sr(this,r),r=(t=r).U),r.C=!1,n.C=!0,lr(this,n)):(i=n.L)&&i.C?(r.C=i.C=!1,n.C=!0,t=n):(t===r.L&&(lr(this,r),r=(t=r).U),r.C=!1,n.C=!0,sr(this,n)),r=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var e,r,n,i=t.U,a=t.L,o=t.R;if(r=a?o?ur(o):a:o,i?i.L===t?i.L=r:i.R=r:this._=r,a&&o?(n=r.C,r.C=t.C,r.L=a,a.U=r,r!==o?(i=r.U,r.U=t.U,t=r.R,i.L=t,r.R=o,o.U=r):(r.U=i,i=r,t=r.R)):(n=t.C,t=r),t&&(t.U=i),!n)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((e=i.R).C&&(e.C=!1,i.C=!0,sr(this,i),e=i.R),e.L&&e.L.C||e.R&&e.R.C){e.R&&e.R.C||(e.L.C=!1,e.C=!0,lr(this,e),e=i.R),e.C=i.C,i.C=e.R.C=!1,sr(this,i),t=this._;break}}else if((e=i.L).C&&(e.C=!1,i.C=!0,lr(this,i),e=i.L),e.L&&e.L.C||e.R&&e.R.C){e.L&&e.L.C||(e.R.C=!1,e.C=!0,sr(this,e),e=i.L),e.C=i.C,i.C=e.L.C=!1,lr(this,i),t=this._;break}e.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}},a.geom.voronoi=function(t){var e=Se,r=Ee,n=e,i=r,a=hr;if(t)return o(t);function o(t){var e=new Array(t.length),r=a[0][0],n=a[0][1],i=a[1][0],o=a[1][1];return cr(s(t),a).cells.forEach((function(a,s){var l=a.edges,u=a.site;(e[s]=l.length?l.map((function(t){var e=t.start();return[e.x,e.y]})):u.x>=r&&u.x<=i&&u.y>=n&&u.y<=o?[[r,o],[i,o],[i,n],[r,n]]:[]).point=t[s]})),e}function s(t){return t.map((function(t,e){return{x:Math.round(n(t,e)/Et)*Et,y:Math.round(i(t,e)/Et)*Et,i:e}}))}return o.links=function(t){return cr(s(t)).edges.filter((function(t){return t.l&&t.r})).map((function(e){return{source:t[e.l.i],target:t[e.r.i]}}))},o.triangles=function(t){var e=[];return cr(s(t)).cells.forEach((function(r,n){for(var i,a,o,s,l=r.site,u=r.edges.sort(Je),c=-1,f=u.length,h=u[f-1].edge,p=h.l===l?h.r:h.l;++c<f;)i=p,p=(h=u[c].edge).l===l?h.r:h.l,n<i.i&&n<p.i&&(o=i,s=p,((a=l).x-s.x)*(o.y-a.y)-(a.x-o.x)*(s.y-a.y)<0)&&e.push([t[n],t[i.i],t[p.i]])})),e},o.x=function(t){return arguments.length?(n=ve(e=t),o):e},o.y=function(t){return arguments.length?(i=ve(r=t),o):r},o.clipExtent=function(t){return arguments.length?(a=null==t?hr:t,o):a===hr?null:a},o.size=function(t){return arguments.length?o.clipExtent(t&&[[0,0],t]):a===hr?null:a&&a[1]},o};var hr=[[-1e6,-1e6],[1e6,1e6]];function pr(t){return t.x}function dr(t){return t.y}function vr(t,e,r,n,i,a){if(!t(e,r,n,i,a)){var o=.5*(r+i),s=.5*(n+a),l=e.nodes;l[0]&&vr(t,l[0],r,n,o,s),l[1]&&vr(t,l[1],o,n,i,s),l[2]&&vr(t,l[2],r,s,o,a),l[3]&&vr(t,l[3],o,s,i,a)}}function gr(t,e,r,n,i,a,o){var s,l=1/0;return function t(u,c,f,h,p){if(!(c>a||f>o||h<n||p<i)){if(d=u.point){var d,v=e-u.x,g=r-u.y,y=v*v+g*g;if(y<l){var m=Math.sqrt(l=y);n=e-m,i=r-m,a=e+m,o=r+m,s=d}}for(var x=u.nodes,b=.5*(c+h),_=.5*(f+p),w=(r>=_)<<1|e>=b,T=w+4;w<T;++w)if(u=x[3&w])switch(3&w){case 0:t(u,c,f,b,_);break;case 1:t(u,b,f,h,_);break;case 2:t(u,c,_,b,p);break;case 3:t(u,b,_,h,p)}}}(t,n,i,a,o),s}function yr(t,e){t=a.rgb(t),e=a.rgb(e);var r=t.r,n=t.g,i=t.b,o=e.r-r,s=e.g-n,l=e.b-i;return function(t){return"#"+le(Math.round(r+o*t))+le(Math.round(n+s*t))+le(Math.round(i+l*t))}}function mr(t,e){var r,n={},i={};for(r in t)r in e?n[r]=Tr(t[r],e[r]):i[r]=t[r];for(r in e)r in t||(i[r]=e[r]);return function(t){for(r in n)i[r]=n[r](t);return i}}function xr(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}function br(t,e){var r,n,i,a=_r.lastIndex=wr.lastIndex=0,o=-1,s=[],l=[];for(t+="",e+="";(r=_r.exec(t))&&(n=wr.exec(e));)(i=n.index)>a&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:xr(r,n)})),a=wr.lastIndex;return a<e.length&&(i=e.slice(a),s[o]?s[o]+=i:s[++o]=i),s.length<2?l[0]?(e=l[0].x,function(t){return e(t)+""}):function(){return e}:(e=l.length,function(t){for(var r,n=0;n<e;++n)s[(r=l[n]).i]=r.x(t);return s.join("")})}a.geom.delaunay=function(t){return a.geom.voronoi().triangles(t)},a.geom.quadtree=function(t,e,r,n,i){var a,o=Se,s=Ee;if(a=arguments.length)return o=pr,s=dr,3===a&&(i=r,n=e,r=e=0),l(t);function l(t){var l,u,c,f,h,p,d,v,g,y=ve(o),m=ve(s);if(null!=e)p=e,d=r,v=n,g=i;else if(v=g=-(p=d=1/0),u=[],c=[],h=t.length,a)for(f=0;f<h;++f)(l=t[f]).x<p&&(p=l.x),l.y<d&&(d=l.y),l.x>v&&(v=l.x),l.y>g&&(g=l.y),u.push(l.x),c.push(l.y);else for(f=0;f<h;++f){var x=+y(l=t[f],f),b=+m(l,f);x<p&&(p=x),b<d&&(d=b),x>v&&(v=x),b>g&&(g=b),u.push(x),c.push(b)}var _=v-p,T=g-d;function k(t,e,r,n,i,a,o,s){if(!isNaN(r)&&!isNaN(n))if(t.leaf){var l=t.x,u=t.y;if(null!=l)if(w(l-r)+w(u-n)<.01)A(t,e,r,n,i,a,o,s);else{var c=t.point;t.x=t.y=t.point=null,A(t,c,l,u,i,a,o,s),A(t,e,r,n,i,a,o,s)}else t.x=r,t.y=n,t.point=e}else A(t,e,r,n,i,a,o,s)}function A(t,e,r,n,i,a,o,s){var l=.5*(i+o),u=.5*(a+s),c=r>=l,f=n>=u,h=f<<1|c;t.leaf=!1,c?i=l:o=l,f?a=u:s=u,k(t=t.nodes[h]||(t.nodes[h]={leaf:!0,nodes:[],point:null,x:null,y:null}),e,r,n,i,a,o,s)}_>T?g=d+_:v=p+T;var M={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){k(M,t,+y(t,++f),+m(t,f),p,d,v,g)},visit:function(t){vr(t,M,p,d,v,g)},find:function(t){return gr(M,t[0],t[1],p,d,v,g)}};if(f=-1,null==e){for(;++f<h;)k(M,t[f],u[f],c[f],p,d,v,g);--f}else t.forEach(M.add);return u=c=t=l=null,M}return l.x=function(t){return arguments.length?(o=t,l):o},l.y=function(t){return arguments.length?(s=t,l):s},l.extent=function(t){return arguments.length?(null==t?e=r=n=i=null:(e=+t[0][0],r=+t[0][1],n=+t[1][0],i=+t[1][1]),l):null==e?null:[[e,r],[n,i]]},l.size=function(t){return arguments.length?(null==t?e=r=n=i=null:(e=r=0,n=+t[0],i=+t[1]),l):null==e?null:[n-e,i-r]},l},a.interpolateRgb=yr,a.interpolateObject=mr,a.interpolateNumber=xr,a.interpolateString=br;var _r=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,wr=new RegExp(_r.source,"g");function Tr(t,e){for(var r,n=a.interpolators.length;--n>=0&&!(r=a.interpolators[n](t,e)););return r}function kr(t,e){var r,n=[],i=[],a=t.length,o=e.length,s=Math.min(t.length,e.length);for(r=0;r<s;++r)n.push(Tr(t[r],e[r]));for(;r<a;++r)i[r]=t[r];for(;r<o;++r)i[r]=e[r];return function(t){for(r=0;r<s;++r)i[r]=n[r](t);return i}}a.interpolate=Tr,a.interpolators=[function(t,e){var r=typeof e;return("string"===r?de.has(e.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(e)?yr:br:e instanceof Ut?yr:Array.isArray(e)?kr:"object"===r&&isNaN(e)?mr:xr)(t,e)}],a.interpolateArray=kr;var Ar=function(){return D},Mr=a.map({linear:Ar,poly:function(t){return function(e){return Math.pow(e,t)}},quad:function(){return Pr},cubic:function(){return Or},sin:function(){return Dr},exp:function(){return zr},circle:function(){return Rr},elastic:function(t,e){var r;return arguments.length<2&&(e=.45),arguments.length?r=e/Ct*Math.asin(1/t):(t=1,r=e/4),function(n){return 1+t*Math.pow(2,-10*n)*Math.sin((n-r)*Ct/e)}},back:function(t){return t||(t=1.70158),function(e){return e*e*((t+1)*e-t)}},bounce:function(){return Fr}}),Sr=a.map({in:D,out:Lr,"in-out":Cr,"out-in":function(t){return Cr(Lr(t))}});function Er(t){return function(e){return e<=0?0:e>=1?1:t(e)}}function Lr(t){return function(e){return 1-t(1-e)}}function Cr(t){return function(e){return.5*(e<.5?t(2*e):2-t(2-2*e))}}function Pr(t){return t*t}function Or(t){return t*t*t}function Ir(t){if(t<=0)return 0;if(t>=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function Dr(t){return 1-Math.cos(t*Ot)}function zr(t){return Math.pow(2,10*(t-1))}function Rr(t){return 1-Math.sqrt(1-t*t)}function Fr(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function Br(t,e){return e-=t,function(r){return Math.round(t+e*r)}}function Nr(t){var e,r,n,i=[t.a,t.b],a=[t.c,t.d],o=Ur(i),s=jr(i,a),l=Ur(((e=a)[0]+=(n=-s)*(r=i)[0],e[1]+=n*r[1],e))||0;i[0]*a[1]<a[0]*i[1]&&(i[0]*=-1,i[1]*=-1,o*=-1,s*=-1),this.rotate=(o?Math.atan2(i[1],i[0]):Math.atan2(-a[0],a[1]))*Dt,this.translate=[t.e,t.f],this.scale=[o,l],this.skew=l?Math.atan2(s,l)*Dt:0}function jr(t,e){return t[0]*e[0]+t[1]*e[1]}function Ur(t){var e=Math.sqrt(jr(t,t));return e&&(t[0]/=e,t[1]/=e),e}a.ease=function(t){var e=t.indexOf("-"),r=e>=0?t.slice(0,e):t,n=e>=0?t.slice(e+1):"in";return r=Mr.get(r)||Ar,Er((n=Sr.get(n)||D)(r.apply(null,o.call(arguments,1))))},a.interpolateHcl=function(t,e){t=a.hcl(t),e=a.hcl(e);var r=t.h,n=t.c,i=t.l,o=e.h-r,s=e.c-n,l=e.l-i;return isNaN(s)&&(s=0,n=isNaN(n)?e.c:n),isNaN(o)?(o=0,r=isNaN(r)?e.h:r):o>180?o-=360:o<-180&&(o+=360),function(t){return Yt(r+o*t,n+s*t,i+l*t)+""}},a.interpolateHsl=function(t,e){t=a.hsl(t),e=a.hsl(e);var r=t.h,n=t.s,i=t.l,o=e.h-r,s=e.s-n,l=e.l-i;return isNaN(s)&&(s=0,n=isNaN(n)?e.s:n),isNaN(o)?(o=0,r=isNaN(r)?e.h:r):o>180?o-=360:o<-180&&(o+=360),function(t){return qt(r+o*t,n+s*t,i+l*t)+""}},a.interpolateLab=function(t,e){t=a.lab(t),e=a.lab(e);var r=t.l,n=t.a,i=t.b,o=e.l-r,s=e.a-n,l=e.b-i;return function(t){return Qt(r+o*t,n+s*t,i+l*t)+""}},a.interpolateRound=Br,a.transform=function(t){var e=l.createElementNS(a.ns.prefix.svg,"g");return(a.transform=function(t){if(null!=t){e.setAttribute("transform",t);var r=e.transform.baseVal.consolidate()}return new Nr(r?r.matrix:Vr)})(t)},Nr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var Vr={a:1,b:0,c:0,d:1,e:0,f:0};function Hr(t){return t.length?t.pop()+",":""}function qr(t,e){var r=[],n=[];return t=a.transform(t),e=a.transform(e),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push("translate(",null,",",null,")");n.push({i:i-4,x:xr(t[0],e[0])},{i:i-2,x:xr(t[1],e[1])})}else(e[0]||e[1])&&r.push("translate("+e+")")}(t.translate,e.translate,r,n),function(t,e,r,n){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),n.push({i:r.push(Hr(r)+"rotate(",null,")")-2,x:xr(t,e)})):e&&r.push(Hr(r)+"rotate("+e+")")}(t.rotate,e.rotate,r,n),function(t,e,r,n){t!==e?n.push({i:r.push(Hr(r)+"skewX(",null,")")-2,x:xr(t,e)}):e&&r.push(Hr(r)+"skewX("+e+")")}(t.skew,e.skew,r,n),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push(Hr(r)+"scale(",null,",",null,")");n.push({i:i-4,x:xr(t[0],e[0])},{i:i-2,x:xr(t[1],e[1])})}else 1===e[0]&&1===e[1]||r.push(Hr(r)+"scale("+e+")")}(t.scale,e.scale,r,n),t=e=null,function(t){for(var e,i=-1,a=n.length;++i<a;)r[(e=n[i]).i]=e.x(t);return r.join("")}}function Gr(t,e){return e=(e-=t=+t)||1/e,function(r){return(r-t)/e}}function Zr(t,e){return e=(e-=t=+t)||1/e,function(r){return Math.max(0,Math.min(1,(r-t)/e))}}function Yr(t){for(var e=t.source,r=t.target,n=function(t,e){if(t===e)return t;for(var r=Wr(t),n=Wr(e),i=r.pop(),a=n.pop(),o=null;i===a;)o=i,i=r.pop(),a=n.pop();return o}(e,r),i=[e];e!==n;)e=e.parent,i.push(e);for(var a=i.length;r!==n;)i.splice(a,0,r),r=r.parent;return i}function Wr(t){for(var e=[],r=t.parent;null!=r;)e.push(t),t=r,r=r.parent;return e.push(t),e}function Xr(t){t.fixed|=2}function Jr(t){t.fixed&=-7}function Kr(t){t.fixed|=4,t.px=t.x,t.py=t.y}function $r(t){t.fixed&=-5}function Qr(t,e,r){var n=0,i=0;if(t.charge=0,!t.leaf)for(var a,o=t.nodes,s=o.length,l=-1;++l<s;)null!=(a=o[l])&&(Qr(a,e,r),t.charge+=a.charge,n+=a.charge*a.cx,i+=a.charge*a.cy);if(t.point){t.leaf||(t.point.x+=Math.random()-.5,t.point.y+=Math.random()-.5);var u=e*r[t.point.index];t.charge+=t.pointCharge=u,n+=u*t.point.x,i+=u*t.point.y}t.cx=n/t.charge,t.cy=i/t.charge}a.interpolateTransform=qr,a.layout={},a.layout.bundle=function(){return function(t){for(var e=[],r=-1,n=t.length;++r<n;)e.push(Yr(t[r]));return e}},a.layout.chord=function(){var t,e,r,n,i,o,s,l={},u=0;function c(){var l,c,h,p,d,v={},g=[],y=a.range(n),m=[];for(t=[],e=[],l=0,p=-1;++p<n;){for(c=0,d=-1;++d<n;)c+=r[p][d];g.push(c),m.push(a.range(n)),l+=c}for(i&&y.sort((function(t,e){return i(g[t],g[e])})),o&&m.forEach((function(t,e){t.sort((function(t,n){return o(r[e][t],r[e][n])}))})),l=(Ct-u*n)/l,c=0,p=-1;++p<n;){for(h=c,d=-1;++d<n;){var x=y[p],b=m[x][d],_=r[x][b],w=c,T=c+=_*l;v[x+"-"+b]={index:x,subindex:b,startAngle:w,endAngle:T,value:_}}e[x]={index:x,startAngle:h,endAngle:c,value:g[x]},c+=u}for(p=-1;++p<n;)for(d=p-1;++d<n;){var k=v[p+"-"+d],A=v[d+"-"+p];(k.value||A.value)&&t.push(k.value<A.value?{source:A,target:k}:{source:k,target:A})}s&&f()}function f(){t.sort((function(t,e){return s((t.source.value+t.target.value)/2,(e.source.value+e.target.value)/2)}))}return l.matrix=function(i){return arguments.length?(n=(r=i)&&r.length,t=e=null,l):r},l.padding=function(r){return arguments.length?(u=r,t=e=null,l):u},l.sortGroups=function(r){return arguments.length?(i=r,t=e=null,l):i},l.sortSubgroups=function(e){return arguments.length?(o=e,t=null,l):o},l.sortChords=function(e){return arguments.length?(s=e,t&&f(),l):s},l.chords=function(){return t||c(),t},l.groups=function(){return e||c(),e},l},a.layout.force=function(){var t,e,r,n,i,o,s={},l=a.dispatch("start","tick","end"),u=[1,1],c=.9,f=tn,h=en,p=-30,d=rn,v=.1,g=.64,y=[],m=[];function x(t){return function(e,r,n,i){if(e.point!==t){var a=e.cx-t.x,o=e.cy-t.y,s=i-r,l=a*a+o*o;if(s*s/g<l){if(l<d){var u=e.charge/l;t.px-=a*u,t.py-=o*u}return!0}e.point&&l&&l<d&&(u=e.pointCharge/l,t.px-=a*u,t.py-=o*u)}return!e.charge}}function b(t){t.px=a.event.x,t.py=a.event.y,s.resume()}return s.tick=function(){if((r*=.99)<.005)return t=null,l.end({type:"end",alpha:r=0}),!0;var e,s,f,h,d,g,b,_,w,T=y.length,k=m.length;for(s=0;s<k;++s)h=(f=m[s]).source,(g=(_=(d=f.target).x-h.x)*_+(w=d.y-h.y)*w)&&(_*=g=r*i[s]*((g=Math.sqrt(g))-n[s])/g,w*=g,d.x-=_*(b=h.weight+d.weight?h.weight/(h.weight+d.weight):.5),d.y-=w*b,h.x+=_*(b=1-b),h.y+=w*b);if((b=r*v)&&(_=u[0]/2,w=u[1]/2,s=-1,b))for(;++s<T;)(f=y[s]).x+=(_-f.x)*b,f.y+=(w-f.y)*b;if(p)for(Qr(e=a.geom.quadtree(y),r,o),s=-1;++s<T;)(f=y[s]).fixed||e.visit(x(f));for(s=-1;++s<T;)(f=y[s]).fixed?(f.x=f.px,f.y=f.py):(f.x-=(f.px-(f.px=f.x))*c,f.y-=(f.py-(f.py=f.y))*c);l.tick({type:"tick",alpha:r})},s.nodes=function(t){return arguments.length?(y=t,s):y},s.links=function(t){return arguments.length?(m=t,s):m},s.size=function(t){return arguments.length?(u=t,s):u},s.linkDistance=function(t){return arguments.length?(f="function"==typeof t?t:+t,s):f},s.distance=s.linkDistance,s.linkStrength=function(t){return arguments.length?(h="function"==typeof t?t:+t,s):h},s.friction=function(t){return arguments.length?(c=+t,s):c},s.charge=function(t){return arguments.length?(p="function"==typeof t?t:+t,s):p},s.chargeDistance=function(t){return arguments.length?(d=t*t,s):Math.sqrt(d)},s.gravity=function(t){return arguments.length?(v=+t,s):v},s.theta=function(t){return arguments.length?(g=t*t,s):Math.sqrt(g)},s.alpha=function(e){return arguments.length?(e=+e,r?e>0?r=e:(t.c=null,t.t=NaN,t=null,l.end({type:"end",alpha:r=0})):e>0&&(l.start({type:"start",alpha:r=e}),t=Te(s.tick)),s):r},s.start=function(){var t,e,r,a=y.length,l=m.length,c=u[0],d=u[1];for(t=0;t<a;++t)(r=y[t]).index=t,r.weight=0;for(t=0;t<l;++t)"number"==typeof(r=m[t]).source&&(r.source=y[r.source]),"number"==typeof r.target&&(r.target=y[r.target]),++r.source.weight,++r.target.weight;for(t=0;t<a;++t)r=y[t],isNaN(r.x)&&(r.x=v("x",c)),isNaN(r.y)&&(r.y=v("y",d)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(n=[],"function"==typeof f)for(t=0;t<l;++t)n[t]=+f.call(this,m[t],t);else for(t=0;t<l;++t)n[t]=f;if(i=[],"function"==typeof h)for(t=0;t<l;++t)i[t]=+h.call(this,m[t],t);else for(t=0;t<l;++t)i[t]=h;if(o=[],"function"==typeof p)for(t=0;t<a;++t)o[t]=+p.call(this,y[t],t);else for(t=0;t<a;++t)o[t]=p;function v(r,n){if(!e){for(e=new Array(a),u=0;u<a;++u)e[u]=[];for(u=0;u<l;++u){var i=m[u];e[i.source.index].push(i.target),e[i.target.index].push(i.source)}}for(var o,s=e[t],u=-1,c=s.length;++u<c;)if(!isNaN(o=s[u][r]))return o;return Math.random()*n}return s.resume()},s.resume=function(){return s.alpha(.1)},s.stop=function(){return s.alpha(0)},s.drag=function(){if(e||(e=a.behavior.drag().origin(D).on("dragstart.force",Xr).on("drag.force",b).on("dragend.force",Jr)),!arguments.length)return e;this.on("mouseover.force",Kr).on("mouseout.force",$r).call(e)},a.rebind(s,l,"on")};var tn=20,en=1,rn=1/0;function nn(t,e){return a.rebind(t,e,"sort","children","value"),t.nodes=t,t.links=cn,t}function an(t,e){for(var r=[t];null!=(t=r.pop());)if(e(t),(i=t.children)&&(n=i.length))for(var n,i;--n>=0;)r.push(i[n])}function on(t,e){for(var r=[t],n=[];null!=(t=r.pop());)if(n.push(t),(a=t.children)&&(i=a.length))for(var i,a,o=-1;++o<i;)r.push(a[o]);for(;null!=(t=n.pop());)e(t)}function sn(t){return t.children}function ln(t){return t.value}function un(t,e){return e.value-t.value}function cn(t){return a.merge(t.map((function(t){return(t.children||[]).map((function(e){return{source:t,target:e}}))})))}a.layout.hierarchy=function(){var t=un,e=sn,r=ln;function n(i){var a,o=[i],s=[];for(i.depth=0;null!=(a=o.pop());)if(s.push(a),(u=e.call(n,a,a.depth))&&(l=u.length)){for(var l,u,c;--l>=0;)o.push(c=u[l]),c.parent=a,c.depth=a.depth+1;r&&(a.value=0),a.children=u}else r&&(a.value=+r.call(n,a,a.depth)||0),delete a.children;return on(i,(function(e){var n,i;t&&(n=e.children)&&n.sort(t),r&&(i=e.parent)&&(i.value+=e.value)})),s}return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(an(t,(function(t){t.children&&(t.value=0)})),on(t,(function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)}))),t},n},a.layout.partition=function(){var t=a.layout.hierarchy(),e=[1,1];function r(t,e,n,i){var a=t.children;if(t.x=e,t.y=t.depth*i,t.dx=n,t.dy=i,a&&(o=a.length)){var o,s,l,u=-1;for(n=t.value?n/t.value:0;++u<o;)r(s=a[u],e,l=s.value*n,i),e+=l}}function n(t){var e=t.children,r=0;if(e&&(i=e.length))for(var i,a=-1;++a<i;)r=Math.max(r,n(e[a]));return 1+r}function i(i,a){var o=t.call(this,i,a);return r(o[0],0,e[0],e[1]/n(o[0])),o}return i.size=function(t){return arguments.length?(e=t,i):e},nn(i,t)},a.layout.pie=function(){var t=Number,e=fn,r=0,n=Ct,i=0;function o(s){var l,u=s.length,c=s.map((function(e,r){return+t.call(o,e,r)})),f=+("function"==typeof r?r.apply(this,arguments):r),h=("function"==typeof n?n.apply(this,arguments):n)-f,p=Math.min(Math.abs(h)/u,+("function"==typeof i?i.apply(this,arguments):i)),d=p*(h<0?-1:1),v=a.sum(c),g=v?(h-u*d)/v:0,y=a.range(u),m=[];return null!=e&&y.sort(e===fn?function(t,e){return c[e]-c[t]}:function(t,r){return e(s[t],s[r])}),y.forEach((function(t){m[t]={data:s[t],value:l=c[t],startAngle:f,endAngle:f+=l*g+d,padAngle:p}})),m}return o.value=function(e){return arguments.length?(t=e,o):t},o.sort=function(t){return arguments.length?(e=t,o):e},o.startAngle=function(t){return arguments.length?(r=t,o):r},o.endAngle=function(t){return arguments.length?(n=t,o):n},o.padAngle=function(t){return arguments.length?(i=t,o):i},o};var fn={};function hn(t){return t.x}function pn(t){return t.y}function dn(t,e,r){t.y0=e,t.y=r}a.layout.stack=function(){var t=D,e=yn,r=mn,n=dn,i=hn,o=pn;function s(l,u){if(!(p=l.length))return l;var c=l.map((function(e,r){return t.call(s,e,r)})),f=c.map((function(t){return t.map((function(t,e){return[i.call(s,t,e),o.call(s,t,e)]}))})),h=e.call(s,f,u);c=a.permute(c,h),f=a.permute(f,h);var p,d,v,g,y=r.call(s,f,u),m=c[0].length;for(v=0;v<m;++v)for(n.call(s,c[0][v],g=y[v],f[0][v][1]),d=1;d<p;++d)n.call(s,c[d][v],g+=f[d-1][v][1],f[d][v][1]);return l}return s.values=function(e){return arguments.length?(t=e,s):t},s.order=function(t){return arguments.length?(e="function"==typeof t?t:vn.get(t)||yn,s):e},s.offset=function(t){return arguments.length?(r="function"==typeof t?t:gn.get(t)||mn,s):r},s.x=function(t){return arguments.length?(i=t,s):i},s.y=function(t){return arguments.length?(o=t,s):o},s.out=function(t){return arguments.length?(n=t,s):n},s};var vn=a.map({"inside-out":function(t){var e,r,n=t.length,i=t.map(xn),o=t.map(bn),s=a.range(n).sort((function(t,e){return i[t]-i[e]})),l=0,u=0,c=[],f=[];for(e=0;e<n;++e)r=s[e],l<u?(l+=o[r],c.push(r)):(u+=o[r],f.push(r));return f.reverse().concat(c)},reverse:function(t){return a.range(t.length).reverse()},default:yn}),gn=a.map({silhouette:function(t){var e,r,n,i=t.length,a=t[0].length,o=[],s=0,l=[];for(r=0;r<a;++r){for(e=0,n=0;e<i;e++)n+=t[e][r][1];n>s&&(s=n),o.push(n)}for(r=0;r<a;++r)l[r]=(s-o[r])/2;return l},wiggle:function(t){var e,r,n,i,a,o,s,l,u,c=t.length,f=t[0],h=f.length,p=[];for(p[0]=l=u=0,r=1;r<h;++r){for(e=0,i=0;e<c;++e)i+=t[e][r][1];for(e=0,a=0,s=f[r][0]-f[r-1][0];e<c;++e){for(n=0,o=(t[e][r][1]-t[e][r-1][1])/(2*s);n<e;++n)o+=(t[n][r][1]-t[n][r-1][1])/s;a+=o*t[e][r][1]}p[r]=l-=i?a/i*s:0,l<u&&(u=l)}for(r=0;r<h;++r)p[r]-=u;return p},expand:function(t){var e,r,n,i=t.length,a=t[0].length,o=1/i,s=[];for(r=0;r<a;++r){for(e=0,n=0;e<i;e++)n+=t[e][r][1];if(n)for(e=0;e<i;e++)t[e][r][1]/=n;else for(e=0;e<i;e++)t[e][r][1]=o}for(r=0;r<a;++r)s[r]=0;return s},zero:mn});function yn(t){return a.range(t.length)}function mn(t){for(var e=-1,r=t[0].length,n=[];++e<r;)n[e]=0;return n}function xn(t){for(var e,r=1,n=0,i=t[0][1],a=t.length;r<a;++r)(e=t[r][1])>i&&(n=r,i=e);return n}function bn(t){return t.reduce(_n,0)}function _n(t,e){return t+e[1]}function wn(t,e){return Tn(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function Tn(t,e){for(var r=-1,n=+t[0],i=(t[1]-n)/e,a=[];++r<=e;)a[r]=i*r+n;return a}function kn(t){return[a.min(t),a.max(t)]}function An(t,e){return t.value-e.value}function Mn(t,e){var r=t._pack_next;t._pack_next=e,e._pack_prev=t,e._pack_next=r,r._pack_prev=e}function Sn(t,e){t._pack_next=e,e._pack_prev=t}function En(t,e){var r=e.x-t.x,n=e.y-t.y,i=t.r+e.r;return.999*i*i>r*r+n*n}function Ln(t){if((e=t.children)&&(l=e.length)){var e,r,n,i,a,o,s,l,u=1/0,c=-1/0,f=1/0,h=-1/0;if(e.forEach(Cn),(r=e[0]).x=-r.r,r.y=0,x(r),l>1&&((n=e[1]).x=n.r,n.y=0,x(n),l>2))for(In(r,n,i=e[2]),x(i),Mn(r,i),r._pack_prev=i,Mn(i,n),n=r._pack_next,a=3;a<l;a++){In(r,n,i=e[a]);var p=0,d=1,v=1;for(o=n._pack_next;o!==n;o=o._pack_next,d++)if(En(o,i)){p=1;break}if(1==p)for(s=r._pack_prev;s!==o._pack_prev&&!En(s,i);s=s._pack_prev,v++);p?(d<v||d==v&&n.r<r.r?Sn(r,n=o):Sn(r=s,n),a--):(Mn(r,i),n=i,x(i))}var g=(u+c)/2,y=(f+h)/2,m=0;for(a=0;a<l;a++)(i=e[a]).x-=g,i.y-=y,m=Math.max(m,i.r+Math.sqrt(i.x*i.x+i.y*i.y));t.r=m,e.forEach(Pn)}function x(t){u=Math.min(t.x-t.r,u),c=Math.max(t.x+t.r,c),f=Math.min(t.y-t.r,f),h=Math.max(t.y+t.r,h)}}function Cn(t){t._pack_next=t._pack_prev=t}function Pn(t){delete t._pack_next,delete t._pack_prev}function On(t,e,r,n){var i=t.children;if(t.x=e+=n*t.x,t.y=r+=n*t.y,t.r*=n,i)for(var a=-1,o=i.length;++a<o;)On(i[a],e,r,n)}function In(t,e,r){var n=t.r+r.r,i=e.x-t.x,a=e.y-t.y;if(n&&(i||a)){var o=e.r+r.r,s=i*i+a*a,l=.5+((n*=n)-(o*=o))/(2*s),u=Math.sqrt(Math.max(0,2*o*(n+s)-(n-=s)*n-o*o))/(2*s);r.x=t.x+l*i+u*a,r.y=t.y+l*a-u*i}else r.x=t.x+n,r.y=t.y}function Dn(t,e){return t.parent==e.parent?1:2}function zn(t){var e=t.children;return e.length?e[0]:t.t}function Rn(t){var e,r=t.children;return(e=r.length)?r[e-1]:t.t}function Fn(t,e,r){var n=r/(e.i-t.i);e.c-=n,e.s+=r,t.c+=n,e.z+=r,e.m+=r}function Bn(t,e,r){return t.a.parent===e.parent?t.a:r}function Nn(t){var e=t.children;return e&&e.length?Nn(e[0]):t}function jn(t){var e,r=t.children;return r&&(e=r.length)?jn(r[e-1]):t}function Un(t){return{x:t.x,y:t.y,dx:t.dx,dy:t.dy}}function Vn(t,e){var r=t.x+e[3],n=t.y+e[0],i=t.dx-e[1]-e[3],a=t.dy-e[0]-e[2];return i<0&&(r+=i/2,i=0),a<0&&(n+=a/2,a=0),{x:r,y:n,dx:i,dy:a}}function Hn(t){var e=t[0],r=t[t.length-1];return e<r?[e,r]:[r,e]}function qn(t){return t.rangeExtent?t.rangeExtent():Hn(t.range())}function Gn(t,e,r,n){var i=r(t[0],t[1]),a=n(e[0],e[1]);return function(t){return a(i(t))}}function Zn(t,e){var r,n=0,i=t.length-1,a=t[n],o=t[i];return o<a&&(r=n,n=i,i=r,r=a,a=o,o=r),t[n]=e.floor(a),t[i]=e.ceil(o),t}function Yn(t){return t?{floor:function(e){return Math.floor(e/t)*t},ceil:function(e){return Math.ceil(e/t)*t}}:Wn}a.layout.histogram=function(){var t=!0,e=Number,r=kn,n=wn;function i(i,o){for(var s,l,u=[],c=i.map(e,this),f=r.call(this,c,o),h=n.call(this,f,c,o),p=(o=-1,c.length),d=h.length-1,v=t?1:1/p;++o<d;)(s=u[o]=[]).dx=h[o+1]-(s.x=h[o]),s.y=0;if(d>0)for(o=-1;++o<p;)(l=c[o])>=f[0]&&l<=f[1]&&((s=u[a.bisect(h,l,1,d)-1]).y+=v,s.push(i[o]));return u}return i.value=function(t){return arguments.length?(e=t,i):e},i.range=function(t){return arguments.length?(r=ve(t),i):r},i.bins=function(t){return arguments.length?(n="number"==typeof t?function(e){return Tn(e,t)}:ve(t),i):n},i.frequency=function(e){return arguments.length?(t=!!e,i):t},i},a.layout.pack=function(){var t,e=a.layout.hierarchy().sort(An),r=0,n=[1,1];function i(i,a){var o=e.call(this,i,a),s=o[0],l=n[0],u=n[1],c=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(s.x=s.y=0,on(s,(function(t){t.r=+c(t.value)})),on(s,Ln),r){var f=r*(t?1:Math.max(2*s.r/l,2*s.r/u))/2;on(s,(function(t){t.r+=f})),on(s,Ln),on(s,(function(t){t.r-=f}))}return On(s,l/2,u/2,t?1:1/Math.max(2*s.r/l,2*s.r/u)),o}return i.size=function(t){return arguments.length?(n=t,i):n},i.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,i):t},i.padding=function(t){return arguments.length?(r=+t,i):r},nn(i,e)},a.layout.tree=function(){var t=a.layout.hierarchy().sort(null).value(null),e=Dn,r=[1,1],n=null;function i(i,a){var u=t.call(this,i,a),c=u[0],f=function(t){for(var e,r={A:null,children:[t]},n=[r];null!=(e=n.pop());)for(var i,a=e.children,o=0,s=a.length;o<s;++o)n.push((a[o]=i={_:a[o],parent:e,children:(i=a[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return r.children[0]}(c);if(on(f,o),f.parent.m=-f.z,an(f,s),n)an(c,l);else{var h=c,p=c,d=c;an(c,(function(t){t.x<h.x&&(h=t),t.x>p.x&&(p=t),t.depth>d.depth&&(d=t)}));var v=e(h,p)/2-h.x,g=r[0]/(p.x+e(p,h)/2+v),y=r[1]/(d.depth||1);an(c,(function(t){t.x=(t.x+v)*g,t.y=t.depth*y}))}return u}function o(t){var r=t.children,n=t.parent.children,i=t.i?n[t.i-1]:null;if(r.length){!function(t){for(var e,r=0,n=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(t);var a=(r[0].z+r[r.length-1].z)/2;i?(t.z=i.z+e(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+e(t._,i._));t.parent.A=function(t,r,n){if(r){for(var i,a=t,o=t,s=r,l=a.parent.children[0],u=a.m,c=o.m,f=s.m,h=l.m;s=Rn(s),a=zn(a),s&&a;)l=zn(l),(o=Rn(o)).a=t,(i=s.z+f-a.z-u+e(s._,a._))>0&&(Fn(Bn(s,t,n),t,i),u+=i,c+=i),f+=s.m,u+=a.m,h+=l.m,c+=o.m;s&&!Rn(o)&&(o.t=s,o.m+=f-c),a&&!zn(l)&&(l.t=a,l.m+=u-h,n=t)}return n}(t,i,t.parent.A||n[0])}function s(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function l(t){t.x*=r[0],t.y=t.depth*r[1]}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(t){return arguments.length?(n=null==(r=t)?l:null,i):n?null:r},i.nodeSize=function(t){return arguments.length?(n=null==(r=t)?null:l,i):n?r:null},nn(i,t)},a.layout.cluster=function(){var t=a.layout.hierarchy().sort(null).value(null),e=Dn,r=[1,1],n=!1;function i(i,o){var s,l=t.call(this,i,o),u=l[0],c=0;on(u,(function(t){var r=t.children;r&&r.length?(t.x=function(t){return t.reduce((function(t,e){return t+e.x}),0)/t.length}(r),t.y=function(t){return 1+a.max(t,(function(t){return t.y}))}(r)):(t.x=s?c+=e(t,s):0,t.y=0,s=t)}));var f=Nn(u),h=jn(u),p=f.x-e(f,h)/2,d=h.x+e(h,f)/2;return on(u,n?function(t){t.x=(t.x-u.x)*r[0],t.y=(u.y-t.y)*r[1]}:function(t){t.x=(t.x-p)/(d-p)*r[0],t.y=(1-(u.y?t.y/u.y:1))*r[1]}),l}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(t){return arguments.length?(n=null==(r=t),i):n?null:r},i.nodeSize=function(t){return arguments.length?(n=null!=(r=t),i):n?r:null},nn(i,t)},a.layout.treemap=function(){var t,e=a.layout.hierarchy(),r=Math.round,n=[1,1],i=null,o=Un,s=!1,l="squarify",u=.5*(1+Math.sqrt(5));function c(t,e){for(var r,n,i=-1,a=t.length;++i<a;)n=(r=t[i]).value*(e<0?0:e),r.area=isNaN(n)||n<=0?0:n}function f(t){var e=t.children;if(e&&e.length){var r,n,i,a=o(t),s=[],u=e.slice(),h=1/0,v="slice"===l?a.dx:"dice"===l?a.dy:"slice-dice"===l?1&t.depth?a.dy:a.dx:Math.min(a.dx,a.dy);for(c(u,a.dx*a.dy/t.value),s.area=0;(i=u.length)>0;)s.push(r=u[i-1]),s.area+=r.area,"squarify"!==l||(n=p(s,v))<=h?(u.pop(),h=n):(s.area-=s.pop().area,d(s,v,a,!1),v=Math.min(a.dx,a.dy),s.length=s.area=0,h=1/0);s.length&&(d(s,v,a,!0),s.length=s.area=0),e.forEach(f)}}function h(t){var e=t.children;if(e&&e.length){var r,n=o(t),i=e.slice(),a=[];for(c(i,n.dx*n.dy/t.value),a.area=0;r=i.pop();)a.push(r),a.area+=r.area,null!=r.z&&(d(a,r.z?n.dx:n.dy,n,!i.length),a.length=a.area=0);e.forEach(h)}}function p(t,e){for(var r,n=t.area,i=0,a=1/0,o=-1,s=t.length;++o<s;)(r=t[o].area)&&(r<a&&(a=r),r>i&&(i=r));return e*=e,(n*=n)?Math.max(e*i*u/n,n/(e*a*u)):1/0}function d(t,e,n,i){var a,o=-1,s=t.length,l=n.x,u=n.y,c=e?r(t.area/e):0;if(e==n.dx){for((i||c>n.dy)&&(c=n.dy);++o<s;)(a=t[o]).x=l,a.y=u,a.dy=c,l+=a.dx=Math.min(n.x+n.dx-l,c?r(a.area/c):0);a.z=!0,a.dx+=n.x+n.dx-l,n.y+=c,n.dy-=c}else{for((i||c>n.dx)&&(c=n.dx);++o<s;)(a=t[o]).x=l,a.y=u,a.dx=c,u+=a.dy=Math.min(n.y+n.dy-u,c?r(a.area/c):0);a.z=!1,a.dy+=n.y+n.dy-u,n.x+=c,n.dx-=c}}function v(r){var i=t||e(r),a=i[0];return a.x=a.y=0,a.value?(a.dx=n[0],a.dy=n[1]):a.dx=a.dy=0,t&&e.revalue(a),c([a],a.dx*a.dy/a.value),(t?h:f)(a),s&&(t=i),i}return v.size=function(t){return arguments.length?(n=t,v):n},v.padding=function(t){if(!arguments.length)return i;function e(e){var r=t.call(v,e,e.depth);return null==r?Un(e):Vn(e,"number"==typeof r?[r,r,r,r]:r)}function r(e){return Vn(e,t)}var n;return o=null==(i=t)?Un:"function"==(n=typeof t)?e:"number"===n?(t=[t,t,t,t],r):r,v},v.round=function(t){return arguments.length?(r=t?Math.round:Number,v):r!=Number},v.sticky=function(e){return arguments.length?(s=e,t=null,v):s},v.ratio=function(t){return arguments.length?(u=t,v):u},v.mode=function(t){return arguments.length?(l=t+"",v):l},nn(v,e)},a.random={normal:function(t,e){var r=arguments.length;return r<2&&(e=1),r<1&&(t=0),function(){var r,n,i;do{i=(r=2*Math.random()-1)*r+(n=2*Math.random()-1)*n}while(!i||i>1);return t+e*r*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var t=a.random.normal.apply(a,arguments);return function(){return Math.exp(t())}},bates:function(t){var e=a.random.irwinHall(t);return function(){return e()/t}},irwinHall:function(t){return function(){for(var e=0,r=0;r<t;r++)e+=Math.random();return e}}},a.scale={};var Wn={floor:D,ceil:D};function Xn(t,e,r,n){var i=[],o=[],s=0,l=Math.min(t.length,e.length)-1;for(t[l]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++s<=l;)i.push(r(t[s-1],t[s])),o.push(n(e[s-1],e[s]));return function(e){var r=a.bisect(t,e,1,l)-1;return o[r](i[r](e))}}function Jn(t,e,r,n){var i,a;function o(){var o=Math.min(t.length,e.length)>2?Xn:Gn,l=n?Zr:Gr;return i=o(t,e,l,r),a=o(e,t,l,Tr),s}function s(t){return i(t)}return s.invert=function(t){return a(t)},s.domain=function(e){return arguments.length?(t=e.map(Number),o()):t},s.range=function(t){return arguments.length?(e=t,o()):e},s.rangeRound=function(t){return s.range(t).interpolate(Br)},s.clamp=function(t){return arguments.length?(n=t,o()):n},s.interpolate=function(t){return arguments.length?(r=t,o()):r},s.ticks=function(e){return ti(t,e)},s.tickFormat=function(e,r){return d3_scale_linearTickFormat(t,e,r)},s.nice=function(e){return $n(t,e),o()},s.copy=function(){return Jn(t,e,r,n)},o()}function Kn(t,e){return a.rebind(t,e,"range","rangeRound","interpolate","clamp")}function $n(t,e){return Zn(t,Yn(Qn(t,e)[2])),Zn(t,Yn(Qn(t,e)[2])),t}function Qn(t,e){null==e&&(e=10);var r=Hn(t),n=r[1]-r[0],i=Math.pow(10,Math.floor(Math.log(n/e)/Math.LN10)),a=e/n*i;return a<=.15?i*=10:a<=.35?i*=5:a<=.75&&(i*=2),r[0]=Math.ceil(r[0]/i)*i,r[1]=Math.floor(r[1]/i)*i+.5*i,r[2]=i,r}function ti(t,e){return a.range.apply(a,Qn(t,e))}function ei(t,e,r,n){function i(t){return(r?Math.log(t<0?0:t):-Math.log(t>0?0:-t))/Math.log(e)}function a(t){return r?Math.pow(e,t):-Math.pow(e,-t)}function o(e){return t(i(e))}return o.invert=function(e){return a(t.invert(e))},o.domain=function(e){return arguments.length?(r=e[0]>=0,t.domain((n=e.map(Number)).map(i)),o):n},o.base=function(r){return arguments.length?(e=+r,t.domain(n.map(i)),o):e},o.nice=function(){var e=Zn(n.map(i),r?Math:ri);return t.domain(e),n=e.map(a),o},o.ticks=function(){var t=Hn(n),o=[],s=t[0],l=t[1],u=Math.floor(i(s)),c=Math.ceil(i(l)),f=e%1?2:e;if(isFinite(c-u)){if(r){for(;u<c;u++)for(var h=1;h<f;h++)o.push(a(u)*h);o.push(a(u))}else for(o.push(a(u));u++<c;)for(h=f-1;h>0;h--)o.push(a(u)*h);for(u=0;o[u]<s;u++);for(c=o.length;o[c-1]>l;c--);o=o.slice(u,c)}return o},o.copy=function(){return ei(t.copy(),e,r,n)},Kn(o,t)}a.scale.linear=function(){return Jn([0,1],[0,1],Tr,!1)},a.scale.log=function(){return ei(a.scale.linear().domain([0,1]),10,!0,[1,10])};var ri={floor:function(t){return-Math.ceil(-t)},ceil:function(t){return-Math.floor(-t)}};function ni(t,e,r){var n=ii(e),i=ii(1/e);function a(e){return t(n(e))}return a.invert=function(e){return i(t.invert(e))},a.domain=function(e){return arguments.length?(t.domain((r=e.map(Number)).map(n)),a):r},a.ticks=function(t){return ti(r,t)},a.tickFormat=function(t,e){return d3_scale_linearTickFormat(r,t,e)},a.nice=function(t){return a.domain($n(r,t))},a.exponent=function(o){return arguments.length?(n=ii(e=o),i=ii(1/e),t.domain(r.map(n)),a):e},a.copy=function(){return ni(t.copy(),e,r)},Kn(a,t)}function ii(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function ai(t,e){var r,n,i;function o(i){return n[((r.get(i)||("range"===e.t?r.set(i,t.push(i)):NaN))-1)%n.length]}function s(e,r){return a.range(t.length).map((function(t){return e+r*t}))}return o.domain=function(n){if(!arguments.length)return t;t=[],r=new A;for(var i,a=-1,s=n.length;++a<s;)r.has(i=n[a])||r.set(i,t.push(i));return o[e.t].apply(o,e.a)},o.range=function(t){return arguments.length?(n=t,i=0,e={t:"range",a:arguments},o):n},o.rangePoints=function(r,a){arguments.length<2&&(a=0);var l=r[0],u=r[1],c=t.length<2?(l=(l+u)/2,0):(u-l)/(t.length-1+a);return n=s(l+c*a/2,c),i=0,e={t:"rangePoints",a:arguments},o},o.rangeRoundPoints=function(r,a){arguments.length<2&&(a=0);var l=r[0],u=r[1],c=t.length<2?(l=u=Math.round((l+u)/2),0):(u-l)/(t.length-1+a)|0;return n=s(l+Math.round(c*a/2+(u-l-(t.length-1+a)*c)/2),c),i=0,e={t:"rangeRoundPoints",a:arguments},o},o.rangeBands=function(r,a,l){arguments.length<2&&(a=0),arguments.length<3&&(l=a);var u=r[1]<r[0],c=r[u-0],f=r[1-u],h=(f-c)/(t.length-a+2*l);return n=s(c+h*l,h),u&&n.reverse(),i=h*(1-a),e={t:"rangeBands",a:arguments},o},o.rangeRoundBands=function(r,a,l){arguments.length<2&&(a=0),arguments.length<3&&(l=a);var u=r[1]<r[0],c=r[u-0],f=r[1-u],h=Math.floor((f-c)/(t.length-a+2*l));return n=s(c+Math.round((f-c-(t.length-a)*h)/2),h),u&&n.reverse(),i=Math.round(h*(1-a)),e={t:"rangeRoundBands",a:arguments},o},o.rangeBand=function(){return i},o.rangeExtent=function(){return Hn(e.a[0])},o.copy=function(){return ai(t,e)},o.domain(t)}a.scale.pow=function(){return ni(a.scale.linear(),1,[0,1])},a.scale.sqrt=function(){return a.scale.pow().exponent(.5)},a.scale.ordinal=function(){return ai([],{t:"range",a:[[]]})},a.scale.category10=function(){return a.scale.ordinal().range(oi)},a.scale.category20=function(){return a.scale.ordinal().range(si)},a.scale.category20b=function(){return a.scale.ordinal().range(li)},a.scale.category20c=function(){return a.scale.ordinal().range(ui)};var oi=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(oe),si=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(oe),li=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(oe),ui=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(oe);function ci(t,e){var r;function n(){var n=0,o=e.length;for(r=[];++n<o;)r[n-1]=a.quantile(t,n/o);return i}function i(t){if(!isNaN(t=+t))return e[a.bisect(r,t)]}return i.domain=function(e){return arguments.length?(t=e.map(y).filter(m).sort(g),n()):t},i.range=function(t){return arguments.length?(e=t,n()):e},i.quantiles=function(){return r},i.invertExtent=function(n){return(n=e.indexOf(n))<0?[NaN,NaN]:[n>0?r[n-1]:t[0],n<r.length?r[n]:t[t.length-1]]},i.copy=function(){return ci(t,e)},n()}function fi(t,e,r){var n,i;function a(e){return r[Math.max(0,Math.min(i,Math.floor(n*(e-t))))]}function o(){return n=r.length/(e-t),i=r.length-1,a}return a.domain=function(r){return arguments.length?(t=+r[0],e=+r[r.length-1],o()):[t,e]},a.range=function(t){return arguments.length?(r=t,o()):r},a.invertExtent=function(e){return[e=(e=r.indexOf(e))<0?NaN:e/n+t,e+1/n]},a.copy=function(){return fi(t,e,r)},o()}function hi(t,e){function r(r){if(r<=r)return e[a.bisect(t,r)]}return r.domain=function(e){return arguments.length?(t=e,r):t},r.range=function(t){return arguments.length?(e=t,r):e},r.invertExtent=function(r){return r=e.indexOf(r),[t[r-1],t[r]]},r.copy=function(){return hi(t,e)},r}function pi(t){function e(t){return+t}return e.invert=e,e.domain=e.range=function(r){return arguments.length?(t=r.map(e),e):t},e.ticks=function(e){return ti(t,e)},e.tickFormat=function(e,r){return d3_scale_linearTickFormat(t,e,r)},e.copy=function(){return pi(t)},e}function di(){return 0}a.scale.quantile=function(){return ci([],[])},a.scale.quantize=function(){return fi(0,1,[0,1])},a.scale.threshold=function(){return hi([.5],[0,1])},a.scale.identity=function(){return pi([0,1])},a.svg={},a.svg.arc=function(){var t=gi,e=yi,r=di,n=vi,i=mi,a=xi,o=bi;function s(){var s=Math.max(0,+t.apply(this,arguments)),u=Math.max(0,+e.apply(this,arguments)),c=i.apply(this,arguments)-Ot,f=a.apply(this,arguments)-Ot,h=Math.abs(f-c),p=c>f?0:1;if(u<s&&(d=u,u=s,s=d),h>=Pt)return l(u,p)+(s?l(s,1-p):"")+"Z";var d,v,g,y,m,x,b,_,w,T,k,A,M=0,S=0,E=[];if((y=(+o.apply(this,arguments)||0)/2)&&(g=n===vi?Math.sqrt(s*s+u*u):+n.apply(this,arguments),p||(S*=-1),u&&(S=zt(g/u*Math.sin(y))),s&&(M=zt(g/s*Math.sin(y)))),u){m=u*Math.cos(c+S),x=u*Math.sin(c+S),b=u*Math.cos(f-S),_=u*Math.sin(f-S);var L=Math.abs(f-c-2*S)<=Lt?0:1;if(S&&_i(m,x,b,_)===p^L){var C=(c+f)/2;m=u*Math.cos(C),x=u*Math.sin(C),b=_=null}}else m=x=0;if(s){w=s*Math.cos(f-M),T=s*Math.sin(f-M),k=s*Math.cos(c+M),A=s*Math.sin(c+M);var P=Math.abs(c-f+2*M)<=Lt?0:1;if(M&&_i(w,T,k,A)===1-p^P){var O=(c+f)/2;w=s*Math.cos(O),T=s*Math.sin(O),k=A=null}}else w=T=0;if(h>Et&&(d=Math.min(Math.abs(u-s)/2,+r.apply(this,arguments)))>.001){v=s<u^p?0:1;var I=d,D=d;if(h<Lt){var z=null==k?[w,T]:null==b?[m,x]:Ie([m,x],[k,A],[b,_],[w,T]),R=m-z[0],F=x-z[1],B=b-z[0],N=_-z[1],j=1/Math.sin(Math.acos((R*B+F*N)/(Math.sqrt(R*R+F*F)*Math.sqrt(B*B+N*N)))/2),U=Math.sqrt(z[0]*z[0]+z[1]*z[1]);D=Math.min(d,(s-U)/(j-1)),I=Math.min(d,(u-U)/(j+1))}if(null!=b){var V=wi(null==k?[w,T]:[k,A],[m,x],u,I,p),H=wi([b,_],[w,T],u,I,p);d===I?E.push("M",V[0],"A",I,",",I," 0 0,",v," ",V[1],"A",u,",",u," 0 ",1-p^_i(V[1][0],V[1][1],H[1][0],H[1][1]),",",p," ",H[1],"A",I,",",I," 0 0,",v," ",H[0]):E.push("M",V[0],"A",I,",",I," 0 1,",v," ",H[0])}else E.push("M",m,",",x);if(null!=k){var q=wi([m,x],[k,A],s,-D,p),G=wi([w,T],null==b?[m,x]:[b,_],s,-D,p);d===D?E.push("L",G[0],"A",D,",",D," 0 0,",v," ",G[1],"A",s,",",s," 0 ",p^_i(G[1][0],G[1][1],q[1][0],q[1][1]),",",1-p," ",q[1],"A",D,",",D," 0 0,",v," ",q[0]):E.push("L",G[0],"A",D,",",D," 0 0,",v," ",q[0])}else E.push("L",w,",",T)}else E.push("M",m,",",x),null!=b&&E.push("A",u,",",u," 0 ",L,",",p," ",b,",",_),E.push("L",w,",",T),null!=k&&E.push("A",s,",",s," 0 ",P,",",1-p," ",k,",",A);return E.push("Z"),E.join("")}function l(t,e){return"M0,"+t+"A"+t+","+t+" 0 1,"+e+" 0,"+-t+"A"+t+","+t+" 0 1,"+e+" 0,"+t}return s.innerRadius=function(e){return arguments.length?(t=ve(e),s):t},s.outerRadius=function(t){return arguments.length?(e=ve(t),s):e},s.cornerRadius=function(t){return arguments.length?(r=ve(t),s):r},s.padRadius=function(t){return arguments.length?(n=t==vi?vi:ve(t),s):n},s.startAngle=function(t){return arguments.length?(i=ve(t),s):i},s.endAngle=function(t){return arguments.length?(a=ve(t),s):a},s.padAngle=function(t){return arguments.length?(o=ve(t),s):o},s.centroid=function(){var r=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,n=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-Ot;return[Math.cos(n)*r,Math.sin(n)*r]},s};var vi="auto";function gi(t){return t.innerRadius}function yi(t){return t.outerRadius}function mi(t){return t.startAngle}function xi(t){return t.endAngle}function bi(t){return t&&t.padAngle}function _i(t,e,r,n){return(t-r)*e-(e-n)*t>0?0:1}function wi(t,e,r,n,i){var a=t[0]-e[0],o=t[1]-e[1],s=(i?n:-n)/Math.sqrt(a*a+o*o),l=s*o,u=-s*a,c=t[0]+l,f=t[1]+u,h=e[0]+l,p=e[1]+u,d=(c+h)/2,v=(f+p)/2,g=h-c,y=p-f,m=g*g+y*y,x=r-n,b=c*p-h*f,_=(y<0?-1:1)*Math.sqrt(Math.max(0,x*x*m-b*b)),w=(b*y-g*_)/m,T=(-b*g-y*_)/m,k=(b*y+g*_)/m,A=(-b*g+y*_)/m,M=w-d,S=T-v,E=k-d,L=A-v;return M*M+S*S>E*E+L*L&&(w=k,T=A),[[w-l,T-u],[w*r/x,T*r/x]]}function Ti(){return!0}function ki(t){var e=Se,r=Ee,n=Ti,i=Mi,a=i.key,o=.7;function s(a){var s,l=[],u=[],c=-1,f=a.length,h=ve(e),p=ve(r);function d(){l.push("M",i(t(u),o))}for(;++c<f;)n.call(this,s=a[c],c)?u.push([+h.call(this,s,c),+p.call(this,s,c)]):u.length&&(d(),u=[]);return u.length&&d(),l.length?l.join(""):null}return s.x=function(t){return arguments.length?(e=t,s):e},s.y=function(t){return arguments.length?(r=t,s):r},s.defined=function(t){return arguments.length?(n=t,s):n},s.interpolate=function(t){return arguments.length?(a="function"==typeof t?i=t:(i=Ai.get(t)||Mi).key,s):a},s.tension=function(t){return arguments.length?(o=t,s):o},s}a.svg.line=function(){return ki(D)};var Ai=a.map({linear:Mi,"linear-closed":Si,step:function(t){for(var e=0,r=t.length,n=t[0],i=[n[0],",",n[1]];++e<r;)i.push("H",(n[0]+(n=t[e])[0])/2,"V",n[1]);return r>1&&i.push("H",n[0]),i.join("")},"step-before":Ei,"step-after":Li,basis:Oi,"basis-open":function(t){if(t.length<4)return Mi(t);for(var e,r=[],n=-1,i=t.length,a=[0],o=[0];++n<3;)e=t[n],a.push(e[0]),o.push(e[1]);for(r.push(Ii(Ri,a)+","+Ii(Ri,o)),--n;++n<i;)e=t[n],a.shift(),a.push(e[0]),o.shift(),o.push(e[1]),Fi(r,a,o);return r.join("")},"basis-closed":function(t){for(var e,r,n=-1,i=t.length,a=i+4,o=[],s=[];++n<4;)r=t[n%i],o.push(r[0]),s.push(r[1]);for(e=[Ii(Ri,o),",",Ii(Ri,s)],--n;++n<a;)r=t[n%i],o.shift(),o.push(r[0]),s.shift(),s.push(r[1]),Fi(e,o,s);return e.join("")},bundle:function(t,e){var r=t.length-1;if(r)for(var n,i,a=t[0][0],o=t[0][1],s=t[r][0]-a,l=t[r][1]-o,u=-1;++u<=r;)i=u/r,(n=t[u])[0]=e*n[0]+(1-e)*(a+i*s),n[1]=e*n[1]+(1-e)*(o+i*l);return Oi(t)},cardinal:function(t,e){return t.length<3?Mi(t):t[0]+Ci(t,Pi(t,e))},"cardinal-open":function(t,e){return t.length<4?Mi(t):t[1]+Ci(t.slice(1,-1),Pi(t,e))},"cardinal-closed":function(t,e){return t.length<3?Si(t):t[0]+Ci((t.push(t[0]),t),Pi([t[t.length-2]].concat(t,[t[1]]),e))},monotone:function(t){return t.length<3?Mi(t):t[0]+Ci(t,function(t){for(var e,r,n,i,a=[],o=function(t){for(var e=0,r=t.length-1,n=[],i=t[0],a=t[1],o=n[0]=Bi(i,a);++e<r;)n[e]=(o+(o=Bi(i=a,a=t[e+1])))/2;return n[e]=o,n}(t),s=-1,l=t.length-1;++s<l;)e=Bi(t[s],t[s+1]),w(e)<Et?o[s]=o[s+1]=0:(i=(r=o[s]/e)*r+(n=o[s+1]/e)*n)>9&&(i=3*e/Math.sqrt(i),o[s]=i*r,o[s+1]=i*n);for(s=-1;++s<=l;)i=(t[Math.min(l,s+1)][0]-t[Math.max(0,s-1)][0])/(6*(1+o[s]*o[s])),a.push([i||0,o[s]*i||0]);return a}(t))}});function Mi(t){return t.length>1?t.join("L"):t+"Z"}function Si(t){return t.join("L")+"Z"}function Ei(t){for(var e=0,r=t.length,n=t[0],i=[n[0],",",n[1]];++e<r;)i.push("V",(n=t[e])[1],"H",n[0]);return i.join("")}function Li(t){for(var e=0,r=t.length,n=t[0],i=[n[0],",",n[1]];++e<r;)i.push("H",(n=t[e])[0],"V",n[1]);return i.join("")}function Ci(t,e){if(e.length<1||t.length!=e.length&&t.length!=e.length+2)return Mi(t);var r=t.length!=e.length,n="",i=t[0],a=t[1],o=e[0],s=o,l=1;if(r&&(n+="Q"+(a[0]-2*o[0]/3)+","+(a[1]-2*o[1]/3)+","+a[0]+","+a[1],i=t[1],l=2),e.length>1){s=e[1],a=t[l],l++,n+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(a[0]-s[0])+","+(a[1]-s[1])+","+a[0]+","+a[1];for(var u=2;u<e.length;u++,l++)a=t[l],s=e[u],n+="S"+(a[0]-s[0])+","+(a[1]-s[1])+","+a[0]+","+a[1]}if(r){var c=t[l];n+="Q"+(a[0]+2*s[0]/3)+","+(a[1]+2*s[1]/3)+","+c[0]+","+c[1]}return n}function Pi(t,e){for(var r,n=[],i=(1-e)/2,a=t[0],o=t[1],s=1,l=t.length;++s<l;)r=a,a=o,o=t[s],n.push([i*(o[0]-r[0]),i*(o[1]-r[1])]);return n}function Oi(t){if(t.length<3)return Mi(t);var e=1,r=t.length,n=t[0],i=n[0],a=n[1],o=[i,i,i,(n=t[1])[0]],s=[a,a,a,n[1]],l=[i,",",a,"L",Ii(Ri,o),",",Ii(Ri,s)];for(t.push(t[r-1]);++e<=r;)n=t[e],o.shift(),o.push(n[0]),s.shift(),s.push(n[1]),Fi(l,o,s);return t.pop(),l.push("L",n),l.join("")}function Ii(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}Ai.forEach((function(t,e){e.key=t,e.closed=/-closed$/.test(t)}));var Di=[0,2/3,1/3,0],zi=[0,1/3,2/3,0],Ri=[0,1/6,2/3,1/6];function Fi(t,e,r){t.push("C",Ii(Di,e),",",Ii(Di,r),",",Ii(zi,e),",",Ii(zi,r),",",Ii(Ri,e),",",Ii(Ri,r))}function Bi(t,e){return(e[1]-t[1])/(e[0]-t[0])}function Ni(t){for(var e,r,n,i=-1,a=t.length;++i<a;)r=(e=t[i])[0],n=e[1]-Ot,e[0]=r*Math.cos(n),e[1]=r*Math.sin(n);return t}function ji(t){var e=Se,r=Se,n=0,i=Ee,a=Ti,o=Mi,s=o.key,l=o,u="L",c=.7;function f(s){var f,h,p,d=[],v=[],g=[],y=-1,m=s.length,x=ve(e),b=ve(n),_=e===r?function(){return h}:ve(r),w=n===i?function(){return p}:ve(i);function T(){d.push("M",o(t(g),c),u,l(t(v.reverse()),c),"Z")}for(;++y<m;)a.call(this,f=s[y],y)?(v.push([h=+x.call(this,f,y),p=+b.call(this,f,y)]),g.push([+_.call(this,f,y),+w.call(this,f,y)])):v.length&&(T(),v=[],g=[]);return v.length&&T(),d.length?d.join(""):null}return f.x=function(t){return arguments.length?(e=r=t,f):r},f.x0=function(t){return arguments.length?(e=t,f):e},f.x1=function(t){return arguments.length?(r=t,f):r},f.y=function(t){return arguments.length?(n=i=t,f):i},f.y0=function(t){return arguments.length?(n=t,f):n},f.y1=function(t){return arguments.length?(i=t,f):i},f.defined=function(t){return arguments.length?(a=t,f):a},f.interpolate=function(t){return arguments.length?(s="function"==typeof t?o=t:(o=Ai.get(t)||Mi).key,l=o.reverse||o,u=o.closed?"M":"L",f):s},f.tension=function(t){return arguments.length?(c=t,f):c},f}function Ui(t){return t.source}function Vi(t){return t.target}function Hi(t){return t.radius}function qi(t){return[t.x,t.y]}function Gi(t){return function(){var e=t.apply(this,arguments),r=e[0],n=e[1]-Ot;return[r*Math.cos(n),r*Math.sin(n)]}}function Zi(){return 64}function Yi(){return"circle"}function Wi(t){var e=Math.sqrt(t/Lt);return"M0,"+e+"A"+e+","+e+" 0 1,1 0,"+-e+"A"+e+","+e+" 0 1,1 0,"+e+"Z"}a.svg.line.radial=function(){var t=ki(Ni);return t.radius=t.x,delete t.x,t.angle=t.y,delete t.y,t},Ei.reverse=Li,Li.reverse=Ei,a.svg.area=function(){return ji(D)},a.svg.area.radial=function(){var t=ji(Ni);return t.radius=t.x,delete t.x,t.innerRadius=t.x0,delete t.x0,t.outerRadius=t.x1,delete t.x1,t.angle=t.y,delete t.y,t.startAngle=t.y0,delete t.y0,t.endAngle=t.y1,delete t.y1,t},a.svg.chord=function(){var t=Ui,e=Vi,r=Hi,n=mi,i=xi;function a(r,n){var i,a,u=o(this,t,r,n),c=o(this,e,r,n);return"M"+u.p0+s(u.r,u.p1,u.a1-u.a0)+(a=c,((i=u).a0==a.a0&&i.a1==a.a1?l(u.r,u.p1,u.r,u.p0):l(u.r,u.p1,c.r,c.p0)+s(c.r,c.p1,c.a1-c.a0)+l(c.r,c.p1,u.r,u.p0))+"Z")}function o(t,e,a,o){var s=e.call(t,a,o),l=r.call(t,s,o),u=n.call(t,s,o)-Ot,c=i.call(t,s,o)-Ot;return{r:l,a0:u,a1:c,p0:[l*Math.cos(u),l*Math.sin(u)],p1:[l*Math.cos(c),l*Math.sin(c)]}}function s(t,e,r){return"A"+t+","+t+" 0 "+ +(r>Lt)+",1 "+e}function l(t,e,r,n){return"Q 0,0 "+n}return a.radius=function(t){return arguments.length?(r=ve(t),a):r},a.source=function(e){return arguments.length?(t=ve(e),a):t},a.target=function(t){return arguments.length?(e=ve(t),a):e},a.startAngle=function(t){return arguments.length?(n=ve(t),a):n},a.endAngle=function(t){return arguments.length?(i=ve(t),a):i},a},a.svg.diagonal=function(){var t=Ui,e=Vi,r=qi;function n(n,i){var a=t.call(this,n,i),o=e.call(this,n,i),s=(a.y+o.y)/2,l=[a,{x:a.x,y:s},{x:o.x,y:s},o];return"M"+(l=l.map(r))[0]+"C"+l[1]+" "+l[2]+" "+l[3]}return n.source=function(e){return arguments.length?(t=ve(e),n):t},n.target=function(t){return arguments.length?(e=ve(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},a.svg.diagonal.radial=function(){var t=a.svg.diagonal(),e=qi,r=t.projection;return t.projection=function(t){return arguments.length?r(Gi(e=t)):e},t},a.svg.symbol=function(){var t=Yi,e=Zi;function r(r,n){return(Xi.get(t.call(this,r,n))||Wi)(e.call(this,r,n))}return r.type=function(e){return arguments.length?(t=ve(e),r):t},r.size=function(t){return arguments.length?(e=ve(t),r):e},r};var Xi=a.map({circle:Wi,cross:function(t){var e=Math.sqrt(t/5)/2;return"M"+-3*e+","+-e+"H"+-e+"V"+-3*e+"H"+e+"V"+-e+"H"+3*e+"V"+e+"H"+e+"V"+3*e+"H"+-e+"V"+e+"H"+-3*e+"Z"},diamond:function(t){var e=Math.sqrt(t/(2*Ki)),r=e*Ki;return"M0,"+-e+"L"+r+",0 0,"+e+" "+-r+",0Z"},square:function(t){var e=Math.sqrt(t)/2;return"M"+-e+","+-e+"L"+e+","+-e+" "+e+","+e+" "+-e+","+e+"Z"},"triangle-down":function(t){var e=Math.sqrt(t/Ji),r=e*Ji/2;return"M0,"+r+"L"+e+","+-r+" "+-e+","+-r+"Z"},"triangle-up":function(t){var e=Math.sqrt(t/Ji),r=e*Ji/2;return"M0,"+-r+"L"+e+","+r+" "+-e+","+r+"Z"}});a.svg.symbolTypes=Xi.keys();var Ji=Math.sqrt(3),Ki=Math.tan(30*It);J.transition=function(t){for(var e,r,n=ea||++ia,i=sa(t),a=[],o=ra||{time:Date.now(),ease:Ir,delay:0,duration:250},s=-1,l=this.length;++s<l;){a.push(e=[]);for(var u=this[s],c=-1,f=u.length;++c<f;)(r=u[c])&&la(r,c,i,n,o),e.push(r)}return ta(a,i,n)},J.interrupt=function(t){return this.each(null==t?$i:Qi(sa(t)))};var $i=Qi(sa());function Qi(t){return function(){var e,r,n;(e=this[t])&&(n=e[r=e.active])&&(n.timer.c=null,n.timer.t=NaN,--e.count?delete e[r]:delete this[t],e.active+=.5,n.event&&n.event.interrupt.call(this,this.__data__,n.index))}}function ta(t,e,r){return G(t,na),t.namespace=e,t.id=r,t}var ea,ra,na=[],ia=0;function aa(t,e,r,n){var i=t.id,a=t.namespace;return dt(t,"function"==typeof r?function(t,o,s){t[a][i].tween.set(e,n(r.call(t,t.__data__,o,s)))}:(r=n(r),function(t){t[a][i].tween.set(e,r)}))}function oa(t){return null==t&&(t=""),function(){this.textContent=t}}function sa(t){return null==t?"__transition__":"__transition_"+t+"__"}function la(t,e,r,n,i){var a,o,s,l,u,c=t[r]||(t[r]={active:0,count:0}),f=c[n];function h(r){var i=c.active,h=c[i];for(var d in h&&(h.timer.c=null,h.timer.t=NaN,--c.count,delete c[i],h.event&&h.event.interrupt.call(t,t.__data__,h.index)),c)if(+d<n){var v=c[d];v.timer.c=null,v.timer.t=NaN,--c.count,delete c[d]}o.c=p,Te((function(){return o.c&&p(r||1)&&(o.c=null,o.t=NaN),1}),0,a),c.active=n,f.event&&f.event.start.call(t,t.__data__,e),u=[],f.tween.forEach((function(r,n){(n=n.call(t,t.__data__,e))&&u.push(n)})),l=f.ease,s=f.duration}function p(i){for(var a=i/s,o=l(a),h=u.length;h>0;)u[--h].call(t,o);if(a>=1)return f.event&&f.event.end.call(t,t.__data__,e),--c.count?delete c[n]:delete t[r],1}f||(a=i.time,o=Te((function(t){var e=f.delay;if(o.t=e+a,e<=t)return h(t-e);o.c=h}),0,a),f=c[n]={tween:new A,time:a,timer:o,delay:i.delay,duration:i.duration,ease:i.ease,index:e},i=null,++c.count)}na.call=J.call,na.empty=J.empty,na.node=J.node,na.size=J.size,a.transition=function(t,e){return t&&t.transition?ea?t.transition(e):t:a.selection().transition(t)},a.transition.prototype=na,na.select=function(t){var e,r,n,i=this.id,a=this.namespace,o=[];t=K(t);for(var s=-1,l=this.length;++s<l;){o.push(e=[]);for(var u=this[s],c=-1,f=u.length;++c<f;)(n=u[c])&&(r=t.call(n,n.__data__,c,s))?("__data__"in n&&(r.__data__=n.__data__),la(r,c,a,i,n[a][i]),e.push(r)):e.push(null)}return ta(o,a,i)},na.selectAll=function(t){var e,r,n,i,a,o=this.id,s=this.namespace,l=[];t=$(t);for(var u=-1,c=this.length;++u<c;)for(var f=this[u],h=-1,p=f.length;++h<p;)if(n=f[h]){a=n[s][o],r=t.call(n,n.__data__,h,u),l.push(e=[]);for(var d=-1,v=r.length;++d<v;)(i=r[d])&&la(i,d,s,o,a),e.push(i)}return ta(l,s,o)},na.filter=function(t){var e,r,n=[];"function"!=typeof t&&(t=ht(t));for(var i=0,a=this.length;i<a;i++){n.push(e=[]);for(var o,s=0,l=(o=this[i]).length;s<l;s++)(r=o[s])&&t.call(r,r.__data__,s,i)&&e.push(r)}return ta(n,this.namespace,this.id)},na.tween=function(t,e){var r=this.id,n=this.namespace;return arguments.length<2?this.node()[n][r].tween.get(t):dt(this,null==e?function(e){e[n][r].tween.remove(t)}:function(i){i[n][r].tween.set(t,e)})},na.attr=function(t,e){if(arguments.length<2){for(e in t)this.attr(e,t[e]);return this}var r="transform"==t?qr:Tr,n=a.ns.qualify(t);function i(){this.removeAttribute(n)}function o(){this.removeAttributeNS(n.space,n.local)}function s(t){return null==t?i:(t+="",function(){var e,i=this.getAttribute(n);return i!==t&&(e=r(i,t),function(t){this.setAttribute(n,e(t))})})}function l(t){return null==t?o:(t+="",function(){var e,i=this.getAttributeNS(n.space,n.local);return i!==t&&(e=r(i,t),function(t){this.setAttributeNS(n.space,n.local,e(t))})})}return aa(this,"attr."+t,e,n.local?l:s)},na.attrTween=function(t,e){var r=a.ns.qualify(t);return this.tween("attr."+t,r.local?function(t,n){var i=e.call(this,t,n,this.getAttributeNS(r.space,r.local));return i&&function(t){this.setAttributeNS(r.space,r.local,i(t))}}:function(t,n){var i=e.call(this,t,n,this.getAttribute(r));return i&&function(t){this.setAttribute(r,i(t))}})},na.style=function(t,e,r){var n=arguments.length;if(n<3){if("string"!=typeof t){for(r in n<2&&(e=""),t)this.style(r,t[r],e);return this}r=""}function i(){this.style.removeProperty(t)}function a(e){return null==e?i:(e+="",function(){var n,i=c(this).getComputedStyle(this,null).getPropertyValue(t);return i!==e&&(n=Tr(i,e),function(e){this.style.setProperty(t,n(e),r)})})}return aa(this,"style."+t,e,a)},na.styleTween=function(t,e,r){function n(n,i){var a=e.call(this,n,i,c(this).getComputedStyle(this,null).getPropertyValue(t));return a&&function(e){this.style.setProperty(t,a(e),r)}}return arguments.length<3&&(r=""),this.tween("style."+t,n)},na.text=function(t){return aa(this,"text",t,oa)},na.remove=function(){var t=this.namespace;return this.each("end.transition",(function(){var e;this[t].count<2&&(e=this.parentNode)&&e.removeChild(this)}))},na.ease=function(t){var e=this.id,r=this.namespace;return arguments.length<1?this.node()[r][e].ease:("function"!=typeof t&&(t=a.ease.apply(a,arguments)),dt(this,(function(n){n[r][e].ease=t})))},na.delay=function(t){var e=this.id,r=this.namespace;return arguments.length<1?this.node()[r][e].delay:dt(this,"function"==typeof t?function(n,i,a){n[r][e].delay=+t.call(n,n.__data__,i,a)}:(t=+t,function(n){n[r][e].delay=t}))},na.duration=function(t){var e=this.id,r=this.namespace;return arguments.length<1?this.node()[r][e].duration:dt(this,"function"==typeof t?function(n,i,a){n[r][e].duration=Math.max(1,t.call(n,n.__data__,i,a))}:(t=Math.max(1,t),function(n){n[r][e].duration=t}))},na.each=function(t,e){var r=this.id,n=this.namespace;if(arguments.length<2){var i=ra,o=ea;try{ea=r,dt(this,(function(e,i,a){ra=e[n][r],t.call(e,e.__data__,i,a)}))}finally{ra=i,ea=o}}else dt(this,(function(i){var o=i[n][r];(o.event||(o.event=a.dispatch("start","end","interrupt"))).on(t,e)}));return this},na.transition=function(){for(var t,e,r,n=this.id,i=++ia,a=this.namespace,o=[],s=0,l=this.length;s<l;s++){o.push(t=[]);for(var u,c=0,f=(u=this[s]).length;c<f;c++)(e=u[c])&&la(e,c,a,i,{time:(r=e[a][n]).time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration}),t.push(e)}return ta(o,a,i)},a.svg.axis=function(){var t,e=a.scale.linear(),r=ua,n=6,i=6,o=3,l=[10],u=null;function c(s){s.each((function(){var s,c=a.select(this),f=this.__chart__||e,h=this.__chart__=e.copy(),p=null==u?h.ticks?h.ticks.apply(h,l):h.domain():u,d=null==t?h.tickFormat?h.tickFormat.apply(h,l):D:t,v=c.selectAll(".tick").data(p,h),g=v.enter().insert("g",".domain").attr("class","tick").style("opacity",Et),y=a.transition(v.exit()).style("opacity",Et).remove(),m=a.transition(v.order()).style("opacity",1),x=Math.max(n,0)+o,b=qn(h),_=c.selectAll(".domain").data([0]),w=(_.enter().append("path").attr("class","domain"),a.transition(_));g.append("line"),g.append("text");var T,k,A,M,S=g.select("line"),E=m.select("line"),L=v.select("text").text(d),C=g.select("text"),P=m.select("text"),O="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(s=fa,T="x",A="y",k="x2",M="y2",L.attr("dy",O<0?"0em":".71em").style("text-anchor","middle"),w.attr("d","M"+b[0]+","+O*i+"V0H"+b[1]+"V"+O*i)):(s=ha,T="y",A="x",k="y2",M="x2",L.attr("dy",".32em").style("text-anchor",O<0?"end":"start"),w.attr("d","M"+O*i+","+b[0]+"H0V"+b[1]+"H"+O*i)),S.attr(M,O*n),C.attr(A,O*x),E.attr(k,0).attr(M,O*n),P.attr(T,0).attr(A,O*x),h.rangeBand){var I=h,z=I.rangeBand()/2;f=h=function(t){return I(t)+z}}else f.rangeBand?f=h:y.call(s,h,f);g.call(s,f,h),m.call(s,h,h)}))}return c.scale=function(t){return arguments.length?(e=t,c):e},c.orient=function(t){return arguments.length?(r=t in ca?t+"":ua,c):r},c.ticks=function(){return arguments.length?(l=s(arguments),c):l},c.tickValues=function(t){return arguments.length?(u=t,c):u},c.tickFormat=function(e){return arguments.length?(t=e,c):t},c.tickSize=function(t){var e=arguments.length;return e?(n=+t,i=+arguments[e-1],c):n},c.innerTickSize=function(t){return arguments.length?(n=+t,c):n},c.outerTickSize=function(t){return arguments.length?(i=+t,c):i},c.tickPadding=function(t){return arguments.length?(o=+t,c):o},c.tickSubdivide=function(){return arguments.length&&c},c};var ua="bottom",ca={top:1,right:1,bottom:1,left:1};function fa(t,e,r){t.attr("transform",(function(t){var n=e(t);return"translate("+(isFinite(n)?n:r(t))+",0)"}))}function ha(t,e,r){t.attr("transform",(function(t){var n=e(t);return"translate(0,"+(isFinite(n)?n:r(t))+")"}))}a.svg.brush=function(){var t,e,r=H(h,"brushstart","brush","brushend"),n=null,i=null,o=[0,0],s=[0,0],l=!0,u=!0,f=da[0];function h(t){t.each((function(){var t=a.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",g).on("touchstart.brush",g),e=t.selectAll(".background").data([0]);e.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var r=t.selectAll(".resize").data(f,D);r.exit().remove(),r.enter().append("g").attr("class",(function(t){return"resize "+t})).style("cursor",(function(t){return pa[t]})).append("rect").attr("x",(function(t){return/[ew]$/.test(t)?-3:null})).attr("y",(function(t){return/^[ns]/.test(t)?-3:null})).attr("width",6).attr("height",6).style("visibility","hidden"),r.style("display",h.empty()?"none":null);var o,s=a.transition(t),l=a.transition(e);n&&(o=qn(n),l.attr("x",o[0]).attr("width",o[1]-o[0]),d(s)),i&&(o=qn(i),l.attr("y",o[0]).attr("height",o[1]-o[0]),v(s)),p(s)}))}function p(t){t.selectAll(".resize").attr("transform",(function(t){return"translate("+o[+/e$/.test(t)]+","+s[+/^s/.test(t)]+")"}))}function d(t){t.select(".extent").attr("x",o[0]),t.selectAll(".extent,.n>rect,.s>rect").attr("width",o[1]-o[0])}function v(t){t.select(".extent").attr("y",s[0]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",s[1]-s[0])}function g(){var f,g,y=this,m=a.select(a.event.target),x=r.of(y,arguments),b=a.select(y),_=m.datum(),w=!/^(n|s)$/.test(_)&&n,T=!/^(e|w)$/.test(_)&&i,k=m.classed("extent"),A=kt(y),M=a.mouse(y),S=a.select(c(y)).on("keydown.brush",C).on("keyup.brush",P);if(a.event.changedTouches?S.on("touchmove.brush",O).on("touchend.brush",D):S.on("mousemove.brush",O).on("mouseup.brush",D),b.interrupt().selectAll("*").interrupt(),k)M[0]=o[0]-M[0],M[1]=s[0]-M[1];else if(_){var E=+/w$/.test(_),L=+/^n/.test(_);g=[o[1-E]-M[0],s[1-L]-M[1]],M[0]=o[E],M[1]=s[L]}else a.event.altKey&&(f=M.slice());function C(){32==a.event.keyCode&&(k||(f=null,M[0]-=o[1],M[1]-=s[1],k=2),U())}function P(){32==a.event.keyCode&&2==k&&(M[0]+=o[1],M[1]+=s[1],k=0,U())}function O(){var t=a.mouse(y),e=!1;g&&(t[0]+=g[0],t[1]+=g[1]),k||(a.event.altKey?(f||(f=[(o[0]+o[1])/2,(s[0]+s[1])/2]),M[0]=o[+(t[0]<f[0])],M[1]=s[+(t[1]<f[1])]):f=null),w&&I(t,n,0)&&(d(b),e=!0),T&&I(t,i,1)&&(v(b),e=!0),e&&(p(b),x({type:"brush",mode:k?"move":"resize"}))}function I(r,n,i){var a,c,h=qn(n),p=h[0],d=h[1],v=M[i],g=i?s:o,y=g[1]-g[0];if(k&&(p-=v,d-=y+v),a=(i?u:l)?Math.max(p,Math.min(d,r[i])):r[i],k?c=(a+=v)+y:(f&&(v=Math.max(p,Math.min(d,2*f[i]-a))),v<a?(c=a,a=v):c=v),g[0]!=a||g[1]!=c)return i?e=null:t=null,g[0]=a,g[1]=c,!0}function D(){O(),b.style("pointer-events","all").selectAll(".resize").style("display",h.empty()?"none":null),a.select("body").style("cursor",null),S.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),A(),x({type:"brushend"})}b.style("pointer-events","none").selectAll(".resize").style("display",null),a.select("body").style("cursor",m.style("cursor")),x({type:"brushstart"}),O()}return h.event=function(n){n.each((function(){var n=r.of(this,arguments),i={x:o,y:s,i:t,j:e},l=this.__chart__||i;this.__chart__=i,ea?a.select(this).transition().each("start.brush",(function(){t=l.i,e=l.j,o=l.x,s=l.y,n({type:"brushstart"})})).tween("brush:brush",(function(){var r=kr(o,i.x),a=kr(s,i.y);return t=e=null,function(t){o=i.x=r(t),s=i.y=a(t),n({type:"brush",mode:"resize"})}})).each("end.brush",(function(){t=i.i,e=i.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})})):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))}))},h.x=function(t){return arguments.length?(f=da[!(n=t)<<1|!i],h):n},h.y=function(t){return arguments.length?(f=da[!n<<1|!(i=t)],h):i},h.clamp=function(t){return arguments.length?(n&&i?(l=!!t[0],u=!!t[1]):n?l=!!t:i&&(u=!!t),h):n&&i?[l,u]:n?l:i?u:null},h.extent=function(r){var a,l,u,c,f;return arguments.length?(n&&(a=r[0],l=r[1],i&&(a=a[0],l=l[0]),t=[a,l],n.invert&&(a=n(a),l=n(l)),l<a&&(f=a,a=l,l=f),a==o[0]&&l==o[1]||(o=[a,l])),i&&(u=r[0],c=r[1],n&&(u=u[1],c=c[1]),e=[u,c],i.invert&&(u=i(u),c=i(c)),c<u&&(f=u,u=c,c=f),u==s[0]&&c==s[1]||(s=[u,c])),h):(n&&(t?(a=t[0],l=t[1]):(a=o[0],l=o[1],n.invert&&(a=n.invert(a),l=n.invert(l)),l<a&&(f=a,a=l,l=f))),i&&(e?(u=e[0],c=e[1]):(u=s[0],c=s[1],i.invert&&(u=i.invert(u),c=i.invert(c)),c<u&&(f=u,u=c,c=f))),n&&i?[[a,u],[l,c]]:n?[a,l]:i&&[u,c])},h.clear=function(){return h.empty()||(o=[0,0],s=[0,0],t=e=null),h},h.empty=function(){return!!n&&o[0]==o[1]||!!i&&s[0]==s[1]},a.rebind(h,r,"on")};var pa={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},da=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]];function va(t){return JSON.parse(t.responseText)}function ga(t){var e=l.createRange();return e.selectNode(l.body),e.createContextualFragment(t.responseText)}a.text=ge((function(t){return t.responseText})),a.json=function(t,e){return ye(t,"application/json",va,e)},a.html=function(t,e){return ye(t,"text/html",ga,e)},a.xml=ge((function(t){return t.responseXML})),this.d3=a,void 0===(i="function"==typeof(n=a)?n.call(e,r,e,t):n)||(t.exports=i)}).apply(self)},88294:function(t,e,r){"use strict";t.exports=r(62849)},62849:function(t,e,r){"use strict";var n=r(91358),i=r(53435),a=r(18863),o=r(21527),s=r(71299),l=r(46775),u=r(30120),c=r(64941),f=r(90660),h=r(27084);function p(t,e){for(var r=e[0],n=e[1],a=1/(e[2]-r),o=1/(e[3]-n),s=new Array(t.length),l=0,u=t.length/2;l<u;l++)s[2*l]=i((t[2*l]-r)*a,0,1),s[2*l+1]=i((t[2*l+1]-n)*o,0,1);return s}t.exports=function(t,e){e||(e={}),t=u(t,"float64"),e=s(e,{bounds:"range bounds dataBox databox",maxDepth:"depth maxDepth maxdepth level maxLevel maxlevel levels",dtype:"type dtype format out dst output destination"});var r=l(e.maxDepth,255),i=l(e.bounds,o(t,2));i[0]===i[2]&&i[2]++,i[1]===i[3]&&i[3]++;var d,v=p(t,i),g=t.length>>>1;e.dtype||(e.dtype="array"),"string"==typeof e.dtype?d=new(f(e.dtype))(g):e.dtype&&(d=e.dtype,Array.isArray(d)&&(d.length=g));for(var y=0;y<g;++y)d[y]=y;var m=[],x=[],b=[],_=[];!function t(e,n,i,a,o,s){if(!a.length)return null;var l=m[o]||(m[o]=[]),u=b[o]||(b[o]=[]),c=x[o]||(x[o]=[]),f=l.length;if(++o>r||s>1073741824){for(var h=0;h<a.length;h++)l.push(a[h]),u.push(s),c.push(null,null,null,null);return f}if(l.push(a[0]),u.push(s),a.length<=1)return c.push(null,null,null,null),f;for(var p=.5*i,d=e+p,g=n+p,y=[],_=[],w=[],T=[],k=1,A=a.length;k<A;k++){var M=a[k],S=v[2*M],E=v[2*M+1];S<d?E<g?y.push(M):_.push(M):E<g?w.push(M):T.push(M)}return s<<=2,c.push(t(e,n,p,y,o,s),t(e,g,p,_,o,s+1),t(d,n,p,w,o,s+2),t(d,g,p,T,o,s+3)),f}(0,0,1,d,0,1);for(var w=0,T=0;T<m.length;T++){var k=m[T];if(d.set)d.set(k,w);else for(var A=0,M=k.length;A<M;A++)d[A+w]=k[A];var S=w+m[T].length;_[T]=[w,S],w=S}return d.range=function(){for(var e,r=[],n=arguments.length;n--;)r[n]=arguments[n];if(c(r[r.length-1])){var o=r.pop();r.length||null==o.x&&null==o.l&&null==o.left||(r=[o],e={}),e=s(o,{level:"level maxLevel",d:"d diam diameter r radius px pxSize pixel pixelSize maxD size minSize",lod:"lod details ranges offsets"})}else e={};r.length||(r=i);var u,f=a.apply(void 0,r),d=[Math.min(f.x,f.x+f.width),Math.min(f.y,f.y+f.height),Math.max(f.x,f.x+f.width),Math.max(f.y,f.y+f.height)],v=d[0],g=d[1],y=d[2],b=d[3],_=p([v,g,y,b],i),w=_[0],T=_[1],k=_[2],A=_[3],M=l(e.level,m.length);null!=e.d&&("number"==typeof e.d?u=[e.d,e.d]:e.d.length&&(u=e.d),M=Math.min(Math.max(Math.ceil(-h(Math.abs(u[0])/(i[2]-i[0]))),Math.ceil(-h(Math.abs(u[1])/(i[3]-i[1])))),M));if(M=Math.min(M,m.length),e.lod)return E(w,T,k,A,M);var S=[];function L(e,r,n,i,a,o){if(null!==a&&null!==o&&!(w>e+n||T>r+n||k<e||A<r||i>=M||a===o)){var s=m[i];void 0===o&&(o=s.length);for(var l=a;l<o;l++){var u=s[l],c=t[2*u],f=t[2*u+1];c>=v&&c<=y&&f>=g&&f<=b&&S.push(u)}var h=x[i],p=h[4*a+0],d=h[4*a+1],_=h[4*a+2],E=h[4*a+3],P=C(h,a+1),O=.5*n,I=i+1;L(e,r,O,I,p,d||_||E||P),L(e,r+O,O,I,d,_||E||P),L(e+O,r,O,I,_,E||P),L(e+O,r+O,O,I,E,P)}}function C(t,e){for(var r=null,n=0;null===r;)if(r=t[4*e+n],++n>t.length)return null;return r}return L(0,0,1,0,0,1),S},d;function E(t,e,r,i,a){for(var o=[],s=0;s<a;s++){var l=b[s],u=_[s][0],c=L(t,e,s),f=L(r,i,s),h=n.ge(l,c),p=n.gt(l,f,h,l.length-1);o[s]=[h+u,p+u]}return o}function L(t,e,r){for(var n=1,i=.5,a=.5,o=.5,s=0;s<r;s++)n<<=2,n+=t<i?e<a?0:1:e<a?2:3,o*=.5,i+=t<i?-o:o,a+=e<a?-o:o;return n}}},30774:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(60302),i=6378137;function a(t){var e=0;if(t&&t.length>0){e+=Math.abs(o(t[0]));for(var r=1;r<t.length;r++)e-=Math.abs(o(t[r]))}return e}function o(t){var e,r,n,a,o,l,u=0,c=t.length;if(c>2){for(l=0;l<c;l++)l===c-2?(n=c-2,a=c-1,o=0):l===c-1?(n=c-1,a=0,o=1):(n=l,a=l+1,o=l+2),e=t[n],r=t[a],u+=(s(t[o][0])-s(e[0]))*Math.sin(s(r[1]));u=u*i*i/2}return u}function s(t){return t*Math.PI/180}e.default=function(t){return n.geomReduce(t,(function(t,e){return t+function(t){var e,r=0;switch(t.type){case"Polygon":return a(t.coordinates);case"MultiPolygon":for(e=0;e<t.coordinates.length;e++)r+=a(t.coordinates[e]);return r;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}(e)}),0)}},23132:function(t,e){"use strict";function r(t,e,r){void 0===r&&(r={});var n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=e||{},n.geometry=t,n}function n(t,e,n){if(void 0===n&&(n={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!p(t[0])||!p(t[1]))throw new Error("coordinates must contain numbers");return r({type:"Point",coordinates:t},e,n)}function i(t,e,n){void 0===n&&(n={});for(var i=0,a=t;i<a.length;i++){var o=a[i];if(o.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var s=0;s<o[o.length-1].length;s++)if(o[o.length-1][s]!==o[0][s])throw new Error("First and last Position are not equivalent.")}return r({type:"Polygon",coordinates:t},e,n)}function a(t,e,n){if(void 0===n&&(n={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");return r({type:"LineString",coordinates:t},e,n)}function o(t,e){void 0===e&&(e={});var r={type:"FeatureCollection"};return e.id&&(r.id=e.id),e.bbox&&(r.bbox=e.bbox),r.features=t,r}function s(t,e,n){return void 0===n&&(n={}),r({type:"MultiLineString",coordinates:t},e,n)}function l(t,e,n){return void 0===n&&(n={}),r({type:"MultiPoint",coordinates:t},e,n)}function u(t,e,n){return void 0===n&&(n={}),r({type:"MultiPolygon",coordinates:t},e,n)}function c(t,r){void 0===r&&(r="kilometers");var n=e.factors[r];if(!n)throw new Error(r+" units is invalid");return t*n}function f(t,r){void 0===r&&(r="kilometers");var n=e.factors[r];if(!n)throw new Error(r+" units is invalid");return t/n}function h(t){return t%(2*Math.PI)*180/Math.PI}function p(t){return!isNaN(t)&&null!==t&&!Array.isArray(t)}Object.defineProperty(e,"__esModule",{value:!0}),e.earthRadius=6371008.8,e.factors={centimeters:100*e.earthRadius,centimetres:100*e.earthRadius,degrees:e.earthRadius/111325,feet:3.28084*e.earthRadius,inches:39.37*e.earthRadius,kilometers:e.earthRadius/1e3,kilometres:e.earthRadius/1e3,meters:e.earthRadius,metres:e.earthRadius,miles:e.earthRadius/1609.344,millimeters:1e3*e.earthRadius,millimetres:1e3*e.earthRadius,nauticalmiles:e.earthRadius/1852,radians:1,yards:1.0936*e.earthRadius},e.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:.001,kilometres:.001,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/e.earthRadius,yards:1.0936133},e.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046},e.feature=r,e.geometry=function(t,e,r){switch(void 0===r&&(r={}),t){case"Point":return n(e).geometry;case"LineString":return a(e).geometry;case"Polygon":return i(e).geometry;case"MultiPoint":return l(e).geometry;case"MultiLineString":return s(e).geometry;case"MultiPolygon":return u(e).geometry;default:throw new Error(t+" is invalid")}},e.point=n,e.points=function(t,e,r){return void 0===r&&(r={}),o(t.map((function(t){return n(t,e)})),r)},e.polygon=i,e.polygons=function(t,e,r){return void 0===r&&(r={}),o(t.map((function(t){return i(t,e)})),r)},e.lineString=a,e.lineStrings=function(t,e,r){return void 0===r&&(r={}),o(t.map((function(t){return a(t,e)})),r)},e.featureCollection=o,e.multiLineString=s,e.multiPoint=l,e.multiPolygon=u,e.geometryCollection=function(t,e,n){return void 0===n&&(n={}),r({type:"GeometryCollection",geometries:t},e,n)},e.round=function(t,e){if(void 0===e&&(e=0),e&&!(e>=0))throw new Error("precision must be a positive number");var r=Math.pow(10,e||0);return Math.round(t*r)/r},e.radiansToLength=c,e.lengthToRadians=f,e.lengthToDegrees=function(t,e){return h(f(t,e))},e.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},e.radiansToDegrees=h,e.degreesToRadians=function(t){return t%360*Math.PI/180},e.convertLength=function(t,e,r){if(void 0===e&&(e="kilometers"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("length must be a positive number");return c(f(t,e),r)},e.convertArea=function(t,r,n){if(void 0===r&&(r="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=e.areaFactors[r];if(!i)throw new Error("invalid original units");var a=e.areaFactors[n];if(!a)throw new Error("invalid final units");return t/i*a},e.isNumber=p,e.isObject=function(t){return!!t&&t.constructor===Object},e.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!p(t))throw new Error("bbox must only contain numbers")}))},e.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")}},60302:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(23132);function i(t,e,r){if(null!==t)for(var n,a,o,s,l,u,c,f,h=0,p=0,d=t.type,v="FeatureCollection"===d,g="Feature"===d,y=v?t.features.length:1,m=0;m<y;m++){l=(f=!!(c=v?t.features[m].geometry:g?t.geometry:t)&&"GeometryCollection"===c.type)?c.geometries.length:1;for(var x=0;x<l;x++){var b=0,_=0;if(null!==(s=f?c.geometries[x]:c)){u=s.coordinates;var w=s.type;switch(h=!r||"Polygon"!==w&&"MultiPolygon"!==w?0:1,w){case null:break;case"Point":if(!1===e(u,p,m,b,_))return!1;p++,b++;break;case"LineString":case"MultiPoint":for(n=0;n<u.length;n++){if(!1===e(u[n],p,m,b,_))return!1;p++,"MultiPoint"===w&&b++}"LineString"===w&&b++;break;case"Polygon":case"MultiLineString":for(n=0;n<u.length;n++){for(a=0;a<u[n].length-h;a++){if(!1===e(u[n][a],p,m,b,_))return!1;p++}"MultiLineString"===w&&b++,"Polygon"===w&&_++}"Polygon"===w&&b++;break;case"MultiPolygon":for(n=0;n<u.length;n++){for(_=0,a=0;a<u[n].length;a++){for(o=0;o<u[n][a].length-h;o++){if(!1===e(u[n][a][o],p,m,b,_))return!1;p++}_++}b++}break;case"GeometryCollection":for(n=0;n<s.geometries.length;n++)if(!1===i(s.geometries[n],e,r))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function a(t,e){var r;switch(t.type){case"FeatureCollection":for(r=0;r<t.features.length&&!1!==e(t.features[r].properties,r);r++);break;case"Feature":e(t.properties,0)}}function o(t,e){if("Feature"===t.type)e(t,0);else if("FeatureCollection"===t.type)for(var r=0;r<t.features.length&&!1!==e(t.features[r],r);r++);}function s(t,e){var r,n,i,a,o,s,l,u,c,f,h=0,p="FeatureCollection"===t.type,d="Feature"===t.type,v=p?t.features.length:1;for(r=0;r<v;r++){for(s=p?t.features[r].geometry:d?t.geometry:t,u=p?t.features[r].properties:d?t.properties:{},c=p?t.features[r].bbox:d?t.bbox:void 0,f=p?t.features[r].id:d?t.id:void 0,o=(l=!!s&&"GeometryCollection"===s.type)?s.geometries.length:1,i=0;i<o;i++)if(null!==(a=l?s.geometries[i]:s))switch(a.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===e(a,h,u,c,f))return!1;break;case"GeometryCollection":for(n=0;n<a.geometries.length;n++)if(!1===e(a.geometries[n],h,u,c,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===e(null,h,u,c,f))return!1;h++}}function l(t,e){s(t,(function(t,r,i,a,o){var s,l=null===t?null:t.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==e(n.feature(t,i,{bbox:a,id:o}),r,0)&&void 0}switch(l){case"MultiPoint":s="Point";break;case"MultiLineString":s="LineString";break;case"MultiPolygon":s="Polygon"}for(var u=0;u<t.coordinates.length;u++){var c={type:s,coordinates:t.coordinates[u]};if(!1===e(n.feature(c,i),r,u))return!1}}))}function u(t,e){l(t,(function(t,r,a){var o=0;if(t.geometry){var s=t.geometry.type;if("Point"!==s&&"MultiPoint"!==s){var l,u=0,c=0,f=0;return!1!==i(t,(function(i,s,h,p,d){if(void 0===l||r>u||p>c||d>f)return l=i,u=r,c=p,f=d,void(o=0);var v=n.lineString([l,i],t.properties);if(!1===e(v,r,a,d,o))return!1;o++,l=i}))&&void 0}}}))}function c(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,r,i){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,r,i,0,0))return!1;break;case"Polygon":for(var s=0;s<o.length;s++)if(!1===e(n.lineString(o[s],t.properties),r,i,s))return!1}}}))}e.coordEach=i,e.coordReduce=function(t,e,r,n){var a=r;return i(t,(function(t,n,i,o,s){a=0===n&&void 0===r?t:e(a,t,n,i,o,s)}),n),a},e.propEach=a,e.propReduce=function(t,e,r){var n=r;return a(t,(function(t,i){n=0===i&&void 0===r?t:e(n,t,i)})),n},e.featureEach=o,e.featureReduce=function(t,e,r){var n=r;return o(t,(function(t,i){n=0===i&&void 0===r?t:e(n,t,i)})),n},e.coordAll=function(t){var e=[];return i(t,(function(t){e.push(t)})),e},e.geomEach=s,e.geomReduce=function(t,e,r){var n=r;return s(t,(function(t,i,a,o,s){n=0===i&&void 0===r?t:e(n,t,i,a,o,s)})),n},e.flattenEach=l,e.flattenReduce=function(t,e,r){var n=r;return l(t,(function(t,i,a){n=0===i&&0===a&&void 0===r?t:e(n,t,i,a)})),n},e.segmentEach=u,e.segmentReduce=function(t,e,r){var n=r,i=!1;return u(t,(function(t,a,o,s,l){n=!1===i&&void 0===r?t:e(n,t,a,o,s,l),i=!0})),n},e.lineEach=c,e.lineReduce=function(t,e,r){var n=r;return c(t,(function(t,i,a,o){n=0===i&&void 0===r?t:e(n,t,i,a,o)})),n},e.findSegment=function(t,e){if(e=e||{},!n.isObject(e))throw new Error("options is invalid");var r,i=e.featureIndex||0,a=e.multiFeatureIndex||0,o=e.geometryIndex||0,s=e.segmentIndex||0,l=e.properties;switch(t.type){case"FeatureCollection":i<0&&(i=t.features.length+i),l=l||t.features[i].properties,r=t.features[i].geometry;break;case"Feature":l=l||t.properties,r=t.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":r=t;break;default:throw new Error("geojson is invalid")}if(null===r)return null;var u=r.coordinates;switch(r.type){case"Point":case"MultiPoint":return null;case"LineString":return s<0&&(s=u.length+s-1),n.lineString([u[s],u[s+1]],l,e);case"Polygon":return o<0&&(o=u.length+o),s<0&&(s=u[o].length+s-1),n.lineString([u[o][s],u[o][s+1]],l,e);case"MultiLineString":return a<0&&(a=u.length+a),s<0&&(s=u[a].length+s-1),n.lineString([u[a][s],u[a][s+1]],l,e);case"MultiPolygon":return a<0&&(a=u.length+a),o<0&&(o=u[a].length+o),s<0&&(s=u[a][o].length-s-1),n.lineString([u[a][o][s],u[a][o][s+1]],l,e)}throw new Error("geojson is invalid")},e.findPoint=function(t,e){if(e=e||{},!n.isObject(e))throw new Error("options is invalid");var r,i=e.featureIndex||0,a=e.multiFeatureIndex||0,o=e.geometryIndex||0,s=e.coordIndex||0,l=e.properties;switch(t.type){case"FeatureCollection":i<0&&(i=t.features.length+i),l=l||t.features[i].properties,r=t.features[i].geometry;break;case"Feature":l=l||t.properties,r=t.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":r=t;break;default:throw new Error("geojson is invalid")}if(null===r)return null;var u=r.coordinates;switch(r.type){case"Point":return n.point(u,l,e);case"MultiPoint":return a<0&&(a=u.length+a),n.point(u[a],l,e);case"LineString":return s<0&&(s=u.length+s),n.point(u[s],l,e);case"Polygon":return o<0&&(o=u.length+o),s<0&&(s=u[o].length+s),n.point(u[o][s],l,e);case"MultiLineString":return a<0&&(a=u.length+a),s<0&&(s=u[a].length+s),n.point(u[a][s],l,e);case"MultiPolygon":return a<0&&(a=u.length+a),o<0&&(o=u[a].length+o),s<0&&(s=u[a][o].length-s),n.point(u[a][o][s],l,e)}throw new Error("geojson is invalid")}},85268:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(27138);function i(t){var e=[1/0,1/0,-1/0,-1/0];return n.coordEach(t,(function(t){e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]<t[0]&&(e[2]=t[0]),e[3]<t[1]&&(e[3]=t[1])})),e}i.default=i,e.default=i},94228:function(t,e){"use strict";function r(t,e,r){void 0===r&&(r={});var n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=e||{},n.geometry=t,n}function n(t,e,n){if(void 0===n&&(n={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!p(t[0])||!p(t[1]))throw new Error("coordinates must contain numbers");return r({type:"Point",coordinates:t},e,n)}function i(t,e,n){void 0===n&&(n={});for(var i=0,a=t;i<a.length;i++){var o=a[i];if(o.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var s=0;s<o[o.length-1].length;s++)if(o[o.length-1][s]!==o[0][s])throw new Error("First and last Position are not equivalent.")}return r({type:"Polygon",coordinates:t},e,n)}function a(t,e,n){if(void 0===n&&(n={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");return r({type:"LineString",coordinates:t},e,n)}function o(t,e){void 0===e&&(e={});var r={type:"FeatureCollection"};return e.id&&(r.id=e.id),e.bbox&&(r.bbox=e.bbox),r.features=t,r}function s(t,e,n){return void 0===n&&(n={}),r({type:"MultiLineString",coordinates:t},e,n)}function l(t,e,n){return void 0===n&&(n={}),r({type:"MultiPoint",coordinates:t},e,n)}function u(t,e,n){return void 0===n&&(n={}),r({type:"MultiPolygon",coordinates:t},e,n)}function c(t,r){void 0===r&&(r="kilometers");var n=e.factors[r];if(!n)throw new Error(r+" units is invalid");return t*n}function f(t,r){void 0===r&&(r="kilometers");var n=e.factors[r];if(!n)throw new Error(r+" units is invalid");return t/n}function h(t){return t%(2*Math.PI)*180/Math.PI}function p(t){return!isNaN(t)&&null!==t&&!Array.isArray(t)}Object.defineProperty(e,"__esModule",{value:!0}),e.earthRadius=6371008.8,e.factors={centimeters:100*e.earthRadius,centimetres:100*e.earthRadius,degrees:e.earthRadius/111325,feet:3.28084*e.earthRadius,inches:39.37*e.earthRadius,kilometers:e.earthRadius/1e3,kilometres:e.earthRadius/1e3,meters:e.earthRadius,metres:e.earthRadius,miles:e.earthRadius/1609.344,millimeters:1e3*e.earthRadius,millimetres:1e3*e.earthRadius,nauticalmiles:e.earthRadius/1852,radians:1,yards:1.0936*e.earthRadius},e.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:.001,kilometres:.001,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/e.earthRadius,yards:1.0936133},e.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046},e.feature=r,e.geometry=function(t,e,r){switch(void 0===r&&(r={}),t){case"Point":return n(e).geometry;case"LineString":return a(e).geometry;case"Polygon":return i(e).geometry;case"MultiPoint":return l(e).geometry;case"MultiLineString":return s(e).geometry;case"MultiPolygon":return u(e).geometry;default:throw new Error(t+" is invalid")}},e.point=n,e.points=function(t,e,r){return void 0===r&&(r={}),o(t.map((function(t){return n(t,e)})),r)},e.polygon=i,e.polygons=function(t,e,r){return void 0===r&&(r={}),o(t.map((function(t){return i(t,e)})),r)},e.lineString=a,e.lineStrings=function(t,e,r){return void 0===r&&(r={}),o(t.map((function(t){return a(t,e)})),r)},e.featureCollection=o,e.multiLineString=s,e.multiPoint=l,e.multiPolygon=u,e.geometryCollection=function(t,e,n){return void 0===n&&(n={}),r({type:"GeometryCollection",geometries:t},e,n)},e.round=function(t,e){if(void 0===e&&(e=0),e&&!(e>=0))throw new Error("precision must be a positive number");var r=Math.pow(10,e||0);return Math.round(t*r)/r},e.radiansToLength=c,e.lengthToRadians=f,e.lengthToDegrees=function(t,e){return h(f(t,e))},e.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},e.radiansToDegrees=h,e.degreesToRadians=function(t){return t%360*Math.PI/180},e.convertLength=function(t,e,r){if(void 0===e&&(e="kilometers"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("length must be a positive number");return c(f(t,e),r)},e.convertArea=function(t,r,n){if(void 0===r&&(r="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=e.areaFactors[r];if(!i)throw new Error("invalid original units");var a=e.areaFactors[n];if(!a)throw new Error("invalid final units");return t/i*a},e.isNumber=p,e.isObject=function(t){return!!t&&t.constructor===Object},e.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!p(t))throw new Error("bbox must only contain numbers")}))},e.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")}},27138:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(94228);function i(t,e,r){if(null!==t)for(var n,a,o,s,l,u,c,f,h=0,p=0,d=t.type,v="FeatureCollection"===d,g="Feature"===d,y=v?t.features.length:1,m=0;m<y;m++){l=(f=!!(c=v?t.features[m].geometry:g?t.geometry:t)&&"GeometryCollection"===c.type)?c.geometries.length:1;for(var x=0;x<l;x++){var b=0,_=0;if(null!==(s=f?c.geometries[x]:c)){u=s.coordinates;var w=s.type;switch(h=!r||"Polygon"!==w&&"MultiPolygon"!==w?0:1,w){case null:break;case"Point":if(!1===e(u,p,m,b,_))return!1;p++,b++;break;case"LineString":case"MultiPoint":for(n=0;n<u.length;n++){if(!1===e(u[n],p,m,b,_))return!1;p++,"MultiPoint"===w&&b++}"LineString"===w&&b++;break;case"Polygon":case"MultiLineString":for(n=0;n<u.length;n++){for(a=0;a<u[n].length-h;a++){if(!1===e(u[n][a],p,m,b,_))return!1;p++}"MultiLineString"===w&&b++,"Polygon"===w&&_++}"Polygon"===w&&b++;break;case"MultiPolygon":for(n=0;n<u.length;n++){for(_=0,a=0;a<u[n].length;a++){for(o=0;o<u[n][a].length-h;o++){if(!1===e(u[n][a][o],p,m,b,_))return!1;p++}_++}b++}break;case"GeometryCollection":for(n=0;n<s.geometries.length;n++)if(!1===i(s.geometries[n],e,r))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function a(t,e){var r;switch(t.type){case"FeatureCollection":for(r=0;r<t.features.length&&!1!==e(t.features[r].properties,r);r++);break;case"Feature":e(t.properties,0)}}function o(t,e){if("Feature"===t.type)e(t,0);else if("FeatureCollection"===t.type)for(var r=0;r<t.features.length&&!1!==e(t.features[r],r);r++);}function s(t,e){var r,n,i,a,o,s,l,u,c,f,h=0,p="FeatureCollection"===t.type,d="Feature"===t.type,v=p?t.features.length:1;for(r=0;r<v;r++){for(s=p?t.features[r].geometry:d?t.geometry:t,u=p?t.features[r].properties:d?t.properties:{},c=p?t.features[r].bbox:d?t.bbox:void 0,f=p?t.features[r].id:d?t.id:void 0,o=(l=!!s&&"GeometryCollection"===s.type)?s.geometries.length:1,i=0;i<o;i++)if(null!==(a=l?s.geometries[i]:s))switch(a.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===e(a,h,u,c,f))return!1;break;case"GeometryCollection":for(n=0;n<a.geometries.length;n++)if(!1===e(a.geometries[n],h,u,c,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===e(null,h,u,c,f))return!1;h++}}function l(t,e){s(t,(function(t,r,i,a,o){var s,l=null===t?null:t.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==e(n.feature(t,i,{bbox:a,id:o}),r,0)&&void 0}switch(l){case"MultiPoint":s="Point";break;case"MultiLineString":s="LineString";break;case"MultiPolygon":s="Polygon"}for(var u=0;u<t.coordinates.length;u++){var c={type:s,coordinates:t.coordinates[u]};if(!1===e(n.feature(c,i),r,u))return!1}}))}function u(t,e){l(t,(function(t,r,a){var o=0;if(t.geometry){var s=t.geometry.type;if("Point"!==s&&"MultiPoint"!==s){var l,u=0,c=0,f=0;return!1!==i(t,(function(i,s,h,p,d){if(void 0===l||r>u||p>c||d>f)return l=i,u=r,c=p,f=d,void(o=0);var v=n.lineString([l,i],t.properties);if(!1===e(v,r,a,d,o))return!1;o++,l=i}))&&void 0}}}))}function c(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,r,i){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,r,i,0,0))return!1;break;case"Polygon":for(var s=0;s<o.length;s++)if(!1===e(n.lineString(o[s],t.properties),r,i,s))return!1}}}))}e.coordEach=i,e.coordReduce=function(t,e,r,n){var a=r;return i(t,(function(t,n,i,o,s){a=0===n&&void 0===r?t:e(a,t,n,i,o,s)}),n),a},e.propEach=a,e.propReduce=function(t,e,r){var n=r;return a(t,(function(t,i){n=0===i&&void 0===r?t:e(n,t,i)})),n},e.featureEach=o,e.featureReduce=function(t,e,r){var n=r;return o(t,(function(t,i){n=0===i&&void 0===r?t:e(n,t,i)})),n},e.coordAll=function(t){var e=[];return i(t,(function(t){e.push(t)})),e},e.geomEach=s,e.geomReduce=function(t,e,r){var n=r;return s(t,(function(t,i,a,o,s){n=0===i&&void 0===r?t:e(n,t,i,a,o,s)})),n},e.flattenEach=l,e.flattenReduce=function(t,e,r){var n=r;return l(t,(function(t,i,a){n=0===i&&0===a&&void 0===r?t:e(n,t,i,a)})),n},e.segmentEach=u,e.segmentReduce=function(t,e,r){var n=r,i=!1;return u(t,(function(t,a,o,s,l){n=!1===i&&void 0===r?t:e(n,t,a,o,s,l),i=!0})),n},e.lineEach=c,e.lineReduce=function(t,e,r){var n=r;return c(t,(function(t,i,a,o){n=0===i&&void 0===r?t:e(n,t,i,a,o)})),n},e.findSegment=function(t,e){if(e=e||{},!n.isObject(e))throw new Error("options is invalid");var r,i=e.featureIndex||0,a=e.multiFeatureIndex||0,o=e.geometryIndex||0,s=e.segmentIndex||0,l=e.properties;switch(t.type){case"FeatureCollection":i<0&&(i=t.features.length+i),l=l||t.features[i].properties,r=t.features[i].geometry;break;case"Feature":l=l||t.properties,r=t.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":r=t;break;default:throw new Error("geojson is invalid")}if(null===r)return null;var u=r.coordinates;switch(r.type){case"Point":case"MultiPoint":return null;case"LineString":return s<0&&(s=u.length+s-1),n.lineString([u[s],u[s+1]],l,e);case"Polygon":return o<0&&(o=u.length+o),s<0&&(s=u[o].length+s-1),n.lineString([u[o][s],u[o][s+1]],l,e);case"MultiLineString":return a<0&&(a=u.length+a),s<0&&(s=u[a].length+s-1),n.lineString([u[a][s],u[a][s+1]],l,e);case"MultiPolygon":return a<0&&(a=u.length+a),o<0&&(o=u[a].length+o),s<0&&(s=u[a][o].length-s-1),n.lineString([u[a][o][s],u[a][o][s+1]],l,e)}throw new Error("geojson is invalid")},e.findPoint=function(t,e){if(e=e||{},!n.isObject(e))throw new Error("options is invalid");var r,i=e.featureIndex||0,a=e.multiFeatureIndex||0,o=e.geometryIndex||0,s=e.coordIndex||0,l=e.properties;switch(t.type){case"FeatureCollection":i<0&&(i=t.features.length+i),l=l||t.features[i].properties,r=t.features[i].geometry;break;case"Feature":l=l||t.properties,r=t.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":r=t;break;default:throw new Error("geojson is invalid")}if(null===r)return null;var u=r.coordinates;switch(r.type){case"Point":return n.point(u,l,e);case"MultiPoint":return a<0&&(a=u.length+a),n.point(u[a],l,e);case"LineString":return s<0&&(s=u.length+s),n.point(u[s],l,e);case"Polygon":return o<0&&(o=u.length+o),s<0&&(s=u[o].length+s),n.point(u[o][s],l,e);case"MultiLineString":return a<0&&(a=u.length+a),s<0&&(s=u[a].length+s),n.point(u[a][s],l,e);case"MultiPolygon":return a<0&&(a=u.length+a),o<0&&(o=u[a].length+o),s<0&&(s=u[a][o].length-s),n.point(u[a][o][s],l,e)}throw new Error("geojson is invalid")}},29261:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(88553),i=r(64182);e.default=function(t,e){void 0===e&&(e={});var r=0,a=0,o=0;return n.coordEach(t,(function(t){r+=t[0],a+=t[1],o++})),i.point([r/o,a/o],e.properties)}},64182:function(t,e){"use strict";function r(t,e,r){void 0===r&&(r={});var n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=e||{},n.geometry=t,n}function n(t,e,n){return void 0===n&&(n={}),r({type:"Point",coordinates:t},e,n)}function i(t,e,n){void 0===n&&(n={});for(var i=0,a=t;i<a.length;i++){var o=a[i];if(o.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var s=0;s<o[o.length-1].length;s++)if(o[o.length-1][s]!==o[0][s])throw new Error("First and last Position are not equivalent.")}return r({type:"Polygon",coordinates:t},e,n)}function a(t,e,n){if(void 0===n&&(n={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");return r({type:"LineString",coordinates:t},e,n)}function o(t,e){void 0===e&&(e={});var r={type:"FeatureCollection"};return e.id&&(r.id=e.id),e.bbox&&(r.bbox=e.bbox),r.features=t,r}function s(t,e,n){return void 0===n&&(n={}),r({type:"MultiLineString",coordinates:t},e,n)}function l(t,e,n){return void 0===n&&(n={}),r({type:"MultiPoint",coordinates:t},e,n)}function u(t,e,n){return void 0===n&&(n={}),r({type:"MultiPolygon",coordinates:t},e,n)}function c(t,r){void 0===r&&(r="kilometers");var n=e.factors[r];if(!n)throw new Error(r+" units is invalid");return t*n}function f(t,r){void 0===r&&(r="kilometers");var n=e.factors[r];if(!n)throw new Error(r+" units is invalid");return t/n}function h(t){return t%(2*Math.PI)*180/Math.PI}function p(t){return!isNaN(t)&&null!==t&&!Array.isArray(t)&&!/^\s*$/.test(t)}Object.defineProperty(e,"__esModule",{value:!0}),e.earthRadius=6371008.8,e.factors={centimeters:100*e.earthRadius,centimetres:100*e.earthRadius,degrees:e.earthRadius/111325,feet:3.28084*e.earthRadius,inches:39.37*e.earthRadius,kilometers:e.earthRadius/1e3,kilometres:e.earthRadius/1e3,meters:e.earthRadius,metres:e.earthRadius,miles:e.earthRadius/1609.344,millimeters:1e3*e.earthRadius,millimetres:1e3*e.earthRadius,nauticalmiles:e.earthRadius/1852,radians:1,yards:e.earthRadius/1.0936},e.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:.001,kilometres:.001,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/e.earthRadius,yards:1/1.0936},e.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046},e.feature=r,e.geometry=function(t,e,r){switch(void 0===r&&(r={}),t){case"Point":return n(e).geometry;case"LineString":return a(e).geometry;case"Polygon":return i(e).geometry;case"MultiPoint":return l(e).geometry;case"MultiLineString":return s(e).geometry;case"MultiPolygon":return u(e).geometry;default:throw new Error(t+" is invalid")}},e.point=n,e.points=function(t,e,r){return void 0===r&&(r={}),o(t.map((function(t){return n(t,e)})),r)},e.polygon=i,e.polygons=function(t,e,r){return void 0===r&&(r={}),o(t.map((function(t){return i(t,e)})),r)},e.lineString=a,e.lineStrings=function(t,e,r){return void 0===r&&(r={}),o(t.map((function(t){return a(t,e)})),r)},e.featureCollection=o,e.multiLineString=s,e.multiPoint=l,e.multiPolygon=u,e.geometryCollection=function(t,e,n){return void 0===n&&(n={}),r({type:"GeometryCollection",geometries:t},e,n)},e.round=function(t,e){if(void 0===e&&(e=0),e&&!(e>=0))throw new Error("precision must be a positive number");var r=Math.pow(10,e||0);return Math.round(t*r)/r},e.radiansToLength=c,e.lengthToRadians=f,e.lengthToDegrees=function(t,e){return h(f(t,e))},e.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},e.radiansToDegrees=h,e.degreesToRadians=function(t){return t%360*Math.PI/180},e.convertLength=function(t,e,r){if(void 0===e&&(e="kilometers"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("length must be a positive number");return c(f(t,e),r)},e.convertArea=function(t,r,n){if(void 0===r&&(r="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=e.areaFactors[r];if(!i)throw new Error("invalid original units");var a=e.areaFactors[n];if(!a)throw new Error("invalid final units");return t/i*a},e.isNumber=p,e.isObject=function(t){return!!t&&t.constructor===Object},e.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!p(t))throw new Error("bbox must only contain numbers")}))},e.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")},e.radians2degrees=function(){throw new Error("method has been renamed to `radiansToDegrees`")},e.degrees2radians=function(){throw new Error("method has been renamed to `degreesToRadians`")},e.distanceToDegrees=function(){throw new Error("method has been renamed to `lengthToDegrees`")},e.distanceToRadians=function(){throw new Error("method has been renamed to `lengthToRadians`")},e.radiansToDistance=function(){throw new Error("method has been renamed to `radiansToLength`")},e.bearingToAngle=function(){throw new Error("method has been renamed to `bearingToAzimuth`")},e.convertDistance=function(){throw new Error("method has been renamed to `convertLength`")}},88553:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(64182);function i(t,e,r){if(null!==t)for(var n,a,o,s,l,u,c,f,h=0,p=0,d=t.type,v="FeatureCollection"===d,g="Feature"===d,y=v?t.features.length:1,m=0;m<y;m++){l=(f=!!(c=v?t.features[m].geometry:g?t.geometry:t)&&"GeometryCollection"===c.type)?c.geometries.length:1;for(var x=0;x<l;x++){var b=0,_=0;if(null!==(s=f?c.geometries[x]:c)){u=s.coordinates;var w=s.type;switch(h=!r||"Polygon"!==w&&"MultiPolygon"!==w?0:1,w){case null:break;case"Point":if(!1===e(u,p,m,b,_))return!1;p++,b++;break;case"LineString":case"MultiPoint":for(n=0;n<u.length;n++){if(!1===e(u[n],p,m,b,_))return!1;p++,"MultiPoint"===w&&b++}"LineString"===w&&b++;break;case"Polygon":case"MultiLineString":for(n=0;n<u.length;n++){for(a=0;a<u[n].length-h;a++){if(!1===e(u[n][a],p,m,b,_))return!1;p++}"MultiLineString"===w&&b++,"Polygon"===w&&_++}"Polygon"===w&&b++;break;case"MultiPolygon":for(n=0;n<u.length;n++){for(_=0,a=0;a<u[n].length;a++){for(o=0;o<u[n][a].length-h;o++){if(!1===e(u[n][a][o],p,m,b,_))return!1;p++}_++}b++}break;case"GeometryCollection":for(n=0;n<s.geometries.length;n++)if(!1===i(s.geometries[n],e,r))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function a(t,e){var r;switch(t.type){case"FeatureCollection":for(r=0;r<t.features.length&&!1!==e(t.features[r].properties,r);r++);break;case"Feature":e(t.properties,0)}}function o(t,e){if("Feature"===t.type)e(t,0);else if("FeatureCollection"===t.type)for(var r=0;r<t.features.length&&!1!==e(t.features[r],r);r++);}function s(t,e){var r,n,i,a,o,s,l,u,c,f,h=0,p="FeatureCollection"===t.type,d="Feature"===t.type,v=p?t.features.length:1;for(r=0;r<v;r++){for(s=p?t.features[r].geometry:d?t.geometry:t,u=p?t.features[r].properties:d?t.properties:{},c=p?t.features[r].bbox:d?t.bbox:void 0,f=p?t.features[r].id:d?t.id:void 0,o=(l=!!s&&"GeometryCollection"===s.type)?s.geometries.length:1,i=0;i<o;i++)if(null!==(a=l?s.geometries[i]:s))switch(a.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===e(a,h,u,c,f))return!1;break;case"GeometryCollection":for(n=0;n<a.geometries.length;n++)if(!1===e(a.geometries[n],h,u,c,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===e(null,h,u,c,f))return!1;h++}}function l(t,e){s(t,(function(t,r,i,a,o){var s,l=null===t?null:t.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==e(n.feature(t,i,{bbox:a,id:o}),r,0)&&void 0}switch(l){case"MultiPoint":s="Point";break;case"MultiLineString":s="LineString";break;case"MultiPolygon":s="Polygon"}for(var u=0;u<t.coordinates.length;u++){var c={type:s,coordinates:t.coordinates[u]};if(!1===e(n.feature(c,i),r,u))return!1}}))}function u(t,e){l(t,(function(t,r,a){var o=0;if(t.geometry){var s=t.geometry.type;if("Point"!==s&&"MultiPoint"!==s){var l,u=0,c=0,f=0;return!1!==i(t,(function(i,s,h,p,d){if(void 0===l||r>u||p>c||d>f)return l=i,u=r,c=p,f=d,void(o=0);var v=n.lineString([l,i],t.properties);if(!1===e(v,r,a,d,o))return!1;o++,l=i}))&&void 0}}}))}function c(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,r,i){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,r,i,0,0))return!1;break;case"Polygon":for(var s=0;s<o.length;s++)if(!1===e(n.lineString(o[s],t.properties),r,i,s))return!1}}}))}e.coordEach=i,e.coordReduce=function(t,e,r,n){var a=r;return i(t,(function(t,n,i,o,s){a=0===n&&void 0===r?t:e(a,t,n,i,o,s)}),n),a},e.propEach=a,e.propReduce=function(t,e,r){var n=r;return a(t,(function(t,i){n=0===i&&void 0===r?t:e(n,t,i)})),n},e.featureEach=o,e.featureReduce=function(t,e,r){var n=r;return o(t,(function(t,i){n=0===i&&void 0===r?t:e(n,t,i)})),n},e.coordAll=function(t){var e=[];return i(t,(function(t){e.push(t)})),e},e.geomEach=s,e.geomReduce=function(t,e,r){var n=r;return s(t,(function(t,i,a,o,s){n=0===i&&void 0===r?t:e(n,t,i,a,o,s)})),n},e.flattenEach=l,e.flattenReduce=function(t,e,r){var n=r;return l(t,(function(t,i,a){n=0===i&&0===a&&void 0===r?t:e(n,t,i,a)})),n},e.segmentEach=u,e.segmentReduce=function(t,e,r){var n=r,i=!1;return u(t,(function(t,a,o,s,l){n=!1===i&&void 0===r?t:e(n,t,a,o,s,l),i=!0})),n},e.lineEach=c,e.lineReduce=function(t,e,r){var n=r;return c(t,(function(t,i,a,o){n=0===i&&void 0===r?t:e(n,t,i,a,o)})),n},e.findSegment=function(t,e){if(e=e||{},!n.isObject(e))throw new Error("options is invalid");var r,i=e.featureIndex||0,a=e.multiFeatureIndex||0,o=e.geometryIndex||0,s=e.segmentIndex||0,l=e.properties;switch(t.type){case"FeatureCollection":i<0&&(i=t.features.length+i),l=l||t.features[i].properties,r=t.features[i].geometry;break;case"Feature":l=l||t.properties,r=t.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":r=t;break;default:throw new Error("geojson is invalid")}if(null===r)return null;var u=r.coordinates;switch(r.type){case"Point":case"MultiPoint":return null;case"LineString":return s<0&&(s=u.length+s-1),n.lineString([u[s],u[s+1]],l,e);case"Polygon":return o<0&&(o=u.length+o),s<0&&(s=u[o].length+s-1),n.lineString([u[o][s],u[o][s+1]],l,e);case"MultiLineString":return a<0&&(a=u.length+a),s<0&&(s=u[a].length+s-1),n.lineString([u[a][s],u[a][s+1]],l,e);case"MultiPolygon":return a<0&&(a=u.length+a),o<0&&(o=u[a].length+o),s<0&&(s=u[a][o].length-s-1),n.lineString([u[a][o][s],u[a][o][s+1]],l,e)}throw new Error("geojson is invalid")},e.findPoint=function(t,e){if(e=e||{},!n.isObject(e))throw new Error("options is invalid");var r,i=e.featureIndex||0,a=e.multiFeatureIndex||0,o=e.geometryIndex||0,s=e.coordIndex||0,l=e.properties;switch(t.type){case"FeatureCollection":i<0&&(i=t.features.length+i),l=l||t.features[i].properties,r=t.features[i].geometry;break;case"Feature":l=l||t.properties,r=t.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":r=t;break;default:throw new Error("geojson is invalid")}if(null===r)return null;var u=r.coordinates;switch(r.type){case"Point":return n.point(u,l,e);case"MultiPoint":return a<0&&(a=u.length+a),n.point(u[a],l,e);case"LineString":return s<0&&(s=u.length+s),n.point(u[s],l,e);case"Polygon":return o<0&&(o=u.length+o),s<0&&(s=u[o].length+s),n.point(u[o][s],l,e);case"MultiLineString":return a<0&&(a=u.length+a),s<0&&(s=u[a].length+s),n.point(u[a][s],l,e);case"MultiPolygon":return a<0&&(a=u.length+a),o<0&&(o=u[a].length+o),s<0&&(s=u[a][o].length-s),n.point(u[a][o][s],l,e)}throw new Error("geojson is invalid")}},65185:function(t){t.exports=function(t){var e=0,r=0,n=0,i=0;return t.map((function(t){var a=(t=t.slice())[0],o=a.toUpperCase();if(a!=o)switch(t[0]=o,a){case"a":t[6]+=n,t[7]+=i;break;case"v":t[1]+=i;break;case"h":t[1]+=n;break;default:for(var s=1;s<t.length;)t[s++]+=n,t[s++]+=i}switch(o){case"Z":n=e,i=r;break;case"H":n=t[1];break;case"V":i=t[1];break;case"M":n=e=t[1],i=r=t[2];break;default:n=t[t.length-2],i=t[t.length-1]}return t}))}},21527:function(t){"use strict";t.exports=function(t,e){if(!t||null==t.length)throw Error("Argument should be an array");e=null==e?1:Math.floor(e);for(var r=Array(2*e),n=0;n<e;n++){for(var i=-1/0,a=1/0,o=n,s=t.length;o<s;o+=e)t[o]>i&&(i=t[o]),t[o]<a&&(a=t[o]);r[n]=a,r[e+n]=i}return r}},24696:function(t){t.exports=function(t,r,n){if(t.filter)return t.filter(r,n);if(null==t)throw new TypeError;if("function"!=typeof r)throw new TypeError;for(var i=[],a=0;a<t.length;a++)if(e.call(t,a)){var o=t[a];r.call(n,o,a,t)&&i.push(o)}return i};var e=Object.prototype.hasOwnProperty},6851:function(t){"use strict";t.exports=function(t,e,r){if("function"==typeof Array.prototype.findIndex)return t.findIndex(e,r);if("function"!=typeof e)throw new TypeError("predicate must be a function");var n=Object(t),i=n.length;if(0===i)return-1;for(var a=0;a<i;a++)if(e.call(r,n[a],a,n))return a;return-1}},54:function(t,e,r){"use strict";var n=r(21527);t.exports=function(t,e,r){if(!t||null==t.length)throw Error("Argument should be an array");null==e&&(e=1),null==r&&(r=n(t,e));for(var i=0;i<e;i++){var a=r[e+i],o=r[i],s=i,l=t.length;if(a===1/0&&o===-1/0)for(s=i;s<l;s+=e)t[s]=t[s]===a?1:t[s]===o?0:.5;else if(a===1/0)for(s=i;s<l;s+=e)t[s]=t[s]===a?1:0;else if(o===-1/0)for(s=i;s<l;s+=e)t[s]=t[s]===o?0:1;else{var u=a-o;for(s=i;s<l;s+=e)isNaN(t[s])||(t[s]=0===u?.5:(t[s]-o)/u)}}return t}},57471:function(t){t.exports=function(t,e){var r="number"==typeof t,n="number"==typeof e;r&&!n?(e=t,t=0):r||n||(t=0,e=0);var i=(e|=0)-(t|=0);if(i<0)throw new Error("array length must be positive");for(var a=new Array(i),o=0,s=t;o<i;o++,s++)a[o]=s;return a}},32791:function(t,e,r){"use strict";var n=r(90386);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}var a,o,s=r(79616).codes,l=s.ERR_AMBIGUOUS_ARGUMENT,u=s.ERR_INVALID_ARG_TYPE,c=s.ERR_INVALID_ARG_VALUE,f=s.ERR_INVALID_RETURN_VALUE,h=s.ERR_MISSING_ARGS,p=r(73894),d=r(43827).inspect,v=r(43827).types,g=v.isPromise,y=v.isRegExp,m=Object.assign?Object.assign:r(73523).assign,x=Object.is?Object.is:r(64003);function b(){var t=r(74061);a=t.isDeepEqual,o=t.isDeepStrictEqual}new Map;var _=!1,w=t.exports=M,T={};function k(t){if(t.message instanceof Error)throw t.message;throw new p(t)}function A(t,e,r,n){if(!r){var i=!1;if(0===e)i=!0,n="No value argument passed to `assert.ok()`";else if(n instanceof Error)throw n;var a=new p({actual:r,expected:!0,message:n,operator:"==",stackStartFn:t});throw a.generatedMessage=i,a}}function M(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];A.apply(void 0,[M,e.length].concat(e))}w.fail=function t(e,r,i,a,o){var s,l=arguments.length;if(0===l)s="Failed";else if(1===l)i=e,e=void 0;else{if(!1===_){_=!0;var u=n.emitWarning?n.emitWarning:console.warn.bind(console);u("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")}2===l&&(a="!=")}if(i instanceof Error)throw i;var c={actual:e,expected:r,operator:void 0===a?"fail":a,stackStartFn:o||t};void 0!==i&&(c.message=i);var f=new p(c);throw s&&(f.message=s,f.generatedMessage=!0),f},w.AssertionError=p,w.ok=M,w.equal=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");e!=r&&k({actual:e,expected:r,message:n,operator:"==",stackStartFn:t})},w.notEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");e==r&&k({actual:e,expected:r,message:n,operator:"!=",stackStartFn:t})},w.deepEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");void 0===a&&b(),a(e,r)||k({actual:e,expected:r,message:n,operator:"deepEqual",stackStartFn:t})},w.notDeepEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");void 0===a&&b(),a(e,r)&&k({actual:e,expected:r,message:n,operator:"notDeepEqual",stackStartFn:t})},w.deepStrictEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");void 0===a&&b(),o(e,r)||k({actual:e,expected:r,message:n,operator:"deepStrictEqual",stackStartFn:t})},w.notDeepStrictEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");void 0===a&&b(),o(e,r)&&k({actual:e,expected:r,message:n,operator:"notDeepStrictEqual",stackStartFn:t})},w.strictEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");x(e,r)||k({actual:e,expected:r,message:n,operator:"strictEqual",stackStartFn:t})},w.notStrictEqual=function t(e,r,n){if(arguments.length<2)throw new h("actual","expected");x(e,r)&&k({actual:e,expected:r,message:n,operator:"notStrictEqual",stackStartFn:t})};var S=function t(e,r,n){var i=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),r.forEach((function(t){t in e&&(void 0!==n&&"string"==typeof n[t]&&y(e[t])&&e[t].test(n[t])?i[t]=n[t]:i[t]=e[t])}))};function E(t,e,r,n,i,a){if(!(r in t)||!o(t[r],e[r])){if(!n){var s=new S(t,i),l=new S(e,i,t),u=new p({actual:s,expected:l,operator:"deepStrictEqual",stackStartFn:a});throw u.actual=t,u.expected=e,u.operator=a.name,u}k({actual:t,expected:e,message:n,operator:a.name,stackStartFn:a})}}function L(t,e,r,n){if("function"!=typeof e){if(y(e))return e.test(t);if(2===arguments.length)throw new u("expected",["Function","RegExp"],e);if("object"!==i(t)||null===t){var o=new p({actual:t,expected:e,message:r,operator:"deepStrictEqual",stackStartFn:n});throw o.operator=n.name,o}var s=Object.keys(e);if(e instanceof Error)s.push("name","message");else if(0===s.length)throw new c("error",e,"may not be an empty object");return void 0===a&&b(),s.forEach((function(i){"string"==typeof t[i]&&y(e[i])&&e[i].test(t[i])||E(t,e,i,r,s,n)})),!0}return void 0!==e.prototype&&t instanceof e||!Error.isPrototypeOf(e)&&!0===e.call({},t)}function C(t){if("function"!=typeof t)throw new u("fn","Function",t);try{t()}catch(t){return t}return T}function P(t){return g(t)||null!==t&&"object"===i(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function O(t){return Promise.resolve().then((function(){var e;if("function"==typeof t){if(!P(e=t()))throw new f("instance of Promise","promiseFn",e)}else{if(!P(t))throw new u("promiseFn",["Function","Promise"],t);e=t}return Promise.resolve().then((function(){return e})).then((function(){return T})).catch((function(t){return t}))}))}function I(t,e,r,n){if("string"==typeof r){if(4===arguments.length)throw new u("error",["Object","Error","Function","RegExp"],r);if("object"===i(e)&&null!==e){if(e.message===r)throw new l("error/message",'The error message "'.concat(e.message,'" is identical to the message.'))}else if(e===r)throw new l("error/message",'The error "'.concat(e,'" is identical to the message.'));n=r,r=void 0}else if(null!=r&&"object"!==i(r)&&"function"!=typeof r)throw new u("error",["Object","Error","Function","RegExp"],r);if(e===T){var a="";r&&r.name&&(a+=" (".concat(r.name,")")),a+=n?": ".concat(n):".";var o="rejects"===t.name?"rejection":"exception";k({actual:void 0,expected:r,operator:t.name,message:"Missing expected ".concat(o).concat(a),stackStartFn:t})}if(r&&!L(e,r,n,t))throw e}function D(t,e,r,n){if(e!==T){if("string"==typeof r&&(n=r,r=void 0),!r||L(e,r)){var i=n?": ".concat(n):".",a="doesNotReject"===t.name?"rejection":"exception";k({actual:e,expected:r,operator:t.name,message:"Got unwanted ".concat(a).concat(i,"\n")+'Actual message: "'.concat(e&&e.message,'"'),stackStartFn:t})}throw e}}function z(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];A.apply(void 0,[z,e.length].concat(e))}w.throws=function t(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];I.apply(void 0,[t,C(e)].concat(n))},w.rejects=function t(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return O(e).then((function(e){return I.apply(void 0,[t,e].concat(n))}))},w.doesNotThrow=function t(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];D.apply(void 0,[t,C(e)].concat(n))},w.doesNotReject=function t(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return O(e).then((function(e){return D.apply(void 0,[t,e].concat(n))}))},w.ifError=function t(e){if(null!=e){var r="ifError got unwanted exception: ";"object"===i(e)&&"string"==typeof e.message?0===e.message.length&&e.constructor?r+=e.constructor.name:r+=e.message:r+=d(e);var n=new p({actual:e,expected:null,operator:"ifError",message:r,stackStartFn:t}),a=e.stack;if("string"==typeof a){var o=a.split("\n");o.shift();for(var s=n.stack.split("\n"),l=0;l<o.length;l++){var u=s.indexOf(o[l]);if(-1!==u){s=s.slice(0,u);break}}n.stack="".concat(s.join("\n"),"\n").concat(o.join("\n"))}throw n}},w.strict=m(z,w,{equal:w.strictEqual,deepEqual:w.deepStrictEqual,notEqual:w.notStrictEqual,notDeepEqual:w.notDeepStrictEqual}),w.strict.strict=w.strict},73894:function(t,e,r){"use strict";var n=r(90386);function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e){return!e||"object"!==p(e)&&"function"!=typeof e?s(t):e}function s(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function l(t){var e="function"==typeof Map?new Map:void 0;return l=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return c(t,arguments,h(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),f(n,t)},l(t)}function u(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}function c(t,e,r){return c=u()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var i=new(Function.bind.apply(t,n));return r&&f(i,r.prototype),i},c.apply(null,arguments)}function f(t,e){return f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},f(t,e)}function h(t){return h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},h(t)}function p(t){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p(t)}var d=r(43827).inspect,v=r(79616).codes.ERR_INVALID_ARG_TYPE;function g(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}var y="",m="",x="",b="",_={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function w(t){var e=Object.keys(t),r=Object.create(Object.getPrototypeOf(t));return e.forEach((function(e){r[e]=t[e]})),Object.defineProperty(r,"message",{value:t.message}),r}function T(t){return d(t,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}var k=function(t){function e(t){var r;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),"object"!==p(t)||null===t)throw new v("options","Object",t);var i=t.message,a=t.operator,l=t.stackStartFn,u=t.actual,c=t.expected,f=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=i)r=o(this,h(e).call(this,String(i)));else if(n.stderr&&n.stderr.isTTY&&(n.stderr&&n.stderr.getColorDepth&&1!==n.stderr.getColorDepth()?(y="",m="",b="",x=""):(y="",m="",b="",x="")),"object"===p(u)&&null!==u&&"object"===p(c)&&null!==c&&"stack"in u&&u instanceof Error&&"stack"in c&&c instanceof Error&&(u=w(u),c=w(c)),"deepStrictEqual"===a||"strictEqual"===a)r=o(this,h(e).call(this,function(t,e,r){var i="",a="",o=0,s="",l=!1,u=T(t),c=u.split("\n"),f=T(e).split("\n"),h=0,d="";if("strictEqual"===r&&"object"===p(t)&&"object"===p(e)&&null!==t&&null!==e&&(r="strictEqualObject"),1===c.length&&1===f.length&&c[0]!==f[0]){var v=c[0].length+f[0].length;if(v<=10){if(!("object"===p(t)&&null!==t||"object"===p(e)&&null!==e||0===t&&0===e))return"".concat(_[r],"\n\n")+"".concat(c[0]," !== ").concat(f[0],"\n")}else if("strictEqualObject"!==r&&v<(n.stderr&&n.stderr.isTTY?n.stderr.columns:80)){for(;c[0][h]===f[0][h];)h++;h>2&&(d="\n  ".concat(function(t,e){if(e=Math.floor(e),0==t.length||0==e)return"";var r=t.length*e;for(e=Math.floor(Math.log(e)/Math.log(2));e;)t+=t,e--;return t+t.substring(0,r-t.length)}(" ",h),"^"),h=0)}}for(var w=c[c.length-1],k=f[f.length-1];w===k&&(h++<2?s="\n  ".concat(w).concat(s):i=w,c.pop(),f.pop(),0!==c.length&&0!==f.length);)w=c[c.length-1],k=f[f.length-1];var A=Math.max(c.length,f.length);if(0===A){var M=u.split("\n");if(M.length>30)for(M[26]="".concat(y,"...").concat(b);M.length>27;)M.pop();return"".concat(_.notIdentical,"\n\n").concat(M.join("\n"),"\n")}h>3&&(s="\n".concat(y,"...").concat(b).concat(s),l=!0),""!==i&&(s="\n  ".concat(i).concat(s),i="");var S=0,E=_[r]+"\n".concat(m,"+ actual").concat(b," ").concat(x,"- expected").concat(b),L=" ".concat(y,"...").concat(b," Lines skipped");for(h=0;h<A;h++){var C=h-o;if(c.length<h+1)C>1&&h>2&&(C>4?(a+="\n".concat(y,"...").concat(b),l=!0):C>3&&(a+="\n  ".concat(f[h-2]),S++),a+="\n  ".concat(f[h-1]),S++),o=h,i+="\n".concat(x,"-").concat(b," ").concat(f[h]),S++;else if(f.length<h+1)C>1&&h>2&&(C>4?(a+="\n".concat(y,"...").concat(b),l=!0):C>3&&(a+="\n  ".concat(c[h-2]),S++),a+="\n  ".concat(c[h-1]),S++),o=h,a+="\n".concat(m,"+").concat(b," ").concat(c[h]),S++;else{var P=f[h],O=c[h],I=O!==P&&(!g(O,",")||O.slice(0,-1)!==P);I&&g(P,",")&&P.slice(0,-1)===O&&(I=!1,O+=","),I?(C>1&&h>2&&(C>4?(a+="\n".concat(y,"...").concat(b),l=!0):C>3&&(a+="\n  ".concat(c[h-2]),S++),a+="\n  ".concat(c[h-1]),S++),o=h,a+="\n".concat(m,"+").concat(b," ").concat(O),i+="\n".concat(x,"-").concat(b," ").concat(P),S+=2):(a+=i,i="",1!==C&&0!==h||(a+="\n  ".concat(O),S++))}if(S>20&&h<A-2)return"".concat(E).concat(L,"\n").concat(a,"\n").concat(y,"...").concat(b).concat(i,"\n")+"".concat(y,"...").concat(b)}return"".concat(E).concat(l?L:"","\n").concat(a).concat(i).concat(s).concat(d)}(u,c,a)));else if("notDeepStrictEqual"===a||"notStrictEqual"===a){var d=_[a],k=T(u).split("\n");if("notStrictEqual"===a&&"object"===p(u)&&null!==u&&(d=_.notStrictEqualObject),k.length>30)for(k[26]="".concat(y,"...").concat(b);k.length>27;)k.pop();r=1===k.length?o(this,h(e).call(this,"".concat(d," ").concat(k[0]))):o(this,h(e).call(this,"".concat(d,"\n\n").concat(k.join("\n"),"\n")))}else{var A=T(u),M="",S=_[a];"notDeepEqual"===a||"notEqual"===a?(A="".concat(_[a],"\n\n").concat(A)).length>1024&&(A="".concat(A.slice(0,1021),"...")):(M="".concat(T(c)),A.length>512&&(A="".concat(A.slice(0,509),"...")),M.length>512&&(M="".concat(M.slice(0,509),"...")),"deepEqual"===a||"equal"===a?A="".concat(S,"\n\n").concat(A,"\n\nshould equal\n\n"):M=" ".concat(a," ").concat(M)),r=o(this,h(e).call(this,"".concat(A).concat(M)))}return Error.stackTraceLimit=f,r.generatedMessage=!i,Object.defineProperty(s(r),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),r.code="ERR_ASSERTION",r.actual=u,r.expected=c,r.operator=a,Error.captureStackTrace&&Error.captureStackTrace(s(r),l),r.stack,r.name="AssertionError",o(r)}var r,l;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(e,t),r=e,l=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:d.custom,value:function(t,e){return d(this,function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})))),n.forEach((function(e){i(t,e,r[e])}))}return t}({},e,{customInspect:!1,depth:0}))}}],l&&a(r.prototype,l),e}(l(Error));t.exports=k},79616:function(t,e,r){"use strict";function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function i(t){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},i(t)}function a(t,e){return a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},a(t,e)}var o,s,l={};function u(t,e,r){r||(r=Error);var o=function(r){function o(r,a,s){var l;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),l=function(t,e){return!e||"object"!==n(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}(this,i(o).call(this,function(t,r,n){return"string"==typeof e?e:e(t,r,n)}(r,a,s))),l.code=t,l}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(o,r),o}(r);l[t]=o}function c(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map((function(t){return String(t)})),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}u("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),u("ERR_INVALID_ARG_TYPE",(function(t,e,i){var a,s,l,u,f;if(void 0===o&&(o=r(32791)),o("string"==typeof t,"'name' must be a string"),"string"==typeof e&&(s="not ",e.substr(0,s.length)===s)?(a="must not be",e=e.replace(/^not /,"")):a="must be",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}(t," argument"))l="The ".concat(t," ").concat(a," ").concat(c(e,"type"));else{var h=("number"!=typeof f&&(f=0),f+".".length>(u=t).length||-1===u.indexOf(".",f)?"argument":"property");l='The "'.concat(t,'" ').concat(h," ").concat(a," ").concat(c(e,"type"))}return l+". Received type ".concat(n(i))}),TypeError),u("ERR_INVALID_ARG_VALUE",(function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===s&&(s=r(43827));var i=s.inspect(e);return i.length>128&&(i="".concat(i.slice(0,128),"...")),"The argument '".concat(t,"' ").concat(n,". Received ").concat(i)}),TypeError,RangeError),u("ERR_INVALID_RETURN_VALUE",(function(t,e,r){var i;return i=r&&r.constructor&&r.constructor.name?"instance of ".concat(r.constructor.name):"type ".concat(n(r)),"Expected ".concat(t,' to be returned from the "').concat(e,'"')+" function but got ".concat(i,".")}),TypeError),u("ERR_MISSING_ARGS",(function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];void 0===o&&(o=r(32791)),o(e.length>0,"At least one arg needs to be specified");var i="The ",a=e.length;switch(e=e.map((function(t){return'"'.concat(t,'"')})),a){case 1:i+="".concat(e[0]," argument");break;case 2:i+="".concat(e[0]," and ").concat(e[1]," arguments");break;default:i+=e.slice(0,a-1).join(", "),i+=", and ".concat(e[a-1]," arguments")}return"".concat(i," must be specified")}),TypeError),t.exports.codes=l},74061:function(t,e,r){"use strict";function n(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=[],n=!0,i=!1,a=void 0;try{for(var o,s=t[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!e||r.length!==e);n=!0);}catch(t){i=!0,a=t}finally{try{n||null==s.return||s.return()}finally{if(i)throw a}}return r}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}var a=void 0!==/a/g.flags,o=function(t){var e=[];return t.forEach((function(t){return e.push(t)})),e},s=function(t){var e=[];return t.forEach((function(t,r){return e.push([r,t])})),e},l=Object.is?Object.is:r(64003),u=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},c=Number.isNaN?Number.isNaN:r(15567);function f(t){return t.call.bind(t)}var h=f(Object.prototype.hasOwnProperty),p=f(Object.prototype.propertyIsEnumerable),d=f(Object.prototype.toString),v=r(43827).types,g=v.isAnyArrayBuffer,y=v.isArrayBufferView,m=v.isDate,x=v.isMap,b=v.isRegExp,_=v.isSet,w=v.isNativeError,T=v.isBoxedPrimitive,k=v.isNumberObject,A=v.isStringObject,M=v.isBooleanObject,S=v.isBigIntObject,E=v.isSymbolObject,L=v.isFloat32Array,C=v.isFloat64Array;function P(t){if(0===t.length||t.length>10)return!0;for(var e=0;e<t.length;e++){var r=t.charCodeAt(e);if(r<48||r>57)return!0}return 10===t.length&&t>=Math.pow(2,32)}function O(t){return Object.keys(t).filter(P).concat(u(t).filter(Object.prototype.propertyIsEnumerable.bind(t)))}function I(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i<a;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0}function D(t,e,r,n){if(t===e)return 0!==t||!r||l(t,e);if(r){if("object"!==i(t))return"number"==typeof t&&c(t)&&c(e);if("object"!==i(e)||null===t||null===e)return!1;if(Object.getPrototypeOf(t)!==Object.getPrototypeOf(e))return!1}else{if(null===t||"object"!==i(t))return(null===e||"object"!==i(e))&&t==e;if(null===e||"object"!==i(e))return!1}var o,s,u,f,h=d(t);if(h!==d(e))return!1;if(Array.isArray(t)){if(t.length!==e.length)return!1;var p=O(t),v=O(e);return p.length===v.length&&R(t,e,r,n,1,p)}if("[object Object]"===h&&(!x(t)&&x(e)||!_(t)&&_(e)))return!1;if(m(t)){if(!m(e)||Date.prototype.getTime.call(t)!==Date.prototype.getTime.call(e))return!1}else if(b(t)){if(!b(e)||(u=t,f=e,!(a?u.source===f.source&&u.flags===f.flags:RegExp.prototype.toString.call(u)===RegExp.prototype.toString.call(f))))return!1}else if(w(t)||t instanceof Error){if(t.message!==e.message||t.name!==e.name)return!1}else{if(y(t)){if(r||!L(t)&&!C(t)){if(!function(t,e){return t.byteLength===e.byteLength&&0===I(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}(t,e))return!1}else if(!function(t,e){if(t.byteLength!==e.byteLength)return!1;for(var r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}(t,e))return!1;var P=O(t),D=O(e);return P.length===D.length&&R(t,e,r,n,0,P)}if(_(t))return!(!_(e)||t.size!==e.size)&&R(t,e,r,n,2);if(x(t))return!(!x(e)||t.size!==e.size)&&R(t,e,r,n,3);if(g(t)){if(s=e,(o=t).byteLength!==s.byteLength||0!==I(new Uint8Array(o),new Uint8Array(s)))return!1}else if(T(t)&&!function(t,e){return k(t)?k(e)&&l(Number.prototype.valueOf.call(t),Number.prototype.valueOf.call(e)):A(t)?A(e)&&String.prototype.valueOf.call(t)===String.prototype.valueOf.call(e):M(t)?M(e)&&Boolean.prototype.valueOf.call(t)===Boolean.prototype.valueOf.call(e):S(t)?S(e)&&BigInt.prototype.valueOf.call(t)===BigInt.prototype.valueOf.call(e):E(e)&&Symbol.prototype.valueOf.call(t)===Symbol.prototype.valueOf.call(e)}(t,e))return!1}return R(t,e,r,n,0)}function z(t,e){return e.filter((function(e){return p(t,e)}))}function R(t,e,r,n,i,a){if(5===arguments.length){a=Object.keys(t);var o=Object.keys(e);if(a.length!==o.length)return!1}for(var s=0;s<a.length;s++)if(!h(e,a[s]))return!1;if(r&&5===arguments.length){var l=u(t);if(0!==l.length){var c=0;for(s=0;s<l.length;s++){var f=l[s];if(p(t,f)){if(!p(e,f))return!1;a.push(f),c++}else if(p(e,f))return!1}var d=u(e);if(l.length!==d.length&&z(e,d).length!==c)return!1}else{var v=u(e);if(0!==v.length&&0!==z(e,v).length)return!1}}if(0===a.length&&(0===i||1===i&&0===t.length||0===t.size))return!0;if(void 0===n)n={val1:new Map,val2:new Map,position:0};else{var g=n.val1.get(t);if(void 0!==g){var y=n.val2.get(e);if(void 0!==y)return g===y}n.position++}n.val1.set(t,n.position),n.val2.set(e,n.position);var m=V(t,e,r,a,n,i);return n.val1.delete(t),n.val2.delete(e),m}function F(t,e,r,n){for(var i=o(t),a=0;a<i.length;a++){var s=i[a];if(D(e,s,r,n))return t.delete(s),!0}return!1}function B(t){switch(i(t)){case"undefined":return null;case"object":return;case"symbol":return!1;case"string":t=+t;case"number":if(c(t))return!1}return!0}function N(t,e,r){var n=B(r);return null!=n?n:e.has(n)&&!t.has(n)}function j(t,e,r,n,i){var a=B(r);if(null!=a)return a;var o=e.get(a);return!(void 0===o&&!e.has(a)||!D(n,o,!1,i))&&!t.has(a)&&D(n,o,!1,i)}function U(t,e,r,n,i,a){for(var s=o(t),l=0;l<s.length;l++){var u=s[l];if(D(r,u,i,a)&&D(n,e.get(u),i,a))return t.delete(u),!0}return!1}function V(t,e,r,a,l,u){var c=0;if(2===u){if(!function(t,e,r,n){for(var a=null,s=o(t),l=0;l<s.length;l++){var u=s[l];if("object"===i(u)&&null!==u)null===a&&(a=new Set),a.add(u);else if(!e.has(u)){if(r)return!1;if(!N(t,e,u))return!1;null===a&&(a=new Set),a.add(u)}}if(null!==a){for(var c=o(e),f=0;f<c.length;f++){var h=c[f];if("object"===i(h)&&null!==h){if(!F(a,h,r,n))return!1}else if(!r&&!t.has(h)&&!F(a,h,r,n))return!1}return 0===a.size}return!0}(t,e,r,l))return!1}else if(3===u){if(!function(t,e,r,a){for(var o=null,l=s(t),u=0;u<l.length;u++){var c=n(l[u],2),f=c[0],h=c[1];if("object"===i(f)&&null!==f)null===o&&(o=new Set),o.add(f);else{var p=e.get(f);if(void 0===p&&!e.has(f)||!D(h,p,r,a)){if(r)return!1;if(!j(t,e,f,h,a))return!1;null===o&&(o=new Set),o.add(f)}}}if(null!==o){for(var d=s(e),v=0;v<d.length;v++){var g=n(d[v],2),y=(f=g[0],g[1]);if("object"===i(f)&&null!==f){if(!U(o,t,f,y,r,a))return!1}else if(!(r||t.has(f)&&D(t.get(f),y,!1,a)||U(o,t,f,y,!1,a)))return!1}return 0===o.size}return!0}(t,e,r,l))return!1}else if(1===u)for(;c<t.length;c++){if(!h(t,c)){if(h(e,c))return!1;for(var f=Object.keys(t);c<f.length;c++){var p=f[c];if(!h(e,p)||!D(t[p],e[p],r,l))return!1}return f.length===Object.keys(e).length}if(!h(e,c)||!D(t[c],e[c],r,l))return!1}for(c=0;c<a.length;c++){var d=a[c];if(!D(t[d],e[d],r,l))return!1}return!0}t.exports={isDeepEqual:function(t,e){return D(t,e,!1)},isDeepStrictEqual:function(t,e){return D(t,e,!0)}}},95341:function(t,e){"use strict";e.byteLength=function(t){var e=l(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,a=l(t),o=a[0],s=a[1],u=new i(function(t,e,r){return 3*(e+r)/4-r}(0,o,s)),c=0,f=s>0?o-4:o;for(r=0;r<f;r+=4)e=n[t.charCodeAt(r)]<<18|n[t.charCodeAt(r+1)]<<12|n[t.charCodeAt(r+2)]<<6|n[t.charCodeAt(r+3)],u[c++]=e>>16&255,u[c++]=e>>8&255,u[c++]=255&e;return 2===s&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[c++]=255&e),1===s&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[c++]=e>>8&255,u[c++]=255&e),u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,a=[],o=16383,s=0,l=n-i;s<l;s+=o)a.push(u(t,s,s+o>l?l:s+o));return 1===i?(e=t[n-1],a.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),a.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,s=a.length;o<s;++o)r[o]=a[o],n[a.charCodeAt(o)]=o;function l(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function u(t,e,n){for(var i,a,o=[],s=e;s<n;s+=3)i=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]),o.push(r[(a=i)>>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return o.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},91358:function(t){"use strict";function e(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>=0?(a=o,i=o-1):n=o+1}return a}function r(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>0?(a=o,i=o-1):n=o+1}return a}function n(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<0?(a=o,n=o+1):i=o-1}return a}function i(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<=0?(a=o,n=o+1):i=o-1}return a}function a(t,e,r,n,i){for(;n<=i;){var a=n+i>>>1,o=t[a],s=void 0!==r?r(o,e):o-e;if(0===s)return a;s<=0?n=a+1:i=a-1}return-1}function o(t,e,r,n,i,a){return"function"==typeof r?a(t,e,r,void 0===n?0:0|n,void 0===i?t.length-1:0|i):a(t,e,void 0,void 0===r?0:0|r,void 0===n?t.length-1:0|n)}t.exports={ge:function(t,r,n,i,a){return o(t,r,n,i,a,e)},gt:function(t,e,n,i,a){return o(t,e,n,i,a,r)},lt:function(t,e,r,i,a){return o(t,e,r,i,a,n)},le:function(t,e,r,n,a){return o(t,e,r,n,a,i)},eq:function(t,e,r,n,i){return o(t,e,r,n,i,a)}}},13547:function(t,e){"use strict";function r(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}e.INT_BITS=32,e.INT_MAX=2147483647,e.INT_MIN=-1<<31,e.sign=function(t){return(t>0)-(t<0)},e.abs=function(t){var e=t>>31;return(t^e)-e},e.min=function(t,e){return e^(t^e)&-(t<e)},e.max=function(t,e){return t^(t^e)&-(t<e)},e.isPow2=function(t){return!(t&t-1||!t)},e.log2=function(t){var e,r;return e=(t>65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},e.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},e.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},e.countTrailingZeros=r,e.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,1+(t|=t>>>16)},e.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},e.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var n=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<<i&255}}(n),e.reverse=function(t){return n[255&t]<<24|n[t>>>8&255]<<16|n[t>>>16&255]<<8|n[t>>>24&255]},e.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},e.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},e.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},e.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},e.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>r(t)+1}},44781:function(t,e,r){"use strict";var n=r(53435);t.exports=function(t,e){e||(e={});var r,o,s,l,u,c,f,h,p,d,v,g=null==e.cutoff?.25:e.cutoff,y=null==e.radius?8:e.radius,m=e.channel||0;if(ArrayBuffer.isView(t)||Array.isArray(t)){if(!e.width||!e.height)throw Error("For raw data width and height should be provided by options");r=e.width,o=e.height,l=t,c=e.stride?e.stride:Math.floor(t.length/r/o)}else window.HTMLCanvasElement&&t instanceof window.HTMLCanvasElement?(f=(h=t).getContext("2d"),r=h.width,o=h.height,l=(p=f.getImageData(0,0,r,o)).data,c=4):window.CanvasRenderingContext2D&&t instanceof window.CanvasRenderingContext2D?(f=t,r=(h=t.canvas).width,o=h.height,l=(p=f.getImageData(0,0,r,o)).data,c=4):window.ImageData&&t instanceof window.ImageData&&(p=t,r=t.width,o=t.height,l=p.data,c=4);if(s=Math.max(r,o),window.Uint8ClampedArray&&l instanceof window.Uint8ClampedArray||window.Uint8Array&&l instanceof window.Uint8Array)for(u=l,l=Array(r*o),d=0,v=u.length;d<v;d++)l[d]=u[d*c+m]/255;else if(1!==c)throw Error("Raw data can have only 1 value per pixel");var x=Array(r*o),b=Array(r*o),_=Array(s),w=Array(s),T=Array(s+1),k=Array(s);for(d=0,v=r*o;d<v;d++){var A=l[d];x[d]=1===A?0:0===A?i:Math.pow(Math.max(0,.5-A),2),b[d]=1===A?i:0===A?0:Math.pow(Math.max(0,A-.5),2)}a(x,r,o,_,w,k,T),a(b,r,o,_,w,k,T);var M=window.Float32Array?new Float32Array(r*o):new Array(r*o);for(d=0,v=r*o;d<v;d++)M[d]=n(1-((x[d]-b[d])/y+g),0,1);return M};var i=1e20;function a(t,e,r,n,i,a,s){for(var l=0;l<e;l++){for(var u=0;u<r;u++)n[u]=t[u*e+l];for(o(n,i,a,s,r),u=0;u<r;u++)t[u*e+l]=i[u]}for(u=0;u<r;u++){for(l=0;l<e;l++)n[l]=t[u*e+l];for(o(n,i,a,s,e),l=0;l<e;l++)t[u*e+l]=Math.sqrt(i[l])}}function o(t,e,r,n,a){r[0]=0,n[0]=-i,n[1]=+i;for(var o=1,s=0;o<a;o++){for(var l=(t[o]+o*o-(t[r[s]]+r[s]*r[s]))/(2*o-2*r[s]);l<=n[s];)s--,l=(t[o]+o*o-(t[r[s]]+r[s]*r[s]))/(2*o-2*r[s]);r[++s]=o,n[s]=l,n[s+1]=+i}for(o=0,s=0;o<a;o++){for(;n[s+1]<o;)s++;e[o]=(o-r[s])*(o-r[s])+t[r[s]]}}},68222:function(t,e,r){"use strict";var n=r(77575),i=r(68318),a=i("%Function.prototype.apply%"),o=i("%Function.prototype.call%"),s=i("%Reflect.apply%",!0)||n.call(o,a),l=i("%Object.defineProperty%",!0);if(l)try{l({},"a",{value:1})}catch(t){l=null}t.exports=function(){return s(n,o,arguments)};var u=function(){return s(n,a,arguments)};l?l(t.exports,"apply",{value:u}):t.exports.apply=u},53435:function(t){t.exports=function(t,e,r){return e<r?t<e?e:t>r?r:t:t<r?r:t>e?e:t}},6475:function(t,e,r){"use strict";var n=r(53435);function i(t,e){null==e&&(e=!0);var r=t[0],i=t[1],a=t[2],o=t[3];return null==o&&(o=e?1:255),e&&(r*=255,i*=255,a*=255,o*=255),16777216*(r=255&n(r,0,255))+((i=255&n(i,0,255))<<16)+((a=255&n(a,0,255))<<8)+(255&n(o,0,255))}t.exports=i,t.exports.to=i,t.exports.from=function(t,e){var r=(t=+t)>>>24,n=(16711680&t)>>>16,i=(65280&t)>>>8,a=255&t;return!1===e?[r,n,i,a]:[r/255,n/255,i/255,a/255]}},76857:function(t){"use strict";t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},25075:function(t,e,r){"use strict";var n=r(36652),i=r(53435),a=r(90660);t.exports=function(t,e){"float"!==e&&e||(e="array"),"uint"===e&&(e="uint8"),"uint_clamped"===e&&(e="uint8_clamped");var r=new(a(e))(4),o="uint8"!==e&&"uint8_clamped"!==e;return t.length&&"string"!=typeof t||((t=n(t))[0]/=255,t[1]/=255,t[2]/=255),function(t){return t instanceof Uint8Array||t instanceof Uint8ClampedArray||!!(Array.isArray(t)&&(t[0]>1||0===t[0])&&(t[1]>1||0===t[1])&&(t[2]>1||0===t[2])&&(!t[3]||t[3]>1))}(t)?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:255,o&&(r[0]/=255,r[1]/=255,r[2]/=255,r[3]/=255),r):(o?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:1):(r[0]=i(Math.floor(255*t[0]),0,255),r[1]=i(Math.floor(255*t[1]),0,255),r[2]=i(Math.floor(255*t[2]),0,255),r[3]=null==t[3]?255:i(Math.floor(255*t[3]),0,255)),r)}},90736:function(t,e,r){"use strict";var n=r(76857),i=r(10973),a=r(46775);t.exports=function(t){var e,s,l=[],u=1;if("string"==typeof t)if(n[t])l=n[t].slice(),s="rgb";else if("transparent"===t)u=0,s="rgb",l=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(t)){var c=(p=t.slice(1)).length;u=1,c<=4?(l=[parseInt(p[0]+p[0],16),parseInt(p[1]+p[1],16),parseInt(p[2]+p[2],16)],4===c&&(u=parseInt(p[3]+p[3],16)/255)):(l=[parseInt(p[0]+p[1],16),parseInt(p[2]+p[3],16),parseInt(p[4]+p[5],16)],8===c&&(u=parseInt(p[6]+p[7],16)/255)),l[0]||(l[0]=0),l[1]||(l[1]=0),l[2]||(l[2]=0),s="rgb"}else if(e=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(t)){var f=e[1],h="rgb"===f,p=f.replace(/a$/,"");s=p,c="cmyk"===p?4:"gray"===p?1:3,l=e[2].trim().split(/\s*,\s*/).map((function(t,e){if(/%$/.test(t))return e===c?parseFloat(t)/100:"rgb"===p?255*parseFloat(t)/100:parseFloat(t);if("h"===p[e]){if(/deg$/.test(t))return parseFloat(t);if(void 0!==o[t])return o[t]}return parseFloat(t)})),f===p&&l.push(1),u=h||void 0===l[c]?1:l[c],l=l.slice(0,c)}else t.length>10&&/[0-9](?:\s|\/)/.test(t)&&(l=t.match(/([0-9]+)/g).map((function(t){return parseFloat(t)})),s=t.match(/([a-z])/gi).join("").toLowerCase());else if(isNaN(t))if(i(t)){var d=a(t.r,t.red,t.R,null);null!==d?(s="rgb",l=[d,a(t.g,t.green,t.G),a(t.b,t.blue,t.B)]):(s="hsl",l=[a(t.h,t.hue,t.H),a(t.s,t.saturation,t.S),a(t.l,t.lightness,t.L,t.b,t.brightness)]),u=a(t.a,t.alpha,t.opacity,1),null!=t.opacity&&(u/=100)}else(Array.isArray(t)||r.g.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(t))&&(l=[t[0],t[1],t[2]],s="rgb",u=4===t.length?t[3]:1);else s="rgb",l=[t>>>16,(65280&t)>>>8,255&t];return{space:s,values:l,alpha:u}};var o={red:0,orange:60,yellow:120,green:180,blue:240,purple:300}},36652:function(t,e,r){"use strict";var n=r(90736),i=r(80009),a=r(53435);t.exports=function(t){var e,r=n(t);return r.space?((e=Array(3))[0]=a(r.values[0],0,255),e[1]=a(r.values[1],0,255),e[2]=a(r.values[2],0,255),"h"===r.space[0]&&(e=i.rgb(e)),e.push(a(r.alpha,0,1)),e):[]}},80009:function(t,e,r){"use strict";var n=r(6866);t.exports={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(t){var e,r,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[a=255*l,a,a];e=2*l-(r=l<.5?l*(1+s):l+s-l*s),i=[0,0,0];for(var u=0;u<3;u++)(n=o+1/3*-(u-1))<0?n++:n>1&&n--,a=6*n<1?e+6*(r-e)*n:2*n<1?r:3*n<2?e+(r-e)*(2/3-n)*6:e,i[u]=255*a;return i}},n.hsl=function(t){var e,r,n=t[0]/255,i=t[1]/255,a=t[2]/255,o=Math.min(n,i,a),s=Math.max(n,i,a),l=s-o;return s===o?e=0:n===s?e=(i-a)/l:i===s?e=2+(a-n)/l:a===s&&(e=4+(n-i)/l),(e=Math.min(60*e,360))<0&&(e+=360),r=(o+s)/2,[e,100*(s===o?0:r<=.5?l/(s+o):l/(2-s-o)),100*r]}},6866:function(t){"use strict";t.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},24138:function(t){t.exports={AFG:"afghan",ALA:"\\b\\wland",ALB:"albania",DZA:"algeria",ASM:"^(?=.*americ).*samoa",AND:"andorra",AGO:"angola",AIA:"anguill?a",ATA:"antarctica",ATG:"antigua",ARG:"argentin",ARM:"armenia",ABW:"^(?!.*bonaire).*\\baruba",AUS:"australia",AUT:"^(?!.*hungary).*austria|\\baustri.*\\bemp",AZE:"azerbaijan",BHS:"bahamas",BHR:"bahrain",BGD:"bangladesh|^(?=.*east).*paki?stan",BRB:"barbados",BLR:"belarus|byelo",BEL:"^(?!.*luxem).*belgium",BLZ:"belize|^(?=.*british).*honduras",BEN:"benin|dahome",BMU:"bermuda",BTN:"bhutan",BOL:"bolivia",BES:"^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\\bbes.?islands",BIH:"herzegovina|bosnia",BWA:"botswana|bechuana",BVT:"bouvet",BRA:"brazil",IOT:"british.?indian.?ocean",BRN:"brunei",BGR:"bulgaria",BFA:"burkina|\\bfaso|upper.?volta",BDI:"burundi",CPV:"verde",KHM:"cambodia|kampuchea|khmer",CMR:"cameroon",CAN:"canada",CYM:"cayman",CAF:"\\bcentral.african.republic",TCD:"\\bchad",CHL:"\\bchile",CHN:"^(?!.*\\bmac)(?!.*\\bhong)(?!.*\\btai)(?!.*\\brep).*china|^(?=.*peo)(?=.*rep).*china",CXR:"christmas",CCK:"\\bcocos|keeling",COL:"colombia",COM:"comoro",COG:"^(?!.*\\bdem)(?!.*\\bd[\\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\\bcongo",COK:"\\bcook",CRI:"costa.?rica",CIV:"ivoire|ivory",HRV:"croatia",CUB:"\\bcuba",CUW:"^(?!.*bonaire).*\\bcura(c|ç)ao",CYP:"cyprus",CSK:"czechoslovakia",CZE:"^(?=.*rep).*czech|czechia|bohemia",COD:"\\bdem.*congo|congo.*\\bdem|congo.*\\bd[\\.]?r|\\bd[\\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc",DNK:"denmark",DJI:"djibouti",DMA:"dominica(?!n)",DOM:"dominican.rep",ECU:"ecuador",EGY:"egypt",SLV:"el.?salvador",GNQ:"guine.*eq|eq.*guine|^(?=.*span).*guinea",ERI:"eritrea",EST:"estonia",ETH:"ethiopia|abyssinia",FLK:"falkland|malvinas",FRO:"faroe|faeroe",FJI:"fiji",FIN:"finland",FRA:"^(?!.*\\bdep)(?!.*martinique).*france|french.?republic|\\bgaul",GUF:"^(?=.*french).*guiana",PYF:"french.?polynesia|tahiti",ATF:"french.?southern",GAB:"gabon",GMB:"gambia",GEO:"^(?!.*south).*georgia",DDR:"german.?democratic.?republic|democratic.?republic.*germany|east.germany",DEU:"^(?!.*east).*germany|^(?=.*\\bfed.*\\brep).*german",GHA:"ghana|gold.?coast",GIB:"gibraltar",GRC:"greece|hellenic|hellas",GRL:"greenland",GRD:"grenada",GLP:"guadeloupe",GUM:"\\bguam",GTM:"guatemala",GGY:"guernsey",GIN:"^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea",GNB:"bissau|^(?=.*portu).*guinea",GUY:"guyana|british.?guiana",HTI:"haiti",HMD:"heard.*mcdonald",VAT:"holy.?see|vatican|papal.?st",HND:"^(?!.*brit).*honduras",HKG:"hong.?kong",HUN:"^(?!.*austr).*hungary",ISL:"iceland",IND:"india(?!.*ocea)",IDN:"indonesia",IRN:"\\biran|persia",IRQ:"\\biraq|mesopotamia",IRL:"(^ireland)|(^republic.*ireland)",IMN:"^(?=.*isle).*\\bman",ISR:"israel",ITA:"italy",JAM:"jamaica",JPN:"japan",JEY:"jersey",JOR:"jordan",KAZ:"kazak",KEN:"kenya|british.?east.?africa|east.?africa.?prot",KIR:"kiribati",PRK:"^(?=.*democrat|people|north|d.*p.*.r).*\\bkorea|dprk|korea.*(d.*p.*r)",KWT:"kuwait",KGZ:"kyrgyz|kirghiz",LAO:"\\blaos?\\b",LVA:"latvia",LBN:"lebanon",LSO:"lesotho|basuto",LBR:"liberia",LBY:"libya",LIE:"liechtenstein",LTU:"lithuania",LUX:"^(?!.*belg).*luxem",MAC:"maca(o|u)",MDG:"madagascar|malagasy",MWI:"malawi|nyasa",MYS:"malaysia",MDV:"maldive",MLI:"\\bmali\\b",MLT:"\\bmalta",MHL:"marshall",MTQ:"martinique",MRT:"mauritania",MUS:"mauritius",MYT:"\\bmayotte",MEX:"\\bmexic",FSM:"fed.*micronesia|micronesia.*fed",MCO:"monaco",MNG:"mongolia",MNE:"^(?!.*serbia).*montenegro",MSR:"montserrat",MAR:"morocco|\\bmaroc",MOZ:"mozambique",MMR:"myanmar|burma",NAM:"namibia",NRU:"nauru",NPL:"nepal",NLD:"^(?!.*\\bant)(?!.*\\bcarib).*netherlands",ANT:"^(?=.*\\bant).*(nether|dutch)",NCL:"new.?caledonia",NZL:"new.?zealand",NIC:"nicaragua",NER:"\\bniger(?!ia)",NGA:"nigeria",NIU:"niue",NFK:"norfolk",MNP:"mariana",NOR:"norway",OMN:"\\boman|trucial",PAK:"^(?!.*east).*paki?stan",PLW:"palau",PSE:"palestin|\\bgaza|west.?bank",PAN:"panama",PNG:"papua|new.?guinea",PRY:"paraguay",PER:"peru",PHL:"philippines",PCN:"pitcairn",POL:"poland",PRT:"portugal",PRI:"puerto.?rico",QAT:"qatar",KOR:"^(?!.*d.*p.*r)(?!.*democrat)(?!.*people)(?!.*north).*\\bkorea(?!.*d.*p.*r)",MDA:"moldov|b(a|e)ssarabia",REU:"r(e|é)union",ROU:"r(o|u|ou)mania",RUS:"\\brussia|soviet.?union|u\\.?s\\.?s\\.?r|socialist.?republics",RWA:"rwanda",BLM:"barth(e|é)lemy",SHN:"helena",KNA:"kitts|\\bnevis",LCA:"\\blucia",MAF:"^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique)",SPM:"miquelon",VCT:"vincent",WSM:"^(?!.*amer).*samoa",SMR:"san.?marino",STP:"\\bs(a|ã)o.?tom(e|é)",SAU:"\\bsa\\w*.?arabia",SEN:"senegal",SRB:"^(?!.*monte).*serbia",SYC:"seychell",SLE:"sierra",SGP:"singapore",SXM:"^(?!.*martin)(?!.*saba).*maarten",SVK:"^(?!.*cze).*slovak",SVN:"slovenia",SLB:"solomon",SOM:"somali",ZAF:"south.africa|s\\\\..?africa",SGS:"south.?georgia|sandwich",SSD:"\\bs\\w*.?sudan",ESP:"spain",LKA:"sri.?lanka|ceylon",SDN:"^(?!.*\\bs(?!u)).*sudan",SUR:"surinam|dutch.?guiana",SJM:"svalbard",SWZ:"swaziland",SWE:"sweden",CHE:"switz|swiss",SYR:"syria",TWN:"taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china",TJK:"tajik",THA:"thailand|\\bsiam",MKD:"macedonia|fyrom",TLS:"^(?=.*leste).*timor|^(?=.*east).*timor",TGO:"togo",TKL:"tokelau",TON:"tonga",TTO:"trinidad|tobago",TUN:"tunisia",TUR:"turkey",TKM:"turkmen",TCA:"turks",TUV:"tuvalu",UGA:"uganda",UKR:"ukrain",ARE:"emirates|^u\\.?a\\.?e\\.?$|united.?arab.?em",GBR:"united.?kingdom|britain|^u\\.?k\\.?$",TZA:"tanzania",USA:"united.?states\\b(?!.*islands)|\\bu\\.?s\\.?a\\.?\\b|^\\s*u\\.?s\\.?\\b(?!.*islands)",UMI:"minor.?outlying.?is",URY:"uruguay",UZB:"uzbek",VUT:"vanuatu|new.?hebrides",VEN:"venezuela",VNM:"^(?!.*republic).*viet.?nam|^(?=.*socialist).*viet.?nam",VGB:"^(?=.*\\bu\\.?\\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin",VIR:"^(?=.*\\bu\\.?\\s?s).*virgin|^(?=.*states).*virgin",WLF:"futuna|wallis",ESH:"western.sahara",YEM:"^(?!.*arab)(?!.*north)(?!.*sana)(?!.*peo)(?!.*dem)(?!.*south)(?!.*aden)(?!.*\\bp\\.?d\\.?r).*yemen",YMD:"^(?=.*peo).*yemen|^(?!.*rep)(?=.*dem).*yemen|^(?=.*south).*yemen|^(?=.*aden).*yemen|^(?=.*\\bp\\.?d\\.?r).*yemen",YUG:"yugoslavia",ZMB:"zambia|northern.?rhodesia",EAZ:"zanzibar",ZWE:"zimbabwe|^(?!.*northern).*rhodesia"}},72791:function(t,e,r){"use strict";t.exports={parse:r(41004),stringify:r(53313)}},63625:function(t,e,r){"use strict";var n=r(40402);t.exports={isSize:function(t){return/^[\d\.]/.test(t)||-1!==t.indexOf("/")||-1!==n.indexOf(t)}}},41004:function(t,e,r){"use strict";var n=r(90448),i=r(38732),a=r(41901),o=r(15659),s=r(96209),l=r(83794),u=r(99011),c=r(63625).isSize;t.exports=h;var f=h.cache={};function h(t){if("string"!=typeof t)throw new Error("Font argument must be a string.");if(f[t])return f[t];if(""===t)throw new Error("Cannot parse an empty string.");if(-1!==a.indexOf(t))return f[t]={system:t};for(var e,r={style:"normal",variant:"normal",weight:"normal",stretch:"normal",lineHeight:"normal",size:"1rem",family:["serif"]},h=u(t,/\s+/);e=h.shift();){if(-1!==i.indexOf(e))return["style","variant","weight","stretch"].forEach((function(t){r[t]=e})),f[t]=r;if(-1===s.indexOf(e))if("normal"!==e&&"small-caps"!==e)if(-1===l.indexOf(e)){if(-1===o.indexOf(e)){if(c(e)){var d=u(e,"/");if(r.size=d[0],null!=d[1]?r.lineHeight=p(d[1]):"/"===h[0]&&(h.shift(),r.lineHeight=p(h.shift())),!h.length)throw new Error("Missing required font-family.");return r.family=u(h.join(" "),/\s*,\s*/).map(n),f[t]=r}throw new Error("Unknown or unsupported font token: "+e)}r.weight=e}else r.stretch=e;else r.variant=e;else r.style=e}throw new Error("Missing required font-size.")}function p(t){var e=parseFloat(t);return e.toString()===t?e:t}},53313:function(t,e,r){"use strict";var n=r(71299),i=r(63625).isSize,a=d(r(38732)),o=d(r(41901)),s=d(r(15659)),l=d(r(96209)),u=d(r(83794)),c={normal:1,"small-caps":1},f={serif:1,"sans-serif":1,monospace:1,cursive:1,fantasy:1,"system-ui":1},h="serif";function p(t,e){if(t&&!e[t]&&!a[t])throw Error("Unknown keyword `"+t+"`");return t}function d(t){for(var e={},r=0;r<t.length;r++)e[t[r]]=1;return e}t.exports=function(t){if((t=n(t,{style:"style fontstyle fontStyle font-style slope distinction",variant:"variant font-variant fontVariant fontvariant var capitalization",weight:"weight w font-weight fontWeight fontweight",stretch:"stretch font-stretch fontStretch fontstretch width",size:"size s font-size fontSize fontsize height em emSize",lineHeight:"lh line-height lineHeight lineheight leading",family:"font family fontFamily font-family fontfamily type typeface face",system:"system reserved default global"})).system)return t.system&&p(t.system,o),t.system;if(p(t.style,l),p(t.variant,c),p(t.weight,s),p(t.stretch,u),null==t.size&&(t.size="1rem"),"number"==typeof t.size&&(t.size+="px"),!i)throw Error("Bad size value `"+t.size+"`");t.family||(t.family=h),Array.isArray(t.family)&&(t.family.length||(t.family=[h]),t.family=t.family.map((function(t){return f[t]?t:'"'+t+'"'})).join(", "));var e=[];return e.push(t.style),t.variant!==t.style&&e.push(t.variant),t.weight!==t.variant&&t.weight!==t.style&&e.push(t.weight),t.stretch!==t.weight&&t.stretch!==t.variant&&t.stretch!==t.style&&e.push(t.stretch),e.push(t.size+(null==t.lineHeight||"normal"===t.lineHeight||t.lineHeight+""=="1"?"":"/"+t.lineHeight)),e.push(t.family),e.filter(Boolean).join(" ")}},55174:function(t,e,r){"use strict";var n,i=r(24582),a=r(10424),o=r(82527),s=r(19012),l=r(21780),u=r(16906),c=Function.prototype.bind,f=Object.defineProperty,h=Object.prototype.hasOwnProperty;n=function(t,e,r){var n,i=a(e)&&o(e.value);return delete(n=s(e)).writable,delete n.value,n.get=function(){return!r.overwriteDefinition&&h.call(this,t)?i:(e.value=c.call(i,r.resolveContext?r.resolveContext(this):this),f(this,t,e),this[t])},n},t.exports=function(t){var e=l(arguments[1]);return i(e.resolveContext)&&o(e.resolveContext),u(t,(function(t,r){return n(r,t,e)}))}},62072:function(t,e,r){"use strict";var n=r(24582),i=r(84985),a=r(95879),o=r(21780),s=r(66741),l=t.exports=function(t,e){var r,i,l,u,c;return arguments.length<2||"string"!=typeof t?(u=e,e=t,t=null):u=arguments[2],n(t)?(r=s.call(t,"c"),i=s.call(t,"e"),l=s.call(t,"w")):(r=l=!0,i=!1),c={value:e,configurable:r,enumerable:i,writable:l},u?a(o(u),c):c};l.gs=function(t,e,r){var l,u,c,f;return"string"!=typeof t?(c=r,r=e,e=t,t=null):c=arguments[3],n(e)?i(e)?n(r)?i(r)||(c=r,r=void 0):r=void 0:(c=e,e=r=void 0):e=void 0,n(t)?(l=s.call(t,"c"),u=s.call(t,"e")):(l=!0,u=!1),f={get:e,set:r,configurable:l,enumerable:u},c?a(o(c),f):f}},33064:function(t,e,r){"use strict";function n(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}r.d(e,{j2:function(){return n},Fp:function(){return s},J6:function(){return u},TS:function(){return c},VV:function(){return f},w6:function(){return h},Sm:function(){return p}}),1===(i=n).length&&(a=i,i=function(t,e){return n(a(t),e)});var i,a,o=Array.prototype;function s(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a<i;)if(null!=(r=t[a])&&r>=r)for(n=r;++a<i;)null!=(r=t[a])&&r>n&&(n=r)}else for(;++a<i;)if(null!=(r=e(t[a],a,t))&&r>=r)for(n=r;++a<i;)null!=(r=e(t[a],a,t))&&r>n&&(n=r);return n}function l(t){return null===t?NaN:+t}function u(t,e){var r,n=t.length,i=n,a=-1,o=0;if(null==e)for(;++a<n;)isNaN(r=l(t[a]))?--i:o+=r;else for(;++a<n;)isNaN(r=l(e(t[a],a,t)))?--i:o+=r;if(i)return o/i}function c(t){for(var e,r,n,i=t.length,a=-1,o=0;++a<i;)o+=t[a].length;for(r=new Array(o);--i>=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r}function f(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a<i;)if(null!=(r=t[a])&&r>=r)for(n=r;++a<i;)null!=(r=t[a])&&n>r&&(n=r)}else for(;++a<i;)if(null!=(r=e(t[a],a,t))&&r>=r)for(n=r;++a<i;)null!=(r=e(t[a],a,t))&&n>r&&(n=r);return n}function h(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=0|Math.max(0,Math.ceil((e-t)/r)),a=new Array(i);++n<i;)a[n]=t+n*r;return a}function p(t,e){var r,n=t.length,i=-1,a=0;if(null==e)for(;++i<n;)(r=+t[i])&&(a+=r);else for(;++i<n;)(r=+e(t[i],i,t))&&(a+=r);return a}o.slice,o.map,Math.sqrt(50),Math.sqrt(10),Math.sqrt(2)},15140:function(t,e,r){"use strict";r.d(e,{UI:function(){return o},b1:function(){return s}});var n="$";function i(){}function a(t,e){var r=new i;if(t instanceof i)t.each((function(t,e){r.set(e,t)}));else if(Array.isArray(t)){var n,a=-1,o=t.length;if(null==e)for(;++a<o;)r.set(a,t[a]);else for(;++a<o;)r.set(e(n=t[a],a,t),n)}else if(t)for(var s in t)r.set(s,t[s]);return r}i.prototype=a.prototype={constructor:i,has:function(t){return n+t in this},get:function(t){return this[n+t]},set:function(t,e){return this[n+t]=e,this},remove:function(t){var e=n+t;return e in this&&delete this[e]},clear:function(){for(var t in this)t[0]===n&&delete this[t]},keys:function(){var t=[];for(var e in this)e[0]===n&&t.push(e.slice(1));return t},values:function(){var t=[];for(var e in this)e[0]===n&&t.push(this[e]);return t},entries:function(){var t=[];for(var e in this)e[0]===n&&t.push({key:e.slice(1),value:this[e]});return t},size:function(){var t=0;for(var e in this)e[0]===n&&++t;return t},empty:function(){for(var t in this)if(t[0]===n)return!1;return!0},each:function(t){for(var e in this)e[0]===n&&t(this[e],e.slice(1),this)}};var o=a;function s(){var t,e,r,n=[],i=[];function a(r,i,s,l){if(i>=n.length)return null!=t&&r.sort(t),null!=e?e(r):r;for(var u,c,f,h=-1,p=r.length,d=n[i++],v=o(),g=s();++h<p;)(f=v.get(u=d(c=r[h])+""))?f.push(c):v.set(u,[c]);return v.each((function(t,e){l(g,e,a(t,i,s,l))})),g}function s(t,r){if(++r>n.length)return t;var a,o=i[r-1];return null!=e&&r>=n.length?a=t.entries():(a=[],t.each((function(t,e){a.push({key:e,values:s(t,r)})}))),null!=o?a.sort((function(t,e){return o(t.key,e.key)})):a}return r={object:function(t){return a(t,0,l,u)},map:function(t){return a(t,0,c,f)},entries:function(t){return s(a(t,0,c,f),0)},key:function(t){return n.push(t),r},sortKeys:function(t){return i[n.length-1]=t,r},sortValues:function(e){return t=e,r},rollup:function(t){return e=t,r}}}function l(){return{}}function u(t,e,r){t[e]=r}function c(){return o()}function f(t,e,r){t.set(e,r)}function h(){}var p=o.prototype;h.prototype=function(t,e){var r=new h;if(t instanceof h)t.each((function(t){r.add(t)}));else if(t){var n=-1,i=t.length;if(null==e)for(;++n<i;)r.add(t[n]);else for(;++n<i;)r.add(e(t[n],n,t))}return r}.prototype={constructor:h,has:p.has,add:function(t){return this[n+(t+="")]=t,this},remove:p.remove,clear:p.clear,values:p.keys,size:p.size,empty:p.empty,each:p.each}},49887:function(t,e,r){"use strict";function n(t,e){var r;function n(){var n,i,a=r.length,o=0,s=0;for(n=0;n<a;++n)o+=(i=r[n]).x,s+=i.y;for(o=o/a-t,s=s/a-e,n=0;n<a;++n)(i=r[n]).x-=o,i.y-=s}return null==t&&(t=0),null==e&&(e=0),n.initialize=function(t){r=t},n.x=function(e){return arguments.length?(t=+e,n):t},n.y=function(t){return arguments.length?(e=+t,n):e},n}function i(t){return function(){return t}}function a(){return 1e-6*(Math.random()-.5)}function o(t,e,r,n){if(isNaN(e)||isNaN(r))return t;var i,a,o,s,l,u,c,f,h,p=t._root,d={data:n},v=t._x0,g=t._y0,y=t._x1,m=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((u=e>=(a=(v+y)/2))?v=a:y=a,(c=r>=(o=(g+m)/2))?g=o:m=o,i=p,!(p=p[f=c<<1|u]))return i[f]=d,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&r===l)return d.next=p,i?i[f]=d:t._root=d,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(u=e>=(a=(v+y)/2))?v=a:y=a,(c=r>=(o=(g+m)/2))?g=o:m=o}while((f=c<<1|u)==(h=(l>=o)<<1|s>=a));return i[h]=p,i[f]=d,t}function s(t,e,r,n,i){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=i}function l(t){return t[0]}function u(t){return t[1]}function c(t,e,r){var n=new f(null==e?l:e,null==r?u:r,NaN,NaN,NaN,NaN);return null==t?n:n.addAll(t)}function f(t,e,r,n,i,a){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=i,this._y1=a,this._root=void 0}function h(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}r.r(e),r.d(e,{forceCenter:function(){return n},forceCollide:function(){return g},forceLink:function(){return b},forceManyBody:function(){return X},forceRadial:function(){return J},forceSimulation:function(){return W},forceX:function(){return K},forceY:function(){return $}});var p=c.prototype=f.prototype;function d(t){return t.x+t.vx}function v(t){return t.y+t.vy}function g(t){var e,r,n=1,o=1;function s(){for(var t,i,s,u,f,h,p,g=e.length,y=0;y<o;++y)for(i=c(e,d,v).visitAfter(l),t=0;t<g;++t)s=e[t],h=r[s.index],p=h*h,u=s.x+s.vx,f=s.y+s.vy,i.visit(m);function m(t,e,r,i,o){var l=t.data,c=t.r,d=h+c;if(!l)return e>u+d||i<u-d||r>f+d||o<f-d;if(l.index>s.index){var v=u-l.x-l.vx,g=f-l.y-l.vy,y=v*v+g*g;y<d*d&&(0===v&&(y+=(v=a())*v),0===g&&(y+=(g=a())*g),y=(d-(y=Math.sqrt(y)))/y*n,s.vx+=(v*=y)*(d=(c*=c)/(p+c)),s.vy+=(g*=y)*d,l.vx-=v*(d=1-d),l.vy-=g*d)}}}function l(t){if(t.data)return t.r=r[t.data.index];for(var e=t.r=0;e<4;++e)t[e]&&t[e].r>t.r&&(t.r=t[e].r)}function u(){if(e){var n,i,a=e.length;for(r=new Array(a),n=0;n<a;++n)i=e[n],r[i.index]=+t(i,n,e)}}return"function"!=typeof t&&(t=i(null==t?1:+t)),s.initialize=function(t){e=t,u()},s.iterations=function(t){return arguments.length?(o=+t,s):o},s.strength=function(t){return arguments.length?(n=+t,s):n},s.radius=function(e){return arguments.length?(t="function"==typeof e?e:i(+e),u(),s):t},s}p.copy=function(){var t,e,r=new f(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return r;if(!n.length)return r._root=h(n),r;for(t=[{source:n,target:r._root=new Array(4)}];n=t.pop();)for(var i=0;i<4;++i)(e=n.source[i])&&(e.length?t.push({source:e,target:n.target[i]=new Array(4)}):n.target[i]=h(e));return r},p.add=function(t){var e=+this._x.call(null,t),r=+this._y.call(null,t);return o(this.cover(e,r),e,r,t)},p.addAll=function(t){var e,r,n,i,a=t.length,s=new Array(a),l=new Array(a),u=1/0,c=1/0,f=-1/0,h=-1/0;for(r=0;r<a;++r)isNaN(n=+this._x.call(null,e=t[r]))||isNaN(i=+this._y.call(null,e))||(s[r]=n,l[r]=i,n<u&&(u=n),n>f&&(f=n),i<c&&(c=i),i>h&&(h=i));if(u>f||c>h)return this;for(this.cover(u,c).cover(f,h),r=0;r<a;++r)o(this,s[r],l[r],t[r]);return this},p.cover=function(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var r=this._x0,n=this._y0,i=this._x1,a=this._y1;if(isNaN(r))i=(r=Math.floor(t))+1,a=(n=Math.floor(e))+1;else{for(var o,s,l=i-r,u=this._root;r>t||t>=i||n>e||e>=a;)switch(s=(e<n)<<1|t<r,(o=new Array(4))[s]=u,u=o,l*=2,s){case 0:i=r+l,a=n+l;break;case 1:r=i-l,a=n+l;break;case 2:i=r+l,n=a-l;break;case 3:r=i-l,n=a-l}this._root&&this._root.length&&(this._root=u)}return this._x0=r,this._y0=n,this._x1=i,this._y1=a,this},p.data=function(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},p.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},p.find=function(t,e,r){var n,i,a,o,l,u,c,f=this._x0,h=this._y0,p=this._x1,d=this._y1,v=[],g=this._root;for(g&&v.push(new s(g,f,h,p,d)),null==r?r=1/0:(f=t-r,h=e-r,p=t+r,d=e+r,r*=r);u=v.pop();)if(!(!(g=u.node)||(i=u.x0)>p||(a=u.y0)>d||(o=u.x1)<f||(l=u.y1)<h))if(g.length){var y=(i+o)/2,m=(a+l)/2;v.push(new s(g[3],y,m,o,l),new s(g[2],i,m,y,l),new s(g[1],y,a,o,m),new s(g[0],i,a,y,m)),(c=(e>=m)<<1|t>=y)&&(u=v[v.length-1],v[v.length-1]=v[v.length-1-c],v[v.length-1-c]=u)}else{var x=t-+this._x.call(null,g.data),b=e-+this._y.call(null,g.data),_=x*x+b*b;if(_<r){var w=Math.sqrt(r=_);f=t-w,h=e-w,p=t+w,d=e+w,n=g.data}}return n},p.remove=function(t){if(isNaN(a=+this._x.call(null,t))||isNaN(o=+this._y.call(null,t)))return this;var e,r,n,i,a,o,s,l,u,c,f,h,p=this._root,d=this._x0,v=this._y0,g=this._x1,y=this._y1;if(!p)return this;if(p.length)for(;;){if((u=a>=(s=(d+g)/2))?d=s:g=s,(c=o>=(l=(v+y)/2))?v=l:y=l,e=p,!(p=p[f=c<<1|u]))return this;if(!p.length)break;(e[f+1&3]||e[f+2&3]||e[f+3&3])&&(r=e,h=f)}for(;p.data!==t;)if(n=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,n?(i?n.next=i:delete n.next,this):e?(i?e[f]=i:delete e[f],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(r?r[h]=p:this._root=p),this):(this._root=i,this)},p.removeAll=function(t){for(var e=0,r=t.length;e<r;++e)this.remove(t[e]);return this},p.root=function(){return this._root},p.size=function(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},p.visit=function(t){var e,r,n,i,a,o,l=[],u=this._root;for(u&&l.push(new s(u,this._x0,this._y0,this._x1,this._y1));e=l.pop();)if(!t(u=e.node,n=e.x0,i=e.y0,a=e.x1,o=e.y1)&&u.length){var c=(n+a)/2,f=(i+o)/2;(r=u[3])&&l.push(new s(r,c,f,a,o)),(r=u[2])&&l.push(new s(r,n,f,c,o)),(r=u[1])&&l.push(new s(r,c,i,a,f)),(r=u[0])&&l.push(new s(r,n,i,c,f))}return this},p.visitAfter=function(t){var e,r=[],n=[];for(this._root&&r.push(new s(this._root,this._x0,this._y0,this._x1,this._y1));e=r.pop();){var i=e.node;if(i.length){var a,o=e.x0,l=e.y0,u=e.x1,c=e.y1,f=(o+u)/2,h=(l+c)/2;(a=i[0])&&r.push(new s(a,o,l,f,h)),(a=i[1])&&r.push(new s(a,f,l,u,h)),(a=i[2])&&r.push(new s(a,o,h,f,c)),(a=i[3])&&r.push(new s(a,f,h,u,c))}n.push(e)}for(;e=n.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},p.x=function(t){return arguments.length?(this._x=t,this):this._x},p.y=function(t){return arguments.length?(this._y=t,this):this._y};var y=r(15140);function m(t){return t.index}function x(t,e){var r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function b(t){var e,r,n,o,s,l=m,u=function(t){return 1/Math.min(o[t.source.index],o[t.target.index])},c=i(30),f=1;function h(n){for(var i=0,o=t.length;i<f;++i)for(var l,u,c,h,p,d,v,g=0;g<o;++g)u=(l=t[g]).source,h=(c=l.target).x+c.vx-u.x-u.vx||a(),p=c.y+c.vy-u.y-u.vy||a(),h*=d=((d=Math.sqrt(h*h+p*p))-r[g])/d*n*e[g],p*=d,c.vx-=h*(v=s[g]),c.vy-=p*v,u.vx+=h*(v=1-v),u.vy+=p*v}function p(){if(n){var i,a,u=n.length,c=t.length,f=(0,y.UI)(n,l);for(i=0,o=new Array(u);i<c;++i)(a=t[i]).index=i,"object"!=typeof a.source&&(a.source=x(f,a.source)),"object"!=typeof a.target&&(a.target=x(f,a.target)),o[a.source.index]=(o[a.source.index]||0)+1,o[a.target.index]=(o[a.target.index]||0)+1;for(i=0,s=new Array(c);i<c;++i)a=t[i],s[i]=o[a.source.index]/(o[a.source.index]+o[a.target.index]);e=new Array(c),d(),r=new Array(c),v()}}function d(){if(n)for(var r=0,i=t.length;r<i;++r)e[r]=+u(t[r],r,t)}function v(){if(n)for(var e=0,i=t.length;e<i;++e)r[e]=+c(t[e],e,t)}return null==t&&(t=[]),h.initialize=function(t){n=t,p()},h.links=function(e){return arguments.length?(t=e,p(),h):t},h.id=function(t){return arguments.length?(l=t,h):l},h.iterations=function(t){return arguments.length?(f=+t,h):f},h.strength=function(t){return arguments.length?(u="function"==typeof t?t:i(+t),d(),h):u},h.distance=function(t){return arguments.length?(c="function"==typeof t?t:i(+t),v(),h):c},h}var _={value:function(){}};function w(){for(var t,e=0,r=arguments.length,n={};e<r;++e){if(!(t=arguments[e]+"")||t in n||/[\s.]/.test(t))throw new Error("illegal type: "+t);n[t]=[]}return new T(n)}function T(t){this._=t}function k(t,e){return t.trim().split(/^|\s+/).map((function(t){var r="",n=t.indexOf(".");if(n>=0&&(r=t.slice(n+1),t=t.slice(0,n)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:r}}))}function A(t,e){for(var r,n=0,i=t.length;n<i;++n)if((r=t[n]).name===e)return r.value}function M(t,e,r){for(var n=0,i=t.length;n<i;++n)if(t[n].name===e){t[n]=_,t=t.slice(0,n).concat(t.slice(n+1));break}return null!=r&&t.push({name:e,value:r}),t}T.prototype=w.prototype={constructor:T,on:function(t,e){var r,n=this._,i=k(t+"",n),a=-1,o=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<o;)if(r=(t=i[a]).type)n[r]=M(n[r],t.name,e);else if(null==e)for(r in n)n[r]=M(n[r],t.name,null);return this}for(;++a<o;)if((r=(t=i[a]).type)&&(r=A(n[r],t.name)))return r},copy:function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new T(t)},call:function(t,e){if((r=arguments.length-2)>0)for(var r,n,i=new Array(r),a=0;a<r;++a)i[a]=arguments[a+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=0,r=(n=this._[t]).length;a<r;++a)n[a].value.apply(e,i)},apply:function(t,e,r){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var n=this._[t],i=0,a=n.length;i<a;++i)n[i].value.apply(e,r)}};var S,E,L=w,C=0,P=0,O=0,I=0,D=0,z=0,R="object"==typeof performance&&performance.now?performance:Date,F="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function B(){return D||(F(N),D=R.now()+z)}function N(){D=0}function j(){this._call=this._time=this._next=null}function U(t,e,r){var n=new j;return n.restart(t,e,r),n}function V(){D=(I=R.now())+z,C=P=0;try{!function(){B(),++C;for(var t,e=S;e;)(t=D-e._time)>=0&&e._call.call(null,t),e=e._next;--C}()}finally{C=0,function(){for(var t,e,r=S,n=1/0;r;)r._call?(n>r._time&&(n=r._time),t=r,r=r._next):(e=r._next,r._next=null,r=t?t._next=e:S=e);E=t,q(n)}(),D=0}}function H(){var t=R.now(),e=t-I;e>1e3&&(z-=e,I=t)}function q(t){C||(P&&(P=clearTimeout(P)),t-D>24?(t<1/0&&(P=setTimeout(V,t-R.now()-z)),O&&(O=clearInterval(O))):(O||(I=R.now(),O=setInterval(H,1e3)),C=1,F(V)))}function G(t){return t.x}function Z(t){return t.y}j.prototype=U.prototype={constructor:j,restart:function(t,e,r){if("function"!=typeof t)throw new TypeError("callback is not a function");r=(null==r?B():+r)+(null==e?0:+e),this._next||E===this||(E?E._next=this:S=this,E=this),this._call=t,this._time=r,q()},stop:function(){this._call&&(this._call=null,this._time=1/0,q())}};var Y=Math.PI*(3-Math.sqrt(5));function W(t){var e,r=1,n=.001,i=1-Math.pow(n,1/300),a=0,o=.6,s=(0,y.UI)(),l=U(c),u=L("tick","end");function c(){f(),u.call("tick",e),r<n&&(l.stop(),u.call("end",e))}function f(n){var l,u,c=t.length;void 0===n&&(n=1);for(var f=0;f<n;++f)for(r+=(a-r)*i,s.each((function(t){t(r)})),l=0;l<c;++l)null==(u=t[l]).fx?u.x+=u.vx*=o:(u.x=u.fx,u.vx=0),null==u.fy?u.y+=u.vy*=o:(u.y=u.fy,u.vy=0);return e}function h(){for(var e,r=0,n=t.length;r<n;++r){if((e=t[r]).index=r,null!=e.fx&&(e.x=e.fx),null!=e.fy&&(e.y=e.fy),isNaN(e.x)||isNaN(e.y)){var i=10*Math.sqrt(r),a=r*Y;e.x=i*Math.cos(a),e.y=i*Math.sin(a)}(isNaN(e.vx)||isNaN(e.vy))&&(e.vx=e.vy=0)}}function p(e){return e.initialize&&e.initialize(t),e}return null==t&&(t=[]),h(),e={tick:f,restart:function(){return l.restart(c),e},stop:function(){return l.stop(),e},nodes:function(r){return arguments.length?(t=r,h(),s.each(p),e):t},alpha:function(t){return arguments.length?(r=+t,e):r},alphaMin:function(t){return arguments.length?(n=+t,e):n},alphaDecay:function(t){return arguments.length?(i=+t,e):+i},alphaTarget:function(t){return arguments.length?(a=+t,e):a},velocityDecay:function(t){return arguments.length?(o=1-t,e):1-o},force:function(t,r){return arguments.length>1?(null==r?s.remove(t):s.set(t,p(r)),e):s.get(t)},find:function(e,r,n){var i,a,o,s,l,u=0,c=t.length;for(null==n?n=1/0:n*=n,u=0;u<c;++u)(o=(i=e-(s=t[u]).x)*i+(a=r-s.y)*a)<n&&(l=s,n=o);return l},on:function(t,r){return arguments.length>1?(u.on(t,r),e):u.on(t)}}}function X(){var t,e,r,n,o=i(-30),s=1,l=1/0,u=.81;function f(n){var i,a=t.length,o=c(t,G,Z).visitAfter(p);for(r=n,i=0;i<a;++i)e=t[i],o.visit(d)}function h(){if(t){var e,r,i=t.length;for(n=new Array(i),e=0;e<i;++e)r=t[e],n[r.index]=+o(r,e,t)}}function p(t){var e,r,i,a,o,s=0,l=0;if(t.length){for(i=a=o=0;o<4;++o)(e=t[o])&&(r=Math.abs(e.value))&&(s+=e.value,l+=r,i+=r*e.x,a+=r*e.y);t.x=i/l,t.y=a/l}else{(e=t).x=e.data.x,e.y=e.data.y;do{s+=n[e.data.index]}while(e=e.next)}t.value=s}function d(t,i,o,c){if(!t.value)return!0;var f=t.x-e.x,h=t.y-e.y,p=c-i,d=f*f+h*h;if(p*p/u<d)return d<l&&(0===f&&(d+=(f=a())*f),0===h&&(d+=(h=a())*h),d<s&&(d=Math.sqrt(s*d)),e.vx+=f*t.value*r/d,e.vy+=h*t.value*r/d),!0;if(!(t.length||d>=l)){(t.data!==e||t.next)&&(0===f&&(d+=(f=a())*f),0===h&&(d+=(h=a())*h),d<s&&(d=Math.sqrt(s*d)));do{t.data!==e&&(p=n[t.data.index]*r/d,e.vx+=f*p,e.vy+=h*p)}while(t=t.next)}}return f.initialize=function(e){t=e,h()},f.strength=function(t){return arguments.length?(o="function"==typeof t?t:i(+t),h(),f):o},f.distanceMin=function(t){return arguments.length?(s=t*t,f):Math.sqrt(s)},f.distanceMax=function(t){return arguments.length?(l=t*t,f):Math.sqrt(l)},f.theta=function(t){return arguments.length?(u=t*t,f):Math.sqrt(u)},f}function J(t,e,r){var n,a,o,s=i(.1);function l(t){for(var i=0,s=n.length;i<s;++i){var l=n[i],u=l.x-e||1e-6,c=l.y-r||1e-6,f=Math.sqrt(u*u+c*c),h=(o[i]-f)*a[i]*t/f;l.vx+=u*h,l.vy+=c*h}}function u(){if(n){var e,r=n.length;for(a=new Array(r),o=new Array(r),e=0;e<r;++e)o[e]=+t(n[e],e,n),a[e]=isNaN(o[e])?0:+s(n[e],e,n)}}return"function"!=typeof t&&(t=i(+t)),null==e&&(e=0),null==r&&(r=0),l.initialize=function(t){n=t,u()},l.strength=function(t){return arguments.length?(s="function"==typeof t?t:i(+t),u(),l):s},l.radius=function(e){return arguments.length?(t="function"==typeof e?e:i(+e),u(),l):t},l.x=function(t){return arguments.length?(e=+t,l):e},l.y=function(t){return arguments.length?(r=+t,l):r},l}function K(t){var e,r,n,a=i(.1);function o(t){for(var i,a=0,o=e.length;a<o;++a)(i=e[a]).vx+=(n[a]-i.x)*r[a]*t}function s(){if(e){var i,o=e.length;for(r=new Array(o),n=new Array(o),i=0;i<o;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+a(e[i],i,e)}}return"function"!=typeof t&&(t=i(null==t?0:+t)),o.initialize=function(t){e=t,s()},o.strength=function(t){return arguments.length?(a="function"==typeof t?t:i(+t),s(),o):a},o.x=function(e){return arguments.length?(t="function"==typeof e?e:i(+e),s(),o):t},o}function $(t){var e,r,n,a=i(.1);function o(t){for(var i,a=0,o=e.length;a<o;++a)(i=e[a]).vy+=(n[a]-i.y)*r[a]*t}function s(){if(e){var i,o=e.length;for(r=new Array(o),n=new Array(o),i=0;i<o;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+a(e[i],i,e)}}return"function"!=typeof t&&(t=i(null==t?0:+t)),o.initialize=function(t){e=t,s()},o.strength=function(t){return arguments.length?(a="function"==typeof t?t:i(+t),s(),o):a},o.y=function(e){return arguments.length?(t="function"==typeof e?e:i(+e),s(),o):t},o}},60721:function(t,e,r){"use strict";function n(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}r.d(e,{WU:function(){return h},FF:function(){return v}});var i,a=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function o(t){if(!(e=a.exec(t)))throw new Error("invalid format: "+t);var e;return new s({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function s(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function l(t,e){var r=n(t,e);if(!r)return t+"";var i=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+i:i.length>a+1?i.slice(0,a+1)+"."+i.slice(a+1):i+new Array(a-i.length+2).join("0")}o.prototype=s.prototype,s.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var u={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return l(100*t,e)},r:l,s:function(t,e){var r=n(t,e);if(!r)return t+"";var a=r[0],o=r[1],s=o-(i=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,l=a.length;return s===l?a:s>l?a+new Array(s-l+1).join("0"):s>0?a.slice(0,s)+"."+a.slice(s):"0."+new Array(1-s).join("0")+n(t,Math.max(0,e+s-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function c(t){return t}var f,h,p=Array.prototype.map,d=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function v(t){var e,r,a=void 0===t.grouping||void 0===t.thousands?c:(e=p.call(t.grouping,Number),r=t.thousands+"",function(t,n){for(var i=t.length,a=[],o=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),a.push(t.substring(i-=s,i+s)),!((l+=s+1)>n));)s=e[o=(o+1)%e.length];return a.reverse().join(r)}),s=void 0===t.currency?"":t.currency[0]+"",l=void 0===t.currency?"":t.currency[1]+"",f=void 0===t.decimal?".":t.decimal+"",h=void 0===t.numerals?c:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(p.call(t.numerals,String)),v=void 0===t.percent?"%":t.percent+"",g=void 0===t.minus?"-":t.minus+"",y=void 0===t.nan?"NaN":t.nan+"";function m(t){var e=(t=o(t)).fill,r=t.align,n=t.sign,c=t.symbol,p=t.zero,m=t.width,x=t.comma,b=t.precision,_=t.trim,w=t.type;"n"===w?(x=!0,w="g"):u[w]||(void 0===b&&(b=12),_=!0,w="g"),(p||"0"===e&&"="===r)&&(p=!0,e="0",r="=");var T="$"===c?s:"#"===c&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",k="$"===c?l:/[%p]/.test(w)?v:"",A=u[w],M=/[defgprs%]/.test(w);function S(t){var o,s,l,u=T,c=k;if("c"===w)c=A(t)+c,t="";else{var v=(t=+t)<0||1/t<0;if(t=isNaN(t)?y:A(Math.abs(t),b),_&&(t=function(t){t:for(var e,r=t.length,n=1,i=-1;n<r;++n)switch(t[n]){case".":i=e=n;break;case"0":0===i&&(i=n),e=n;break;default:if(!+t[n])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(e+1):t}(t)),v&&0==+t&&"+"!==n&&(v=!1),u=(v?"("===n?n:g:"-"===n||"("===n?"":n)+u,c=("s"===w?d[8+i/3]:"")+c+(v&&"("===n?")":""),M)for(o=-1,s=t.length;++o<s;)if(48>(l=t.charCodeAt(o))||l>57){c=(46===l?f+t.slice(o+1):t.slice(o))+c,t=t.slice(0,o);break}}x&&!p&&(t=a(t,1/0));var S=u.length+t.length+c.length,E=S<m?new Array(m-S+1).join(e):"";switch(x&&p&&(t=a(E+t,E.length?m-c.length:1/0),E=""),r){case"<":t=u+t+c+E;break;case"=":t=u+E+t+c;break;case"^":t=E.slice(0,S=E.length>>1)+u+t+c+E.slice(S);break;default:t=E+u+t+c}return h(t)}return b=void 0===b?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),S.toString=function(){return t+""},S}return{format:m,formatPrefix:function(t,e){var r,i=m(((t=o(t)).type="f",t)),a=3*Math.max(-8,Math.min(8,Math.floor((r=e,((r=n(Math.abs(r)))?r[1]:NaN)/3)))),s=Math.pow(10,-a),l=d[8+a/3];return function(t){return i(s*t)+l}}}}f=v({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),h=f.format,f.formatPrefix},65704:function(t,e,r){"use strict";r.r(e),r.d(e,{geoAiry:function(){return z},geoAiryRaw:function(){return D},geoAitoff:function(){return F},geoAitoffRaw:function(){return R},geoArmadillo:function(){return N},geoArmadilloRaw:function(){return B},geoAugust:function(){return U},geoAugustRaw:function(){return j},geoBaker:function(){return G},geoBakerRaw:function(){return q},geoBerghaus:function(){return W},geoBerghausRaw:function(){return Y},geoBertin1953:function(){return rt},geoBertin1953Raw:function(){return et},geoBoggs:function(){return ct},geoBoggsRaw:function(){return ut},geoBonne:function(){return vt},geoBonneRaw:function(){return dt},geoBottomley:function(){return yt},geoBottomleyRaw:function(){return gt},geoBromley:function(){return xt},geoBromleyRaw:function(){return mt},geoChamberlin:function(){return Et},geoChamberlinAfrica:function(){return St},geoChamberlinRaw:function(){return At},geoCollignon:function(){return Ct},geoCollignonRaw:function(){return Lt},geoCraig:function(){return Ot},geoCraigRaw:function(){return Pt},geoCraster:function(){return zt},geoCrasterRaw:function(){return Dt},geoCylindricalEqualArea:function(){return Ft},geoCylindricalEqualAreaRaw:function(){return Rt},geoCylindricalStereographic:function(){return Nt},geoCylindricalStereographicRaw:function(){return Bt},geoEckert1:function(){return Ut},geoEckert1Raw:function(){return jt},geoEckert2:function(){return Ht},geoEckert2Raw:function(){return Vt},geoEckert3:function(){return Gt},geoEckert3Raw:function(){return qt},geoEckert4:function(){return Yt},geoEckert4Raw:function(){return Zt},geoEckert5:function(){return Xt},geoEckert5Raw:function(){return Wt},geoEckert6:function(){return Kt},geoEckert6Raw:function(){return Jt},geoEisenlohr:function(){return te},geoEisenlohrRaw:function(){return Qt},geoFahey:function(){return ne},geoFaheyRaw:function(){return re},geoFoucaut:function(){return ae},geoFoucautRaw:function(){return ie},geoFoucautSinusoidal:function(){return se},geoFoucautSinusoidalRaw:function(){return oe},geoGilbert:function(){return he},geoGingery:function(){return ge},geoGingeryRaw:function(){return pe},geoGinzburg4:function(){return xe},geoGinzburg4Raw:function(){return me},geoGinzburg5:function(){return _e},geoGinzburg5Raw:function(){return be},geoGinzburg6:function(){return Te},geoGinzburg6Raw:function(){return we},geoGinzburg8:function(){return Ae},geoGinzburg8Raw:function(){return ke},geoGinzburg9:function(){return Se},geoGinzburg9Raw:function(){return Me},geoGringorten:function(){return Ce},geoGringortenQuincuncial:function(){return ei},geoGringortenRaw:function(){return Le},geoGuyou:function(){return De},geoGuyouRaw:function(){return Ie},geoHammer:function(){return $},geoHammerRaw:function(){return J},geoHammerRetroazimuthal:function(){return Be},geoHammerRetroazimuthalRaw:function(){return Re},geoHealpix:function(){return Ye},geoHealpixRaw:function(){return He},geoHill:function(){return Xe},geoHillRaw:function(){return We},geoHomolosine:function(){return er},geoHomolosineRaw:function(){return tr},geoHufnagel:function(){return nr},geoHufnagelRaw:function(){return rr},geoHyperelliptical:function(){return sr},geoHyperellipticalRaw:function(){return or},geoInterrupt:function(){return fr},geoInterruptedBoggs:function(){return pr},geoInterruptedHomolosine:function(){return vr},geoInterruptedMollweide:function(){return yr},geoInterruptedMollweideHemispheres:function(){return xr},geoInterruptedQuarticAuthalic:function(){return hn},geoInterruptedSinuMollweide:function(){return _r},geoInterruptedSinusoidal:function(){return Tr},geoKavrayskiy7:function(){return Ar},geoKavrayskiy7Raw:function(){return kr},geoLagrange:function(){return Sr},geoLagrangeRaw:function(){return Mr},geoLarrivee:function(){return Cr},geoLarriveeRaw:function(){return Lr},geoLaskowski:function(){return Or},geoLaskowskiRaw:function(){return Pr},geoLittrow:function(){return Dr},geoLittrowRaw:function(){return Ir},geoLoximuthal:function(){return Rr},geoLoximuthalRaw:function(){return zr},geoMiller:function(){return Br},geoMillerRaw:function(){return Fr},geoModifiedStereographic:function(){return Jr},geoModifiedStereographicAlaska:function(){return Gr},geoModifiedStereographicGs48:function(){return Zr},geoModifiedStereographicGs50:function(){return Yr},geoModifiedStereographicLee:function(){return Xr},geoModifiedStereographicMiller:function(){return Wr},geoModifiedStereographicRaw:function(){return Nr},geoMollweide:function(){return ot},geoMollweideRaw:function(){return at},geoMtFlatPolarParabolic:function(){return tn},geoMtFlatPolarParabolicRaw:function(){return Qr},geoMtFlatPolarQuartic:function(){return rn},geoMtFlatPolarQuarticRaw:function(){return en},geoMtFlatPolarSinusoidal:function(){return an},geoMtFlatPolarSinusoidalRaw:function(){return nn},geoNaturalEarth:function(){return on.Z},geoNaturalEarth2:function(){return ln},geoNaturalEarth2Raw:function(){return sn},geoNaturalEarthRaw:function(){return on.K},geoNellHammer:function(){return cn},geoNellHammerRaw:function(){return un},geoNicolosi:function(){return dn},geoNicolosiRaw:function(){return pn},geoPatterson:function(){return _n},geoPattersonRaw:function(){return bn},geoPeirceQuincuncial:function(){return ri},geoPierceQuincuncial:function(){return ri},geoPolyconic:function(){return Tn},geoPolyconicRaw:function(){return wn},geoPolyhedral:function(){return Ln},geoPolyhedralButterfly:function(){return Rn},geoPolyhedralCollignon:function(){return Nn},geoPolyhedralWaterman:function(){return jn},geoProject:function(){return Gn},geoQuantize:function(){return ni},geoQuincuncial:function(){return ti},geoRectangularPolyconic:function(){return ai},geoRectangularPolyconicRaw:function(){return ii},geoRobinson:function(){return li},geoRobinsonRaw:function(){return si},geoSatellite:function(){return ci},geoSatelliteRaw:function(){return ui},geoSinuMollweide:function(){return Qe},geoSinuMollweideRaw:function(){return $e},geoSinusoidal:function(){return pt},geoSinusoidalRaw:function(){return ht},geoStitch:function(){return Ti},geoTimes:function(){return Ai},geoTimesRaw:function(){return ki},geoTwoPointAzimuthal:function(){return Li},geoTwoPointAzimuthalRaw:function(){return Si},geoTwoPointAzimuthalUsa:function(){return Ei},geoTwoPointEquidistant:function(){return Oi},geoTwoPointEquidistantRaw:function(){return Ci},geoTwoPointEquidistantUsa:function(){return Pi},geoVanDerGrinten:function(){return Di},geoVanDerGrinten2:function(){return Ri},geoVanDerGrinten2Raw:function(){return zi},geoVanDerGrinten3:function(){return Bi},geoVanDerGrinten3Raw:function(){return Fi},geoVanDerGrinten4:function(){return ji},geoVanDerGrinten4Raw:function(){return Ni},geoVanDerGrintenRaw:function(){return Ii},geoWagner:function(){return Vi},geoWagner4:function(){return Yi},geoWagner4Raw:function(){return Zi},geoWagner6:function(){return Xi},geoWagner6Raw:function(){return Wi},geoWagner7:function(){return Hi},geoWagnerRaw:function(){return Ui},geoWiechel:function(){return Ki},geoWiechelRaw:function(){return Ji},geoWinkel3:function(){return Qi},geoWinkel3Raw:function(){return $i}});var n=r(15002),i=Math.abs,a=Math.atan,o=Math.atan2,s=(Math.ceil,Math.cos),l=Math.exp,u=Math.floor,c=Math.log,f=Math.max,h=Math.min,p=Math.pow,d=Math.round,v=Math.sign||function(t){return t>0?1:t<0?-1:0},g=Math.sin,y=Math.tan,m=1e-6,x=1e-12,b=Math.PI,_=b/2,w=b/4,T=Math.SQRT1_2,k=P(2),A=P(b),M=2*b,S=180/b,E=b/180;function L(t){return t>1?_:t<-1?-_:Math.asin(t)}function C(t){return t>1?0:t<-1?b:Math.acos(t)}function P(t){return t>0?Math.sqrt(t):0}function O(t){return(l(t)-l(-t))/2}function I(t){return(l(t)+l(-t))/2}function D(t){var e=y(t/2),r=2*c(s(t/2))/(e*e);function n(t,e){var n=s(t),i=s(e),a=g(e),o=i*n,l=-((1-o?c((1+o)/2)/(1-o):-.5)+r/(1+o));return[l*i*g(t),l*a]}return n.invert=function(e,n){var a,l=P(e*e+n*n),u=-t/2,f=50;if(!l)return[0,0];do{var h=u/2,p=s(h),d=g(h),v=d/p,y=-c(i(p));u-=a=(2/v*y-r*v-l)/(-y/(d*d)+1-r/(2*p*p))*(p<0?.7:1)}while(i(a)>m&&--f>0);var x=g(u);return[o(e*x,l*s(u)),L(n*x/l)]},n}function z(){var t=_,e=(0,n.r)(D),r=e(t);return r.radius=function(r){return arguments.length?e(t=r*E):t*S},r.scale(179.976).clipAngle(147)}function R(t,e){var r=s(e),n=function(t){return t?t/Math.sin(t):1}(C(r*s(t/=2)));return[2*r*g(t)*n,g(e)*n]}function F(){return(0,n.Z)(R).scale(152.63)}function B(t){var e=g(t),r=s(t),n=t>=0?1:-1,a=y(n*t),l=(1+e-r)/2;function u(t,i){var u=s(i),c=s(t/=2);return[(1+u)*g(t),(n*i>-o(c,a)-.001?0:10*-n)+l+g(i)*r-(1+u)*e*c]}return u.invert=function(t,u){var c=0,f=0,h=50;do{var p=s(c),d=g(c),v=s(f),y=g(f),x=1+v,b=x*d-t,_=l+y*r-x*e*p-u,w=x*p/2,T=-d*y,k=e*x*d/2,A=r*v+e*p*y,M=T*k-A*w,S=(_*T-b*A)/M/2,E=(b*k-_*w)/M;i(E)>2&&(E/=2),c-=S,f-=E}while((i(S)>m||i(E)>m)&&--h>0);return n*f>-o(s(c),a)-.001?[2*c,f]:null},u}function N(){var t=20*E,e=t>=0?1:-1,r=y(e*t),i=(0,n.r)(B),a=i(t),l=a.stream;return a.parallel=function(n){return arguments.length?(r=y((e=(t=n*E)>=0?1:-1)*t),i(t)):t*S},a.stream=function(n){var i=a.rotate(),u=l(n),c=(a.rotate([0,0]),l(n)),f=a.precision();return a.rotate(i),u.sphere=function(){c.polygonStart(),c.lineStart();for(var n=-180*e;e*n<180;n+=90*e)c.point(n,90*e);if(t)for(;e*(n-=3*e*f)>=-180;)c.point(n,e*-o(s(n*E/2),r)*S);c.lineEnd(),c.polygonEnd()},u},a.scale(218.695).center([0,28.0974])}function j(t,e){var r=y(e/2),n=P(1-r*r),i=1+n*s(t/=2),a=g(t)*n/i,o=r/i,l=a*a,u=o*o;return[4/3*a*(3+l-3*u),4/3*o*(3+3*l-u)]}function U(){return(0,n.Z)(j).scale(66.1603)}R.invert=function(t,e){if(!(t*t+4*e*e>b*b+m)){var r=t,n=e,a=25;do{var o,l=g(r),u=g(r/2),c=s(r/2),f=g(n),h=s(n),p=g(2*n),d=f*f,v=h*h,y=u*u,x=1-v*c*c,_=x?C(h*c)*P(o=1/x):o=0,w=2*_*h*u-t,T=_*f-e,k=o*(v*y+_*h*c*d),A=o*(.5*l*p-2*_*f*u),M=.25*o*(p*u-_*f*v*l),S=o*(d*c+_*y*h),E=A*M-S*k;if(!E)break;var L=(T*A-w*S)/E,O=(w*M-T*k)/E;r-=L,n-=O}while((i(L)>m||i(O)>m)&&--a>0);return[r,n]}},j.invert=function(t,e){if(e*=3/8,!(t*=3/8)&&i(e)>1)return null;var r=1+t*t+e*e,n=P((r-P(r*r-4*e*e))/2),a=L(n)/3,l=n?function(t){return c(t+P(t*t-1))}(i(e/n))/3:function(t){return c(t+P(t*t+1))}(i(t))/3,u=s(a),f=I(l),h=f*f-u*u;return[2*v(t)*o(O(l)*u,.25-h),2*v(e)*o(f*g(a),.25+h)]};var V=P(8),H=c(1+k);function q(t,e){var r=i(e);return r<w?[t,c(y(w+e/2))]:[t*s(r)*(2*k-1/g(r)),v(e)*(2*k*(r-w)-c(y(r/2)))]}function G(){return(0,n.Z)(q).scale(112.314)}q.invert=function(t,e){if((n=i(e))<H)return[t,2*a(l(e))-_];var r,n,o=w,u=25;do{var f=s(o/2),h=y(o/2);o-=r=(V*(o-w)-c(h)-n)/(V-f*f/(2*h))}while(i(r)>x&&--u>0);return[t/(s(o)*(V-1/g(o))),v(e)*o]};var Z=r(17889);function Y(t){var e=2*b/t;function r(t,r){var n=(0,Z.N)(t,r);if(i(t)>_){var a=o(n[1],n[0]),l=P(n[0]*n[0]+n[1]*n[1]),u=e*d((a-_)/e)+_,c=o(g(a-=u),2-s(a));a=u+L(b/l*g(c))-c,n[0]=l*s(a),n[1]=l*g(a)}return n}return r.invert=function(t,r){var n=P(t*t+r*r);if(n>_){var i=o(r,t),l=e*d((i-_)/e)+_,u=i>l?-1:1,c=n*s(l-i),f=1/y(u*C((c-b)/P(b*(b-2*c)+n*n)));i=l+2*a((f+u*P(f*f-3))/3),t=n*s(i),r=n*g(i)}return Z.N.invert(t,r)},r}function W(){var t=5,e=(0,n.r)(Y),r=e(t),i=r.stream,a=.01,l=-s(a*E),u=g(a*E);return r.lobes=function(r){return arguments.length?e(t=+r):t},r.stream=function(e){var n=r.rotate(),c=i(e),f=(r.rotate([0,0]),i(e));return r.rotate(n),c.sphere=function(){f.polygonStart(),f.lineStart();for(var e=0,r=360/t,n=2*b/t,i=90-180/t,c=_;e<t;++e,i-=r,c-=n)f.point(o(u*s(c),l)*S,L(u*g(c))*S),i<-90?(f.point(-90,-180-i-a),f.point(-90,-180-i+a)):(f.point(90,i+a),f.point(90,i-a));f.lineEnd(),f.polygonEnd()},c},r.scale(87.8076).center([0,17.1875]).clipAngle(179.999)}var X=r(12956);function J(t,e){if(arguments.length<2&&(e=t),1===e)return X.l;if(e===1/0)return K;function r(r,n){var i=(0,X.l)(r/e,n);return i[0]*=t,i}return r.invert=function(r,n){var i=X.l.invert(r/t,n);return i[0]*=e,i},r}function K(t,e){return[t*s(e)/s(e/=2),2*g(e)]}function $(){var t=2,e=(0,n.r)(J),r=e(t);return r.coefficient=function(r){return arguments.length?e(t=+r):t},r.scale(169.529)}function Q(t,e,r){var n,a,o,s=100;r=void 0===r?0:+r,e=+e;do{(a=t(r))===(o=t(r+m))&&(o=a+m),r-=n=-1e-6*(a-e)/(a-o)}while(s-- >0&&i(n)>m);return s<0?NaN:r}function tt(t,e,r){return void 0===e&&(e=40),void 0===r&&(r=x),function(n,a,o,s){var l,u,c;o=void 0===o?0:+o,s=void 0===s?0:+s;for(var f=0;f<e;f++){var h=t(o,s),p=h[0]-n,d=h[1]-a;if(i(p)<r&&i(d)<r)break;var v=p*p+d*d;if(v>l)o-=u/=2,s-=c/=2;else{l=v;var g=(o>0?-1:1)*r,y=(s>0?-1:1)*r,m=t(o+g,s),x=t(o,s+y),b=(m[0]-h[0])/g,_=(m[1]-h[1])/g,w=(x[0]-h[0])/y,T=(x[1]-h[1])/y,k=T*b-_*w,A=(i(k)<.5?.5:1)/k;if(o+=u=(d*w-p*T)*A,s+=c=(p*_-d*b)*A,i(u)<r&&i(c)<r)break}}return[o,s]}}function et(){var t=J(1.68,2);function e(e,r){if(e+r<-1.4){var n=(e-r+1.6)*(e+r+1.4)/8;e+=n,r-=.8*n*g(r+b/2)}var i=t(e,r),a=(1-s(e*r))/12;return i[1]<0&&(i[0]*=1+a),i[1]>0&&(i[1]*=1+a/1.5*i[0]*i[0]),i}return e.invert=tt(e),e}function rt(){return(0,n.Z)(et()).rotate([-16.5,-42]).scale(176.57).center([7.93,.09])}function nt(t,e){var r,n=t*g(e),a=30;do{e-=r=(e+g(e)-n)/(1+s(e))}while(i(r)>m&&--a>0);return e/2}function it(t,e,r){function n(n,i){return[t*n*s(i=nt(r,i)),e*g(i)]}return n.invert=function(n,i){return i=L(i/e),[n/(t*s(i)),L((2*i+g(2*i))/r)]},n}K.invert=function(t,e){var r=2*L(e/2);return[t*s(r/2)/s(r),r]};var at=it(k/_,k,b);function ot(){return(0,n.Z)(at).scale(169.529)}var st=2.00276,lt=1.11072;function ut(t,e){var r=nt(b,e);return[st*t/(1/s(e)+lt/s(r)),(e+k*g(r))/st]}function ct(){return(0,n.Z)(ut).scale(160.857)}function ft(t){var e=0,r=(0,n.r)(t),i=r(e);return i.parallel=function(t){return arguments.length?r(e=t*E):e*S},i}function ht(t,e){return[t*s(e),e]}function pt(){return(0,n.Z)(ht).scale(152.63)}function dt(t){if(!t)return ht;var e=1/y(t);function r(r,n){var i=e+t-n,a=i?r*s(n)/i:i;return[i*g(a),e-i*s(a)]}return r.invert=function(r,n){var i=P(r*r+(n=e-n)*n),a=e+t-i;return[i/s(a)*o(r,n),a]},r}function vt(){return ft(dt).scale(123.082).center([0,26.1441]).parallel(45)}function gt(t){function e(e,r){var n=_-r,i=n?e*t*g(n)/n:n;return[n*g(i)/t,_-n*s(i)]}return e.invert=function(e,r){var n=e*t,i=_-r,a=P(n*n+i*i),s=o(n,i);return[(a?a/g(a):1)*s/t,_-a]},e}function yt(){var t=.5,e=(0,n.r)(gt),r=e(t);return r.fraction=function(r){return arguments.length?e(t=+r):t},r.scale(158.837)}ut.invert=function(t,e){var r,n,a=st*e,o=e<0?-w:w,l=25;do{n=a-k*g(o),o-=r=(g(2*o)+2*o-b*g(n))/(2*s(2*o)+2+b*s(n)*k*s(o))}while(i(r)>m&&--l>0);return n=a-k*g(o),[t*(1/s(n)+lt/s(o))/st,n]},ht.invert=function(t,e){return[t/s(e),e]};var mt=it(1,4/b,b);function xt(){return(0,n.Z)(mt).scale(152.63)}var bt=r(66624),_t=r(49386);function wt(t,e,r,n,a,l){var u,c=s(l);if(i(t)>1||i(l)>1)u=C(r*a+e*n*c);else{var f=g(t/2),h=g(l/2);u=2*L(P(f*f+e*n*h*h))}return i(u)>m?[u,o(n*g(l),e*a-r*n*c)]:[0,0]}function Tt(t,e,r){return C((t*t+e*e-r*r)/(2*t*e))}function kt(t){return t-2*b*u((t+b)/(2*b))}function At(t,e,r){for(var n,i=[[t[0],t[1],g(t[1]),s(t[1])],[e[0],e[1],g(e[1]),s(e[1])],[r[0],r[1],g(r[1]),s(r[1])]],a=i[2],o=0;o<3;++o,a=n)n=i[o],a.v=wt(n[1]-a[1],a[3],a[2],n[3],n[2],n[0]-a[0]),a.point=[0,0];var l=Tt(i[0].v[0],i[2].v[0],i[1].v[0]),u=Tt(i[0].v[0],i[1].v[0],i[2].v[0]),c=b-l;i[2].point[1]=0,i[0].point[0]=-(i[1].point[0]=i[0].v[0]/2);var f=[i[2].point[0]=i[0].point[0]+i[2].v[0]*s(l),2*(i[0].point[1]=i[1].point[1]=i[2].v[0]*g(l))];return function(t,e){var r,n=g(e),a=s(e),o=new Array(3);for(r=0;r<3;++r){var l=i[r];if(o[r]=wt(e-l[1],l[3],l[2],a,n,t-l[0]),!o[r][0])return l.point;o[r][1]=kt(o[r][1]-l.v[1])}var h=f.slice();for(r=0;r<3;++r){var p=2==r?0:r+1,d=Tt(i[r].v[0],o[r][0],o[p][0]);o[r][1]<0&&(d=-d),r?1==r?(d=u-d,h[0]-=o[r][0]*s(d),h[1]-=o[r][0]*g(d)):(d=c-d,h[0]+=o[r][0]*s(d),h[1]+=o[r][0]*g(d)):(h[0]+=o[r][0]*s(d),h[1]-=o[r][0]*g(d))}return h[0]/=3,h[1]/=3,h}}function Mt(t){return t[0]*=E,t[1]*=E,t}function St(){return Et([0,22],[45,22],[22.5,-22]).scale(380).center([22.5,2])}function Et(t,e,r){var i=(0,bt.Z)({type:"MultiPoint",coordinates:[t,e,r]}),a=[-i[0],-i[1]],o=(0,_t.Z)(a),s=At(Mt(o(t)),Mt(o(e)),Mt(o(r)));s.invert=tt(s);var l=(0,n.Z)(s).rotate(a),u=l.center;return delete l.rotate,l.center=function(t){return arguments.length?u(o(t)):o.invert(u())},l.clipAngle(90)}function Lt(t,e){var r=P(1-g(e));return[2/A*t*r,A*(1-r)]}function Ct(){return(0,n.Z)(Lt).scale(95.6464).center([0,30])}function Pt(t){var e=y(t);function r(t,r){return[t,(t?t/g(t):1)*(g(r)*s(t)-e*s(r))]}return r.invert=e?function(t,r){t&&(r*=g(t)/t);var n=s(t);return[t,2*o(P(n*n+e*e-r*r)-n,e-r)]}:function(t,e){return[t,L(t?e*y(t)/t:e)]},r}function Ot(){return ft(Pt).scale(249.828).clipAngle(90)}Lt.invert=function(t,e){var r=(r=e/A-1)*r;return[r>0?t*P(b/r)/2:0,L(1-r)]};var It=P(3);function Dt(t,e){return[It*t*(2*s(2*e/3)-1)/A,It*A*g(e/3)]}function zt(){return(0,n.Z)(Dt).scale(156.19)}function Rt(t){var e=s(t);function r(t,r){return[t*e,g(r)/e]}return r.invert=function(t,r){return[t/e,L(r*e)]},r}function Ft(){return ft(Rt).parallel(38.58).scale(195.044)}function Bt(t){var e=s(t);function r(t,r){return[t*e,(1+e)*y(r/2)]}return r.invert=function(t,r){return[t/e,2*a(r/(1+e))]},r}function Nt(){return ft(Bt).scale(124.75)}function jt(t,e){var r=P(8/(3*b));return[r*t*(1-i(e)/b),r*e]}function Ut(){return(0,n.Z)(jt).scale(165.664)}function Vt(t,e){var r=P(4-3*g(i(e)));return[2/P(6*b)*t*r,v(e)*P(2*b/3)*(2-r)]}function Ht(){return(0,n.Z)(Vt).scale(165.664)}function qt(t,e){var r=P(b*(4+b));return[2/r*t*(1+P(1-4*e*e/(b*b))),4/r*e]}function Gt(){return(0,n.Z)(qt).scale(180.739)}function Zt(t,e){var r=(2+_)*g(e);e/=2;for(var n=0,a=1/0;n<10&&i(a)>m;n++){var o=s(e);e-=a=(e+g(e)*(o+2)-r)/(2*o*(1+o))}return[2/P(b*(4+b))*t*(1+s(e)),2*P(b/(4+b))*g(e)]}function Yt(){return(0,n.Z)(Zt).scale(180.739)}function Wt(t,e){return[t*(1+s(e))/P(2+b),2*e/P(2+b)]}function Xt(){return(0,n.Z)(Wt).scale(173.044)}function Jt(t,e){for(var r=(1+_)*g(e),n=0,a=1/0;n<10&&i(a)>m;n++)e-=a=(e+g(e)-r)/(1+s(e));return r=P(2+b),[t*(1+s(e))/r,2*e/r]}function Kt(){return(0,n.Z)(Jt).scale(173.044)}Dt.invert=function(t,e){var r=3*L(e/(It*A));return[A*t/(It*(2*s(2*r/3)-1)),r]},jt.invert=function(t,e){var r=P(8/(3*b)),n=e/r;return[t/(r*(1-i(n)/b)),n]},Vt.invert=function(t,e){var r=2-i(e)/P(2*b/3);return[t*P(6*b)/(2*r),v(e)*L((4-r*r)/3)]},qt.invert=function(t,e){var r=P(b*(4+b))/2;return[t*r/(1+P(1-e*e*(4+b)/(4*b))),e*r/2]},Zt.invert=function(t,e){var r=e*P((4+b)/b)/2,n=L(r),i=s(n);return[t/(2/P(b*(4+b))*(1+i)),L((n+r*(i+2))/(2+_))]},Wt.invert=function(t,e){var r=P(2+b),n=e*r/2;return[r*t/(1+s(n)),n]},Jt.invert=function(t,e){var r=1+_,n=P(r/2);return[2*t*n/(1+s(e*=n)),L((e+g(e))/r)]};var $t=3+2*k;function Qt(t,e){var r=g(t/=2),n=s(t),i=P(s(e)),o=s(e/=2),l=g(e)/(o+k*n*i),u=P(2/(1+l*l)),f=P((k*o+(n+r)*i)/(k*o+(n-r)*i));return[$t*(u*(f-1/f)-2*c(f)),$t*(u*l*(f+1/f)-2*a(l))]}function te(){return(0,n.Z)(Qt).scale(62.5271)}Qt.invert=function(t,e){if(!(r=j.invert(t/1.2,1.065*e)))return null;var r,n=r[0],o=r[1],l=20;t/=$t,e/=$t;do{var u=n/2,p=o/2,d=g(u),v=s(u),y=g(p),x=s(p),b=s(o),w=P(b),A=y/(x+k*v*w),M=A*A,S=P(2/(1+M)),E=(k*x+(v+d)*w)/(k*x+(v-d)*w),L=P(E),C=L-1/L,O=L+1/L,I=S*C-2*c(L)-t,D=S*A*O-2*a(A)-e,z=y&&T*w*d*M/y,R=(k*v*x+w)/(2*(x+k*v*w)*(x+k*v*w)*w),F=-.5*A*S*S*S,B=F*z,N=F*R,U=(U=2*x+k*w*(v-d))*U*L,V=(k*v*x*w+b)/U,H=-k*d*y/(w*U),q=C*B-2*V/L+S*(V+V/E),G=C*N-2*H/L+S*(H+H/E),Z=A*O*B-2*z/(1+M)+S*O*z+S*A*(V-V/E),Y=A*O*N-2*R/(1+M)+S*O*R+S*A*(H-H/E),W=G*Z-Y*q;if(!W)break;var X=(D*G-I*Y)/W,J=(I*Z-D*q)/W;n-=X,o=f(-_,h(_,o-J))}while((i(X)>m||i(J)>m)&&--l>0);return i(i(o)-_)<m?[0,o]:l&&[n,o]};var ee=s(35*E);function re(t,e){var r=y(e/2);return[t*ee*P(1-r*r),(1+ee)*r]}function ne(){return(0,n.Z)(re).scale(137.152)}function ie(t,e){var r=e/2,n=s(r);return[2*t/A*s(e)*n*n,A*y(r)]}function ae(){return(0,n.Z)(ie).scale(135.264)}function oe(t){var e=1-t,r=i(b,0)[0]-i(-b,0)[0],n=P(2*(i(0,_)[1]-i(0,-_)[1])/r);function i(r,n){var i=s(n),a=g(n);return[i/(e+t*i)*r,e*n+t*a]}function a(t,e){var r=i(t,e);return[r[0]*n,r[1]/n]}function o(t){return a(0,t)[1]}return a.invert=function(r,i){var a=Q(o,i);return[r/n*(t+e/s(a)),a]},a}function se(){var t=.5,e=(0,n.r)(oe),r=e(t);return r.alpha=function(r){return arguments.length?e(t=+r):t},r.scale(168.725)}re.invert=function(t,e){var r=e/(1+ee);return[t&&t/(ee*P(1-r*r)),2*a(r)]},ie.invert=function(t,e){var r=a(e/A),n=s(r),i=2*r;return[t*A/2/(s(i)*n*n),i]};var le=r(57962),ue=r(97492);function ce(t){return[t[0]/2,L(y(t[1]/2*E))*S]}function fe(t){return[2*t[0],2*a(g(t[1]*E))*S]}function he(t){null==t&&(t=le.Z);var e=t(),r=(0,ue.Z)().scale(S).precision(0).clipAngle(null).translate([0,0]);function n(t){return e(ce(t))}function i(t){n[t]=function(){return arguments.length?(e[t].apply(e,arguments),n):e[t]()}}return e.invert&&(n.invert=function(t){return fe(e.invert(t))}),n.stream=function(t){var n=e.stream(t),i=r.stream({point:function(t,e){n.point(t/2,L(y(-e/2*E))*S)},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}});return i.sphere=n.sphere,i},n.rotate=function(t){return arguments.length?(r.rotate(t),n):r.rotate()},n.center=function(t){return arguments.length?(e.center(ce(t)),n):fe(e.center())},i("angle"),i("clipAngle"),i("clipExtent"),i("fitExtent"),i("fitHeight"),i("fitSize"),i("fitWidth"),i("scale"),i("translate"),i("precision"),n.scale(249.5)}function pe(t,e){var r=2*b/e,n=t*t;function a(e,a){var l=(0,Z.N)(e,a),u=l[0],c=l[1],f=u*u+c*c;if(f>n){var h=P(f),p=o(c,u),v=r*d(p/r),y=p-v,x=t*s(y),w=(t*g(y)-y*g(x))/(_-x),T=de(y,w),k=(b-t)/ve(T,x,b);u=h;var A,M=50;do{u-=A=(t+ve(T,x,u)*k-h)/(T(u)*k)}while(i(A)>m&&--M>0);c=y*g(u),u<_&&(c-=w*(u-_));var S=g(v),E=s(v);l[0]=u*E-c*S,l[1]=u*S+c*E}return l}return a.invert=function(e,a){var l=e*e+a*a;if(l>n){var u=P(l),c=o(a,e),f=r*d(c/r),h=c-f;e=u*s(h),a=u*g(h);for(var p=e-_,v=g(e),y=a/v,m=e<_?1/0:0,w=10;;){var T=t*g(y),k=t*s(y),A=g(k),M=_-k,S=(T-y*A)/M,E=de(y,S);if(i(m)<x||!--w)break;y-=m=(y*v-S*p-a)/(v-2*p*(M*(k+y*T*s(k)-A)-T*(T-y*A))/(M*M))}e=(u=t+ve(E,k,e)*(b-t)/ve(E,k,b))*s(c=f+y),a=u*g(c)}return Z.N.invert(e,a)},a}function de(t,e){return function(r){var n=t*s(r);return r<_&&(n-=e),P(1+n*n)}}function ve(t,e,r){for(var n=(r-e)/50,i=t(e)+t(r),a=1,o=e;a<50;++a)i+=2*t(o+=n);return.5*i*n}function ge(){var t=6,e=30*E,r=s(e),i=g(e),a=(0,n.r)(pe),l=a(e,t),u=l.stream,c=-s(.01*E),f=g(.01*E);return l.radius=function(n){return arguments.length?(r=s(e=n*E),i=g(e),a(e,t)):e*S},l.lobes=function(r){return arguments.length?a(e,t=+r):t},l.stream=function(e){var n=l.rotate(),a=u(e),h=(l.rotate([0,0]),u(e));return l.rotate(n),a.sphere=function(){h.polygonStart(),h.lineStart();for(var e=0,n=2*b/t,a=0;e<t;++e,a-=n)h.point(o(f*s(a),c)*S,L(f*g(a))*S),h.point(o(i*s(a-n/2),r)*S,L(i*g(a-n/2))*S);h.lineEnd(),h.polygonEnd()},a},l.rotate([90,-40]).scale(91.7095).clipAngle(179.999)}function ye(t,e,r,n,a,o,l,u){function c(i,c){if(!c)return[t*i/b,0];var f=c*c,h=t+f*(e+f*(r+f*n)),p=c*(a-1+f*(o-u+f*l)),d=(h*h+p*p)/(2*p),v=i*L(h/d)/b;return[d*g(v),c*(1+f*u)+d*(1-s(v))]}return arguments.length<8&&(u=0),c.invert=function(c,f){var h,p,d=b*c/t,v=f,y=50;do{var x=v*v,_=t+x*(e+x*(r+x*n)),w=v*(a-1+x*(o-u+x*l)),T=_*_+w*w,k=2*w,A=T/k,M=A*A,S=L(_/A)/b,E=d*S,C=_*_,O=(2*e+x*(4*r+6*x*n))*v,I=a+x*(3*o+5*x*l),D=(2*(_*O+w*(I-1))*k-T*(2*(I-1)))/(k*k),z=s(E),R=g(E),F=A*z,B=A*R,N=d/b*(1/P(1-C/M))*(O*A-_*D)/M,j=B-c,U=v*(1+x*u)+A-F-f,V=D*R+F*N,H=F*S,q=1+D-(D*z-B*N),G=B*S,Z=V*G-q*H;if(!Z)break;d-=h=(U*V-j*q)/Z,v-=p=(j*G-U*H)/Z}while((i(h)>m||i(p)>m)&&--y>0);return[d,v]},c}var me=ye(2.8284,-1.6988,.75432,-.18071,1.76003,-.38914,.042555);function xe(){return(0,n.Z)(me).scale(149.995)}var be=ye(2.583819,-.835827,.170354,-.038094,1.543313,-.411435,.082742);function _e(){return(0,n.Z)(be).scale(153.93)}var we=ye(5/6*b,-.62636,-.0344,0,1.3493,-.05524,0,.045);function Te(){return(0,n.Z)(we).scale(130.945)}function ke(t,e){var r=t*t,n=e*e;return[t*(1-.162388*n)*(.87-952426e-9*r*r),e*(1+n/12)]}function Ae(){return(0,n.Z)(ke).scale(131.747)}ke.invert=function(t,e){var r,n=t,a=e,o=50;do{var s=a*a;a-=r=(a*(1+s/12)-e)/(1+s/4)}while(i(r)>m&&--o>0);o=50,t/=1-.162388*s;do{var l=(l=n*n)*l;n-=r=(n*(.87-952426e-9*l)-t)/(.87-.00476213*l)}while(i(r)>m&&--o>0);return[n,a]};var Me=ye(2.6516,-.76534,.19123,-.047094,1.36289,-.13965,.031762);function Se(){return(0,n.Z)(Me).scale(131.087)}function Ee(t){var e=t(_,0)[0]-t(-_,0)[0];function r(r,n){var i=r>0?-.5:.5,a=t(r+i*b,n);return a[0]-=i*e,a}return t.invert&&(r.invert=function(r,n){var i=r>0?-.5:.5,a=t.invert(r+i*e,n),o=a[0]-i*b;return o<-b?o+=2*b:o>b&&(o-=2*b),a[0]=o,a}),r}function Le(t,e){var r=v(t),n=v(e),a=s(e),l=s(t)*a,u=g(t)*a,c=g(n*e);t=i(o(u,c)),e=L(l),i(t-_)>m&&(t%=_);var f=function(t,e){if(e===_)return[0,0];var r,n,a=g(e),o=a*a,l=o*o,u=1+l,c=1+3*l,f=1-l,h=L(1/P(u)),p=f+o*u*h,d=(1-a)/p,v=P(d),y=d*u,x=P(y),w=v*f;if(0===t)return[0,-(w+o*x)];var T,k=s(e),A=1/k,M=2*a*k,S=(-p*k-(-3*o+h*c)*M*(1-a))/(p*p),E=-A*M,C=-A*(o*u*S+d*c*M),O=-2*A*(f*(.5*S/v)-2*o*v*M),I=4*t/b;if(t>.222*b||e<b/4&&t>.175*b){if(r=(w+o*P(y*(1+l)-w*w))/(1+l),t>b/4)return[r,r];var D=r,z=.5*r;r=.5*(z+D),n=50;do{var R=r*(O+E*P(y-r*r))+C*L(r/x)-I;if(!R)break;R<0?z=r:D=r,r=.5*(z+D)}while(i(D-z)>m&&--n>0)}else{r=m,n=25;do{var F=r*r,B=P(y-F),N=O+E*B,j=r*N+C*L(r/x)-I;r-=T=B?j/(N+(C-E*F)/B):0}while(i(T)>m&&--n>0)}return[r,-w-o*P(y-r*r)]}(t>b/4?_-t:t,e);return t>b/4&&(c=f[0],f[0]=-f[1],f[1]=-c),f[0]*=r,f[1]*=-n,f}function Ce(){return(0,n.Z)(Ee(Le)).scale(239.75)}function Pe(t,e){var r,n,o,u,c,f;if(e<m)return[(u=g(t))-(r=e*(t-u*(n=s(t)))/4)*n,n+r*u,1-e*u*u/2,t-r];if(e>=.999999)return r=(1-e)/4,o=1/(n=I(t)),[(u=((f=l(2*(f=t)))-1)/(f+1))+r*((c=n*O(t))-t)/(n*n),o-r*u*o*(c-t),o+r*u*o*(c+t),2*a(l(t))-_+r*(c-t)/n];var h=[1,0,0,0,0,0,0,0,0],p=[P(e),0,0,0,0,0,0,0,0],d=0;for(n=P(1-e),c=1;i(p[d]/h[d])>m&&d<8;)r=h[d++],p[d]=(r-n)/2,h[d]=(r+n)/2,n=P(r*n),c*=2;o=c*h[d]*t;do{o=(L(u=p[d]*g(n=o)/h[d])+o)/2}while(--d);return[g(o),u=s(o),u/s(o-n),o]}function Oe(t,e){if(!e)return t;if(1===e)return c(y(t/2+w));for(var r=1,n=P(1-e),o=P(e),s=0;i(o)>m;s++){if(t%b){var l=a(n*y(t)/r);l<0&&(l+=b),t+=l+~~(t/b)*b}else t+=t;o=(r+n)/2,n=P(r*n),o=((r=o)-n)/2}return t/(p(2,s)*r)}function Ie(t,e){var r=(k-1)/(k+1),n=P(1-r*r),u=Oe(_,n*n),f=c(y(b/4+i(e)/2)),h=l(-1*f)/P(r),p=function(t,e){var r=t*t,n=e+1,i=1-r-e*e;return[.5*((t>=0?_:-_)-o(i,2*t)),-.25*c(i*i+4*r)+.5*c(n*n+r)]}(h*s(-1*t),h*g(-1*t)),d=function(t,e,r){var n=i(t),o=O(i(e));if(n){var s=1/g(n),l=1/(y(n)*y(n)),u=-(l+r*(o*o*s*s)-1+r),c=(-u+P(u*u-(r-1)*l*4))/2;return[Oe(a(1/P(c)),r)*v(t),Oe(a(P((c/l-1)/r)),1-r)*v(e)]}return[0,Oe(a(o),1-r)*v(e)]}(p[0],p[1],n*n);return[-d[1],(e>=0?1:-1)*(.5*u-d[0])]}function De(){return(0,n.Z)(Ee(Ie)).scale(151.496)}Le.invert=function(t,e){i(t)>1&&(t=2*v(t)-t),i(e)>1&&(e=2*v(e)-e);var r=v(t),n=v(e),a=-r*t,l=-n*e,u=l/a<1,c=function(t,e){for(var r=0,n=1,a=.5,o=50;;){var l=a*a,u=P(a),c=L(1/P(1+l)),f=1-l+a*(1+l)*c,h=(1-u)/f,p=P(h),d=h*(1+l),v=p*(1-l),g=P(d-t*t),y=e+v+a*g;if(i(n-r)<x||0==--o||0===y)break;y>0?r=a:n=a,a=.5*(r+n)}if(!o)return null;var m=L(u),_=s(m),w=1/_,T=2*u*_,k=(-f*_-(-3*a+c*(1+3*l))*T*(1-u))/(f*f);return[b/4*(t*(-2*w*(.5*k/p*(1-l)-2*a*p*T)+-w*T*g)+-w*(a*(1+l)*k+h*(1+3*l)*T)*L(t/P(d))),m]}(u?l:a,u?a:l),f=c[0],h=c[1],p=s(h);return u&&(f=-_-f),[r*(o(g(f)*p,-g(h))+b),n*L(s(f)*p)]},Ie.invert=function(t,e){var r,n,i,s,u,f,h=(k-1)/(k+1),p=P(1-h*h),d=(n=-t,i=p*p,(r=.5*Oe(_,p*p)-e)?(s=Pe(r,i),n?(f=(u=Pe(n,1-i))[1]*u[1]+i*s[0]*s[0]*u[0]*u[0],[[s[0]*u[2]/f,s[1]*s[2]*u[0]*u[1]/f],[s[1]*u[1]/f,-s[0]*s[2]*u[0]*u[2]/f],[s[2]*u[1]*u[2]/f,-i*s[0]*s[1]*u[0]/f]]):[[s[0],0],[s[1],0],[s[2],0]]):[[0,(u=Pe(n,1-i))[0]/u[1]],[1/u[1],0],[u[2]/u[1],0]]),v=function(t,e){var r=e[0]*e[0]+e[1]*e[1];return[(t[0]*e[0]+t[1]*e[1])/r,(t[1]*e[0]-t[0]*e[1])/r]}(d[0],d[1]);return[o(v[1],v[0])/-1,2*a(l(-.5*c(h*v[0]*v[0]+h*v[1]*v[1])))-_]};var ze=r(7613);function Re(t){var e=g(t),r=s(t),n=Fe(t);function a(t,a){var o=n(t,a);t=o[0],a=o[1];var l=g(a),u=s(a),c=s(t),f=C(e*l+r*u*c),h=g(f),p=i(h)>m?f/h:1;return[p*r*g(t),(i(t)>_?p:-p)*(e*u-r*l*c)]}return n.invert=Fe(-t),a.invert=function(t,r){var i=P(t*t+r*r),a=-g(i),l=s(i),u=i*l,c=-r*a,f=i*e,h=P(u*u+c*c-f*f),p=o(u*f+c*h,c*f-u*h),d=(i>_?-1:1)*o(t*a,i*s(p)*l+r*g(p)*a);return n.invert(d,p)},a}function Fe(t){var e=g(t),r=s(t);return function(t,n){var i=s(n),a=s(t)*i,l=g(t)*i,u=g(n);return[o(l,a*r-u*e),L(u*r+a*e)]}}function Be(){var t=0,e=(0,n.r)(Re),r=e(t),i=r.rotate,a=r.stream,o=(0,ze.Z)();return r.parallel=function(n){if(!arguments.length)return t*S;var i=r.rotate();return e(t=n*E).rotate(i)},r.rotate=function(e){return arguments.length?(i.call(r,[e[0],e[1]-t*S]),o.center([-e[0],-e[1]]),r):((e=i.call(r))[1]+=t*S,e)},r.stream=function(t){return(t=a(t)).sphere=function(){t.polygonStart();var e,r=o.radius(89.99)().coordinates[0],n=r.length-1,i=-1;for(t.lineStart();++i<n;)t.point((e=r[i])[0],e[1]);for(t.lineEnd(),n=(r=o.radius(90.01)().coordinates[0]).length-1,t.lineStart();--i>=0;)t.point((e=r[i])[0],e[1]);t.lineEnd(),t.polygonEnd()},t},r.scale(79.4187).parallel(45).clipAngle(179.999)}var Ne=r(33064),je=r(72736),Ue=L(1-1/3)*S,Ve=Rt(0);function He(t){var e=Ue*E,r=Lt(b,e)[0]-Lt(-b,e)[0],n=Ve(0,e)[1],a=Lt(0,e)[1],o=A-a,s=M/t,l=4/M,c=n+o*o*4/M;function p(p,d){var v,g=i(d);if(g>e){var y=h(t-1,f(0,u((p+b)/s)));(v=Lt(p+=b*(t-1)/t-y*s,g))[0]=v[0]*M/r-M*(t-1)/(2*t)+y*M/t,v[1]=n+4*(v[1]-a)*o/M,d<0&&(v[1]=-v[1])}else v=Ve(p,d);return v[0]*=l,v[1]/=c,v}return p.invert=function(e,p){e/=l;var d=i(p*=c);if(d>n){var v=h(t-1,f(0,u((e+b)/s)));e=(e+b*(t-1)/t-v*s)*r/M;var g=Lt.invert(e,.25*(d-n)*M/o+a);return g[0]-=b*(t-1)/t-v*s,p<0&&(g[1]=-g[1]),g}return Ve.invert(e,p)},p}function qe(t,e){return[t,1&e?89.999999:Ue]}function Ge(t,e){return[t,1&e?-89.999999:-Ue]}function Ze(t){return[.999999*t[0],t[1]]}function Ye(){var t=4,e=(0,n.r)(He),r=e(t),i=r.stream;return r.lobes=function(r){return arguments.length?e(t=+r):t},r.stream=function(e){var n=r.rotate(),a=i(e),o=(r.rotate([0,0]),i(e));return r.rotate(n),a.sphere=function(){var e,r;(0,je.Z)((e=180/t,r=[].concat((0,Ne.w6)(-180,180+e/2,e).map(qe),(0,Ne.w6)(180,-180-e/2,-e).map(Ge)),{type:"Polygon",coordinates:[180===e?r.map(Ze):r]}),o)},a},r.scale(239.75)}function We(t){var e,r=1+t,n=L(g(1/r)),a=2*P(b/(e=b+4*n*r)),l=.5*a*(r+P(t*(2+t))),u=t*t,c=r*r;function f(f,h){var p,d,v=1-g(h);if(v&&v<2){var y,m=_-h,w=25;do{var T=g(m),k=s(m),A=n+o(T,r-k),M=1+c-2*r*k;m-=y=(m-u*n-r*T+M*A-.5*v*e)/(2*r*T*A)}while(i(y)>x&&--w>0);p=a*P(M),d=f*A/b}else p=a*(t+v),d=f*n/b;return[p*g(d),l-p*s(d)]}return f.invert=function(t,i){var s=t*t+(i-=l)*i,f=(1+c-s/(a*a))/(2*r),h=C(f),p=g(h),d=n+o(p,r-f);return[L(t/P(s))*b/d,L(1-2*(h-u*n-r*p+(1+c-2*r*f)*d)/e)]},f}function Xe(){var t=1,e=(0,n.r)(We),r=e(t);return r.ratio=function(r){return arguments.length?e(t=+r):t},r.scale(167.774).center([0,18.67])}var Je=.7109889596207567,Ke=.0528035274542;function $e(t,e){return e>-Je?((t=at(t,e))[1]+=Ke,t):ht(t,e)}function Qe(){return(0,n.Z)($e).rotate([-20,-55]).scale(164.263).center([0,-5.4036])}function tr(t,e){return i(e)>Je?((t=at(t,e))[1]-=e>0?Ke:-Ke,t):ht(t,e)}function er(){return(0,n.Z)(tr).scale(152.63)}function rr(t,e,r,n){var i=P(4*b/(2*r+(1+t-e/2)*g(2*r)+(t+e)/2*g(4*r)+e/2*g(6*r))),a=P(n*g(r)*P((1+t*s(2*r)+e*s(4*r))/(1+t+e))),o=r*u(1);function l(r){return P(1+t*s(2*r)+e*s(4*r))}function u(n){var i=n*r;return(2*i+(1+t-e/2)*g(2*i)+(t+e)/2*g(4*i)+e/2*g(6*i))/r}function c(t){return l(t)*g(t)}var f=function(t,e){var n=r*Q(u,o*g(e)/r,e/b);isNaN(n)&&(n=r*v(e));var c=i*l(n);return[c*a*t/b*s(n),c/a*g(n)]};return f.invert=function(t,e){var n=Q(c,e*a/i);return[t*b/(s(n)*i*a*l(n)),L(r*u(n/r)/o)]},0===r&&(i=P(n/b),(f=function(t,e){return[t*i,g(e)/i]}).invert=function(t,e){return[t/i,L(e*i)]}),f}function nr(){var t=1,e=0,r=45*E,i=2,a=(0,n.r)(rr),o=a(t,e,r,i);return o.a=function(n){return arguments.length?a(t=+n,e,r,i):t},o.b=function(n){return arguments.length?a(t,e=+n,r,i):e},o.psiMax=function(n){return arguments.length?a(t,e,r=+n*E,i):r*S},o.ratio=function(n){return arguments.length?a(t,e,r,i=+n):i},o.scale(180.739)}function ir(t,e,r,n,i,a,o,s,l,u,c){if(c.nanEncountered)return NaN;var f,h,p,d,v,g,y,m,x,b;if(h=t(e+.25*(f=r-e)),p=t(r-.25*f),isNaN(h))c.nanEncountered=!0;else{if(!isNaN(p))return b=((g=(d=f*(n+4*h+i)/12)+(v=f*(i+4*p+a)/12))-o)/15,u>l?(c.maxDepthCount++,g+b):Math.abs(b)<s?g+b:(m=ir(t,e,y=e+.5*f,n,h,i,d,.5*s,l,u+1,c),isNaN(m)?(c.nanEncountered=!0,NaN):(x=ir(t,y,r,i,p,a,v,.5*s,l,u+1,c),isNaN(x)?(c.nanEncountered=!0,NaN):m+x));c.nanEncountered=!0}}function ar(t,e,r,n,i){void 0===n&&(n=1e-8),void 0===i&&(i=20);var a=t(e),o=t(.5*(e+r)),s=t(r);return ir(t,e,r,a,o,s,(a+4*o+s)*(r-e)/6,n,i,1,{maxDepthCount:0,nanEncountered:!1})}function or(t,e,r){function n(r){return t+(1-t)*p(1-p(r,e),1/e)}function a(t){return ar(n,0,t,1e-4)}for(var o=1/a(1),s=1e3,l=(1+1e-8)*o,u=[],c=0;c<=s;c++)u.push(a(c/s)*l);function f(t){var e=0,r=s,n=500;do{u[n]>t?r=n:e=n,n=e+r>>1}while(n>e);var i=u[n+1]-u[n];return i&&(i=(t-u[n+1])/i),(n+1+i)/s}var h=2*f(1)/b*o/r,d=function(t,e){var r=f(i(g(e))),a=n(r)*t;return r/=h,[a,e>=0?r:-r]};return d.invert=function(t,e){var r;return i(e*=h)<1&&(r=v(e)*L(a(i(e))*o)),[t/n(i(e)),r]},d}function sr(){var t=0,e=2.5,r=1.183136,i=(0,n.r)(or),a=i(t,e,r);return a.alpha=function(n){return arguments.length?i(t=+n,e,r):t},a.k=function(n){return arguments.length?i(t,e=+n,r):e},a.gamma=function(n){return arguments.length?i(t,e,r=+n):r},a.scale(152.63)}function lr(t,e){return i(t[0]-e[0])<m&&i(t[1]-e[1])<m}function ur(t,e){for(var r,n,i,a=-1,o=t.length,s=t[0],l=[];++a<o;){n=((r=t[a])[0]-s[0])/e,i=(r[1]-s[1])/e;for(var u=0;u<e;++u)l.push([s[0]+u*n,s[1]+u*i]);s=r}return l.push(r),l}function cr(t){var e,r,n,i,a,o,s,l=[],u=t[0].length;for(s=0;s<u;++s)r=(e=t[0][s])[0][0],n=e[0][1],i=e[1][1],a=e[2][0],o=e[2][1],l.push(ur([[r+m,n+m],[r+m,i-m],[a-m,i-m],[a-m,o+m]],30));for(s=t[1].length-1;s>=0;--s)r=(e=t[1][s])[0][0],n=e[0][1],i=e[1][1],a=e[2][0],o=e[2][1],l.push(ur([[a-m,o-m],[a-m,i+m],[r+m,i+m],[r+m,n-m]],30));return{type:"Polygon",coordinates:[(0,Ne.TS)(l)]}}function fr(t,e,r){var i,a;function o(r,n){for(var i=n<0?-1:1,a=e[+(n<0)],o=0,s=a.length-1;o<s&&r>a[o][2][0];++o);var l=t(r-a[o][1][0],n);return l[0]+=t(a[o][1][0],i*n>i*a[o][0][1]?a[o][0][1]:n)[0],l}r?o.invert=r(o):t.invert&&(o.invert=function(r,n){for(var i=a[+(n<0)],s=e[+(n<0)],l=0,u=i.length;l<u;++l){var c=i[l];if(c[0][0]<=r&&r<c[1][0]&&c[0][1]<=n&&n<c[1][1]){var f=t.invert(r-t(s[l][1][0],0)[0],n);return f[0]+=s[l][1][0],lr(o(f[0],f[1]),[r,n])?f:null}}});var s=(0,n.Z)(o),l=s.stream;return s.stream=function(t){var e=s.rotate(),r=l(t),n=(s.rotate([0,0]),l(t));return s.rotate(e),r.sphere=function(){(0,je.Z)(i,n)},r},s.lobes=function(r){return arguments.length?(i=cr(r),e=r.map((function(t){return t.map((function(t){return[[t[0][0]*E,t[0][1]*E],[t[1][0]*E,t[1][1]*E],[t[2][0]*E,t[2][1]*E]]}))})),a=e.map((function(e){return e.map((function(e){var r,n=t(e[0][0],e[0][1])[0],i=t(e[2][0],e[2][1])[0],a=t(e[1][0],e[0][1])[1],o=t(e[1][0],e[1][1])[1];return a>o&&(r=a,a=o,o=r),[[n,a],[i,o]]}))})),s):e.map((function(t){return t.map((function(t){return[[t[0][0]*S,t[0][1]*S],[t[1][0]*S,t[1][1]*S],[t[2][0]*S,t[2][1]*S]]}))}))},null!=e&&s.lobes(e),s}$e.invert=function(t,e){return e>-Je?at.invert(t,e-Ke):ht.invert(t,e)},tr.invert=function(t,e){return i(e)>Je?at.invert(t,e+(e>0?Ke:-Ke)):ht.invert(t,e)};var hr=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]];function pr(){return fr(ut,hr).scale(160.857)}var dr=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]];function vr(){return fr(tr,dr).scale(152.63)}var gr=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]];function yr(){return fr(at,gr).scale(169.529)}var mr=[[[[-180,0],[-90,90],[0,0]],[[0,0],[90,90],[180,0]]],[[[-180,0],[-90,-90],[0,0]],[[0,0],[90,-90],[180,0]]]];function xr(){return fr(at,mr).scale(169.529).rotate([20,0])}var br=[[[[-180,35],[-30,90],[0,35]],[[0,35],[30,90],[180,35]]],[[[-180,-10],[-102,-90],[-65,-10]],[[-65,-10],[5,-90],[77,-10]],[[77,-10],[103,-90],[180,-10]]]];function _r(){return fr($e,br,tt).rotate([-20,-55]).scale(164.263).center([0,-5.4036])}var wr=[[[[-180,0],[-110,90],[-40,0]],[[-40,0],[0,90],[40,0]],[[40,0],[110,90],[180,0]]],[[[-180,0],[-110,-90],[-40,0]],[[-40,0],[0,-90],[40,0]],[[40,0],[110,-90],[180,0]]]];function Tr(){return fr(ht,wr).scale(152.63).rotate([-20,0])}function kr(t,e){return[3/M*t*P(b*b/3-e*e),e]}function Ar(){return(0,n.Z)(kr).scale(158.837)}function Mr(t){function e(e,r){if(i(i(r)-_)<m)return[0,r<0?-2:2];var n=g(r),a=p((1+n)/(1-n),t/2),o=.5*(a+1/a)+s(e*=t);return[2*g(e)/o,(a-1/a)/o]}return e.invert=function(e,r){var n=i(r);if(i(n-2)<m)return e?null:[0,v(r)*_];if(n>2)return null;var a=(e/=2)*e,s=(r/=2)*r,l=2*r/(1+a+s);return l=p((1+l)/(1-l),1/t),[o(2*e,1-a-s)/t,L((l-1)/(l+1))]},e}function Sr(){var t=.5,e=(0,n.r)(Mr),r=e(t);return r.spacing=function(r){return arguments.length?e(t=+r):t},r.scale(124.75)}kr.invert=function(t,e){return[M/3*t/P(b*b/3-e*e),e]};var Er=b/k;function Lr(t,e){return[t*(1+P(s(e)))/2,e/(s(e/2)*s(t/6))]}function Cr(){return(0,n.Z)(Lr).scale(97.2672)}function Pr(t,e){var r=t*t,n=e*e;return[t*(.975534+n*(-.0143059*r-.119161+-.0547009*n)),e*(1.00384+r*(.0802894+-.02855*n+199025e-9*r)+n*(.0998909+-.0491032*n))]}function Or(){return(0,n.Z)(Pr).scale(139.98)}function Ir(t,e){return[g(t)/s(e),y(e)*s(t)]}function Dr(){return(0,n.Z)(Ir).scale(144.049).clipAngle(89.999)}function zr(t){var e=s(t),r=y(w+t/2);function n(n,a){var o=a-t,s=i(o)<m?n*e:i(s=w+a/2)<m||i(i(s)-_)<m?0:n*o/c(y(s)/r);return[s,o]}return n.invert=function(n,a){var o,s=a+t;return[i(a)<m?n/e:i(o=w+s/2)<m||i(i(o)-_)<m?0:n*c(y(o)/r)/a,s]},n}function Rr(){return ft(zr).parallel(40).scale(158.837)}function Fr(t,e){return[t,1.25*c(y(w+.4*e))]}function Br(){return(0,n.Z)(Fr).scale(108.318)}function Nr(t){var e=t.length-1;function r(r,n){for(var i,a=s(n),o=2/(1+a*s(r)),l=o*a*g(r),u=o*g(n),c=e,f=t[c],h=f[0],p=f[1];--c>=0;)h=(f=t[c])[0]+l*(i=h)-u*p,p=f[1]+l*p+u*i;return[h=l*(i=h)-u*p,p=l*p+u*i]}return r.invert=function(r,n){var l=20,u=r,c=n;do{for(var f,h=e,p=t[h],d=p[0],v=p[1],y=0,m=0;--h>=0;)y=d+u*(f=y)-c*m,m=v+u*m+c*f,d=(p=t[h])[0]+u*(f=d)-c*v,v=p[1]+u*v+c*f;var x,b,_=(y=d+u*(f=y)-c*m)*y+(m=v+u*m+c*f)*m;u-=x=((d=u*(f=d)-c*v-r)*y+(v=u*v+c*f-n)*m)/_,c-=b=(v*y-d*m)/_}while(i(x)+i(b)>1e-12&&--l>0);if(l){var w=P(u*u+c*c),T=2*a(.5*w),k=g(T);return[o(u*k,w*s(T)),w?L(c*k/w):0]}},r}Lr.invert=function(t,e){var r=i(t),n=i(e),a=m,o=_;n<Er?o*=n/Er:a+=6*C(Er/n);for(var l=0;l<25;l++){var u=g(o),c=P(s(o)),f=g(o/2),h=s(o/2),p=g(a/6),d=s(a/6),v=.5*a*(1+c)-r,y=o/(h*d)-n,x=c?-.25*a*u/c:0,b=.5*(1+c),w=(1+.5*o*f/h)/(h*d),T=o/h*(p/6)/(d*d),k=x*T-w*b,A=(v*T-y*b)/k,M=(y*x-v*w)/k;if(o-=A,a-=M,i(A)<m&&i(M)<m)break}return[t<0?-a:a,e<0?-o:o]},Pr.invert=function(t,e){var r=v(t)*b,n=e/2,a=50;do{var o=r*r,s=n*n,l=r*n,u=r*(.975534+s*(-.0143059*o-.119161+-.0547009*s))-t,c=n*(1.00384+o*(.0802894+-.02855*s+199025e-9*o)+s*(.0998909+-.0491032*s))-e,f=.975534-s*(.119161+3*o*.0143059+.0547009*s),h=-l*(.238322+.2188036*s+.0286118*o),p=l*(.1605788+7961e-7*o+-.0571*s),d=1.00384+o*(.0802894+199025e-9*o)+s*(3*(.0998909-.02855*o)-.245516*s),g=h*p-d*f,y=(c*h-u*d)/g,x=(u*p-c*f)/g;r-=y,n-=x}while((i(y)>m||i(x)>m)&&--a>0);return a&&[r,n]},Ir.invert=function(t,e){var r=t*t,n=e*e+1,i=r+n,a=t?T*P((i-P(i*i-4*r))/r):1/P(n);return[L(t*a),v(e)*C(a)]},Fr.invert=function(t,e){return[t,2.5*a(l(.8*e))-.625*b]};var jr=[[.9972523,0],[.0052513,-.0041175],[.0074606,.0048125],[-.0153783,-.1968253],[.0636871,-.1408027],[.3660976,-.2937382]],Ur=[[.98879,0],[0,0],[-.050909,0],[0,0],[.075528,0]],Vr=[[.984299,0],[.0211642,.0037608],[-.1036018,-.0575102],[-.0329095,-.0320119],[.0499471,.1223335],[.026046,.0899805],[7388e-7,-.1435792],[.0075848,-.1334108],[-.0216473,.0776645],[-.0225161,.0853673]],Hr=[[.9245,0],[0,0],[.01943,0]],qr=[[.721316,0],[0,0],[-.00881625,-.00617325]];function Gr(){return Jr(jr,[152,-64]).scale(1400).center([-160.908,62.4864]).clipAngle(30).angle(7.8)}function Zr(){return Jr(Ur,[95,-38]).scale(1e3).clipAngle(55).center([-96.5563,38.8675])}function Yr(){return Jr(Vr,[120,-45]).scale(359.513).clipAngle(55).center([-117.474,53.0628])}function Wr(){return Jr(Hr,[-20,-18]).scale(209.091).center([20,16.7214]).clipAngle(82)}function Xr(){return Jr(qr,[165,10]).scale(250).clipAngle(130).center([-165,-10])}function Jr(t,e){var r=(0,n.Z)(Nr(t)).rotate(e).clipAngle(90),i=(0,_t.Z)(e),a=r.center;return delete r.rotate,r.center=function(t){return arguments.length?a(i(t)):i.invert(a())},r}var Kr=P(6),$r=P(7);function Qr(t,e){var r=L(7*g(e)/(3*Kr));return[Kr*t*(2*s(2*r/3)-1)/$r,9*g(r/3)/$r]}function tn(){return(0,n.Z)(Qr).scale(164.859)}function en(t,e){for(var r,n=(1+T)*g(e),a=e,o=0;o<25&&(a-=r=(g(a/2)+g(a)-n)/(.5*s(a/2)+s(a)),!(i(r)<m));o++);return[t*(1+2*s(a)/s(a/2))/(3*k),2*P(3)*g(a/2)/P(2+k)]}function rn(){return(0,n.Z)(en).scale(188.209)}function nn(t,e){for(var r,n=P(6/(4+b)),a=(1+b/4)*g(e),o=e/2,l=0;l<25&&(o-=r=(o/2+g(o)-a)/(.5+s(o)),!(i(r)<m));l++);return[n*(.5+s(o))*t/1.5,n*o]}function an(){return(0,n.Z)(nn).scale(166.518)}Qr.invert=function(t,e){var r=3*L(e*$r/9);return[t*$r/(Kr*(2*s(2*r/3)-1)),L(3*g(r)*Kr/7)]},en.invert=function(t,e){var r=e*P(2+k)/(2*P(3)),n=2*L(r);return[3*k*t/(1+2*s(n)/s(n/2)),L((r+g(n))/(1+T))]},nn.invert=function(t,e){var r=P(6/(4+b)),n=e/r;return i(i(n)-_)<m&&(n=n<0?-_:_),[1.5*t/(r*(.5+s(n))),L((n/2+g(n))/(1+b/4))]};var on=r(26867);function sn(t,e){var r=e*e,n=r*r,i=r*n;return[t*(.84719-.13063*r+i*i*(.05494*r-.04515-.02326*n+.00331*i)),e*(1.01183+n*n*(.01926*r-.02625-.00396*n))]}function ln(){return(0,n.Z)(sn).scale(175.295)}function un(t,e){return[t*(1+s(e))/2,2*(e-y(e/2))]}function cn(){return(0,n.Z)(un).scale(152.63)}sn.invert=function(t,e){var r,n,a,o,s=e,l=25;do{s-=r=(s*(1.01183+(a=(n=s*s)*n)*a*(.01926*n-.02625-.00396*a))-e)/(1.01183+a*a*(.21186*n-.23625+-.05148*a))}while(i(r)>x&&--l>0);return[t/(.84719-.13063*(n=s*s)+(o=n*(a=n*n))*o*(.05494*n-.04515-.02326*a+.00331*o)),s]},un.invert=function(t,e){for(var r=e/2,n=0,a=1/0;n<10&&i(a)>m;++n){var o=s(e/2);e-=a=(e-y(e/2)-r)/(1-.5/(o*o))}return[2*t/(1+s(e)),e]};var fn=[[[[-180,0],[-90,90],[0,0]],[[0,0],[90,90],[180,0]]],[[[-180,0],[-90,-90],[0,0]],[[0,0],[90,-90],[180,0]]]];function hn(){return fr(J(1/0),fn).rotate([20,0]).scale(152.63)}function pn(t,e){var r=g(e),n=s(e),a=v(t);if(0===t||i(e)===_)return[0,e];if(0===e)return[t,0];if(i(t)===_)return[t*n,_*r];var o=b/(2*t)-2*t/b,l=2*e/b,u=(1-l*l)/(r-l),c=o*o,f=u*u,h=1+c/f,p=1+f/c,d=(o*r/u-o/2)/h,y=(f*r/c+u/2)/p,m=y*y-(f*r*r/c+u*r-1)/p;return[_*(d+P(d*d+n*n/h)*a),_*(y+P(m<0?0:m)*v(-e*o)*a)]}function dn(){return(0,n.Z)(pn).scale(127.267)}pn.invert=function(t,e){var r=(t/=_)*t,n=r+(e/=_)*e,i=b*b;return[t?(n-1+P((1-n)*(1-n)+4*r))/(2*t)*_:0,Q((function(t){return n*(b*g(t)-2*t)*b+4*t*t*(e-g(t))+2*b*t-i*e}),0)]};var vn=1.0148,gn=.23185,yn=-.14499,mn=.02406,xn=1.790857183;function bn(t,e){var r=e*e;return[t,e*(vn+r*r*(gn+r*(yn+mn*r)))]}function _n(){return(0,n.Z)(bn).scale(139.319)}function wn(t,e){if(i(e)<m)return[t,0];var r=y(e),n=t*g(e);return[g(n)/r,e+(1-s(n))/r]}function Tn(){return(0,n.Z)(wn).scale(103.74)}bn.invert=function(t,e){e>xn?e=xn:e<-1.790857183&&(e=-1.790857183);var r,n=e;do{var a=n*n;n-=r=(n*(vn+a*a*(gn+a*(yn+mn*a)))-e)/(1.0148+a*a*(1.1592500000000001+a*(.21654*a-1.01493)))}while(i(r)>m);return[t,n]},wn.invert=function(t,e){if(i(e)<m)return[t,0];var r,n=t*t+e*e,a=.5*e,o=10;do{var l=y(a),u=1/s(a),c=n-2*e*a+a*a;a-=r=(l*c+2*(a-e))/(2+c*u*u+2*(a-e)*l)}while(i(r)>m&&--o>0);return l=y(a),[(i(e)<i(a+1/l)?L(t*l):v(e)*v(t)*(C(i(t*l))+_))/g(a),a]};var kn=r(77338),An=r(83074);function Mn(t,e){return[t[0]*e[0]+t[1]*e[3],t[0]*e[1]+t[1]*e[4],t[0]*e[2]+t[1]*e[5]+t[2],t[3]*e[0]+t[4]*e[3],t[3]*e[1]+t[4]*e[4],t[3]*e[2]+t[4]*e[5]+t[5]]}function Sn(t,e){return[t[0]-e[0],t[1]-e[1]]}function En(t){return P(t[0]*t[0]+t[1]*t[1])}function Ln(t,e,r){function i(t,r){var n,i=e(t,r),a=i.project([t*S,r*S]);return(n=i.transform)?[n[0]*a[0]+n[1]*a[1]+n[2],-(n[3]*a[0]+n[4]*a[1]+n[5])]:(a[1]=-a[1],a)}function a(t,r){var n=t.project.invert,i=t.transform,o=r;if(i&&(i=function(t){var e=1/(t[0]*t[4]-t[1]*t[3]);return[e*t[4],-e*t[1],e*(t[1]*t[5]-t[2]*t[4]),-e*t[3],e*t[0],e*(t[2]*t[3]-t[0]*t[5])]}(i),o=[i[0]*o[0]+i[1]*o[1]+i[2],i[3]*o[0]+i[4]*o[1]+i[5]]),n&&t===function(t){return e(t[0]*E,t[1]*E)}(s=n(o)))return s;for(var s,l=t.children,u=0,c=l&&l.length;u<c;++u)if(s=a(l[u],r))return s}!function t(e,r){if(e.edges=function(t){for(var e=t.length,r=[],n=t[e-1],i=0;i<e;++i)r.push([n,n=t[i]]);return r}(e.face),r.face){var n=e.shared=function(t,e){for(var r,n,i=t.length,a=null,o=0;o<i;++o){r=t[o];for(var s=e.length;--s>=0;)if(n=e[s],r[0]===n[0]&&r[1]===n[1]){if(a)return[a,r];a=r}}}(e.face,r.face),i=(c=n.map(r.project),f=n.map(e.project),h=Sn(c[1],c[0]),p=Sn(f[1],f[0]),d=function(t,e){return o(t[0]*e[1]-t[1]*e[0],t[0]*e[0]+t[1]*e[1])}(h,p),v=En(h)/En(p),Mn([1,0,c[0][0],0,1,c[0][1]],Mn([v,0,0,0,v,0],Mn([s(d),g(d),0,-g(d),s(d),0],[1,0,-f[0][0],0,1,-f[0][1]]))));e.transform=r.transform?Mn(r.transform,i):i;for(var a=r.edges,l=0,u=a.length;l<u;++l)Pn(n[0],a[l][1])&&Pn(n[1],a[l][0])&&(a[l]=e),Pn(n[0],a[l][0])&&Pn(n[1],a[l][1])&&(a[l]=e);for(l=0,u=(a=e.edges).length;l<u;++l)Pn(n[0],a[l][0])&&Pn(n[1],a[l][1])&&(a[l]=r),Pn(n[0],a[l][1])&&Pn(n[1],a[l][0])&&(a[l]=r)}else e.transform=r.transform;var c,f,h,p,d,v;return e.children&&e.children.forEach((function(r){t(r,e)})),e}(t,{transform:null}),On(t)&&(i.invert=function(e,r){var n=a(t,[e,-r]);return n&&(n[0]*=E,n[1]*=E,n)});var l=(0,n.Z)(i),u=l.stream;return l.stream=function(e){var r=l.rotate(),n=u(e),i=(l.rotate([0,0]),u(e));return l.rotate(r),n.sphere=function(){i.polygonStart(),i.lineStart(),Cn(i,t),i.lineEnd(),i.polygonEnd()},n},l.angle(null==r?-30:r*S)}function Cn(t,e,r){var n,a,o=e.edges,s=o.length,l={type:"MultiPoint",coordinates:e.face},u=e.face.filter((function(t){return 90!==i(t[1])})),c=(0,kn.Z)({type:"MultiPoint",coordinates:u}),f=!1,h=-1,p=c[1][0]-c[0][0],d=180===p||360===p?[(c[0][0]+c[1][0])/2,(c[0][1]+c[1][1])/2]:(0,bt.Z)(l);if(r)for(;++h<s&&o[h]!==r;);++h;for(var v=0;v<s;++v)a=o[(v+h)%s],Array.isArray(a)?(f||(t.point((n=(0,An.Z)(a[0],d)(m))[0],n[1]),f=!0),t.point((n=(0,An.Z)(a[1],d)(m))[0],n[1])):(f=!1,a!==r&&Cn(t,a,e))}function Pn(t,e){return t&&e&&t[0]===e[0]&&t[1]===e[1]}function On(t){return t.project.invert||t.children&&t.children.some(On)}var In=r(98936),Dn=[[0,90],[-90,0],[0,0],[90,0],[180,0],[0,-90]],zn=[[0,2,1],[0,3,2],[5,1,2],[5,2,3],[0,1,4],[0,4,3],[5,4,1],[5,3,4]].map((function(t){return t.map((function(t){return Dn[t]}))}));function Rn(t){t=t||function(t){var e=(0,bt.Z)({type:"MultiPoint",coordinates:t});return(0,In.Z)().scale(1).translate([0,0]).rotate([-e[0],-e[1]])};var e=zn.map((function(e){return{face:e,project:t(e)}}));return[-1,0,0,1,0,1,4,5].forEach((function(t,r){var n=e[t];n&&(n.children||(n.children=[])).push(e[r])})),Ln(e[0],(function(t,r){return e[t<-b/2?r<0?6:4:t<0?r<0?2:0:t<b/2?r<0?3:1:r<0?7:5]})).angle(-30).scale(101.858).center([0,45])}var Fn=2/P(3);function Bn(t,e){var r=Lt(t,e);return[r[0]*Fn,r[1]]}function Nn(t){t=t||function(t){var e=(0,bt.Z)({type:"MultiPoint",coordinates:t});return(0,n.Z)(Bn).translate([0,0]).scale(1).rotate(e[1]>0?[-e[0],0]:[180-e[0],180])};var e=zn.map((function(e){return{face:e,project:t(e)}}));return[-1,0,0,1,0,1,4,5].forEach((function(t,r){var n=e[t];n&&(n.children||(n.children=[])).push(e[r])})),Ln(e[0],(function(t,r){return e[t<-b/2?r<0?6:4:t<0?r<0?2:0:t<b/2?r<0?3:1:r<0?7:5]})).angle(-30).scale(121.906).center([0,48.5904])}function jn(t){t=t||function(t){var e=6===t.length?(0,bt.Z)({type:"MultiPoint",coordinates:t}):t[0];return(0,In.Z)().scale(1).translate([0,0]).rotate([-e[0],-e[1]])};var e=zn.map((function(t){for(var e,r=t.map(Hn),n=r.length,i=r[n-1],a=[],o=0;o<n;++o)e=r[o],a.push(Vn([.9486832980505138*i[0]+.31622776601683794*e[0],.9486832980505138*i[1]+.31622776601683794*e[1],.9486832980505138*i[2]+.31622776601683794*e[2]]),Vn([.9486832980505138*e[0]+.31622776601683794*i[0],.9486832980505138*e[1]+.31622776601683794*i[1],.9486832980505138*e[2]+.31622776601683794*i[2]])),i=e;return a})),r=[],n=[-1,0,0,1,0,1,4,5];e.forEach((function(t,i){for(var a,o,s=zn[i],l=s.length,u=r[i]=[],c=0;c<l;++c)e.push([s[c],t[(2*c+2)%(2*l)],t[(2*c+1)%(2*l)]]),n.push(i),u.push((a=Hn(t[(2*c+2)%(2*l)]),o=Hn(t[(2*c+1)%(2*l)]),[a[1]*o[2]-a[2]*o[1],a[2]*o[0]-a[0]*o[2],a[0]*o[1]-a[1]*o[0]]))}));var i=e.map((function(e){return{project:t(e),face:e}}));return n.forEach((function(t,e){var r=i[t];r&&(r.children||(r.children=[])).push(i[e])})),Ln(i[0],(function(t,e){var n=s(e),a=[n*s(t),n*g(t),g(e)],o=t<-b/2?e<0?6:4:t<0?e<0?2:0:t<b/2?e<0?3:1:e<0?7:5,l=r[o];return i[Un(l[0],a)<0?8+3*o:Un(l[1],a)<0?8+3*o+1:Un(l[2],a)<0?8+3*o+2:o]})).angle(-30).scale(110.625).center([0,45])}function Un(t,e){for(var r=0,n=t.length,i=0;r<n;++r)i+=t[r]*e[r];return i}function Vn(t){return[o(t[1],t[0])*S,L(f(-1,h(1,t[2])))*S]}function Hn(t){var e=t[0]*E,r=t[1]*E,n=s(r);return[n*s(e),n*g(e),g(r)]}function qn(){}function Gn(t,e){var r,n=e.stream;if(!n)throw new Error("invalid projection");switch(t&&t.type){case"Feature":r=Yn;break;case"FeatureCollection":r=Zn;break;default:r=Wn}return r(t,n)}function Zn(t,e){return{type:"FeatureCollection",features:t.features.map((function(t){return Yn(t,e)}))}}function Yn(t,e){return{type:"Feature",id:t.id,properties:t.properties,geometry:Wn(t.geometry,e)}}function Wn(t,e){if(!t)return null;if("GeometryCollection"===t.type)return function(t,e){return{type:"GeometryCollection",geometries:t.geometries.map((function(t){return Wn(t,e)}))}}(t,e);var r;switch(t.type){case"Point":case"MultiPoint":r=Kn;break;case"LineString":case"MultiLineString":r=$n;break;case"Polygon":case"MultiPolygon":case"Sphere":r=Qn;break;default:return null}return(0,je.Z)(t,e(r)),r.result()}Bn.invert=function(t,e){return Lt.invert(t/Fn,e)};var Xn=[],Jn=[],Kn={point:function(t,e){Xn.push([t,e])},result:function(){var t=Xn.length?Xn.length<2?{type:"Point",coordinates:Xn[0]}:{type:"MultiPoint",coordinates:Xn}:null;return Xn=[],t}},$n={lineStart:qn,point:function(t,e){Xn.push([t,e])},lineEnd:function(){Xn.length&&(Jn.push(Xn),Xn=[])},result:function(){var t=Jn.length?Jn.length<2?{type:"LineString",coordinates:Jn[0]}:{type:"MultiLineString",coordinates:Jn}:null;return Jn=[],t}},Qn={polygonStart:qn,lineStart:qn,point:function(t,e){Xn.push([t,e])},lineEnd:function(){var t=Xn.length;if(t){do{Xn.push(Xn[0].slice())}while(++t<4);Jn.push(Xn),Xn=[]}},polygonEnd:qn,result:function(){if(!Jn.length)return null;var t=[],e=[];return Jn.forEach((function(r){!function(t){if((e=t.length)<4)return!1;for(var e,r=0,n=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++r<e;)n+=t[r-1][1]*t[r][0]-t[r-1][0]*t[r][1];return n<=0}(r)?e.push(r):t.push([r])})),e.forEach((function(e){var r=e[0];t.some((function(t){if(function(t,e){for(var r=e[0],n=e[1],i=!1,a=0,o=t.length,s=o-1;a<o;s=a++){var l=t[a],u=l[0],c=l[1],f=t[s],h=f[0],p=f[1];c>n^p>n&&r<(h-u)*(n-c)/(p-c)+u&&(i=!i)}return i}(t[0],r))return t.push(e),!0}))||t.push([e])})),Jn=[],t.length?t.length>1?{type:"MultiPolygon",coordinates:t}:{type:"Polygon",coordinates:t[0]}:null}};function ti(t){var e=t(_,0)[0]-t(-_,0)[0];function r(r,n){var a=i(r)<_,o=t(a?r:r>0?r-b:r+b,n),s=(o[0]-o[1])*T,l=(o[0]+o[1])*T;if(a)return[s,l];var u=e*T,c=s>0^l>0?-1:1;return[c*s-v(l)*u,c*l-v(s)*u]}return t.invert&&(r.invert=function(r,n){var a=(r+n)*T,o=(n-r)*T,s=i(a)<.5*e&&i(o)<.5*e;if(!s){var l=e*T,u=a>0^o>0?-1:1,c=-u*r+(o>0?1:-1)*l,f=-u*n+(a>0?1:-1)*l;a=(-c-f)*T,o=(c-f)*T}var h=t.invert(a,o);return s||(h[0]+=a>0?b:-b),h}),(0,n.Z)(r).rotate([-90,-90,45]).clipAngle(179.999)}function ei(){return ti(Le).scale(176.423)}function ri(){return ti(Ie).scale(111.48)}function ni(t,e){if(!(0<=(e=+e)&&e<=20))throw new Error("invalid digits");function r(t){var r=t.length,n=2,i=new Array(r);for(i[0]=+t[0].toFixed(e),i[1]=+t[1].toFixed(e);n<r;)i[n]=t[n],++n;return i}function n(t){return t.map(r)}function i(t){for(var e=r(t[0]),n=[e],i=1;i<t.length;i++){var a=r(t[i]);(a.length>2||a[0]!=e[0]||a[1]!=e[1])&&(n.push(a),e=a)}return 1===n.length&&t.length>1&&n.push(r(t[t.length-1])),n}function a(t){return t.map(i)}function o(t){if(null==t)return t;var e;switch(t.type){case"GeometryCollection":e={type:"GeometryCollection",geometries:t.geometries.map(o)};break;case"Point":e={type:"Point",coordinates:r(t.coordinates)};break;case"MultiPoint":e={type:t.type,coordinates:n(t.coordinates)};break;case"LineString":e={type:t.type,coordinates:i(t.coordinates)};break;case"MultiLineString":case"Polygon":e={type:t.type,coordinates:a(t.coordinates)};break;case"MultiPolygon":e={type:"MultiPolygon",coordinates:t.coordinates.map(a)};break;default:return t}return null!=t.bbox&&(e.bbox=t.bbox),e}function s(t){var e={type:"Feature",properties:t.properties,geometry:o(t.geometry)};return null!=t.id&&(e.id=t.id),null!=t.bbox&&(e.bbox=t.bbox),e}if(null!=t)switch(t.type){case"Feature":return s(t);case"FeatureCollection":var l={type:"FeatureCollection",features:t.features.map(s)};return null!=t.bbox&&(l.bbox=t.bbox),l;default:return o(t)}return t}function ii(t){var e=g(t);function r(r,n){var i=e?y(r*e/2)/e:r/2;if(!n)return[2*i,-t];var o=2*a(i*g(n)),l=1/y(n);return[g(o)*l,n+(1-s(o))*l-t]}return r.invert=function(r,n){if(i(n+=t)<m)return[e?2*a(e*r/2)/e:r,0];var o,l=r*r+n*n,u=0,c=10;do{var f=y(u),h=1/s(u),p=l-2*n*u+u*u;u-=o=(f*p+2*(u-n))/(2+p*h*h+2*(u-n)*f)}while(i(o)>m&&--c>0);var d=r*(f=y(u)),v=y(i(n)<i(u+1/f)?.5*L(d):.5*C(d)+b/4)/g(u);return[e?2*a(e*v)/e:2*v,u]},r}function ai(){return ft(ii).scale(131.215)}var oi=[[.9986,-.062],[1,0],[.9986,.062],[.9954,.124],[.99,.186],[.9822,.248],[.973,.31],[.96,.372],[.9427,.434],[.9216,.4958],[.8962,.5571],[.8679,.6176],[.835,.6769],[.7986,.7346],[.7597,.7903],[.7186,.8435],[.6732,.8936],[.6213,.9394],[.5722,.9761],[.5322,1]];function si(t,e){var r,n=h(18,36*i(e)/b),a=u(n),o=n-a,s=(r=oi[a])[0],l=r[1],c=(r=oi[++a])[0],f=r[1],p=(r=oi[h(19,++a)])[0],d=r[1];return[t*(c+o*(p-s)/2+o*o*(p-2*c+s)/2),(e>0?_:-_)*(f+o*(d-l)/2+o*o*(d-2*f+l)/2)]}function li(){return(0,n.Z)(si).scale(152.63)}function ui(t,e){var r=function(t){function e(e,r){var n=s(r),i=(t-1)/(t-n*s(e));return[i*n*g(e),i*g(r)]}return e.invert=function(e,r){var n=e*e+r*r,i=P(n),a=(t-P(1-n*(t+1)/(t-1)))/((t-1)/i+i/(t-1));return[o(e*a,i*P(1-a*a)),i?L(r*a/i):0]},e}(t);if(!e)return r;var n=s(e),i=g(e);function a(e,a){var o=r(e,a),s=o[1],l=s*i/(t-1)+n;return[o[0]*n/l,s/l]}return a.invert=function(e,a){var o=(t-1)/(t-1-a*i);return r.invert(o*e,o*a*n)},a}function ci(){var t=2,e=0,r=(0,n.r)(ui),i=r(t,e);return i.distance=function(n){return arguments.length?r(t=+n,e):t},i.tilt=function(n){return arguments.length?r(t,e=n*E):e*S},i.scale(432.147).clipAngle(C(1/t)*S-1e-6)}oi.forEach((function(t){t[1]*=1.0144})),si.invert=function(t,e){var r=e/_,n=90*r,a=h(18,i(n/5)),o=f(0,u(a));do{var s=oi[o][1],l=oi[o+1][1],c=oi[h(19,o+2)][1],p=c-s,d=c-2*l+s,v=2*(i(r)-l)/p,g=d/p,y=v*(1-g*v*(1-2*g*v));if(y>=0||1===o){n=(e>=0?5:-5)*(y+a);var m,b=50;do{y=(a=h(18,i(n)/5))-(o=u(a)),s=oi[o][1],l=oi[o+1][1],c=oi[h(19,o+2)][1],n-=(m=(e>=0?_:-_)*(l+y*(c-s)/2+y*y*(c-2*l+s)/2)-e)*S}while(i(m)>x&&--b>0);break}}while(--o>=0);var w=oi[o][0],T=oi[o+1][0],k=oi[h(19,o+2)][0];return[t/(T+y*(k-w)/2+y*y*(k-2*T+w)/2),n*E]};var fi=-179.9999,hi=179.9999,pi=-89.9999,di=89.9999;function vi(t){return t.length>0}function gi(t){return-90===t||90===t?[0,t]:[-180,(e=t,Math.floor(1e4*e)/1e4)];var e}function yi(t){var e=t[0],r=t[1],n=!1;return e<=fi?(e=-180,n=!0):e>=hi&&(e=180,n=!0),r<=pi?(r=-90,n=!0):r>=di&&(r=90,n=!0),n?[e,r]:t}function mi(t){return t.map(yi)}function xi(t,e,r){for(var n=0,i=t.length;n<i;++n){var a=t[n].slice();r.push({index:-1,polygon:e,ring:a});for(var o=0,s=a.length;o<s;++o){var l=a[o],u=l[0],c=l[1];if(u<=fi||u>=hi||c<=pi||c>=di){a[o]=yi(l);for(var f=o+1;f<s;++f){var h=a[f],p=h[0],d=h[1];if(p>fi&&p<hi&&d>pi&&d<di)break}if(f===o+1)continue;if(o){var v={index:-1,polygon:e,ring:a.slice(0,o+1)};v.ring[v.ring.length-1]=gi(c),r[r.length-1]=v}else r.pop();if(f>=s)break;r.push({index:-1,polygon:e,ring:a=a.slice(f-1)}),a[0]=gi(a[0][1]),o=-1,s=a.length}}}}function bi(t){var e,r,n,i,a,o,s=t.length,l={},u={};for(e=0;e<s;++e)n=(r=t[e]).ring[0],a=r.ring[r.ring.length-1],n[0]!==a[0]||n[1]!==a[1]?(r.index=e,l[n]=u[a]=r):(r.polygon.push(r.ring),t[e]=null);for(e=0;e<s;++e)if(r=t[e]){if(n=r.ring[0],a=r.ring[r.ring.length-1],i=u[n],o=l[a],delete l[n],delete u[a],n[0]===a[0]&&n[1]===a[1]){r.polygon.push(r.ring);continue}i?(delete u[n],delete l[i.ring[0]],i.ring.pop(),t[i.index]=null,r={index:-1,polygon:i.polygon,ring:i.ring.concat(r.ring)},i===o?r.polygon.push(r.ring):(r.index=s++,t.push(l[r.ring[0]]=u[r.ring[r.ring.length-1]]=r))):o?(delete l[a],delete u[o.ring[o.ring.length-1]],r.ring.pop(),r={index:s++,polygon:o.polygon,ring:r.ring.concat(o.ring)},t[o.index]=null,t.push(l[r.ring[0]]=u[r.ring[r.ring.length-1]]=r)):(r.ring.push(r.ring[0]),r.polygon.push(r.ring))}}function _i(t){var e={type:"Feature",geometry:wi(t.geometry)};return null!=t.id&&(e.id=t.id),null!=t.bbox&&(e.bbox=t.bbox),null!=t.properties&&(e.properties=t.properties),e}function wi(t){if(null==t)return t;var e,r,n,i;switch(t.type){case"GeometryCollection":e={type:"GeometryCollection",geometries:t.geometries.map(wi)};break;case"Point":e={type:"Point",coordinates:yi(t.coordinates)};break;case"MultiPoint":case"LineString":e={type:t.type,coordinates:mi(t.coordinates)};break;case"MultiLineString":e={type:"MultiLineString",coordinates:t.coordinates.map(mi)};break;case"Polygon":var a=[];xi(t.coordinates,a,r=[]),bi(r),e={type:"Polygon",coordinates:a};break;case"MultiPolygon":r=[],n=-1,i=t.coordinates.length;for(var o=new Array(i);++n<i;)xi(t.coordinates[n],o[n]=[],r);bi(r),e={type:"MultiPolygon",coordinates:o.filter(vi)};break;default:return t}return null!=t.bbox&&(e.bbox=t.bbox),e}function Ti(t){if(null==t)return t;switch(t.type){case"Feature":return _i(t);case"FeatureCollection":var e={type:"FeatureCollection",features:t.features.map(_i)};return null!=t.bbox&&(e.bbox=t.bbox),e;default:return wi(t)}}function ki(t,e){var r=y(e/2),n=g(w*r);return[t*(.74482-.34588*n*n),1.70711*r]}function Ai(){return(0,n.Z)(ki).scale(146.153)}function Mi(t,e,r){var i=(0,An.Z)(e,r),a=i(.5),o=(0,_t.Z)([-a[0],-a[1]])(e),s=i.distance/2,l=-L(g(o[1]*E)/g(s)),u=[-a[0],-a[1],-(o[0]>0?b-l:l)*S],c=(0,n.Z)(t(s)).rotate(u),f=(0,_t.Z)(u),h=c.center;return delete c.rotate,c.center=function(t){return arguments.length?h(f(t)):f.invert(h())},c.clipAngle(90)}function Si(t){var e=s(t);function r(t,r){var n=(0,In.M)(t,r);return n[0]*=e,n}return r.invert=function(t,r){return In.M.invert(t/e,r)},r}function Ei(){return Li([-158,21.5],[-77,39]).clipAngle(60).scale(400)}function Li(t,e){return Mi(Si,t,e)}function Ci(t){if(!(t*=2))return Z.N;var e=-t/2,r=-e,n=t*t,i=y(r),a=.5/g(r);function l(i,a){var o=C(s(a)*s(i-e)),l=C(s(a)*s(i-r));return[((o*=o)-(l*=l))/(2*t),(a<0?-1:1)*P(4*n*l-(n-o+l)*(n-o+l))/(2*t)]}return l.invert=function(t,n){var l,u,c=n*n,f=s(P(c+(l=t+e)*l)),h=s(P(c+(l=t+r)*l));return[o(u=f-h,l=(f+h)*i),(n<0?-1:1)*C(P(l*l+u*u)*a)]},l}function Pi(){return Oi([-158,21.5],[-77,39]).clipAngle(130).scale(122.571)}function Oi(t,e){return Mi(Ci,t,e)}function Ii(t,e){if(i(e)<m)return[t,0];var r=i(e/_),n=L(r);if(i(t)<m||i(i(e)-_)<m)return[0,v(e)*b*y(n/2)];var a=s(n),o=i(b/t-t/b)/2,l=o*o,u=a/(r+a-1),c=u*(2/r-1),f=c*c,h=f+l,p=u-f,d=l+u;return[v(t)*b*(o*p+P(l*p*p-h*(u*u-f)))/h,v(e)*b*(c*d-o*P((l+1)*h-d*d))/h]}function Di(){return(0,n.Z)(Ii).scale(79.4183)}function zi(t,e){if(i(e)<m)return[t,0];var r=i(e/_),n=L(r);if(i(t)<m||i(i(e)-_)<m)return[0,v(e)*b*y(n/2)];var a=s(n),o=i(b/t-t/b)/2,l=o*o,u=a*(P(1+l)-o*a)/(1+l*r*r);return[v(t)*b*u,v(e)*b*P(1-u*(2*o+u))]}function Ri(){return(0,n.Z)(zi).scale(79.4183)}function Fi(t,e){if(i(e)<m)return[t,0];var r=e/_,n=L(r);if(i(t)<m||i(i(e)-_)<m)return[0,b*y(n/2)];var a=(b/t-t/b)/2,o=r/(1+s(n));return[b*(v(t)*P(a*a+1-o*o)-a),b*o]}function Bi(){return(0,n.Z)(Fi).scale(79.4183)}function Ni(t,e){if(!e)return[t,0];var r=i(e);if(!t||r===_)return[0,e];var n=r/_,a=n*n,o=(8*n-a*(a+2)-5)/(2*a*(n-1)),s=o*o,l=n*o,u=a+s+2*l,c=n+3*o,f=t/_,h=f+1/f,p=v(i(t)-_)*P(h*h-4),d=p*p,g=(p*(u+s-1)+2*P(u*(a+s*d-1)+(1-a)*(a*(c*c+4*s)+12*l*s+4*s*s)))/(4*u+d);return[v(t)*_*g,v(e)*_*P(1+p*i(g)-g*g)]}function ji(){return(0,n.Z)(Ni).scale(127.16)}function Ui(t,e,r,n){var i=b/3;t=f(t,m),e=f(e,m),t=h(t,_),e=h(e,b-m),r=f(r,0),r=h(r,99.999999);var a=(n=f(n,m))/100,l=C((r/100+1)*s(i))/i,u=g(t)/g(l*_),c=e/b,p=P(a*g(t/2)/g(e/2));return function(t,e,r,n,i){function a(a,o){var l=r*g(n*o),u=P(1-l*l),c=P(2/(1+u*s(a*=i)));return[t*u*c*g(a),e*l*c]}return a.invert=function(a,s){var l=a/t,u=s/e,c=P(l*l+u*u),f=2*L(c/2);return[o(a*y(f),t*c)/i,c&&L(s*g(f)/(e*r*c))/n]},a}(p/P(c*u*l),1/(p*P(c*u*l)),u,l,c)}function Vi(){var t=65*E,e=60*E,r=20,i=200,a=(0,n.r)(Ui),o=a(t,e,r,i);return o.poleline=function(n){return arguments.length?a(t=+n*E,e,r,i):t*S},o.parallels=function(n){return arguments.length?a(t,e=+n*E,r,i):e*S},o.inflation=function(n){return arguments.length?a(t,e,r=+n,i):r},o.ratio=function(n){return arguments.length?a(t,e,r,i=+n):i},o.scale(163.775)}function Hi(){return Vi().poleline(65).parallels(60).inflation(0).ratio(200).scale(172.633)}ki.invert=function(t,e){var r=e/1.70711,n=g(w*r);return[t/(.74482-.34588*n*n),2*a(r)]},Ii.invert=function(t,e){if(i(e)<m)return[t,0];if(i(t)<m)return[0,_*g(2*a(e/b))];var r=(t/=b)*t,n=(e/=b)*e,o=r+n,l=o*o,u=-i(e)*(1+o),c=u-2*n+r,f=-2*u+1+2*n+l,h=n/f+(2*c*c*c/(f*f*f)-9*u*c/(f*f))/27,p=(u-c*c/(3*f))/f,d=2*P(-p/3),y=C(3*h/(p*d))/3;return[b*(o-1+P(1+2*(r-n)+l))/(2*t),v(e)*b*(-d*s(y+b/3)-c/(3*f))]},zi.invert=function(t,e){if(!t)return[0,_*g(2*a(e/b))];var r=i(t/b),n=(1-r*r-(e/=b)*e)/(2*r),s=P(n*n+1);return[v(t)*b*(s-n),v(e)*_*g(2*o(P((1-2*n*r)*(n+s)-r),P(s+n+r)))]},Fi.invert=function(t,e){if(!e)return[t,0];var r=e/b,n=(b*b*(1-r*r)-t*t)/(2*b*t);return[t?b*(v(t)*P(n*n+1)-n):0,_*g(2*a(r))]},Ni.invert=function(t,e){var r;if(!t||!e)return[t,e];e/=b;var n=v(t)*t/_,a=(n*n-1+4*e*e)/i(n),o=a*a,s=2*e,l=50;do{var u=s*s,c=(8*s-u*(u+2)-5)/(2*u*(s-1)),f=(3*s-u*s-10)/(2*u*s),h=c*c,p=s*c,d=s+c,g=d*d,y=s+3*c,x=-2*d*(4*p*h+(1-4*u+3*u*u)*(1+f)+h*(14*u-6-o+(8*u-8-2*o)*f)+p*(12*u-8+(10*u-10-o)*f)),w=P(g*(u+h*o-1)+(1-u)*(u*(y*y+4*h)+h*(12*p+4*h)));s-=r=(a*(g+h-1)+2*w-n*(4*g+o))/(a*(2*c*f+2*d*(1+f))+x/w-8*d*(a*(-1+h+g)+2*w)*(1+f)/(o+4*g))}while(r>m&&--l>0);return[v(t)*(P(a*a+4)+a)*b/4,_*s]};var qi=4*b+3*P(3),Gi=2*P(2*b*P(3)/qi),Zi=it(Gi*P(3)/b,Gi,qi/6);function Yi(){return(0,n.Z)(Zi).scale(176.84)}function Wi(t,e){return[t*P(1-3*e*e/(b*b)),e]}function Xi(){return(0,n.Z)(Wi).scale(152.63)}function Ji(t,e){var r=s(e),n=s(t)*r,i=1-n,a=s(t=o(g(t)*r,-g(e))),l=g(t);return[l*(r=P(1-n*n))-a*i,-a*r-l*i]}function Ki(){return(0,n.Z)(Ji).rotate([0,-90,45]).scale(124.75).clipAngle(179.999)}function $i(t,e){var r=R(t,e);return[(r[0]+t/_)/2,(r[1]+e)/2]}function Qi(){return(0,n.Z)($i).scale(158.837)}Wi.invert=function(t,e){return[t/P(1-3*e*e/(b*b)),e]},Ji.invert=function(t,e){var r=(t*t+e*e)/-2,n=P(-r*(2+r)),i=e*r+t*n,a=t*r-e*n,s=P(a*a+i*i);return[o(n*i,s*(1+r)),s?-L(n*a/s):0]},$i.invert=function(t,e){var r=t,n=e,a=25;do{var o,l=s(n),u=g(n),c=g(2*n),f=u*u,h=l*l,p=g(r),d=s(r/2),v=g(r/2),y=v*v,x=1-h*d*d,b=x?C(l*d)*P(o=1/x):o=0,w=.5*(2*b*l*v+r/_)-t,T=.5*(b*u+n)-e,k=.5*o*(h*y+b*l*d*f)+.5/_,A=o*(p*c/4-b*u*v),M=.125*o*(c*v-b*u*h*p),S=.5*o*(f*d+b*y*l)+.5,E=A*M-S*k,L=(T*A-w*S)/E,O=(w*M-T*k)/E;r-=L,n-=O}while((i(L)>m||i(O)>m)&&--a>0);return[r,n]}},33940:function(t,e,r){"use strict";function n(){return new i}function i(){this.reset()}r.d(e,{Z:function(){return n}}),i.prototype={constructor:i,reset:function(){this.s=this.t=0},add:function(t){o(a,t,this.t),o(this,a.s,this.s),this.s?this.t+=a.t:this.s=a.t},valueOf:function(){return this.s}};var a=new i;function o(t,e,r){var n=t.s=e+r,i=n-e,a=n-i;t.t=e-a+(r-i)}},97860:function(t,e,r){"use strict";r.d(e,{L9:function(){return h},ZP:function(){return x},gL:function(){return d}});var n,i,a,o,s,l=r(33940),u=r(39695),c=r(73182),f=r(72736),h=(0,l.Z)(),p=(0,l.Z)(),d={point:c.Z,lineStart:c.Z,lineEnd:c.Z,polygonStart:function(){h.reset(),d.lineStart=v,d.lineEnd=g},polygonEnd:function(){var t=+h;p.add(t<0?u.BZ+t:t),this.lineStart=this.lineEnd=this.point=c.Z},sphere:function(){p.add(u.BZ)}};function v(){d.point=y}function g(){m(n,i)}function y(t,e){d.point=m,n=t,i=e,t*=u.uR,e*=u.uR,a=t,o=(0,u.mC)(e=e/2+u.pu),s=(0,u.O$)(e)}function m(t,e){t*=u.uR,e=(e*=u.uR)/2+u.pu;var r=t-a,n=r>=0?1:-1,i=n*r,l=(0,u.mC)(e),c=(0,u.O$)(e),f=s*c,p=o*l+f*(0,u.mC)(i),d=f*n*(0,u.O$)(i);h.add((0,u.fv)(d,p)),a=t,o=l,s=c}function x(t){return p.reset(),(0,f.Z)(t,d),2*p}},77338:function(t,e,r){"use strict";r.d(e,{Z:function(){return C}});var n,i,a,o,s,l,u,c,f,h,p=r(33940),d=r(97860),v=r(7620),g=r(39695),y=r(72736),m=(0,p.Z)(),x={point:b,lineStart:w,lineEnd:T,polygonStart:function(){x.point=k,x.lineStart=A,x.lineEnd=M,m.reset(),d.gL.polygonStart()},polygonEnd:function(){d.gL.polygonEnd(),x.point=b,x.lineStart=w,x.lineEnd=T,d.L9<0?(n=-(a=180),i=-(o=90)):m>g.Ho?o=90:m<-g.Ho&&(i=-90),h[0]=n,h[1]=a},sphere:function(){n=-(a=180),i=-(o=90)}};function b(t,e){f.push(h=[n=t,a=t]),e<i&&(i=e),e>o&&(o=e)}function _(t,e){var r=(0,v.Og)([t*g.uR,e*g.uR]);if(c){var l=(0,v.T5)(c,r),u=[l[1],-l[0],0],p=(0,v.T5)(u,l);(0,v.iJ)(p),p=(0,v.Y1)(p);var d,y=t-s,m=y>0?1:-1,x=p[0]*g.RW*m,b=(0,g.Wn)(y)>180;b^(m*s<x&&x<m*t)?(d=p[1]*g.RW)>o&&(o=d):b^(m*s<(x=(x+360)%360-180)&&x<m*t)?(d=-p[1]*g.RW)<i&&(i=d):(e<i&&(i=e),e>o&&(o=e)),b?t<s?S(n,t)>S(n,a)&&(a=t):S(t,a)>S(n,a)&&(n=t):a>=n?(t<n&&(n=t),t>a&&(a=t)):t>s?S(n,t)>S(n,a)&&(a=t):S(t,a)>S(n,a)&&(n=t)}else f.push(h=[n=t,a=t]);e<i&&(i=e),e>o&&(o=e),c=r,s=t}function w(){x.point=_}function T(){h[0]=n,h[1]=a,x.point=b,c=null}function k(t,e){if(c){var r=t-s;m.add((0,g.Wn)(r)>180?r+(r>0?360:-360):r)}else l=t,u=e;d.gL.point(t,e),_(t,e)}function A(){d.gL.lineStart()}function M(){k(l,u),d.gL.lineEnd(),(0,g.Wn)(m)>g.Ho&&(n=-(a=180)),h[0]=n,h[1]=a,c=null}function S(t,e){return(e-=t)<0?e+360:e}function E(t,e){return t[0]-e[0]}function L(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}function C(t){var e,r,s,l,u,c,p;if(o=a=-(n=i=1/0),f=[],(0,y.Z)(t,x),r=f.length){for(f.sort(E),e=1,u=[s=f[0]];e<r;++e)L(s,(l=f[e])[0])||L(s,l[1])?(S(s[0],l[1])>S(s[0],s[1])&&(s[1]=l[1]),S(l[0],s[1])>S(s[0],s[1])&&(s[0]=l[0])):u.push(s=l);for(c=-1/0,e=0,s=u[r=u.length-1];e<=r;s=l,++e)l=u[e],(p=S(s[1],l[0]))>c&&(c=p,n=l[0],a=s[1])}return f=h=null,n===1/0||i===1/0?[[NaN,NaN],[NaN,NaN]]:[[n,i],[a,o]]}},7620:function(t,e,r){"use strict";r.d(e,{Og:function(){return a},T:function(){return u},T5:function(){return s},Y1:function(){return i},iJ:function(){return c},j9:function(){return o},s0:function(){return l}});var n=r(39695);function i(t){return[(0,n.fv)(t[1],t[0]),(0,n.ZR)(t[2])]}function a(t){var e=t[0],r=t[1],i=(0,n.mC)(r);return[i*(0,n.mC)(e),i*(0,n.O$)(e),(0,n.O$)(r)]}function o(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function s(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function l(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function u(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function c(t){var e=(0,n._b)(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}},66624:function(t,e,r){"use strict";r.d(e,{Z:function(){return I}});var n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x=r(39695),b=r(73182),_=r(72736),w={sphere:b.Z,point:T,lineStart:A,lineEnd:E,polygonStart:function(){w.lineStart=L,w.lineEnd=C},polygonEnd:function(){w.lineStart=A,w.lineEnd=E}};function T(t,e){t*=x.uR,e*=x.uR;var r=(0,x.mC)(e);k(r*(0,x.mC)(t),r*(0,x.O$)(t),(0,x.O$)(e))}function k(t,e,r){++n,a+=(t-a)/n,o+=(e-o)/n,s+=(r-s)/n}function A(){w.point=M}function M(t,e){t*=x.uR,e*=x.uR;var r=(0,x.mC)(e);g=r*(0,x.mC)(t),y=r*(0,x.O$)(t),m=(0,x.O$)(e),w.point=S,k(g,y,m)}function S(t,e){t*=x.uR,e*=x.uR;var r=(0,x.mC)(e),n=r*(0,x.mC)(t),a=r*(0,x.O$)(t),o=(0,x.O$)(e),s=(0,x.fv)((0,x._b)((s=y*o-m*a)*s+(s=m*n-g*o)*s+(s=g*a-y*n)*s),g*n+y*a+m*o);i+=s,l+=s*(g+(g=n)),u+=s*(y+(y=a)),c+=s*(m+(m=o)),k(g,y,m)}function E(){w.point=T}function L(){w.point=P}function C(){O(d,v),w.point=T}function P(t,e){d=t,v=e,t*=x.uR,e*=x.uR,w.point=O;var r=(0,x.mC)(e);g=r*(0,x.mC)(t),y=r*(0,x.O$)(t),m=(0,x.O$)(e),k(g,y,m)}function O(t,e){t*=x.uR,e*=x.uR;var r=(0,x.mC)(e),n=r*(0,x.mC)(t),a=r*(0,x.O$)(t),o=(0,x.O$)(e),s=y*o-m*a,d=m*n-g*o,v=g*a-y*n,b=(0,x._b)(s*s+d*d+v*v),_=(0,x.ZR)(b),w=b&&-_/b;f+=w*s,h+=w*d,p+=w*v,i+=_,l+=_*(g+(g=n)),u+=_*(y+(y=a)),c+=_*(m+(m=o)),k(g,y,m)}function I(t){n=i=a=o=s=l=u=c=f=h=p=0,(0,_.Z)(t,w);var e=f,r=h,d=p,v=e*e+r*r+d*d;return v<x.aW&&(e=l,r=u,d=c,i<x.Ho&&(e=a,r=o,d=s),(v=e*e+r*r+d*d)<x.aW)?[NaN,NaN]:[(0,x.fv)(r,e)*x.RW,(0,x.ZR)(d/(0,x._b)(v))*x.RW]}},7613:function(t,e,r){"use strict";r.d(e,{m:function(){return s},Z:function(){return u}});var n=r(7620);function i(t){return function(){return t}}var a=r(39695),o=r(49386);function s(t,e,r,i,o,s){if(r){var u=(0,a.mC)(e),c=(0,a.O$)(e),f=i*r;null==o?(o=e+i*a.BZ,s=e-f/2):(o=l(u,o),s=l(u,s),(i>0?o<s:o>s)&&(o+=i*a.BZ));for(var h,p=o;i>0?p>s:p<s;p-=f)h=(0,n.Y1)([u,-c*(0,a.mC)(p),-c*(0,a.O$)(p)]),t.point(h[0],h[1])}}function l(t,e){(e=(0,n.Og)(e))[0]-=t,(0,n.iJ)(e);var r=(0,a.Kh)(-e[1]);return((-e[2]<0?-r:r)+a.BZ-a.Ho)%a.BZ}function u(){var t,e,r=i([0,0]),n=i(90),l=i(6),u={point:function(r,n){t.push(r=e(r,n)),r[0]*=a.RW,r[1]*=a.RW}};function c(){var i=r.apply(this,arguments),c=n.apply(this,arguments)*a.uR,f=l.apply(this,arguments)*a.uR;return t=[],e=(0,o.I)(-i[0]*a.uR,-i[1]*a.uR,0).invert,s(u,c,f,1),i={type:"Polygon",coordinates:[t]},t=e=null,i}return c.center=function(t){return arguments.length?(r="function"==typeof t?t:i([+t[0],+t[1]]),c):r},c.radius=function(t){return arguments.length?(n="function"==typeof t?t:i(+t),c):n},c.precision=function(t){return arguments.length?(l="function"==typeof t?t:i(+t),c):l},c}},87070:function(t,e,r){"use strict";var n=r(97023),i=r(39695);e.Z=(0,n.Z)((function(){return!0}),(function(t){var e,r=NaN,n=NaN,a=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(o,s){var l=o>0?i.pi:-i.pi,u=(0,i.Wn)(o-r);(0,i.Wn)(u-i.pi)<i.Ho?(t.point(r,n=(n+s)/2>0?i.ou:-i.ou),t.point(a,n),t.lineEnd(),t.lineStart(),t.point(l,n),t.point(o,n),e=0):a!==l&&u>=i.pi&&((0,i.Wn)(r-a)<i.Ho&&(r-=a*i.Ho),(0,i.Wn)(o-l)<i.Ho&&(o-=l*i.Ho),n=function(t,e,r,n){var a,o,s=(0,i.O$)(t-r);return(0,i.Wn)(s)>i.Ho?(0,i.z4)(((0,i.O$)(e)*(o=(0,i.mC)(n))*(0,i.O$)(r)-(0,i.O$)(n)*(a=(0,i.mC)(e))*(0,i.O$)(t))/(a*o*s)):(e+n)/2}(r,n,o,s),t.point(a,n),t.lineEnd(),t.lineStart(),t.point(l,n),e=0),t.point(r=o,n=s),a=l},lineEnd:function(){t.lineEnd(),r=n=NaN},clean:function(){return 2-e}}}),(function(t,e,r,n){var a;if(null==t)a=r*i.ou,n.point(-i.pi,a),n.point(0,a),n.point(i.pi,a),n.point(i.pi,0),n.point(i.pi,-a),n.point(0,-a),n.point(-i.pi,-a),n.point(-i.pi,0),n.point(-i.pi,a);else if((0,i.Wn)(t[0]-e[0])>i.Ho){var o=t[0]<e[0]?i.pi:-i.pi;a=r*o/2,n.point(-o,a),n.point(0,a),n.point(o,a)}else n.point(e[0],e[1])}),[-i.pi,-i.ou])},85272:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});var n=r(73182);function i(){var t,e=[];return{point:function(e,r,n){t.push([e,r,n])},lineStart:function(){e.push(t=[])},lineEnd:n.Z,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var r=e;return e=[],t=null,r}}}},1457:function(t,e,r){"use strict";r.d(e,{Z:function(){return l}});var n=r(7620),i=r(7613),a=r(39695),o=r(67108),s=r(97023);function l(t){var e=(0,a.mC)(t),r=6*a.uR,l=e>0,u=(0,a.Wn)(e)>a.Ho;function c(t,r){return(0,a.mC)(t)*(0,a.mC)(r)>e}function f(t,r,i){var o=(0,n.Og)(t),s=(0,n.Og)(r),l=[1,0,0],u=(0,n.T5)(o,s),c=(0,n.j9)(u,u),f=u[0],h=c-f*f;if(!h)return!i&&t;var p=e*c/h,d=-e*f/h,v=(0,n.T5)(l,u),g=(0,n.T)(l,p),y=(0,n.T)(u,d);(0,n.s0)(g,y);var m=v,x=(0,n.j9)(g,m),b=(0,n.j9)(m,m),_=x*x-b*((0,n.j9)(g,g)-1);if(!(_<0)){var w=(0,a._b)(_),T=(0,n.T)(m,(-x-w)/b);if((0,n.s0)(T,g),T=(0,n.Y1)(T),!i)return T;var k,A=t[0],M=r[0],S=t[1],E=r[1];M<A&&(k=A,A=M,M=k);var L=M-A,C=(0,a.Wn)(L-a.pi)<a.Ho;if(!C&&E<S&&(k=S,S=E,E=k),C||L<a.Ho?C?S+E>0^T[1]<((0,a.Wn)(T[0]-A)<a.Ho?S:E):S<=T[1]&&T[1]<=E:L>a.pi^(A<=T[0]&&T[0]<=M)){var P=(0,n.T)(m,(-x+w)/b);return(0,n.s0)(P,g),[T,(0,n.Y1)(P)]}}}function h(e,r){var n=l?t:a.pi-t,i=0;return e<-n?i|=1:e>n&&(i|=2),r<-n?i|=4:r>n&&(i|=8),i}return(0,s.Z)(c,(function(t){var e,r,n,i,s;return{lineStart:function(){i=n=!1,s=1},point:function(p,d){var v,g=[p,d],y=c(p,d),m=l?y?0:h(p,d):y?h(p+(p<0?a.pi:-a.pi),d):0;if(!e&&(i=n=y)&&t.lineStart(),y!==n&&(!(v=f(e,g))||(0,o.Z)(e,v)||(0,o.Z)(g,v))&&(g[2]=1),y!==n)s=0,y?(t.lineStart(),v=f(g,e),t.point(v[0],v[1])):(v=f(e,g),t.point(v[0],v[1],2),t.lineEnd()),e=v;else if(u&&e&&l^y){var x;m&r||!(x=f(g,e,!0))||(s=0,l?(t.lineStart(),t.point(x[0][0],x[0][1]),t.point(x[1][0],x[1][1]),t.lineEnd()):(t.point(x[1][0],x[1][1]),t.lineEnd(),t.lineStart(),t.point(x[0][0],x[0][1],3)))}!y||e&&(0,o.Z)(e,g)||t.point(g[0],g[1]),e=g,n=y,r=m},lineEnd:function(){n&&t.lineEnd(),e=null},clean:function(){return s|(i&&n)<<1}}}),(function(e,n,a,o){(0,i.m)(o,t,r,a,e,n)}),l?[0,-t]:[-a.pi,t-a.pi])}},97023:function(t,e,r){"use strict";r.d(e,{Z:function(){return l}});var n=r(85272),i=r(46225),a=r(39695),o=r(23071),s=r(33064);function l(t,e,r,a){return function(l){var f,h,p,d=e(l),v=(0,n.Z)(),g=e(v),y=!1,m={point:x,lineStart:_,lineEnd:w,polygonStart:function(){m.point=T,m.lineStart=k,m.lineEnd=A,h=[],f=[]},polygonEnd:function(){m.point=x,m.lineStart=_,m.lineEnd=w,h=(0,s.TS)(h);var t=(0,o.Z)(f,a);h.length?(y||(l.polygonStart(),y=!0),(0,i.Z)(h,c,t,r,l)):t&&(y||(l.polygonStart(),y=!0),l.lineStart(),r(null,null,1,l),l.lineEnd()),y&&(l.polygonEnd(),y=!1),h=f=null},sphere:function(){l.polygonStart(),l.lineStart(),r(null,null,1,l),l.lineEnd(),l.polygonEnd()}};function x(e,r){t(e,r)&&l.point(e,r)}function b(t,e){d.point(t,e)}function _(){m.point=b,d.lineStart()}function w(){m.point=x,d.lineEnd()}function T(t,e){p.push([t,e]),g.point(t,e)}function k(){g.lineStart(),p=[]}function A(){T(p[0][0],p[0][1]),g.lineEnd();var t,e,r,n,i=g.clean(),a=v.result(),o=a.length;if(p.pop(),f.push(p),p=null,o)if(1&i){if((e=(r=a[0]).length-1)>0){for(y||(l.polygonStart(),y=!0),l.lineStart(),t=0;t<e;++t)l.point((n=r[t])[0],n[1]);l.lineEnd()}}else o>1&&2&i&&a.push(a.pop().concat(a.shift())),h.push(a.filter(u))}return m}}function u(t){return t.length>1}function c(t,e){return((t=t.x)[0]<0?t[1]-a.ou-a.Ho:a.ou-t[1])-((e=e.x)[0]<0?e[1]-a.ou-a.Ho:a.ou-e[1])}},87605:function(t,e,r){"use strict";r.d(e,{Z:function(){return u}});var n=r(39695),i=r(85272),a=r(46225),o=r(33064),s=1e9,l=-s;function u(t,e,r,u){function c(n,i){return t<=n&&n<=r&&e<=i&&i<=u}function f(n,i,a,o){var s=0,l=0;if(null==n||(s=h(n,a))!==(l=h(i,a))||d(n,i)<0^a>0)do{o.point(0===s||3===s?t:r,s>1?u:e)}while((s=(s+a+4)%4)!==l);else o.point(i[0],i[1])}function h(i,a){return(0,n.Wn)(i[0]-t)<n.Ho?a>0?0:3:(0,n.Wn)(i[0]-r)<n.Ho?a>0?2:1:(0,n.Wn)(i[1]-e)<n.Ho?a>0?1:0:a>0?3:2}function p(t,e){return d(t.x,e.x)}function d(t,e){var r=h(t,1),n=h(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}return function(n){var h,d,v,g,y,m,x,b,_,w,T,k=n,A=(0,i.Z)(),M={point:S,lineStart:function(){M.point=E,d&&d.push(v=[]),w=!0,_=!1,x=b=NaN},lineEnd:function(){h&&(E(g,y),m&&_&&A.rejoin(),h.push(A.result())),M.point=S,_&&k.lineEnd()},polygonStart:function(){k=A,h=[],d=[],T=!0},polygonEnd:function(){var e=function(){for(var e=0,r=0,n=d.length;r<n;++r)for(var i,a,o=d[r],s=1,l=o.length,c=o[0],f=c[0],h=c[1];s<l;++s)i=f,a=h,f=(c=o[s])[0],h=c[1],a<=u?h>u&&(f-i)*(u-a)>(h-a)*(t-i)&&++e:h<=u&&(f-i)*(u-a)<(h-a)*(t-i)&&--e;return e}(),r=T&&e,i=(h=(0,o.TS)(h)).length;(r||i)&&(n.polygonStart(),r&&(n.lineStart(),f(null,null,1,n),n.lineEnd()),i&&(0,a.Z)(h,p,e,f,n),n.polygonEnd()),k=n,h=d=v=null}};function S(t,e){c(t,e)&&k.point(t,e)}function E(n,i){var a=c(n,i);if(d&&v.push([n,i]),w)g=n,y=i,m=a,w=!1,a&&(k.lineStart(),k.point(n,i));else if(a&&_)k.point(n,i);else{var o=[x=Math.max(l,Math.min(s,x)),b=Math.max(l,Math.min(s,b))],f=[n=Math.max(l,Math.min(s,n)),i=Math.max(l,Math.min(s,i))];!function(t,e,r,n,i,a){var o,s=t[0],l=t[1],u=0,c=1,f=e[0]-s,h=e[1]-l;if(o=r-s,f||!(o>0)){if(o/=f,f<0){if(o<u)return;o<c&&(c=o)}else if(f>0){if(o>c)return;o>u&&(u=o)}if(o=i-s,f||!(o<0)){if(o/=f,f<0){if(o>c)return;o>u&&(u=o)}else if(f>0){if(o<u)return;o<c&&(c=o)}if(o=n-l,h||!(o>0)){if(o/=h,h<0){if(o<u)return;o<c&&(c=o)}else if(h>0){if(o>c)return;o>u&&(u=o)}if(o=a-l,h||!(o<0)){if(o/=h,h<0){if(o>c)return;o>u&&(u=o)}else if(h>0){if(o<u)return;o<c&&(c=o)}return u>0&&(t[0]=s+u*f,t[1]=l+u*h),c<1&&(e[0]=s+c*f,e[1]=l+c*h),!0}}}}}(o,f,t,e,r,u)?a&&(k.lineStart(),k.point(n,i),T=!1):(_||(k.lineStart(),k.point(o[0],o[1])),k.point(f[0],f[1]),a||k.lineEnd(),T=!1)}x=n,b=i,_=a}return M}}},46225:function(t,e,r){"use strict";r.d(e,{Z:function(){return o}});var n=r(67108),i=r(39695);function a(t,e,r,n){this.x=t,this.z=e,this.o=r,this.e=n,this.v=!1,this.n=this.p=null}function o(t,e,r,o,l){var u,c,f=[],h=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,r,o=t[0],s=t[e];if((0,n.Z)(o,s)){if(!o[2]&&!s[2]){for(l.lineStart(),u=0;u<e;++u)l.point((o=t[u])[0],o[1]);return void l.lineEnd()}s[0]+=2*i.Ho}f.push(r=new a(o,t,null,!0)),h.push(r.o=new a(o,null,r,!1)),f.push(r=new a(s,t,null,!1)),h.push(r.o=new a(s,null,r,!0))}})),f.length){for(h.sort(e),s(f),s(h),u=0,c=h.length;u<c;++u)h[u].e=r=!r;for(var p,d,v=f[0];;){for(var g=v,y=!0;g.v;)if((g=g.n)===v)return;p=g.z,l.lineStart();do{if(g.v=g.o.v=!0,g.e){if(y)for(u=0,c=p.length;u<c;++u)l.point((d=p[u])[0],d[1]);else o(g.x,g.n.x,1,l);g=g.n}else{if(y)for(p=g.p.z,u=p.length-1;u>=0;--u)l.point((d=p[u])[0],d[1]);else o(g.x,g.p.x,-1,l);g=g.p}p=(g=g.o).z,y=!y}while(!g.v);l.lineEnd()}}}function s(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n<e;)i.n=r=t[n],r.p=i,i=r;i.n=r=t[0],r.p=i}}},96059:function(t,e,r){"use strict";function n(t,e){function r(r,n){return r=t(r,n),e(r[0],r[1])}return t.invert&&e.invert&&(r.invert=function(r,n){return(r=e.invert(r,n))&&t.invert(r[0],r[1])}),r}r.d(e,{Z:function(){return n}})},8593:function(t,e,r){"use strict";function n(t){return t}r.d(e,{Z:function(){return n}})},27362:function(t,e,r){"use strict";r.r(e),r.d(e,{geoAlbers:function(){return Gt},geoAlbersUsa:function(){return Yt},geoArea:function(){return n.ZP},geoAzimuthalEqualArea:function(){return Wt.Z},geoAzimuthalEqualAreaRaw:function(){return Wt.l},geoAzimuthalEquidistant:function(){return Xt.Z},geoAzimuthalEquidistantRaw:function(){return Xt.N},geoBounds:function(){return i.Z},geoCentroid:function(){return a.Z},geoCircle:function(){return o.Z},geoClipAntimeridian:function(){return s.Z},geoClipCircle:function(){return l.Z},geoClipExtent:function(){return c},geoClipRectangle:function(){return u.Z},geoConicConformal:function(){return re},geoConicConformalRaw:function(){return ee},geoConicEqualArea:function(){return qt},geoConicEqualAreaRaw:function(){return Ht},geoConicEquidistant:function(){return ae},geoConicEquidistantRaw:function(){return ie},geoContains:function(){return R},geoDistance:function(){return S},geoEqualEarth:function(){return he},geoEqualEarthRaw:function(){return fe},geoEquirectangular:function(){return ne.Z},geoEquirectangularRaw:function(){return ne.k},geoGnomonic:function(){return pe.Z},geoGnomonicRaw:function(){return pe.M},geoGraticule:function(){return j},geoGraticule10:function(){return U},geoIdentity:function(){return ve},geoInterpolate:function(){return Z.Z},geoLength:function(){return k},geoMercator:function(){return $t},geoMercatorRaw:function(){return Kt},geoNaturalEarth1:function(){return ge.Z},geoNaturalEarth1Raw:function(){return ge.K},geoOrthographic:function(){return ye.Z},geoOrthographicRaw:function(){return ye.I},geoPath:function(){return jt},geoProjection:function(){return Ut.Z},geoProjectionMutator:function(){return Ut.r},geoRotation:function(){return Jt.Z},geoStereographic:function(){return be},geoStereographicRaw:function(){return xe},geoStream:function(){return m.Z},geoTransform:function(){return de.Z},geoTransverseMercator:function(){return we},geoTransverseMercatorRaw:function(){return _e}});var n=r(97860),i=r(77338),a=r(66624),o=r(7613),s=r(87070),l=r(1457),u=r(87605);function c(){var t,e,r,n=0,i=0,a=960,o=500;return r={stream:function(r){return t&&e===r?t:t=(0,u.Z)(n,i,a,o)(e=r)},extent:function(s){return arguments.length?(n=+s[0][0],i=+s[0][1],a=+s[1][0],o=+s[1][1],t=e=null,r):[[n,i],[a,o]]}}}var f,h,p,d=r(23071),v=r(33940),g=r(39695),y=r(73182),m=r(72736),x=(0,v.Z)(),b={sphere:y.Z,point:y.Z,lineStart:function(){b.point=w,b.lineEnd=_},lineEnd:y.Z,polygonStart:y.Z,polygonEnd:y.Z};function _(){b.point=b.lineEnd=y.Z}function w(t,e){t*=g.uR,e*=g.uR,f=t,h=(0,g.O$)(e),p=(0,g.mC)(e),b.point=T}function T(t,e){t*=g.uR,e*=g.uR;var r=(0,g.O$)(e),n=(0,g.mC)(e),i=(0,g.Wn)(t-f),a=(0,g.mC)(i),o=n*(0,g.O$)(i),s=p*r-h*n*a,l=h*r+p*n*a;x.add((0,g.fv)((0,g._b)(o*o+s*s),l)),f=t,h=r,p=n}function k(t){return x.reset(),(0,m.Z)(t,b),+x}var A=[null,null],M={type:"LineString",coordinates:A};function S(t,e){return A[0]=t,A[1]=e,k(M)}var E={Feature:function(t,e){return C(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,n=-1,i=r.length;++n<i;)if(C(r[n].geometry,e))return!0;return!1}},L={Sphere:function(){return!0},Point:function(t,e){return P(t.coordinates,e)},MultiPoint:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)if(P(r[n],e))return!0;return!1},LineString:function(t,e){return O(t.coordinates,e)},MultiLineString:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)if(O(r[n],e))return!0;return!1},Polygon:function(t,e){return I(t.coordinates,e)},MultiPolygon:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)if(I(r[n],e))return!0;return!1},GeometryCollection:function(t,e){for(var r=t.geometries,n=-1,i=r.length;++n<i;)if(C(r[n],e))return!0;return!1}};function C(t,e){return!(!t||!L.hasOwnProperty(t.type))&&L[t.type](t,e)}function P(t,e){return 0===S(t,e)}function O(t,e){for(var r,n,i,a=0,o=t.length;a<o;a++){if(0===(n=S(t[a],e)))return!0;if(a>0&&(i=S(t[a],t[a-1]))>0&&r<=i&&n<=i&&(r+n-i)*(1-Math.pow((r-n)/i,2))<g.aW*i)return!0;r=n}return!1}function I(t,e){return!!(0,d.Z)(t.map(D),z(e))}function D(t){return(t=t.map(z)).pop(),t}function z(t){return[t[0]*g.uR,t[1]*g.uR]}function R(t,e){return(t&&E.hasOwnProperty(t.type)?E[t.type]:C)(t,e)}var F=r(33064);function B(t,e,r){var n=(0,F.w6)(t,e-g.Ho,r).concat(e);return function(t){return n.map((function(e){return[t,e]}))}}function N(t,e,r){var n=(0,F.w6)(t,e-g.Ho,r).concat(e);return function(t){return n.map((function(e){return[e,t]}))}}function j(){var t,e,r,n,i,a,o,s,l,u,c,f,h=10,p=h,d=90,v=360,y=2.5;function m(){return{type:"MultiLineString",coordinates:x()}}function x(){return(0,F.w6)((0,g.mD)(n/d)*d,r,d).map(c).concat((0,F.w6)((0,g.mD)(s/v)*v,o,v).map(f)).concat((0,F.w6)((0,g.mD)(e/h)*h,t,h).filter((function(t){return(0,g.Wn)(t%d)>g.Ho})).map(l)).concat((0,F.w6)((0,g.mD)(a/p)*p,i,p).filter((function(t){return(0,g.Wn)(t%v)>g.Ho})).map(u))}return m.lines=function(){return x().map((function(t){return{type:"LineString",coordinates:t}}))},m.outline=function(){return{type:"Polygon",coordinates:[c(n).concat(f(o).slice(1),c(r).reverse().slice(1),f(s).reverse().slice(1))]}},m.extent=function(t){return arguments.length?m.extentMajor(t).extentMinor(t):m.extentMinor()},m.extentMajor=function(t){return arguments.length?(n=+t[0][0],r=+t[1][0],s=+t[0][1],o=+t[1][1],n>r&&(t=n,n=r,r=t),s>o&&(t=s,s=o,o=t),m.precision(y)):[[n,s],[r,o]]},m.extentMinor=function(r){return arguments.length?(e=+r[0][0],t=+r[1][0],a=+r[0][1],i=+r[1][1],e>t&&(r=e,e=t,t=r),a>i&&(r=a,a=i,i=r),m.precision(y)):[[e,a],[t,i]]},m.step=function(t){return arguments.length?m.stepMajor(t).stepMinor(t):m.stepMinor()},m.stepMajor=function(t){return arguments.length?(d=+t[0],v=+t[1],m):[d,v]},m.stepMinor=function(t){return arguments.length?(h=+t[0],p=+t[1],m):[h,p]},m.precision=function(h){return arguments.length?(y=+h,l=B(a,i,90),u=N(e,t,y),c=B(s,o,90),f=N(n,r,y),m):y},m.extentMajor([[-180,-90+g.Ho],[180,90-g.Ho]]).extentMinor([[-180,-80-g.Ho],[180,80+g.Ho]])}function U(){return j()()}var V,H,q,G,Z=r(83074),Y=r(8593),W=(0,v.Z)(),X=(0,v.Z)(),J={point:y.Z,lineStart:y.Z,lineEnd:y.Z,polygonStart:function(){J.lineStart=K,J.lineEnd=tt},polygonEnd:function(){J.lineStart=J.lineEnd=J.point=y.Z,W.add((0,g.Wn)(X)),X.reset()},result:function(){var t=W/2;return W.reset(),t}};function K(){J.point=$}function $(t,e){J.point=Q,V=q=t,H=G=e}function Q(t,e){X.add(G*t-q*e),q=t,G=e}function tt(){Q(V,H)}var et,rt,nt,it,at=J,ot=r(3559),st=0,lt=0,ut=0,ct=0,ft=0,ht=0,pt=0,dt=0,vt=0,gt={point:yt,lineStart:mt,lineEnd:_t,polygonStart:function(){gt.lineStart=wt,gt.lineEnd=Tt},polygonEnd:function(){gt.point=yt,gt.lineStart=mt,gt.lineEnd=_t},result:function(){var t=vt?[pt/vt,dt/vt]:ht?[ct/ht,ft/ht]:ut?[st/ut,lt/ut]:[NaN,NaN];return st=lt=ut=ct=ft=ht=pt=dt=vt=0,t}};function yt(t,e){st+=t,lt+=e,++ut}function mt(){gt.point=xt}function xt(t,e){gt.point=bt,yt(nt=t,it=e)}function bt(t,e){var r=t-nt,n=e-it,i=(0,g._b)(r*r+n*n);ct+=i*(nt+t)/2,ft+=i*(it+e)/2,ht+=i,yt(nt=t,it=e)}function _t(){gt.point=yt}function wt(){gt.point=kt}function Tt(){At(et,rt)}function kt(t,e){gt.point=At,yt(et=nt=t,rt=it=e)}function At(t,e){var r=t-nt,n=e-it,i=(0,g._b)(r*r+n*n);ct+=i*(nt+t)/2,ft+=i*(it+e)/2,ht+=i,pt+=(i=it*t-nt*e)*(nt+t),dt+=i*(it+e),vt+=3*i,yt(nt=t,it=e)}var Mt=gt;function St(t){this._context=t}St.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,g.BZ)}},result:y.Z};var Et,Lt,Ct,Pt,Ot,It=(0,v.Z)(),Dt={point:y.Z,lineStart:function(){Dt.point=zt},lineEnd:function(){Et&&Rt(Lt,Ct),Dt.point=y.Z},polygonStart:function(){Et=!0},polygonEnd:function(){Et=null},result:function(){var t=+It;return It.reset(),t}};function zt(t,e){Dt.point=Rt,Lt=Pt=t,Ct=Ot=e}function Rt(t,e){Pt-=t,Ot-=e,It.add((0,g._b)(Pt*Pt+Ot*Ot)),Pt=t,Ot=e}var Ft=Dt;function Bt(){this._string=[]}function Nt(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function jt(t,e){var r,n,i=4.5;function a(t){return t&&("function"==typeof i&&n.pointRadius(+i.apply(this,arguments)),(0,m.Z)(t,r(n))),n.result()}return a.area=function(t){return(0,m.Z)(t,r(at)),at.result()},a.measure=function(t){return(0,m.Z)(t,r(Ft)),Ft.result()},a.bounds=function(t){return(0,m.Z)(t,r(ot.Z)),ot.Z.result()},a.centroid=function(t){return(0,m.Z)(t,r(Mt)),Mt.result()},a.projection=function(e){return arguments.length?(r=null==e?(t=null,Y.Z):(t=e).stream,a):t},a.context=function(t){return arguments.length?(n=null==t?(e=null,new Bt):new St(e=t),"function"!=typeof i&&n.pointRadius(i),a):e},a.pointRadius=function(t){return arguments.length?(i="function"==typeof t?t:(n.pointRadius(+t),+t),a):i},a.projection(t).context(e)}Bt.prototype={_radius:4.5,_circle:Nt(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._string.push("M",t,",",e),this._point=1;break;case 1:this._string.push("L",t,",",e);break;default:null==this._circle&&(this._circle=Nt(this._radius)),this._string.push("M",t,",",e,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}};var Ut=r(15002);function Vt(t){var e=0,r=g.pi/3,n=(0,Ut.r)(t),i=n(e,r);return i.parallels=function(t){return arguments.length?n(e=t[0]*g.uR,r=t[1]*g.uR):[e*g.RW,r*g.RW]},i}function Ht(t,e){var r=(0,g.O$)(t),n=(r+(0,g.O$)(e))/2;if((0,g.Wn)(n)<g.Ho)return function(t){var e=(0,g.mC)(t);function r(t,r){return[t*e,(0,g.O$)(r)/e]}return r.invert=function(t,r){return[t/e,(0,g.ZR)(r*e)]},r}(t);var i=1+r*(2*n-r),a=(0,g._b)(i)/n;function o(t,e){var r=(0,g._b)(i-2*n*(0,g.O$)(e))/n;return[r*(0,g.O$)(t*=n),a-r*(0,g.mC)(t)]}return o.invert=function(t,e){var r=a-e,o=(0,g.fv)(t,(0,g.Wn)(r))*(0,g.Xx)(r);return r*n<0&&(o-=g.pi*(0,g.Xx)(t)*(0,g.Xx)(r)),[o/n,(0,g.ZR)((i-(t*t+r*r)*n*n)/(2*n))]},o}function qt(){return Vt(Ht).scale(155.424).center([0,33.6442])}function Gt(){return qt().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}var Zt=r(47589);function Yt(){var t,e,r,n,i,a,o=Gt(),s=qt().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=qt().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u={point:function(t,e){a=[t,e]}};function c(t){var e=t[0],o=t[1];return a=null,r.point(e,o),a||(n.point(e,o),a)||(i.point(e,o),a)}function f(){return t=e=null,c}return c.invert=function(t){var e=o.scale(),r=o.translate(),n=(t[0]-r[0])/e,i=(t[1]-r[1])/e;return(i>=.12&&i<.234&&n>=-.425&&n<-.214?s:i>=.166&&i<.234&&n>=-.214&&n<-.115?l:o).invert(t)},c.stream=function(r){return t&&e===r?t:(n=[o.stream(e=r),s.stream(r),l.stream(r)],i=n.length,t={point:function(t,e){for(var r=-1;++r<i;)n[r].point(t,e)},sphere:function(){for(var t=-1;++t<i;)n[t].sphere()},lineStart:function(){for(var t=-1;++t<i;)n[t].lineStart()},lineEnd:function(){for(var t=-1;++t<i;)n[t].lineEnd()},polygonStart:function(){for(var t=-1;++t<i;)n[t].polygonStart()},polygonEnd:function(){for(var t=-1;++t<i;)n[t].polygonEnd()}});var n,i},c.precision=function(t){return arguments.length?(o.precision(t),s.precision(t),l.precision(t),f()):o.precision()},c.scale=function(t){return arguments.length?(o.scale(t),s.scale(.35*t),l.scale(t),c.translate(o.translate())):o.scale()},c.translate=function(t){if(!arguments.length)return o.translate();var e=o.scale(),a=+t[0],c=+t[1];return r=o.translate(t).clipExtent([[a-.455*e,c-.238*e],[a+.455*e,c+.238*e]]).stream(u),n=s.translate([a-.307*e,c+.201*e]).clipExtent([[a-.425*e+g.Ho,c+.12*e+g.Ho],[a-.214*e-g.Ho,c+.234*e-g.Ho]]).stream(u),i=l.translate([a-.205*e,c+.212*e]).clipExtent([[a-.214*e+g.Ho,c+.166*e+g.Ho],[a-.115*e-g.Ho,c+.234*e-g.Ho]]).stream(u),f()},c.fitExtent=function(t,e){return(0,Zt.qg)(c,t,e)},c.fitSize=function(t,e){return(0,Zt.mF)(c,t,e)},c.fitWidth=function(t,e){return(0,Zt.V6)(c,t,e)},c.fitHeight=function(t,e){return(0,Zt.rf)(c,t,e)},c.scale(1070)}var Wt=r(12956),Xt=r(17889),Jt=r(49386);function Kt(t,e){return[t,(0,g.cM)((0,g.OR)((g.ou+e)/2))]}function $t(){return Qt(Kt).scale(961/g.BZ)}function Qt(t){var e,r,n,i=(0,Ut.Z)(t),a=i.center,o=i.scale,s=i.translate,l=i.clipExtent,u=null;function c(){var a=g.pi*o(),s=i((0,Jt.Z)(i.rotate()).invert([0,0]));return l(null==u?[[s[0]-a,s[1]-a],[s[0]+a,s[1]+a]]:t===Kt?[[Math.max(s[0]-a,u),e],[Math.min(s[0]+a,r),n]]:[[u,Math.max(s[1]-a,e)],[r,Math.min(s[1]+a,n)]])}return i.scale=function(t){return arguments.length?(o(t),c()):o()},i.translate=function(t){return arguments.length?(s(t),c()):s()},i.center=function(t){return arguments.length?(a(t),c()):a()},i.clipExtent=function(t){return arguments.length?(null==t?u=e=r=n=null:(u=+t[0][0],e=+t[0][1],r=+t[1][0],n=+t[1][1]),c()):null==u?null:[[u,e],[r,n]]},c()}function te(t){return(0,g.OR)((g.ou+t)/2)}function ee(t,e){var r=(0,g.mC)(t),n=t===e?(0,g.O$)(t):(0,g.cM)(r/(0,g.mC)(e))/(0,g.cM)(te(e)/te(t)),i=r*(0,g.sQ)(te(t),n)/n;if(!n)return Kt;function a(t,e){i>0?e<-g.ou+g.Ho&&(e=-g.ou+g.Ho):e>g.ou-g.Ho&&(e=g.ou-g.Ho);var r=i/(0,g.sQ)(te(e),n);return[r*(0,g.O$)(n*t),i-r*(0,g.mC)(n*t)]}return a.invert=function(t,e){var r=i-e,a=(0,g.Xx)(n)*(0,g._b)(t*t+r*r),o=(0,g.fv)(t,(0,g.Wn)(r))*(0,g.Xx)(r);return r*n<0&&(o-=g.pi*(0,g.Xx)(t)*(0,g.Xx)(r)),[o/n,2*(0,g.z4)((0,g.sQ)(i/a,1/n))-g.ou]},a}function re(){return Vt(ee).scale(109.5).parallels([30,30])}Kt.invert=function(t,e){return[t,2*(0,g.z4)((0,g.Qq)(e))-g.ou]};var ne=r(97492);function ie(t,e){var r=(0,g.mC)(t),n=t===e?(0,g.O$)(t):(r-(0,g.mC)(e))/(e-t),i=r/n+t;if((0,g.Wn)(n)<g.Ho)return ne.k;function a(t,e){var r=i-e,a=n*t;return[r*(0,g.O$)(a),i-r*(0,g.mC)(a)]}return a.invert=function(t,e){var r=i-e,a=(0,g.fv)(t,(0,g.Wn)(r))*(0,g.Xx)(r);return r*n<0&&(a-=g.pi*(0,g.Xx)(t)*(0,g.Xx)(r)),[a/n,i-(0,g.Xx)(n)*(0,g._b)(t*t+r*r)]},a}function ae(){return Vt(ie).scale(131.154).center([0,13.9389])}var oe=1.340264,se=-.081106,le=893e-6,ue=.003796,ce=(0,g._b)(3)/2;function fe(t,e){var r=(0,g.ZR)(ce*(0,g.O$)(e)),n=r*r,i=n*n*n;return[t*(0,g.mC)(r)/(ce*(oe+3*se*n+i*(7*le+9*ue*n))),r*(oe+se*n+i*(le+ue*n))]}function he(){return(0,Ut.Z)(fe).scale(177.158)}fe.invert=function(t,e){for(var r,n=e,i=n*n,a=i*i*i,o=0;o<12&&(a=(i=(n-=r=(n*(oe+se*i+a*(le+ue*i))-e)/(oe+3*se*i+a*(7*le+9*ue*i)))*n)*i*i,!((0,g.Wn)(r)<g.aW));++o);return[ce*t*(oe+3*se*i+a*(7*le+9*ue*i))/(0,g.mC)(n),(0,g.ZR)((0,g.O$)(n)/ce)]};var pe=r(98936),de=r(64684);function ve(){var t,e,r,n,i,a,o,s=1,l=0,c=0,f=1,h=1,p=0,d=null,v=1,y=1,m=(0,de.l)({point:function(t,e){var r=_([t,e]);this.stream.point(r[0],r[1])}}),x=Y.Z;function b(){return v=s*f,y=s*h,a=o=null,_}function _(r){var n=r[0]*v,i=r[1]*y;if(p){var a=i*t-n*e;n=n*t+i*e,i=a}return[n+l,i+c]}return _.invert=function(r){var n=r[0]-l,i=r[1]-c;if(p){var a=i*t+n*e;n=n*t-i*e,i=a}return[n/v,i/y]},_.stream=function(t){return a&&o===t?a:a=m(x(o=t))},_.postclip=function(t){return arguments.length?(x=t,d=r=n=i=null,b()):x},_.clipExtent=function(t){return arguments.length?(x=null==t?(d=r=n=i=null,Y.Z):(0,u.Z)(d=+t[0][0],r=+t[0][1],n=+t[1][0],i=+t[1][1]),b()):null==d?null:[[d,r],[n,i]]},_.scale=function(t){return arguments.length?(s=+t,b()):s},_.translate=function(t){return arguments.length?(l=+t[0],c=+t[1],b()):[l,c]},_.angle=function(r){return arguments.length?(p=r%360*g.uR,e=(0,g.O$)(p),t=(0,g.mC)(p),b()):p*g.RW},_.reflectX=function(t){return arguments.length?(f=t?-1:1,b()):f<0},_.reflectY=function(t){return arguments.length?(h=t?-1:1,b()):h<0},_.fitExtent=function(t,e){return(0,Zt.qg)(_,t,e)},_.fitSize=function(t,e){return(0,Zt.mF)(_,t,e)},_.fitWidth=function(t,e){return(0,Zt.V6)(_,t,e)},_.fitHeight=function(t,e){return(0,Zt.rf)(_,t,e)},_}var ge=r(26867),ye=r(57962),me=r(25382);function xe(t,e){var r=(0,g.mC)(e),n=1+(0,g.mC)(t)*r;return[r*(0,g.O$)(t)/n,(0,g.O$)(e)/n]}function be(){return(0,Ut.Z)(xe).scale(250).clipAngle(142)}function _e(t,e){return[(0,g.cM)((0,g.OR)((g.ou+e)/2)),-t]}function we(){var t=Qt(_e),e=t.center,r=t.rotate;return t.center=function(t){return arguments.length?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return arguments.length?r([t[0],t[1],t.length>2?t[2]+90:90]):[(t=r())[0],t[1],t[2]-90]},r([0,0,90]).scale(159.155)}xe.invert=(0,me.O)((function(t){return 2*(0,g.z4)(t)})),_e.invert=function(t,e){return[-e,2*(0,g.z4)((0,g.Qq)(t))-g.ou]}},83074:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});var n=r(39695);function i(t,e){var r=t[0]*n.uR,i=t[1]*n.uR,a=e[0]*n.uR,o=e[1]*n.uR,s=(0,n.mC)(i),l=(0,n.O$)(i),u=(0,n.mC)(o),c=(0,n.O$)(o),f=s*(0,n.mC)(r),h=s*(0,n.O$)(r),p=u*(0,n.mC)(a),d=u*(0,n.O$)(a),v=2*(0,n.ZR)((0,n._b)((0,n.Jy)(o-i)+s*u*(0,n.Jy)(a-r))),g=(0,n.O$)(v),y=v?function(t){var e=(0,n.O$)(t*=v)/g,r=(0,n.O$)(v-t)/g,i=r*f+e*p,a=r*h+e*d,o=r*l+e*c;return[(0,n.fv)(a,i)*n.RW,(0,n.fv)(o,(0,n._b)(i*i+a*a))*n.RW]}:function(){return[r*n.RW,i*n.RW]};return y.distance=v,y}},39695:function(t,e,r){"use strict";r.d(e,{BZ:function(){return l},Ho:function(){return n},Jy:function(){return A},Kh:function(){return T},O$:function(){return x},OR:function(){return w},Qq:function(){return g},RW:function(){return u},Wn:function(){return f},Xx:function(){return b},ZR:function(){return k},_b:function(){return _},aW:function(){return i},cM:function(){return y},fv:function(){return p},mC:function(){return d},mD:function(){return v},ou:function(){return o},pi:function(){return a},pu:function(){return s},sQ:function(){return m},uR:function(){return c},z4:function(){return h}});var n=1e-6,i=1e-12,a=Math.PI,o=a/2,s=a/4,l=2*a,u=180/a,c=a/180,f=Math.abs,h=Math.atan,p=Math.atan2,d=Math.cos,v=Math.ceil,g=Math.exp,y=(Math.floor,Math.log),m=Math.pow,x=Math.sin,b=Math.sign||function(t){return t>0?1:t<0?-1:0},_=Math.sqrt,w=Math.tan;function T(t){return t>1?0:t<-1?a:Math.acos(t)}function k(t){return t>1?o:t<-1?-o:Math.asin(t)}function A(t){return(t=x(t/2))*t}},73182:function(t,e,r){"use strict";function n(){}r.d(e,{Z:function(){return n}})},3559:function(t,e,r){"use strict";var n=r(73182),i=1/0,a=i,o=-i,s=o,l={point:function(t,e){t<i&&(i=t),t>o&&(o=t),e<a&&(a=e),e>s&&(s=e)},lineStart:n.Z,lineEnd:n.Z,polygonStart:n.Z,polygonEnd:n.Z,result:function(){var t=[[i,a],[o,s]];return o=s=-(a=i=1/0),t}};e.Z=l},67108:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});var n=r(39695);function i(t,e){return(0,n.Wn)(t[0]-e[0])<n.Ho&&(0,n.Wn)(t[1]-e[1])<n.Ho}},23071:function(t,e,r){"use strict";r.d(e,{Z:function(){return l}});var n=r(33940),i=r(7620),a=r(39695),o=(0,n.Z)();function s(t){return(0,a.Wn)(t[0])<=a.pi?t[0]:(0,a.Xx)(t[0])*(((0,a.Wn)(t[0])+a.pi)%a.BZ-a.pi)}function l(t,e){var r=s(e),n=e[1],l=(0,a.O$)(n),u=[(0,a.O$)(r),-(0,a.mC)(r),0],c=0,f=0;o.reset(),1===l?n=a.ou+a.Ho:-1===l&&(n=-a.ou-a.Ho);for(var h=0,p=t.length;h<p;++h)if(v=(d=t[h]).length)for(var d,v,g=d[v-1],y=s(g),m=g[1]/2+a.pu,x=(0,a.O$)(m),b=(0,a.mC)(m),_=0;_<v;++_,y=T,x=A,b=M,g=w){var w=d[_],T=s(w),k=w[1]/2+a.pu,A=(0,a.O$)(k),M=(0,a.mC)(k),S=T-y,E=S>=0?1:-1,L=E*S,C=L>a.pi,P=x*A;if(o.add((0,a.fv)(P*E*(0,a.O$)(L),b*M+P*(0,a.mC)(L))),c+=C?S+E*a.BZ:S,C^y>=r^T>=r){var O=(0,i.T5)((0,i.Og)(g),(0,i.Og)(w));(0,i.iJ)(O);var I=(0,i.T5)(u,O);(0,i.iJ)(I);var D=(C^S>=0?-1:1)*(0,a.ZR)(I[2]);(n>D||n===D&&(O[0]||O[1]))&&(f+=C^S>=0?1:-1)}}return(c<-a.Ho||c<a.Ho&&o<-a.Ho)^1&f}},25382:function(t,e,r){"use strict";r.d(e,{O:function(){return a},W:function(){return i}});var n=r(39695);function i(t){return function(e,r){var i=(0,n.mC)(e),a=(0,n.mC)(r),o=t(i*a);return[o*a*(0,n.O$)(e),o*(0,n.O$)(r)]}}function a(t){return function(e,r){var i=(0,n._b)(e*e+r*r),a=t(i),o=(0,n.O$)(a),s=(0,n.mC)(a);return[(0,n.fv)(e*o,i*s),(0,n.ZR)(i&&r*o/i)]}}},12956:function(t,e,r){"use strict";r.d(e,{Z:function(){return s},l:function(){return o}});var n=r(39695),i=r(25382),a=r(15002),o=(0,i.W)((function(t){return(0,n._b)(2/(1+t))}));function s(){return(0,a.Z)(o).scale(124.75).clipAngle(179.999)}o.invert=(0,i.O)((function(t){return 2*(0,n.ZR)(t/2)}))},17889:function(t,e,r){"use strict";r.d(e,{N:function(){return o},Z:function(){return s}});var n=r(39695),i=r(25382),a=r(15002),o=(0,i.W)((function(t){return(t=(0,n.Kh)(t))&&t/(0,n.O$)(t)}));function s(){return(0,a.Z)(o).scale(79.4188).clipAngle(179.999)}o.invert=(0,i.O)((function(t){return t}))},97492:function(t,e,r){"use strict";r.d(e,{Z:function(){return a},k:function(){return i}});var n=r(15002);function i(t,e){return[t,e]}function a(){return(0,n.Z)(i).scale(152.63)}i.invert=i},47589:function(t,e,r){"use strict";r.d(e,{V6:function(){return l},mF:function(){return s},qg:function(){return o},rf:function(){return u}});var n=r(72736),i=r(3559);function a(t,e,r){var a=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=a&&t.clipExtent(null),(0,n.Z)(r,t.stream(i.Z)),e(i.Z.result()),null!=a&&t.clipExtent(a),t}function o(t,e,r){return a(t,(function(r){var n=e[1][0]-e[0][0],i=e[1][1]-e[0][1],a=Math.min(n/(r[1][0]-r[0][0]),i/(r[1][1]-r[0][1])),o=+e[0][0]+(n-a*(r[1][0]+r[0][0]))/2,s=+e[0][1]+(i-a*(r[1][1]+r[0][1]))/2;t.scale(150*a).translate([o,s])}),r)}function s(t,e,r){return o(t,[[0,0],e],r)}function l(t,e,r){return a(t,(function(r){var n=+e,i=n/(r[1][0]-r[0][0]),a=(n-i*(r[1][0]+r[0][0]))/2,o=-i*r[0][1];t.scale(150*i).translate([a,o])}),r)}function u(t,e,r){return a(t,(function(r){var n=+e,i=n/(r[1][1]-r[0][1]),a=-i*r[0][0],o=(n-i*(r[1][1]+r[0][1]))/2;t.scale(150*i).translate([a,o])}),r)}},98936:function(t,e,r){"use strict";r.d(e,{M:function(){return o},Z:function(){return s}});var n=r(39695),i=r(25382),a=r(15002);function o(t,e){var r=(0,n.mC)(e),i=(0,n.mC)(t)*r;return[r*(0,n.O$)(t)/i,(0,n.O$)(e)/i]}function s(){return(0,a.Z)(o).scale(144.049).clipAngle(60)}o.invert=(0,i.O)(n.z4)},15002:function(t,e,r){"use strict";r.d(e,{Z:function(){return m},r:function(){return x}});var n=r(87070),i=r(1457),a=r(87605),o=r(96059),s=r(8593),l=r(39695),u=r(49386),c=r(64684),f=r(47589),h=r(7620),p=(0,l.mC)(30*l.uR);function d(t,e){return+e?function(t,e){function r(n,i,a,o,s,u,c,f,h,d,v,g,y,m){var x=c-n,b=f-i,_=x*x+b*b;if(_>4*e&&y--){var w=o+d,T=s+v,k=u+g,A=(0,l._b)(w*w+T*T+k*k),M=(0,l.ZR)(k/=A),S=(0,l.Wn)((0,l.Wn)(k)-1)<l.Ho||(0,l.Wn)(a-h)<l.Ho?(a+h)/2:(0,l.fv)(T,w),E=t(S,M),L=E[0],C=E[1],P=L-n,O=C-i,I=b*P-x*O;(I*I/_>e||(0,l.Wn)((x*P+b*O)/_-.5)>.3||o*d+s*v+u*g<p)&&(r(n,i,a,o,s,u,L,C,S,w/=A,T/=A,k,y,m),m.point(L,C),r(L,C,S,w,T,k,c,f,h,d,v,g,y,m))}}return function(e){var n,i,a,o,s,l,u,c,f,p,d,v,g={point:y,lineStart:m,lineEnd:b,polygonStart:function(){e.polygonStart(),g.lineStart=_},polygonEnd:function(){e.polygonEnd(),g.lineStart=m}};function y(r,n){r=t(r,n),e.point(r[0],r[1])}function m(){c=NaN,g.point=x,e.lineStart()}function x(n,i){var a=(0,h.Og)([n,i]),o=t(n,i);r(c,f,u,p,d,v,c=o[0],f=o[1],u=n,p=a[0],d=a[1],v=a[2],16,e),e.point(c,f)}function b(){g.point=y,e.lineEnd()}function _(){m(),g.point=w,g.lineEnd=T}function w(t,e){x(n=t,e),i=c,a=f,o=p,s=d,l=v,g.point=x}function T(){r(c,f,u,p,d,v,i,a,n,o,s,l,16,e),g.lineEnd=b,b()}return g}}(t,e):function(t){return(0,c.l)({point:function(e,r){e=t(e,r),this.stream.point(e[0],e[1])}})}(t)}var v=(0,c.l)({point:function(t,e){this.stream.point(t*l.uR,e*l.uR)}});function g(t,e,r,n,i){function a(a,o){return[e+t*(a*=n),r-t*(o*=i)]}return a.invert=function(a,o){return[(a-e)/t*n,(r-o)/t*i]},a}function y(t,e,r,n,i,a){var o=(0,l.mC)(a),s=(0,l.O$)(a),u=o*t,c=s*t,f=o/t,h=s/t,p=(s*r-o*e)/t,d=(s*e+o*r)/t;function v(t,a){return[u*(t*=n)-c*(a*=i)+e,r-c*t-u*a]}return v.invert=function(t,e){return[n*(f*t-h*e+p),i*(d-h*t-f*e)]},v}function m(t){return x((function(){return t}))()}function x(t){var e,r,h,p,m,x,b,_,w,T,k=150,A=480,M=250,S=0,E=0,L=0,C=0,P=0,O=0,I=1,D=1,z=null,R=n.Z,F=null,B=s.Z,N=.5;function j(t){return _(t[0]*l.uR,t[1]*l.uR)}function U(t){return(t=_.invert(t[0],t[1]))&&[t[0]*l.RW,t[1]*l.RW]}function V(){var t=y(k,0,0,I,D,O).apply(null,e(S,E)),n=(O?y:g)(k,A-t[0],M-t[1],I,D,O);return r=(0,u.I)(L,C,P),b=(0,o.Z)(e,n),_=(0,o.Z)(r,b),x=d(b,N),H()}function H(){return w=T=null,j}return j.stream=function(t){return w&&T===t?w:w=v(function(t){return(0,c.l)({point:function(e,r){var n=t(e,r);return this.stream.point(n[0],n[1])}})}(r)(R(x(B(T=t)))))},j.preclip=function(t){return arguments.length?(R=t,z=void 0,H()):R},j.postclip=function(t){return arguments.length?(B=t,F=h=p=m=null,H()):B},j.clipAngle=function(t){return arguments.length?(R=+t?(0,i.Z)(z=t*l.uR):(z=null,n.Z),H()):z*l.RW},j.clipExtent=function(t){return arguments.length?(B=null==t?(F=h=p=m=null,s.Z):(0,a.Z)(F=+t[0][0],h=+t[0][1],p=+t[1][0],m=+t[1][1]),H()):null==F?null:[[F,h],[p,m]]},j.scale=function(t){return arguments.length?(k=+t,V()):k},j.translate=function(t){return arguments.length?(A=+t[0],M=+t[1],V()):[A,M]},j.center=function(t){return arguments.length?(S=t[0]%360*l.uR,E=t[1]%360*l.uR,V()):[S*l.RW,E*l.RW]},j.rotate=function(t){return arguments.length?(L=t[0]%360*l.uR,C=t[1]%360*l.uR,P=t.length>2?t[2]%360*l.uR:0,V()):[L*l.RW,C*l.RW,P*l.RW]},j.angle=function(t){return arguments.length?(O=t%360*l.uR,V()):O*l.RW},j.reflectX=function(t){return arguments.length?(I=t?-1:1,V()):I<0},j.reflectY=function(t){return arguments.length?(D=t?-1:1,V()):D<0},j.precision=function(t){return arguments.length?(x=d(b,N=t*t),H()):(0,l._b)(N)},j.fitExtent=function(t,e){return(0,f.qg)(j,t,e)},j.fitSize=function(t,e){return(0,f.mF)(j,t,e)},j.fitWidth=function(t,e){return(0,f.V6)(j,t,e)},j.fitHeight=function(t,e){return(0,f.rf)(j,t,e)},function(){return e=t.apply(this,arguments),j.invert=e.invert&&U,V()}}},26867:function(t,e,r){"use strict";r.d(e,{K:function(){return a},Z:function(){return o}});var n=r(15002),i=r(39695);function a(t,e){var r=e*e,n=r*r;return[t*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791)),e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))]}function o(){return(0,n.Z)(a).scale(175.295)}a.invert=function(t,e){var r,n=e,a=25;do{var o=n*n,s=o*o;n-=r=(n*(1.007226+o*(.015085+s*(.028874*o-.044475-.005916*s)))-e)/(1.007226+o*(.045255+s*(.259866*o-.311325-.005916*11*s)))}while((0,i.Wn)(r)>i.Ho&&--a>0);return[t/(.8707+(o=n*n)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),n]}},57962:function(t,e,r){"use strict";r.d(e,{I:function(){return o},Z:function(){return s}});var n=r(39695),i=r(25382),a=r(15002);function o(t,e){return[(0,n.mC)(e)*(0,n.O$)(t),(0,n.O$)(e)]}function s(){return(0,a.Z)(o).scale(249.5).clipAngle(90+n.Ho)}o.invert=(0,i.O)(n.ZR)},49386:function(t,e,r){"use strict";r.d(e,{I:function(){return o},Z:function(){return c}});var n=r(96059),i=r(39695);function a(t,e){return[(0,i.Wn)(t)>i.pi?t+Math.round(-t/i.BZ)*i.BZ:t,e]}function o(t,e,r){return(t%=i.BZ)?e||r?(0,n.Z)(l(t),u(e,r)):l(t):e||r?u(e,r):a}function s(t){return function(e,r){return[(e+=t)>i.pi?e-i.BZ:e<-i.pi?e+i.BZ:e,r]}}function l(t){var e=s(t);return e.invert=s(-t),e}function u(t,e){var r=(0,i.mC)(t),n=(0,i.O$)(t),a=(0,i.mC)(e),o=(0,i.O$)(e);function s(t,e){var s=(0,i.mC)(e),l=(0,i.mC)(t)*s,u=(0,i.O$)(t)*s,c=(0,i.O$)(e),f=c*r+l*n;return[(0,i.fv)(u*a-f*o,l*r-c*n),(0,i.ZR)(f*a+u*o)]}return s.invert=function(t,e){var s=(0,i.mC)(e),l=(0,i.mC)(t)*s,u=(0,i.O$)(t)*s,c=(0,i.O$)(e),f=c*a-u*o;return[(0,i.fv)(u*a+c*o,l*r+f*n),(0,i.ZR)(f*r-l*n)]},s}function c(t){function e(e){return(e=t(e[0]*i.uR,e[1]*i.uR))[0]*=i.RW,e[1]*=i.RW,e}return t=o(t[0]*i.uR,t[1]*i.uR,t.length>2?t[2]*i.uR:0),e.invert=function(e){return(e=t.invert(e[0]*i.uR,e[1]*i.uR))[0]*=i.RW,e[1]*=i.RW,e},e}a.invert=a},72736:function(t,e,r){"use strict";function n(t,e){t&&a.hasOwnProperty(t.type)&&a[t.type](t,e)}r.d(e,{Z:function(){return l}});var i={Feature:function(t,e){n(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,i=-1,a=r.length;++i<a;)n(r[i].geometry,e)}},a={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)t=r[n],e.point(t[0],t[1],t[2])},LineString:function(t,e){o(t.coordinates,e,0)},MultiLineString:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)o(r[n],e,0)},Polygon:function(t,e){s(t.coordinates,e)},MultiPolygon:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)s(r[n],e)},GeometryCollection:function(t,e){for(var r=t.geometries,i=-1,a=r.length;++i<a;)n(r[i],e)}};function o(t,e,r){var n,i=-1,a=t.length-r;for(e.lineStart();++i<a;)n=t[i],e.point(n[0],n[1],n[2]);e.lineEnd()}function s(t,e){var r=-1,n=t.length;for(e.polygonStart();++r<n;)o(t[r],e,1);e.polygonEnd()}function l(t,e){t&&i.hasOwnProperty(t.type)?i[t.type](t,e):n(t,e)}},64684:function(t,e,r){"use strict";function n(t){return{stream:i(t)}}function i(t){return function(e){var r=new a;for(var n in t)r[n]=t[n];return r.stream=e,r}}function a(){}r.d(e,{Z:function(){return n},l:function(){return i}}),a.prototype={constructor:a,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}}},674:function(t,e,r){"use strict";function n(t,e){return t.parent===e.parent?1:2}function i(t,e){return t+e.x}function a(t,e){return Math.max(t,e.y)}function o(){var t=n,e=1,r=1,o=!1;function s(n){var s,l=0;n.eachAfter((function(e){var r=e.children;r?(e.x=function(t){return t.reduce(i,0)/t.length}(r),e.y=function(t){return 1+t.reduce(a,0)}(r)):(e.x=s?l+=t(e,s):0,e.y=0,s=e)}));var u=function(t){for(var e;e=t.children;)t=e[0];return t}(n),c=function(t){for(var e;e=t.children;)t=e[e.length-1];return t}(n),f=u.x-t(u,c)/2,h=c.x+t(c,u)/2;return n.eachAfter(o?function(t){t.x=(t.x-n.x)*e,t.y=(n.y-t.y)*r}:function(t){t.x=(t.x-f)/(h-f)*e,t.y=(1-(n.y?t.y/n.y:1))*r})}return s.separation=function(e){return arguments.length?(t=e,s):t},s.size=function(t){return arguments.length?(o=!1,e=+t[0],r=+t[1],s):o?null:[e,r]},s.nodeSize=function(t){return arguments.length?(o=!0,e=+t[0],r=+t[1],s):o?[e,r]:null},s}function s(t){var e=0,r=t.children,n=r&&r.length;if(n)for(;--n>=0;)e+=r[n].value;else e=1;t.value=e}function l(t,e){var r,n,i,a,o,s=new h(t),l=+t.value&&(s.value=t.value),c=[s];for(null==e&&(e=u);r=c.pop();)if(l&&(r.value=+r.data.value),(i=e(r.data))&&(o=i.length))for(r.children=new Array(o),a=o-1;a>=0;--a)c.push(n=r.children[a]=new h(i[a])),n.parent=r,n.depth=r.depth+1;return s.eachBefore(f)}function u(t){return t.children}function c(t){t.data=t.data.data}function f(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function h(t){this.data=t,this.depth=this.height=0,this.parent=null}r.r(e),r.d(e,{cluster:function(){return o},hierarchy:function(){return l},pack:function(){return I},packEnclose:function(){return d},packSiblings:function(){return S},partition:function(){return N},stratify:function(){return q},tree:function(){return K},treemap:function(){return rt},treemapBinary:function(){return nt},treemapDice:function(){return B},treemapResquarify:function(){return at},treemapSlice:function(){return $},treemapSliceDice:function(){return it},treemapSquarify:function(){return et}}),h.prototype=l.prototype={constructor:h,count:function(){return this.eachAfter(s)},each:function(t){var e,r,n,i,a=this,o=[a];do{for(e=o.reverse(),o=[];a=e.pop();)if(t(a),r=a.children)for(n=0,i=r.length;n<i;++n)o.push(r[n])}while(o.length);return this},eachAfter:function(t){for(var e,r,n,i=this,a=[i],o=[];i=a.pop();)if(o.push(i),e=i.children)for(r=0,n=e.length;r<n;++r)a.push(e[r]);for(;i=o.pop();)t(i);return this},eachBefore:function(t){for(var e,r,n=this,i=[n];n=i.pop();)if(t(n),e=n.children)for(r=e.length-1;r>=0;--r)i.push(e[r]);return this},sum:function(t){return this.eachAfter((function(e){for(var r=+t(e.data)||0,n=e.children,i=n&&n.length;--i>=0;)r+=n[i].value;e.value=r}))},sort:function(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function(t){for(var e=this,r=function(t,e){if(t===e)return t;var r=t.ancestors(),n=e.ancestors(),i=null;for(t=r.pop(),e=n.pop();t===e;)i=t,t=r.pop(),e=n.pop();return i}(e,t),n=[e];e!==r;)e=e.parent,n.push(e);for(var i=n.length;t!==r;)n.splice(i,0,t),t=t.parent;return n},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each((function(e){t.push(e)})),t},leaves:function(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function(){var t=this,e=[];return t.each((function(r){r!==t&&e.push({source:r.parent,target:r})})),e},copy:function(){return l(this).eachBefore(c)}};var p=Array.prototype.slice;function d(t){for(var e,r,n=0,i=(t=function(t){for(var e,r,n=t.length;n;)r=Math.random()*n--|0,e=t[n],t[n]=t[r],t[r]=e;return t}(p.call(t))).length,a=[];n<i;)e=t[n],r&&y(r,e)?++n:(r=x(a=v(a,e)),n=0);return r}function v(t,e){var r,n;if(m(e,t))return[e];for(r=0;r<t.length;++r)if(g(e,t[r])&&m(b(t[r],e),t))return[t[r],e];for(r=0;r<t.length-1;++r)for(n=r+1;n<t.length;++n)if(g(b(t[r],t[n]),e)&&g(b(t[r],e),t[n])&&g(b(t[n],e),t[r])&&m(_(t[r],t[n],e),t))return[t[r],t[n],e];throw new Error}function g(t,e){var r=t.r-e.r,n=e.x-t.x,i=e.y-t.y;return r<0||r*r<n*n+i*i}function y(t,e){var r=t.r-e.r+1e-6,n=e.x-t.x,i=e.y-t.y;return r>0&&r*r>n*n+i*i}function m(t,e){for(var r=0;r<e.length;++r)if(!y(t,e[r]))return!1;return!0}function x(t){switch(t.length){case 1:return{x:(e=t[0]).x,y:e.y,r:e.r};case 2:return b(t[0],t[1]);case 3:return _(t[0],t[1],t[2])}var e}function b(t,e){var r=t.x,n=t.y,i=t.r,a=e.x,o=e.y,s=e.r,l=a-r,u=o-n,c=s-i,f=Math.sqrt(l*l+u*u);return{x:(r+a+l/f*c)/2,y:(n+o+u/f*c)/2,r:(f+i+s)/2}}function _(t,e,r){var n=t.x,i=t.y,a=t.r,o=e.x,s=e.y,l=e.r,u=r.x,c=r.y,f=r.r,h=n-o,p=n-u,d=i-s,v=i-c,g=l-a,y=f-a,m=n*n+i*i-a*a,x=m-o*o-s*s+l*l,b=m-u*u-c*c+f*f,_=p*d-h*v,w=(d*b-v*x)/(2*_)-n,T=(v*g-d*y)/_,k=(p*x-h*b)/(2*_)-i,A=(h*y-p*g)/_,M=T*T+A*A-1,S=2*(a+w*T+k*A),E=w*w+k*k-a*a,L=-(M?(S+Math.sqrt(S*S-4*M*E))/(2*M):E/S);return{x:n+w+T*L,y:i+k+A*L,r:L}}function w(t,e,r){var n,i,a,o,s=t.x-e.x,l=t.y-e.y,u=s*s+l*l;u?(i=e.r+r.r,i*=i,o=t.r+r.r,i>(o*=o)?(n=(u+o-i)/(2*u),a=Math.sqrt(Math.max(0,o/u-n*n)),r.x=t.x-n*s-a*l,r.y=t.y-n*l+a*s):(n=(u+i-o)/(2*u),a=Math.sqrt(Math.max(0,i/u-n*n)),r.x=e.x+n*s-a*l,r.y=e.y+n*l+a*s)):(r.x=e.x+r.r,r.y=e.y)}function T(t,e){var r=t.r+e.r-1e-6,n=e.x-t.x,i=e.y-t.y;return r>0&&r*r>n*n+i*i}function k(t){var e=t._,r=t.next._,n=e.r+r.r,i=(e.x*r.r+r.x*e.r)/n,a=(e.y*r.r+r.y*e.r)/n;return i*i+a*a}function A(t){this._=t,this.next=null,this.previous=null}function M(t){if(!(i=t.length))return 0;var e,r,n,i,a,o,s,l,u,c,f;if((e=t[0]).x=0,e.y=0,!(i>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(i>2))return e.r+r.r;w(r,e,n=t[2]),e=new A(e),r=new A(r),n=new A(n),e.next=n.previous=r,r.next=e.previous=n,n.next=r.previous=e;t:for(s=3;s<i;++s){w(e._,r._,n=t[s]),n=new A(n),l=r.next,u=e.previous,c=r._.r,f=e._.r;do{if(c<=f){if(T(l._,n._)){r=l,e.next=r,r.previous=e,--s;continue t}c+=l._.r,l=l.next}else{if(T(u._,n._)){(e=u).next=r,r.previous=e,--s;continue t}f+=u._.r,u=u.previous}}while(l!==u.next);for(n.previous=e,n.next=r,e.next=r.previous=r=n,a=k(e);(n=n.next)!==r;)(o=k(n))<a&&(e=n,a=o);r=e.next}for(e=[r._],n=r;(n=n.next)!==r;)e.push(n._);for(n=d(e),s=0;s<i;++s)(e=t[s]).x-=n.x,e.y-=n.y;return n.r}function S(t){return M(t),t}function E(t){return null==t?null:L(t)}function L(t){if("function"!=typeof t)throw new Error;return t}function C(){return 0}function P(t){return function(){return t}}function O(t){return Math.sqrt(t.value)}function I(){var t=null,e=1,r=1,n=C;function i(i){return i.x=e/2,i.y=r/2,t?i.eachBefore(D(t)).eachAfter(z(n,.5)).eachBefore(R(1)):i.eachBefore(D(O)).eachAfter(z(C,1)).eachAfter(z(n,i.r/Math.min(e,r))).eachBefore(R(Math.min(e,r)/(2*i.r))),i}return i.radius=function(e){return arguments.length?(t=E(e),i):t},i.size=function(t){return arguments.length?(e=+t[0],r=+t[1],i):[e,r]},i.padding=function(t){return arguments.length?(n="function"==typeof t?t:P(+t),i):n},i}function D(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function z(t,e){return function(r){if(n=r.children){var n,i,a,o=n.length,s=t(r)*e||0;if(s)for(i=0;i<o;++i)n[i].r+=s;if(a=M(n),s)for(i=0;i<o;++i)n[i].r-=s;r.r=a+s}}}function R(t){return function(e){var r=e.parent;e.r*=t,r&&(e.x=r.x+t*e.x,e.y=r.y+t*e.y)}}function F(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function B(t,e,r,n,i){for(var a,o=t.children,s=-1,l=o.length,u=t.value&&(n-e)/t.value;++s<l;)(a=o[s]).y0=r,a.y1=i,a.x0=e,a.x1=e+=a.value*u}function N(){var t=1,e=1,r=0,n=!1;function i(i){var a=i.height+1;return i.x0=i.y0=r,i.x1=t,i.y1=e/a,i.eachBefore(function(t,e){return function(n){n.children&&B(n,n.x0,t*(n.depth+1)/e,n.x1,t*(n.depth+2)/e);var i=n.x0,a=n.y0,o=n.x1-r,s=n.y1-r;o<i&&(i=o=(i+o)/2),s<a&&(a=s=(a+s)/2),n.x0=i,n.y0=a,n.x1=o,n.y1=s}}(e,a)),n&&i.eachBefore(F),i}return i.round=function(t){return arguments.length?(n=!!t,i):n},i.size=function(r){return arguments.length?(t=+r[0],e=+r[1],i):[t,e]},i.padding=function(t){return arguments.length?(r=+t,i):r},i}var j={depth:-1},U={};function V(t){return t.id}function H(t){return t.parentId}function q(){var t=V,e=H;function r(r){var n,i,a,o,s,l,u,c=r.length,p=new Array(c),d={};for(i=0;i<c;++i)n=r[i],s=p[i]=new h(n),null!=(l=t(n,i,r))&&(l+="")&&(d[u="$"+(s.id=l)]=u in d?U:s);for(i=0;i<c;++i)if(s=p[i],null!=(l=e(r[i],i,r))&&(l+="")){if(!(o=d["$"+l]))throw new Error("missing: "+l);if(o===U)throw new Error("ambiguous: "+l);o.children?o.children.push(s):o.children=[s],s.parent=o}else{if(a)throw new Error("multiple roots");a=s}if(!a)throw new Error("no root");if(a.parent=j,a.eachBefore((function(t){t.depth=t.parent.depth+1,--c})).eachBefore(f),a.parent=null,c>0)throw new Error("cycle");return a}return r.id=function(e){return arguments.length?(t=L(e),r):t},r.parentId=function(t){return arguments.length?(e=L(t),r):e},r}function G(t,e){return t.parent===e.parent?1:2}function Z(t){var e=t.children;return e?e[0]:t.t}function Y(t){var e=t.children;return e?e[e.length-1]:t.t}function W(t,e,r){var n=r/(e.i-t.i);e.c-=n,e.s+=r,t.c+=n,e.z+=r,e.m+=r}function X(t,e,r){return t.a.parent===e.parent?t.a:r}function J(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}function K(){var t=G,e=1,r=1,n=null;function i(i){var l=function(t){for(var e,r,n,i,a,o=new J(t,0),s=[o];e=s.pop();)if(n=e._.children)for(e.children=new Array(a=n.length),i=a-1;i>=0;--i)s.push(r=e.children[i]=new J(n[i],i)),r.parent=e;return(o.parent=new J(null,0)).children=[o],o}(i);if(l.eachAfter(a),l.parent.m=-l.z,l.eachBefore(o),n)i.eachBefore(s);else{var u=i,c=i,f=i;i.eachBefore((function(t){t.x<u.x&&(u=t),t.x>c.x&&(c=t),t.depth>f.depth&&(f=t)}));var h=u===c?1:t(u,c)/2,p=h-u.x,d=e/(c.x+h+p),v=r/(f.depth||1);i.eachBefore((function(t){t.x=(t.x+p)*d,t.y=t.depth*v}))}return i}function a(e){var r=e.children,n=e.parent.children,i=e.i?n[e.i-1]:null;if(r){!function(t){for(var e,r=0,n=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(e);var a=(r[0].z+r[r.length-1].z)/2;i?(e.z=i.z+t(e._,i._),e.m=e.z-a):e.z=a}else i&&(e.z=i.z+t(e._,i._));e.parent.A=function(e,r,n){if(r){for(var i,a=e,o=e,s=r,l=a.parent.children[0],u=a.m,c=o.m,f=s.m,h=l.m;s=Y(s),a=Z(a),s&&a;)l=Z(l),(o=Y(o)).a=e,(i=s.z+f-a.z-u+t(s._,a._))>0&&(W(X(s,e,n),e,i),u+=i,c+=i),f+=s.m,u+=a.m,h+=l.m,c+=o.m;s&&!Y(o)&&(o.t=s,o.m+=f-c),a&&!Z(l)&&(l.t=a,l.m+=u-h,n=e)}return n}(e,i,e.parent.A||n[0])}function o(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function s(t){t.x*=e,t.y=t.depth*r}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(n=!1,e=+t[0],r=+t[1],i):n?null:[e,r]},i.nodeSize=function(t){return arguments.length?(n=!0,e=+t[0],r=+t[1],i):n?[e,r]:null},i}function $(t,e,r,n,i){for(var a,o=t.children,s=-1,l=o.length,u=t.value&&(i-r)/t.value;++s<l;)(a=o[s]).x0=e,a.x1=n,a.y0=r,a.y1=r+=a.value*u}J.prototype=Object.create(h.prototype);var Q=(1+Math.sqrt(5))/2;function tt(t,e,r,n,i,a){for(var o,s,l,u,c,f,h,p,d,v,g,y=[],m=e.children,x=0,b=0,_=m.length,w=e.value;x<_;){l=i-r,u=a-n;do{c=m[b++].value}while(!c&&b<_);for(f=h=c,g=c*c*(v=Math.max(u/l,l/u)/(w*t)),d=Math.max(h/g,g/f);b<_;++b){if(c+=s=m[b].value,s<f&&(f=s),s>h&&(h=s),g=c*c*v,(p=Math.max(h/g,g/f))>d){c-=s;break}d=p}y.push(o={value:c,dice:l<u,children:m.slice(x,b)}),o.dice?B(o,r,n,i,w?n+=u*c/w:a):$(o,r,n,w?r+=l*c/w:i,a),w-=c,x=b}return y}var et=function t(e){function r(t,r,n,i,a){tt(e,t,r,n,i,a)}return r.ratio=function(e){return t((e=+e)>1?e:1)},r}(Q);function rt(){var t=et,e=!1,r=1,n=1,i=[0],a=C,o=C,s=C,l=C,u=C;function c(t){return t.x0=t.y0=0,t.x1=r,t.y1=n,t.eachBefore(f),i=[0],e&&t.eachBefore(F),t}function f(e){var r=i[e.depth],n=e.x0+r,c=e.y0+r,f=e.x1-r,h=e.y1-r;f<n&&(n=f=(n+f)/2),h<c&&(c=h=(c+h)/2),e.x0=n,e.y0=c,e.x1=f,e.y1=h,e.children&&(r=i[e.depth+1]=a(e)/2,n+=u(e)-r,c+=o(e)-r,(f-=s(e)-r)<n&&(n=f=(n+f)/2),(h-=l(e)-r)<c&&(c=h=(c+h)/2),t(e,n,c,f,h))}return c.round=function(t){return arguments.length?(e=!!t,c):e},c.size=function(t){return arguments.length?(r=+t[0],n=+t[1],c):[r,n]},c.tile=function(e){return arguments.length?(t=L(e),c):t},c.padding=function(t){return arguments.length?c.paddingInner(t).paddingOuter(t):c.paddingInner()},c.paddingInner=function(t){return arguments.length?(a="function"==typeof t?t:P(+t),c):a},c.paddingOuter=function(t){return arguments.length?c.paddingTop(t).paddingRight(t).paddingBottom(t).paddingLeft(t):c.paddingTop()},c.paddingTop=function(t){return arguments.length?(o="function"==typeof t?t:P(+t),c):o},c.paddingRight=function(t){return arguments.length?(s="function"==typeof t?t:P(+t),c):s},c.paddingBottom=function(t){return arguments.length?(l="function"==typeof t?t:P(+t),c):l},c.paddingLeft=function(t){return arguments.length?(u="function"==typeof t?t:P(+t),c):u},c}function nt(t,e,r,n,i){var a,o,s=t.children,l=s.length,u=new Array(l+1);for(u[0]=o=a=0;a<l;++a)u[a+1]=o+=s[a].value;!function t(e,r,n,i,a,o,l){if(e>=r-1){var c=s[e];return c.x0=i,c.y0=a,c.x1=o,void(c.y1=l)}for(var f=u[e],h=n/2+f,p=e+1,d=r-1;p<d;){var v=p+d>>>1;u[v]<h?p=v+1:d=v}h-u[p-1]<u[p]-h&&e+1<p&&--p;var g=u[p]-f,y=n-g;if(o-i>l-a){var m=(i*y+o*g)/n;t(e,p,g,i,a,m,l),t(p,r,y,m,a,o,l)}else{var x=(a*y+l*g)/n;t(e,p,g,i,a,o,x),t(p,r,y,i,x,o,l)}}(0,l,t.value,e,r,n,i)}function it(t,e,r,n,i){(1&t.depth?$:B)(t,e,r,n,i)}var at=function t(e){function r(t,r,n,i,a){if((o=t._squarify)&&o.ratio===e)for(var o,s,l,u,c,f=-1,h=o.length,p=t.value;++f<h;){for(l=(s=o[f]).children,u=s.value=0,c=l.length;u<c;++u)s.value+=l[u].value;s.dice?B(s,r,n,i,n+=(a-n)*s.value/p):$(s,r,n,r+=(i-r)*s.value/p,a),p-=s.value}else t._squarify=o=tt(e,t,r,n,i,a),o.ratio=e}return r.ratio=function(e){return t((e=+e)>1?e:1)},r}(Q)},29502:function(t,e,r){"use strict";function n(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function i(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function a(){}r.d(e,{sX:function(){return Y},k4:function(){return U}});var o=.7,s=1/o,l="\\s*([+-]?\\d+)\\s*",u="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",c="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",f=/^#([0-9a-f]{3,8})$/,h=new RegExp("^rgb\\("+[l,l,l]+"\\)$"),p=new RegExp("^rgb\\("+[c,c,c]+"\\)$"),d=new RegExp("^rgba\\("+[l,l,l,u]+"\\)$"),v=new RegExp("^rgba\\("+[c,c,c,u]+"\\)$"),g=new RegExp("^hsl\\("+[u,c,c]+"\\)$"),y=new RegExp("^hsla\\("+[u,c,c,u]+"\\)$"),m={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function x(){return this.rgb().formatHex()}function b(){return this.rgb().formatRgb()}function _(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=f.exec(t))?(r=e[1].length,e=parseInt(e[1],16),6===r?w(e):3===r?new M(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?T(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?T(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=h.exec(t))?new M(e[1],e[2],e[3],1):(e=p.exec(t))?new M(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=d.exec(t))?T(e[1],e[2],e[3],e[4]):(e=v.exec(t))?T(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=g.exec(t))?C(e[1],e[2]/100,e[3]/100,1):(e=y.exec(t))?C(e[1],e[2]/100,e[3]/100,e[4]):m.hasOwnProperty(t)?w(m[t]):"transparent"===t?new M(NaN,NaN,NaN,0):null}function w(t){return new M(t>>16&255,t>>8&255,255&t,1)}function T(t,e,r,n){return n<=0&&(t=e=r=NaN),new M(t,e,r,n)}function k(t){return t instanceof a||(t=_(t)),t?new M((t=t.rgb()).r,t.g,t.b,t.opacity):new M}function A(t,e,r,n){return 1===arguments.length?k(t):new M(t,e,r,null==n?1:n)}function M(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function S(){return"#"+L(this.r)+L(this.g)+L(this.b)}function E(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function L(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function C(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new O(t,e,r,n)}function P(t){if(t instanceof O)return new O(t.h,t.s,t.l,t.opacity);if(t instanceof a||(t=_(t)),!t)return new O;if(t instanceof O)return t;var e=(t=t.rgb()).r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),o=Math.max(e,r,n),s=NaN,l=o-i,u=(o+i)/2;return l?(s=e===o?(r-n)/l+6*(r<n):r===o?(n-e)/l+2:(e-r)/l+4,l/=u<.5?o+i:2-o-i,s*=60):l=u>0&&u<1?0:s,new O(s,l,u,t.opacity)}function O(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function I(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}function D(t,e,r,n,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*n+o*i)/6}function z(t){return function(){return t}}function R(t,e){var r=e-t;return r?function(t,e){return function(r){return t+r*e}}(t,r):z(isNaN(t)?e:t)}n(a,_,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:x,formatHex:x,formatHsl:function(){return P(this).formatHsl()},formatRgb:b,toString:b}),n(M,A,i(a,{brighter:function(t){return t=null==t?s:Math.pow(s,t),new M(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new M(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:S,formatHex:S,formatRgb:E,toString:E})),n(O,(function(t,e,r,n){return 1===arguments.length?P(t):new O(t,e,r,null==n?1:n)}),i(a,{brighter:function(t){return t=null==t?s:Math.pow(s,t),new O(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new O(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new M(I(t>=240?t-240:t+120,i,n),I(t,i,n),I(t<120?t+240:t-120,i,n),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var F=function t(e){var r=function(t){return 1==(t=+t)?R:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):z(isNaN(e)?r:e)}}(e);function n(t,e){var n=r((t=A(t)).r,(e=A(e)).r),i=r(t.g,e.g),a=r(t.b,e.b),o=R(t.opacity,e.opacity);return function(e){return t.r=n(e),t.g=i(e),t.b=a(e),t.opacity=o(e),t+""}}return n.gamma=t,n}(1);function B(t){return function(e){var r,n,i=e.length,a=new Array(i),o=new Array(i),s=new Array(i);for(r=0;r<i;++r)n=A(e[r]),a[r]=n.r||0,o[r]=n.g||0,s[r]=n.b||0;return a=t(a),o=t(o),s=t(s),n.opacity=1,function(t){return n.r=a(t),n.g=o(t),n.b=s(t),n+""}}}function N(t,e){var r,n=e?e.length:0,i=t?Math.min(n,t.length):0,a=new Array(i),o=new Array(n);for(r=0;r<i;++r)a[r]=Y(t[r],e[r]);for(;r<n;++r)o[r]=e[r];return function(t){for(r=0;r<i;++r)o[r]=a[r](t);return o}}function j(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}function U(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}function V(t,e){var r,n={},i={};for(r in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)r in t?n[r]=Y(t[r],e[r]):i[r]=e[r];return function(t){for(r in n)i[r]=n[r](t);return i}}B((function(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],a=t[n+1],o=n>0?t[n-1]:2*i-a,s=n<e-1?t[n+2]:2*a-i;return D((r-n/e)*e,o,i,a,s)}})),B((function(t){var e=t.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*e),i=t[(n+e-1)%e],a=t[n%e],o=t[(n+1)%e],s=t[(n+2)%e];return D((r-n/e)*e,i,a,o,s)}}));var H=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,q=new RegExp(H.source,"g");function G(t,e){var r,n,i,a=H.lastIndex=q.lastIndex=0,o=-1,s=[],l=[];for(t+="",e+="";(r=H.exec(t))&&(n=q.exec(e));)(i=n.index)>a&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:U(r,n)})),a=q.lastIndex;return a<e.length&&(i=e.slice(a),s[o]?s[o]+=i:s[++o]=i),s.length<2?l[0]?function(t){return function(e){return t(e)+""}}(l[0].x):function(t){return function(){return t}}(e):(e=l.length,function(t){for(var r,n=0;n<e;++n)s[(r=l[n]).i]=r.x(t);return s.join("")})}function Z(t,e){e||(e=[]);var r,n=t?Math.min(e.length,t.length):0,i=e.slice();return function(a){for(r=0;r<n;++r)i[r]=t[r]*(1-a)+e[r]*a;return i}}function Y(t,e){var r,n,i=typeof e;return null==e||"boolean"===i?z(e):("number"===i?U:"string"===i?(r=_(e))?(e=r,F):G:e instanceof _?F:e instanceof Date?j:(n=e,!ArrayBuffer.isView(n)||n instanceof DataView?Array.isArray(e)?N:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?V:U:Z))(t,e)}},45879:function(t,e,r){"use strict";r.d(e,{h5:function(){return y}});var n=Math.PI,i=2*n,a=1e-6,o=i-a;function s(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function l(){return new s}s.prototype=l.prototype={constructor:s,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,r,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+r)+","+(this._y1=+n)},bezierCurveTo:function(t,e,r,n,i,a){this._+="C"+ +t+","+ +e+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+a)},arcTo:function(t,e,r,i,o){t=+t,e=+e,r=+r,i=+i,o=+o;var s=this._x1,l=this._y1,u=r-t,c=i-e,f=s-t,h=l-e,p=f*f+h*h;if(o<0)throw new Error("negative radius: "+o);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(p>a)if(Math.abs(h*u-c*f)>a&&o){var d=r-s,v=i-l,g=u*u+c*c,y=d*d+v*v,m=Math.sqrt(g),x=Math.sqrt(p),b=o*Math.tan((n-Math.acos((g+p-y)/(2*m*x)))/2),_=b/x,w=b/m;Math.abs(_-1)>a&&(this._+="L"+(t+_*f)+","+(e+_*h)),this._+="A"+o+","+o+",0,0,"+ +(h*d>f*v)+","+(this._x1=t+w*u)+","+(this._y1=e+w*c)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,r,s,l,u){t=+t,e=+e,u=!!u;var c=(r=+r)*Math.cos(s),f=r*Math.sin(s),h=t+c,p=e+f,d=1^u,v=u?s-l:l-s;if(r<0)throw new Error("negative radius: "+r);null===this._x1?this._+="M"+h+","+p:(Math.abs(this._x1-h)>a||Math.abs(this._y1-p)>a)&&(this._+="L"+h+","+p),r&&(v<0&&(v=v%i+i),v>o?this._+="A"+r+","+r+",0,1,"+d+","+(t-c)+","+(e-f)+"A"+r+","+r+",0,1,"+d+","+(this._x1=h)+","+(this._y1=p):v>a&&(this._+="A"+r+","+r+",0,"+ +(v>=n)+","+d+","+(this._x1=t+r*Math.cos(l))+","+(this._y1=e+r*Math.sin(l))))},rect:function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},toString:function(){return this._}};var u=l,c=Array.prototype.slice;function f(t){return function(){return t}}function h(t){return t[0]}function p(t){return t[1]}function d(t){return t.source}function v(t){return t.target}function g(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function y(){return function(t){var e=d,r=v,n=h,i=p,a=null;function o(){var o,s=c.call(arguments),l=e.apply(this,s),f=r.apply(this,s);if(a||(a=o=u()),t(a,+n.apply(this,(s[0]=l,s)),+i.apply(this,s),+n.apply(this,(s[0]=f,s)),+i.apply(this,s)),o)return a=null,o+""||null}return o.source=function(t){return arguments.length?(e=t,o):e},o.target=function(t){return arguments.length?(r=t,o):r},o.x=function(t){return arguments.length?(n="function"==typeof t?t:f(+t),o):n},o.y=function(t){return arguments.length?(i="function"==typeof t?t:f(+t),o):i},o.context=function(t){return arguments.length?(a=null==t?null:t,o):a},o}(g)}},84096:function(t,e,r){"use strict";r.d(e,{i$:function(){return d},Dq:function(){return h},g0:function(){return v}});var n=r(58176),i=r(48480),a=r(59879),o=r(82301),s=r(34823),l=r(79791);function u(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function c(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function f(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function h(t){var e=t.dateTime,r=t.date,s=t.time,l=t.periods,h=t.days,p=t.shortDays,d=t.months,v=t.shortMonths,y=w(l),m=T(l),x=w(h),b=T(h),_=w(p),St=T(p),Et=w(d),Lt=T(d),Ct=w(v),Pt=T(v),Ot={a:function(t){return p[t.getDay()]},A:function(t){return h[t.getDay()]},b:function(t){return v[t.getMonth()]},B:function(t){return d[t.getMonth()]},c:null,d:q,e:q,f:X,H:G,I:Z,j:Y,L:W,m:J,M:K,p:function(t){return l[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:At,s:Mt,S:$,u:Q,U:tt,V:et,w:rt,W:nt,x:null,X:null,y:it,Y:at,Z:ot,"%":kt},It={a:function(t){return p[t.getUTCDay()]},A:function(t){return h[t.getUTCDay()]},b:function(t){return v[t.getUTCMonth()]},B:function(t){return d[t.getUTCMonth()]},c:null,d:st,e:st,f:ht,H:lt,I:ut,j:ct,L:ft,m:pt,M:dt,p:function(t){return l[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:At,s:Mt,S:vt,u:gt,U:yt,V:mt,w:xt,W:bt,x:null,X:null,y:_t,Y:wt,Z:Tt,"%":kt},Dt={a:function(t,e,r){var n=_.exec(e.slice(r));return n?(t.w=St[n[0].toLowerCase()],r+n[0].length):-1},A:function(t,e,r){var n=x.exec(e.slice(r));return n?(t.w=b[n[0].toLowerCase()],r+n[0].length):-1},b:function(t,e,r){var n=Ct.exec(e.slice(r));return n?(t.m=Pt[n[0].toLowerCase()],r+n[0].length):-1},B:function(t,e,r){var n=Et.exec(e.slice(r));return n?(t.m=Lt[n[0].toLowerCase()],r+n[0].length):-1},c:function(t,r,n){return Ft(t,e,r,n)},d:D,e:D,f:j,H:R,I:R,j:z,L:N,m:I,M:F,p:function(t,e,r){var n=y.exec(e.slice(r));return n?(t.p=m[n[0].toLowerCase()],r+n[0].length):-1},q:O,Q:V,s:H,S:B,u:A,U:M,V:S,w:k,W:E,x:function(t,e,n){return Ft(t,r,e,n)},X:function(t,e,r){return Ft(t,s,e,r)},y:C,Y:L,Z:P,"%":U};function zt(t,e){return function(r){var n,i,a,o=[],s=-1,l=0,u=t.length;for(r instanceof Date||(r=new Date(+r));++s<u;)37===t.charCodeAt(s)&&(o.push(t.slice(l,s)),null!=(i=g[n=t.charAt(++s)])?n=t.charAt(++s):i="e"===n?" ":"0",(a=e[n])&&(n=a(r,i)),o.push(n),l=s+1);return o.push(t.slice(l,s)),o.join("")}}function Rt(t,e){return function(r){var s,l,h=f(1900,void 0,1);if(Ft(h,t,r+="",0)!=r.length)return null;if("Q"in h)return new Date(h.Q);if("s"in h)return new Date(1e3*h.s+("L"in h?h.L:0));if(e&&!("Z"in h)&&(h.Z=0),"p"in h&&(h.H=h.H%12+12*h.p),void 0===h.m&&(h.m="q"in h?h.q:0),"V"in h){if(h.V<1||h.V>53)return null;"w"in h||(h.w=1),"Z"in h?(l=(s=c(f(h.y,0,1))).getUTCDay(),s=l>4||0===l?n.l6.ceil(s):(0,n.l6)(s),s=i.Z.offset(s,7*(h.V-1)),h.y=s.getUTCFullYear(),h.m=s.getUTCMonth(),h.d=s.getUTCDate()+(h.w+6)%7):(l=(s=u(f(h.y,0,1))).getDay(),s=l>4||0===l?a.wA.ceil(s):(0,a.wA)(s),s=o.Z.offset(s,7*(h.V-1)),h.y=s.getFullYear(),h.m=s.getMonth(),h.d=s.getDate()+(h.w+6)%7)}else("W"in h||"U"in h)&&("w"in h||(h.w="u"in h?h.u%7:"W"in h?1:0),l="Z"in h?c(f(h.y,0,1)).getUTCDay():u(f(h.y,0,1)).getDay(),h.m=0,h.d="W"in h?(h.w+6)%7+7*h.W-(l+5)%7:h.w+7*h.U-(l+6)%7);return"Z"in h?(h.H+=h.Z/100|0,h.M+=h.Z%100,c(h)):u(h)}}function Ft(t,e,r,n){for(var i,a,o=0,s=e.length,l=r.length;o<s;){if(n>=l)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=Dt[i in g?e.charAt(o++):i])||(n=a(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}return Ot.x=zt(r,Ot),Ot.X=zt(s,Ot),Ot.c=zt(e,Ot),It.x=zt(r,It),It.X=zt(s,It),It.c=zt(e,It),{format:function(t){var e=zt(t+="",Ot);return e.toString=function(){return t},e},parse:function(t){var e=Rt(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=zt(t+="",It);return e.toString=function(){return t},e},utcParse:function(t){var e=Rt(t+="",!0);return e.toString=function(){return t},e}}}var p,d,v,g={"-":"",_:" ",0:"0"},y=/^\s*\d+/,m=/^%/,x=/[\\^$*+?|[\]().{}]/g;function b(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a<r?new Array(r-a+1).join(e)+i:i)}function _(t){return t.replace(x,"\\$&")}function w(t){return new RegExp("^(?:"+t.map(_).join("|")+")","i")}function T(t){for(var e={},r=-1,n=t.length;++r<n;)e[t[r].toLowerCase()]=r;return e}function k(t,e,r){var n=y.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function A(t,e,r){var n=y.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function M(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function S(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function E(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function L(t,e,r){var n=y.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function C(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function P(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function O(t,e,r){var n=y.exec(e.slice(r,r+1));return n?(t.q=3*n[0]-3,r+n[0].length):-1}function I(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function D(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function z(t,e,r){var n=y.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function R(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function F(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function B(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function N(t,e,r){var n=y.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function j(t,e,r){var n=y.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function U(t,e,r){var n=m.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function V(t,e,r){var n=y.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function H(t,e,r){var n=y.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function q(t,e){return b(t.getDate(),e,2)}function G(t,e){return b(t.getHours(),e,2)}function Z(t,e){return b(t.getHours()%12||12,e,2)}function Y(t,e){return b(1+o.Z.count((0,s.Z)(t),t),e,3)}function W(t,e){return b(t.getMilliseconds(),e,3)}function X(t,e){return W(t,e)+"000"}function J(t,e){return b(t.getMonth()+1,e,2)}function K(t,e){return b(t.getMinutes(),e,2)}function $(t,e){return b(t.getSeconds(),e,2)}function Q(t){var e=t.getDay();return 0===e?7:e}function tt(t,e){return b(a.OM.count((0,s.Z)(t)-1,t),e,2)}function et(t,e){var r=t.getDay();return t=r>=4||0===r?(0,a.bL)(t):a.bL.ceil(t),b(a.bL.count((0,s.Z)(t),t)+(4===(0,s.Z)(t).getDay()),e,2)}function rt(t){return t.getDay()}function nt(t,e){return b(a.wA.count((0,s.Z)(t)-1,t),e,2)}function it(t,e){return b(t.getFullYear()%100,e,2)}function at(t,e){return b(t.getFullYear()%1e4,e,4)}function ot(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+b(e/60|0,"0",2)+b(e%60,"0",2)}function st(t,e){return b(t.getUTCDate(),e,2)}function lt(t,e){return b(t.getUTCHours(),e,2)}function ut(t,e){return b(t.getUTCHours()%12||12,e,2)}function ct(t,e){return b(1+i.Z.count((0,l.Z)(t),t),e,3)}function ft(t,e){return b(t.getUTCMilliseconds(),e,3)}function ht(t,e){return ft(t,e)+"000"}function pt(t,e){return b(t.getUTCMonth()+1,e,2)}function dt(t,e){return b(t.getUTCMinutes(),e,2)}function vt(t,e){return b(t.getUTCSeconds(),e,2)}function gt(t){var e=t.getUTCDay();return 0===e?7:e}function yt(t,e){return b(n.Ox.count((0,l.Z)(t)-1,t),e,2)}function mt(t,e){var r=t.getUTCDay();return t=r>=4||0===r?(0,n.hB)(t):n.hB.ceil(t),b(n.hB.count((0,l.Z)(t),t)+(4===(0,l.Z)(t).getUTCDay()),e,2)}function xt(t){return t.getUTCDay()}function bt(t,e){return b(n.l6.count((0,l.Z)(t)-1,t),e,2)}function _t(t,e){return b(t.getUTCFullYear()%100,e,2)}function wt(t,e){return b(t.getUTCFullYear()%1e4,e,4)}function Tt(){return"+0000"}function kt(){return"%"}function At(t){return+t}function Mt(t){return Math.floor(+t/1e3)}p=h({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}),d=p.format,p.parse,v=p.utcFormat,p.utcParse},82301:function(t,e,r){"use strict";r.d(e,{a:function(){return o}});var n=r(30052),i=r(54263),a=(0,n.Z)((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*i.yB)/i.UD}),(function(t){return t.getDate()-1}));e.Z=a;var o=a.range},54263:function(t,e,r){"use strict";r.d(e,{UD:function(){return o},Y2:function(){return a},Ym:function(){return n},iM:function(){return s},yB:function(){return i}});var n=1e3,i=6e4,a=36e5,o=864e5,s=6048e5},81041:function(t,e,r){"use strict";r.r(e),r.d(e,{timeDay:function(){return y.Z},timeDays:function(){return y.a},timeFriday:function(){return m.mC},timeFridays:function(){return m.b$},timeHour:function(){return v},timeHours:function(){return g},timeInterval:function(){return n.Z},timeMillisecond:function(){return a},timeMilliseconds:function(){return o},timeMinute:function(){return h},timeMinutes:function(){return p},timeMonday:function(){return m.wA},timeMondays:function(){return m.bJ},timeMonth:function(){return b},timeMonths:function(){return _},timeSaturday:function(){return m.EY},timeSaturdays:function(){return m.Ff},timeSecond:function(){return u},timeSeconds:function(){return c},timeSunday:function(){return m.OM},timeSundays:function(){return m.vm},timeThursday:function(){return m.bL},timeThursdays:function(){return m.$t},timeTuesday:function(){return m.sy},timeTuesdays:function(){return m.aU},timeWednesday:function(){return m.zg},timeWednesdays:function(){return m.Ld},timeWeek:function(){return m.OM},timeWeeks:function(){return m.vm},timeYear:function(){return w.Z},timeYears:function(){return w.g},utcDay:function(){return L.Z},utcDays:function(){return L.y},utcFriday:function(){return C.QQ},utcFridays:function(){return C.fz},utcHour:function(){return S},utcHours:function(){return E},utcMillisecond:function(){return a},utcMilliseconds:function(){return o},utcMinute:function(){return k},utcMinutes:function(){return A},utcMonday:function(){return C.l6},utcMondays:function(){return C.$3},utcMonth:function(){return O},utcMonths:function(){return I},utcSaturday:function(){return C.g4},utcSaturdays:function(){return C.Q_},utcSecond:function(){return u},utcSeconds:function(){return c},utcSunday:function(){return C.Ox},utcSundays:function(){return C.SU},utcThursday:function(){return C.hB},utcThursdays:function(){return C.xj},utcTuesday:function(){return C.J1},utcTuesdays:function(){return C.DK},utcWednesday:function(){return C.b3},utcWednesdays:function(){return C.uy},utcWeek:function(){return C.Ox},utcWeeks:function(){return C.SU},utcYear:function(){return D.Z},utcYears:function(){return D.D}});var n=r(30052),i=(0,n.Z)((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?(0,n.Z)((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,r){e.setTime(+e+r*t)}),(function(e,r){return(r-e)/t})):i:null};var a=i,o=i.range,s=r(54263),l=(0,n.Z)((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*s.Ym)}),(function(t,e){return(e-t)/s.Ym}),(function(t){return t.getUTCSeconds()})),u=l,c=l.range,f=(0,n.Z)((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*s.Ym)}),(function(t,e){t.setTime(+t+e*s.yB)}),(function(t,e){return(e-t)/s.yB}),(function(t){return t.getMinutes()})),h=f,p=f.range,d=(0,n.Z)((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*s.Ym-t.getMinutes()*s.yB)}),(function(t,e){t.setTime(+t+e*s.Y2)}),(function(t,e){return(e-t)/s.Y2}),(function(t){return t.getHours()})),v=d,g=d.range,y=r(82301),m=r(59879),x=(0,n.Z)((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),b=x,_=x.range,w=r(34823),T=(0,n.Z)((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*s.yB)}),(function(t,e){return(e-t)/s.yB}),(function(t){return t.getUTCMinutes()})),k=T,A=T.range,M=(0,n.Z)((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*s.Y2)}),(function(t,e){return(e-t)/s.Y2}),(function(t){return t.getUTCHours()})),S=M,E=M.range,L=r(48480),C=r(58176),P=(0,n.Z)((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),O=P,I=P.range,D=r(79791)},30052:function(t,e,r){"use strict";r.d(e,{Z:function(){return a}});var n=new Date,i=new Date;function a(t,e,r,o){function s(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return s.floor=function(e){return t(e=new Date(+e)),e},s.ceil=function(r){return t(r=new Date(r-1)),e(r,1),t(r),r},s.round=function(t){var e=s(t),r=s.ceil(t);return t-e<r-t?e:r},s.offset=function(t,r){return e(t=new Date(+t),null==r?1:Math.floor(r)),t},s.range=function(r,n,i){var a,o=[];if(r=s.ceil(r),i=null==i?1:Math.floor(i),!(r<n&&i>0))return o;do{o.push(a=new Date(+r)),e(r,i),t(r)}while(a<r&&r<n);return o},s.filter=function(r){return a((function(e){if(e>=e)for(;t(e),!r(e);)e.setTime(e-1)}),(function(t,n){if(t>=t)if(n<0)for(;++n<=0;)for(;e(t,-1),!r(t););else for(;--n>=0;)for(;e(t,1),!r(t););}))},r&&(s.count=function(e,a){return n.setTime(+e),i.setTime(+a),t(n),t(i),Math.floor(r(n,i))},s.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?s.filter(o?function(e){return o(e)%t==0}:function(e){return s.count(0,e)%t==0}):s:null}),s}},48480:function(t,e,r){"use strict";r.d(e,{y:function(){return o}});var n=r(30052),i=r(54263),a=(0,n.Z)((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/i.UD}),(function(t){return t.getUTCDate()-1}));e.Z=a;var o=a.range},58176:function(t,e,r){"use strict";r.d(e,{$3:function(){return d},DK:function(){return v},J1:function(){return l},Ox:function(){return o},QQ:function(){return f},Q_:function(){return x},SU:function(){return p},b3:function(){return u},fz:function(){return m},g4:function(){return h},hB:function(){return c},l6:function(){return s},uy:function(){return g},xj:function(){return y}});var n=r(30052),i=r(54263);function a(t){return(0,n.Z)((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/i.iM}))}var o=a(0),s=a(1),l=a(2),u=a(3),c=a(4),f=a(5),h=a(6),p=o.range,d=s.range,v=l.range,g=u.range,y=c.range,m=f.range,x=h.range},79791:function(t,e,r){"use strict";r.d(e,{D:function(){return a}});var n=r(30052),i=(0,n.Z)((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?(0,n.Z)((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,r){e.setUTCFullYear(e.getUTCFullYear()+r*t)})):null},e.Z=i;var a=i.range},59879:function(t,e,r){"use strict";r.d(e,{$t:function(){return y},EY:function(){return h},Ff:function(){return x},Ld:function(){return g},OM:function(){return o},aU:function(){return v},b$:function(){return m},bJ:function(){return d},bL:function(){return c},mC:function(){return f},sy:function(){return l},vm:function(){return p},wA:function(){return s},zg:function(){return u}});var n=r(30052),i=r(54263);function a(t){return(0,n.Z)((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*i.yB)/i.iM}))}var o=a(0),s=a(1),l=a(2),u=a(3),c=a(4),f=a(5),h=a(6),p=o.range,d=s.range,v=l.range,g=u.range,y=c.range,m=f.range,x=h.range},34823:function(t,e,r){"use strict";r.d(e,{g:function(){return a}});var n=r(30052),i=(0,n.Z)((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?(0,n.Z)((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,r){e.setFullYear(e.getFullYear()+r*t)})):null},e.Z=i;var a=i.range},17045:function(t,e,r){"use strict";var n=r(8709),i="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),a=Object.prototype.toString,o=Array.prototype.concat,s=Object.defineProperty,l=s&&function(){var t={};try{for(var e in s(t,"x",{enumerable:!1,value:t}),t)return!1;return t.x===t}catch(t){return!1}}(),u=function(t,e,r,n){var i;(!(e in t)||"function"==typeof(i=n)&&"[object Function]"===a.call(i)&&n())&&(l?s(t,e,{configurable:!0,enumerable:!1,value:r,writable:!0}):t[e]=r)},c=function(t,e){var r=arguments.length>2?arguments[2]:{},a=n(e);i&&(a=o.call(a,Object.getOwnPropertySymbols(e)));for(var s=0;s<a.length;s+=1)u(t,a[s],e[a[s]],r[a[s]])};c.supportsDescriptors=!!l,t.exports=c},46775:function(t){t.exports=function(){for(var t=0;t<arguments.length;t++)if(void 0!==arguments[t])return arguments[t]}},53545:function(t){"use strict";t.exports=n;var e=(n.canvas=document.createElement("canvas")).getContext("2d"),r=i([32,126]);function n(t,n){Array.isArray(t)&&(t=t.join(", "));var a,o={},s=16,l=.05;n&&(2===n.length&&"number"==typeof n[0]?a=i(n):Array.isArray(n)?a=n:(n.o?a=i(n.o):n.pairs&&(a=n.pairs),n.fontSize&&(s=n.fontSize),null!=n.threshold&&(l=n.threshold))),a||(a=r),e.font=s+"px "+t;for(var u=0;u<a.length;u++){var c=a[u],f=e.measureText(c[0]).width+e.measureText(c[1]).width,h=e.measureText(c).width;if(Math.abs(f-h)>s*l){var p=(h-f)/s;o[c]=1e3*p}}return o}function i(t){for(var e=[],r=t[0];r<=t[1];r++)for(var n=String.fromCharCode(r),i=t[0];i<t[1];i++){var a=n+String.fromCharCode(i);e.push(a)}return e}n.createPairs=i,n.ascii=r},31457:function(t,e,r){var n=r(65185),i=r(18625),a={M:"moveTo",C:"bezierCurveTo"};t.exports=function(t,e){t.beginPath(),i(n(e)).forEach((function(e){var r=e[0],n=e.slice(1);t[a[r]].apply(t,n)})),t.closePath()}},90660:function(t){t.exports=function(t){switch(t){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},12129:function(t){"use strict";function e(t,r,n){var i=0|t[n];if(i<=0)return[];var a,o=new Array(i);if(n===t.length-1)for(a=0;a<i;++a)o[a]=r;else for(a=0;a<i;++a)o[a]=e(t,r,n+1);return o}t.exports=function(t,r){switch(void 0===r&&(r=0),typeof t){case"number":if(t>0)return function(t,e){var r,n;for(r=new Array(t),n=0;n<t;++n)r[n]=e;return r}(0|t,r);break;case"object":if("number"==typeof t.length)return e(t,r,0)}return[]}},11474:function(t){"use strict";function e(t,e,a){a=a||2;var o,s,l,f,h,d,v,g=e&&e.length,y=g?e[0]*a:t.length,m=r(t,0,y,a,!0),x=[];if(!m||m.next===m.prev)return x;if(g&&(m=function(t,e,i,a){var o,s,l,f=[];for(o=0,s=e.length;o<s;o++)(l=r(t,e[o]*a,o<s-1?e[o+1]*a:t.length,a,!1))===l.next&&(l.steiner=!0),f.push(p(l));for(f.sort(u),o=0;o<f.length;o++)c(f[o],i),i=n(i,i.next);return i}(t,e,m,a)),t.length>80*a){o=l=t[0],s=f=t[1];for(var b=a;b<y;b+=a)(h=t[b])<o&&(o=h),(d=t[b+1])<s&&(s=d),h>l&&(l=h),d>f&&(f=d);v=0!==(v=Math.max(l-o,f-s))?1/v:0}return i(m,x,a,o,s,v),x}function r(t,e,r,n,i){var a,o;if(i===M(t,e,r,n)>0)for(a=e;a<r;a+=n)o=T(a,t[a],t[a+1],o);else for(a=r-n;a>=e;a-=n)o=T(a,t[a],t[a+1],o);return o&&y(o,o.next)&&(k(o),o=o.next),o}function n(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!y(n,n.next)&&0!==g(n.prev,n,n.next))n=n.next;else{if(k(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function i(t,e,r,u,c,f,p){if(t){!p&&f&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=h(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,u=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e<u&&(s++,n=n.nextZ);e++);for(l=u;s>0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,u*=2}while(o>1)}(i)}(t,u,c,f);for(var d,v,g=t;t.prev!==t.next;)if(d=t.prev,v=t.next,f?o(t,u,c,f):a(t))e.push(d.i/r),e.push(t.i/r),e.push(v.i/r),k(t),t=v.next,g=v.next;else if((t=v)===g){p?1===p?i(t=s(n(t),e,r),e,r,u,c,f,2):2===p&&l(t,e,r,u,c,f):i(n(t),e,r,u,c,f,1);break}}}function a(t){var e=t.prev,r=t,n=t.next;if(g(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(d(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&g(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function o(t,e,r,n){var i=t.prev,a=t,o=t.next;if(g(i,a,o)>=0)return!1;for(var s=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,l=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,u=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,c=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=h(s,l,e,r,n),p=h(u,c,e,r,n),v=t.prevZ,y=t.nextZ;v&&v.z>=f&&y&&y.z<=p;){if(v!==t.prev&&v!==t.next&&d(i.x,i.y,a.x,a.y,o.x,o.y,v.x,v.y)&&g(v.prev,v,v.next)>=0)return!1;if(v=v.prevZ,y!==t.prev&&y!==t.next&&d(i.x,i.y,a.x,a.y,o.x,o.y,y.x,y.y)&&g(y.prev,y,y.next)>=0)return!1;y=y.nextZ}for(;v&&v.z>=f;){if(v!==t.prev&&v!==t.next&&d(i.x,i.y,a.x,a.y,o.x,o.y,v.x,v.y)&&g(v.prev,v,v.next)>=0)return!1;v=v.prevZ}for(;y&&y.z<=p;){if(y!==t.prev&&y!==t.next&&d(i.x,i.y,a.x,a.y,o.x,o.y,y.x,y.y)&&g(y.prev,y,y.next)>=0)return!1;y=y.nextZ}return!0}function s(t,e,r){var i=t;do{var a=i.prev,o=i.next.next;!y(a,o)&&m(a,i,i.next,o)&&_(a,o)&&_(o,a)&&(e.push(a.i/r),e.push(i.i/r),e.push(o.i/r),k(i),k(i.next),i=t=o),i=i.next}while(i!==t);return n(i)}function l(t,e,r,a,o,s){var l=t;do{for(var u=l.next.next;u!==l.prev;){if(l.i!==u.i&&v(l,u)){var c=w(l,u);return l=n(l,l.next),c=n(c,c.next),i(l,e,r,a,o,s),void i(c,e,r,a,o,s)}u=u.next}l=l.next}while(l!==t)}function u(t,e){return t.x-e.x}function c(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!r)return null;if(i===o)return r;var l,u=r,c=r.x,h=r.y,p=1/0;n=r;do{i>=n.x&&n.x>=c&&i!==n.x&&d(a<h?i:o,a,c,h,a<h?o:i,a,n.x,n.y)&&(l=Math.abs(a-n.y)/(i-n.x),_(n,t)&&(l<p||l===p&&(n.x>r.x||n.x===r.x&&f(r,n)))&&(r=n,p=l)),n=n.next}while(n!==u);return r}(t,e),e){var r=w(e,t);n(e,e.next),n(r,r.next)}}function f(t,e){return g(t.prev,t,e.prev)<0&&g(e.next,t,t.next)<0}function h(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function p(t){var e=t,r=t;do{(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next}while(e!==t);return r}function d(t,e,r,n,i,a,o,s){return(i-o)*(e-s)-(t-o)*(a-s)>=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function v(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&m(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(_(t,e)&&_(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(g(t.prev,t,e.prev)||g(t,e.prev,e))||y(t,e)&&g(t.prev,t,t.next)>0&&g(e.prev,e,e.next)>0)}function g(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function y(t,e){return t.x===e.x&&t.y===e.y}function m(t,e,r,n){var i=b(g(t,e,r)),a=b(g(t,e,n)),o=b(g(r,n,t)),s=b(g(r,n,e));return i!==a&&o!==s||!(0!==i||!x(t,r,e))||!(0!==a||!x(t,n,e))||!(0!==o||!x(r,t,n))||!(0!==s||!x(r,e,n))}function x(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function b(t){return t>0?1:t<0?-1:0}function _(t,e){return g(t.prev,t,t.next)<0?g(t,e,t.next)>=0&&g(t,t.prev,e)>=0:g(t,e,t.prev)<0||g(t,t.next,e)<0}function w(t,e){var r=new A(t.i,t.x,t.y),n=new A(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function T(t,e,r,n){var i=new A(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function k(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function A(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function M(t,e,r,n){for(var i=0,a=e,o=r-n;a<r;a+=n)i+=(t[o]-t[a])*(t[a+1]+t[o+1]),o=a;return i}t.exports=e,t.exports.default=e,e.deviation=function(t,e,r,n){var i=e&&e.length,a=i?e[0]*r:t.length,o=Math.abs(M(t,0,a,r));if(i)for(var s=0,l=e.length;s<l;s++){var u=e[s]*r,c=s<l-1?e[s+1]*r:t.length;o-=Math.abs(M(t,u,c,r))}var f=0;for(s=0;s<n.length;s+=3){var h=n[s]*r,p=n[s+1]*r,d=n[s+2]*r;f+=Math.abs((t[h]-t[d])*(t[p+1]-t[h+1])-(t[h]-t[p])*(t[d+1]-t[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(t){for(var e=t[0][0].length,r={vertices:[],holes:[],dimensions:e},n=0,i=0;i<t.length;i++){for(var a=0;a<t[i].length;a++)for(var o=0;o<e;o++)r.vertices.push(t[i][a][o]);i>0&&(n+=t[i-1].length,r.holes.push(n))}return r}},2502:function(t,e,r){var n=r(68664);t.exports=function(t,e){var r,i=[],a=[],o=[],s={},l=[];function u(t){o[t]=!1,s.hasOwnProperty(t)&&Object.keys(s[t]).forEach((function(e){delete s[t][e],o[e]&&u(e)}))}function c(t){var e,n,i=!1;for(a.push(t),o[t]=!0,e=0;e<l[t].length;e++)(n=l[t][e])===r?(f(r,a),i=!0):o[n]||(i=c(n));if(i)u(t);else for(e=0;e<l[t].length;e++){n=l[t][e];var h=s[n];h||(h={},s[n]=h),h[n]=!0}return a.pop(),i}function f(t,r){var n=[].concat(r).concat(t);e?e(c):i.push(n)}function h(e){!function(e){for(var r=0;r<t.length;r++)r<e&&(t[r]=[]),t[r]=t[r].filter((function(t){return t>=e}))}(e);for(var r,i=n(t).components.filter((function(t){return t.length>1})),a=1/0,o=0;o<i.length;o++)for(var s=0;s<i[o].length;s++)i[o][s]<a&&(a=i[o][s],r=o);var l=i[r];if(!l)return!1;var u=t.map((function(t,e){return-1===l.indexOf(e)?[]:t.filter((function(t){return-1!==l.indexOf(t)}))}));return{leastVertex:a,adjList:u}}r=0;for(var p=t.length;r<p;){var d=h(r);if(r=d.leastVertex,l=d.adjList){for(var v=0;v<l.length;v++)for(var g=0;g<l[v].length;g++){var y=l[v][g];o[+y]=!1,s[y]={}}c(r),r+=1}else r=p}return e?void 0:i}},72943:function(t,e,r){"use strict";var n,i=TypeError,a=Object.getOwnPropertyDescriptor;if(a)try{a({},"")}catch(t){a=null}var o=function(){throw new i},s=a?function(){try{return o}catch(t){try{return a(arguments,"callee").get}catch(t){return o}}}():o,l=r(57877)(),u=Object.getPrototypeOf||function(t){return t.__proto__},c=n,f="undefined"==typeof Uint8Array?n:u(Uint8Array),h={"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayBufferPrototype%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer.prototype,"%ArrayIteratorPrototype%":l?u([][Symbol.iterator]()):n,"%ArrayPrototype%":Array.prototype,"%ArrayProto_entries%":Array.prototype.entries,"%ArrayProto_forEach%":Array.prototype.forEach,"%ArrayProto_keys%":Array.prototype.keys,"%ArrayProto_values%":Array.prototype.values,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":undefined,"%AsyncFunctionPrototype%":n,"%AsyncGenerator%":n,"%AsyncGeneratorFunction%":undefined,"%AsyncGeneratorPrototype%":n,"%AsyncIteratorPrototype%":c&&l&&Symbol.asyncIterator?c[Symbol.asyncIterator]():n,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%Boolean%":Boolean,"%BooleanPrototype%":Boolean.prototype,"%DataView%":"undefined"==typeof DataView?n:DataView,"%DataViewPrototype%":"undefined"==typeof DataView?n:DataView.prototype,"%Date%":Date,"%DatePrototype%":Date.prototype,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%ErrorPrototype%":Error.prototype,"%eval%":eval,"%EvalError%":EvalError,"%EvalErrorPrototype%":EvalError.prototype,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float32ArrayPrototype%":"undefined"==typeof Float32Array?n:Float32Array.prototype,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%Float64ArrayPrototype%":"undefined"==typeof Float64Array?n:Float64Array.prototype,"%Function%":Function,"%FunctionPrototype%":Function.prototype,"%Generator%":n,"%GeneratorFunction%":undefined,"%GeneratorPrototype%":n,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int8ArrayPrototype%":"undefined"==typeof Int8Array?n:Int8Array.prototype,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int16ArrayPrototype%":"undefined"==typeof Int16Array?n:Int8Array.prototype,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%Int32ArrayPrototype%":"undefined"==typeof Int32Array?n:Int32Array.prototype,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":l?u(u([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%JSONParse%":"object"==typeof JSON?JSON.parse:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&l?u((new Map)[Symbol.iterator]()):n,"%MapPrototype%":"undefined"==typeof Map?n:Map.prototype,"%Math%":Math,"%Number%":Number,"%NumberPrototype%":Number.prototype,"%Object%":Object,"%ObjectPrototype%":Object.prototype,"%ObjProto_toString%":Object.prototype.toString,"%ObjProto_valueOf%":Object.prototype.valueOf,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%PromisePrototype%":"undefined"==typeof Promise?n:Promise.prototype,"%PromiseProto_then%":"undefined"==typeof Promise?n:Promise.prototype.then,"%Promise_all%":"undefined"==typeof Promise?n:Promise.all,"%Promise_reject%":"undefined"==typeof Promise?n:Promise.reject,"%Promise_resolve%":"undefined"==typeof Promise?n:Promise.resolve,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":RangeError,"%RangeErrorPrototype%":RangeError.prototype,"%ReferenceError%":ReferenceError,"%ReferenceErrorPrototype%":ReferenceError.prototype,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%RegExpPrototype%":RegExp.prototype,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&l?u((new Set)[Symbol.iterator]()):n,"%SetPrototype%":"undefined"==typeof Set?n:Set.prototype,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%SharedArrayBufferPrototype%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer.prototype,"%String%":String,"%StringIteratorPrototype%":l?u(""[Symbol.iterator]()):n,"%StringPrototype%":String.prototype,"%Symbol%":l?Symbol:n,"%SymbolPrototype%":l?Symbol.prototype:n,"%SyntaxError%":SyntaxError,"%SyntaxErrorPrototype%":SyntaxError.prototype,"%ThrowTypeError%":s,"%TypedArray%":f,"%TypedArrayPrototype%":f?f.prototype:n,"%TypeError%":i,"%TypeErrorPrototype%":i.prototype,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ArrayPrototype%":"undefined"==typeof Uint8Array?n:Uint8Array.prototype,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint8ClampedArrayPrototype%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray.prototype,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint16ArrayPrototype%":"undefined"==typeof Uint16Array?n:Uint16Array.prototype,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%Uint32ArrayPrototype%":"undefined"==typeof Uint32Array?n:Uint32Array.prototype,"%URIError%":URIError,"%URIErrorPrototype%":URIError.prototype,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakMapPrototype%":"undefined"==typeof WeakMap?n:WeakMap.prototype,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet,"%WeakSetPrototype%":"undefined"==typeof WeakSet?n:WeakSet.prototype},p=r(77575).call(Function.call,String.prototype.replace),d=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,v=/\\(\\)?/g,g=function(t){var e=[];return p(t,d,(function(t,r,n,i){e[e.length]=n?p(i,v,"$1"):r||t})),e},y=function(t,e){if(!(t in h))throw new SyntaxError("intrinsic "+t+" does not exist!");if(void 0===h[t]&&!e)throw new i("intrinsic "+t+" exists, but is not available. Please file an issue!");return h[t]};t.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new TypeError("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new TypeError('"allowMissing" argument must be a boolean');for(var r=g(t),n=y("%"+(r.length>0?r[0]:"")+"%",e),o=1;o<r.length;o+=1)if(null!=n)if(a&&o+1>=r.length){var s=a(n,r[o]);if(!e&&!(r[o]in n))throw new i("base intrinsic for "+t+" exists, but the property is not available.");n=s?s.get||s.value:n[r[o]]}else n=n[r[o]];return n}},84671:function(t,e,r){"use strict";var n=r(77575),i=r(72943)("%Function%"),a=i.apply,o=i.call;t.exports=function(){return n.apply(o,arguments)},t.exports.apply=function(){return n.apply(a,arguments)}},92978:function(t,e,r){"use strict";var n=r(72943),i=r(84671),a=i(n("String.prototype.indexOf"));t.exports=function(t,e){var r=n(t,!!e);return"function"==typeof r&&a(t,".prototype.")?i(r):r}},67295:function(t,e,r){"use strict";var n=r(72943)("%Object.getOwnPropertyDescriptor%");if(n)try{n([],"length")}catch(t){n=null}t.exports=n},16134:function(t,e,r){"use strict";var n=r(36672);t.exports=function(){return n(this).length=0,this}},4892:function(t,e,r){"use strict";t.exports=r(64404)()?Array.from:r(49441)},64404:function(t){"use strict";t.exports=function(){var t,e,r=Array.from;return"function"==typeof r&&(e=r(t=["raz","dwa"]),Boolean(e&&e!==t&&"dwa"===e[1]))}},49441:function(t,e,r){"use strict";var n=r(8260).iterator,i=r(73051),a=r(33717),o=r(35976),s=r(78513),l=r(36672),u=r(95296),c=r(87963),f=Array.isArray,h=Function.prototype.call,p={configurable:!0,enumerable:!0,writable:!0,value:null},d=Object.defineProperty;t.exports=function(t){var e,r,v,g,y,m,x,b,_,w,T=arguments[1],k=arguments[2];if(t=Object(l(t)),u(T)&&s(T),this&&this!==Array&&a(this))e=this;else{if(!T){if(i(t))return 1!==(y=t.length)?Array.apply(null,t):((g=new Array(1))[0]=t[0],g);if(f(t)){for(g=new Array(y=t.length),r=0;r<y;++r)g[r]=t[r];return g}}g=[]}if(!f(t))if(void 0!==(_=t[n])){for(x=s(_).call(t),e&&(g=new e),b=x.next(),r=0;!b.done;)w=T?h.call(T,k,b.value,r):b.value,e?(p.value=w,d(g,r,p)):g[r]=w,b=x.next(),++r;y=r}else if(c(t)){for(y=t.length,e&&(g=new e),r=0,v=0;r<y;++r)w=t[r],r+1<y&&(m=w.charCodeAt(0))>=55296&&m<=56319&&(w+=t[++r]),w=T?h.call(T,k,w,v):w,e?(p.value=w,d(g,v,p)):g[v]=w,++v;y=v}if(void 0===y)for(y=o(t.length),e&&(g=new e(y)),r=0;r<y;++r)w=T?h.call(T,k,t[r],r):t[r],e?(p.value=w,d(g,r,p)):g[r]=w;return e&&(p.value=null,g.length=y),g}},73051:function(t){"use strict";var e=Object.prototype.toString,r=e.call(function(){return arguments}());t.exports=function(t){return e.call(t)===r}},33717:function(t){"use strict";var e=Object.prototype.toString,r=RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);t.exports=function(t){return"function"==typeof t&&r(e.call(t))}},52345:function(t){"use strict";t.exports=function(){}},9953:function(t,e,r){"use strict";t.exports=r(90436)()?Math.sign:r(6069)},90436:function(t){"use strict";t.exports=function(){var t=Math.sign;return"function"==typeof t&&1===t(10)&&-1===t(-20)}},6069:function(t){"use strict";t.exports=function(t){return t=Number(t),isNaN(t)||0===t?t:t>0?1:-1}},56247:function(t,e,r){"use strict";var n=r(9953),i=Math.abs,a=Math.floor;t.exports=function(t){return isNaN(t)?0:0!==(t=Number(t))&&isFinite(t)?n(t)*a(i(t)):t}},35976:function(t,e,r){"use strict";var n=r(56247),i=Math.max;t.exports=function(t){return i(0,n(t))}},67260:function(t,e,r){"use strict";var n=r(78513),i=r(36672),a=Function.prototype.bind,o=Function.prototype.call,s=Object.keys,l=Object.prototype.propertyIsEnumerable;t.exports=function(t,e){return function(r,u){var c,f=arguments[2],h=arguments[3];return r=Object(i(r)),n(u),c=s(r),h&&c.sort("function"==typeof h?a.call(h,r):void 0),"function"!=typeof t&&(t=c[t]),o.call(t,c,(function(t,n){return l.call(r,t)?o.call(u,f,r[t],t,r,n):e}))}}},95879:function(t,e,r){"use strict";t.exports=r(73583)()?Object.assign:r(34205)},73583:function(t){"use strict";t.exports=function(){var t,e=Object.assign;return"function"==typeof e&&(e(t={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),t.foo+t.bar+t.trzy==="razdwatrzy")}},34205:function(t,e,r){"use strict";var n=r(68700),i=r(36672),a=Math.max;t.exports=function(t,e){var r,o,s,l=a(arguments.length,2);for(t=Object(i(t)),s=function(n){try{t[n]=e[n]}catch(t){r||(r=t)}},o=1;o<l;++o)n(e=arguments[o]).forEach(s);if(void 0!==r)throw r;return t}},19012:function(t,e,r){"use strict";var n=r(4892),i=r(95879),a=r(36672);t.exports=function(t){var e=Object(a(t)),r=arguments[1],o=Object(arguments[2]);if(e!==t&&!r)return e;var s={};return r?n(r,(function(e){(o.ensure||e in t)&&(s[e]=t[e])})):i(s,t),s}},52818:function(t,e,r){"use strict";var n,i,a,o,s=Object.create;r(33247)()||(n=r(51882)),t.exports=n?1!==n.level?s:(i={},a={},o={configurable:!1,enumerable:!1,writable:!0,value:void 0},Object.getOwnPropertyNames(Object.prototype).forEach((function(t){a[t]="__proto__"!==t?o:{configurable:!0,enumerable:!1,writable:!0,value:void 0}})),Object.defineProperties(i,a),Object.defineProperty(n,"nullPolyfill",{configurable:!1,enumerable:!1,writable:!1,value:i}),function(t,e){return s(null===t?i:t,e)}):s},96437:function(t,e,r){"use strict";t.exports=r(67260)("forEach")},99611:function(t,e,r){"use strict";var n=r(95296),i={function:!0,object:!0};t.exports=function(t){return n(t)&&i[typeof t]||!1}},95296:function(t,e,r){"use strict";var n=r(52345)();t.exports=function(t){return t!==n&&null!==t}},68700:function(t,e,r){"use strict";t.exports=r(13895)()?Object.keys:r(25217)},13895:function(t){"use strict";t.exports=function(){try{return Object.keys("primitive"),!0}catch(t){return!1}}},25217:function(t,e,r){"use strict";var n=r(95296),i=Object.keys;t.exports=function(t){return i(n(t)?Object(t):t)}},16906:function(t,e,r){"use strict";var n=r(78513),i=r(96437),a=Function.prototype.call;t.exports=function(t,e){var r={},o=arguments[2];return n(e),i(t,(function(t,n,i,s){r[n]=a.call(e,o,t,n,i,s)})),r}},21780:function(t,e,r){"use strict";var n=r(95296),i=Array.prototype.forEach,a=Object.create,o=function(t,e){var r;for(r in t)e[r]=t[r]};t.exports=function(t){var e=a(null);return i.call(arguments,(function(t){n(t)&&o(Object(t),e)})),e}},1496:function(t,e,r){"use strict";t.exports=r(33247)()?Object.setPrototypeOf:r(51882)},33247:function(t){"use strict";var e=Object.create,r=Object.getPrototypeOf,n={};t.exports=function(){var t=Object.setPrototypeOf,i=arguments[0]||e;return"function"==typeof t&&r(t(i(null),n))===n}},51882:function(t,e,r){"use strict";var n,i,a,o,s=r(99611),l=r(36672),u=Object.prototype.isPrototypeOf,c=Object.defineProperty,f={configurable:!0,enumerable:!1,writable:!0,value:void 0};n=function(t,e){if(l(t),null===e||s(e))return t;throw new TypeError("Prototype must be null or an object")},t.exports=(i=function(){var t,e=Object.create(null),r={},n=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__");if(n){try{(t=n.set).call(e,r)}catch(t){}if(Object.getPrototypeOf(e)===r)return{set:t,level:2}}return e.__proto__=r,Object.getPrototypeOf(e)===r?{level:2}:((e={}).__proto__=r,Object.getPrototypeOf(e)===r&&{level:1})}(),i?(2===i.level?i.set?(o=i.set,a=function(t,e){return o.call(n(t,e),e),t}):a=function(t,e){return n(t,e).__proto__=e,t}:a=function t(e,r){var i;return n(e,r),(i=u.call(t.nullPolyfill,e))&&delete t.nullPolyfill.__proto__,null===r&&(r=t.nullPolyfill),e.__proto__=r,i&&c(t.nullPolyfill,"__proto__",f),e},Object.defineProperty(a,"level",{configurable:!1,enumerable:!1,writable:!1,value:i.level})):null),r(52818)},78513:function(t){"use strict";t.exports=function(t){if("function"!=typeof t)throw new TypeError(t+" is not a function");return t}},98976:function(t,e,r){"use strict";var n=r(99611);t.exports=function(t){if(!n(t))throw new TypeError(t+" is not an Object");return t}},36672:function(t,e,r){"use strict";var n=r(95296);t.exports=function(t){if(!n(t))throw new TypeError("Cannot use null or undefined");return t}},66741:function(t,e,r){"use strict";t.exports=r(17557)()?String.prototype.contains:r(60381)},17557:function(t){"use strict";var e="razdwatrzy";t.exports=function(){return"function"==typeof e.contains&&!0===e.contains("dwa")&&!1===e.contains("foo")}},60381:function(t){"use strict";var e=String.prototype.indexOf;t.exports=function(t){return e.call(this,t,arguments[1])>-1}},87963:function(t){"use strict";var e=Object.prototype.toString,r=e.call("");t.exports=function(t){return"string"==typeof t||t&&"object"==typeof t&&(t instanceof String||e.call(t)===r)||!1}},43043:function(t){"use strict";var e=Object.create(null),r=Math.random;t.exports=function(){var t;do{t=r().toString(36).slice(2)}while(e[t]);return t}},32411:function(t,e,r){"use strict";var n,i=r(1496),a=r(66741),o=r(62072),s=r(8260),l=r(95426),u=Object.defineProperty;n=t.exports=function(t,e){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");l.call(this,t),e=e?a.call(e,"key+value")?"key+value":a.call(e,"key")?"key":"value":"value",u(this,"__kind__",o("",e))},i&&i(n,l),delete n.prototype.constructor,n.prototype=Object.create(l.prototype,{_resolve:o((function(t){return"value"===this.__kind__?this.__list__[t]:"key+value"===this.__kind__?[t,this.__list__[t]]:t}))}),u(n.prototype,s.toStringTag,o("c","Array Iterator"))},27515:function(t,e,r){"use strict";var n=r(73051),i=r(78513),a=r(87963),o=r(66661),s=Array.isArray,l=Function.prototype.call,u=Array.prototype.some;t.exports=function(t,e){var r,c,f,h,p,d,v,g,y=arguments[2];if(s(t)||n(t)?r="array":a(t)?r="string":t=o(t),i(e),f=function(){h=!0},"array"!==r)if("string"!==r)for(c=t.next();!c.done;){if(l.call(e,y,c.value,f),h)return;c=t.next()}else for(d=t.length,p=0;p<d&&(v=t[p],p+1<d&&(g=v.charCodeAt(0))>=55296&&g<=56319&&(v+=t[++p]),l.call(e,y,v,f),!h);++p);else u.call(t,(function(t){return l.call(e,y,t,f),h}))}},66661:function(t,e,r){"use strict";var n=r(73051),i=r(87963),a=r(32411),o=r(259),s=r(58095),l=r(8260).iterator;t.exports=function(t){return"function"==typeof s(t)[l]?t[l]():n(t)?new a(t):i(t)?new o(t):new a(t)}},95426:function(t,e,r){"use strict";var n,i=r(16134),a=r(95879),o=r(78513),s=r(36672),l=r(62072),u=r(55174),c=r(8260),f=Object.defineProperty,h=Object.defineProperties;t.exports=n=function(t,e){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");h(this,{__list__:l("w",s(t)),__context__:l("w",e),__nextIndex__:l("w",0)}),e&&(o(e.on),e.on("_add",this._onAdd),e.on("_delete",this._onDelete),e.on("_clear",this._onClear))},delete n.prototype.constructor,h(n.prototype,a({_next:l((function(){var t;if(this.__list__)return this.__redo__&&void 0!==(t=this.__redo__.shift())?t:this.__nextIndex__<this.__list__.length?this.__nextIndex__++:void this._unBind()})),next:l((function(){return this._createResult(this._next())})),_createResult:l((function(t){return void 0===t?{done:!0,value:void 0}:{done:!1,value:this._resolve(t)}})),_resolve:l((function(t){return this.__list__[t]})),_unBind:l((function(){this.__list__=null,delete this.__redo__,this.__context__&&(this.__context__.off("_add",this._onAdd),this.__context__.off("_delete",this._onDelete),this.__context__.off("_clear",this._onClear),this.__context__=null)})),toString:l((function(){return"[object "+(this[c.toStringTag]||"Object")+"]"}))},u({_onAdd:l((function(t){t>=this.__nextIndex__||(++this.__nextIndex__,this.__redo__?(this.__redo__.forEach((function(e,r){e>=t&&(this.__redo__[r]=++e)}),this),this.__redo__.push(t)):f(this,"__redo__",l("c",[t])))})),_onDelete:l((function(t){var e;t>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(-1!==(e=this.__redo__.indexOf(t))&&this.__redo__.splice(e,1),this.__redo__.forEach((function(e,r){e>t&&(this.__redo__[r]=--e)}),this)))})),_onClear:l((function(){this.__redo__&&i.call(this.__redo__),this.__nextIndex__=0}))}))),f(n.prototype,c.iterator,l((function(){return this})))},35940:function(t,e,r){"use strict";var n=r(73051),i=r(95296),a=r(87963),o=r(8260).iterator,s=Array.isArray;t.exports=function(t){return!(!i(t)||!s(t)&&!a(t)&&!n(t)&&"function"!=typeof t[o])}},259:function(t,e,r){"use strict";var n,i=r(1496),a=r(62072),o=r(8260),s=r(95426),l=Object.defineProperty;n=t.exports=function(t){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");t=String(t),s.call(this,t),l(this,"__length__",a("",t.length))},i&&i(n,s),delete n.prototype.constructor,n.prototype=Object.create(s.prototype,{_next:a((function(){if(this.__list__)return this.__nextIndex__<this.__length__?this.__nextIndex__++:void this._unBind()})),_resolve:a((function(t){var e,r=this.__list__[t];return this.__nextIndex__===this.__length__?r:(e=r.charCodeAt(0))>=55296&&e<=56319?r+this.__list__[this.__nextIndex__++]:r}))}),l(n.prototype,o.toStringTag,a("c","String Iterator"))},58095:function(t,e,r){"use strict";var n=r(35940);t.exports=function(t){if(!n(t))throw new TypeError(t+" is not iterable");return t}},73523:function(t){"use strict";function e(t,e){if(null==t)throw new TypeError("Cannot convert first argument to object");for(var r=Object(t),n=1;n<arguments.length;n++){var i=arguments[n];if(null!=i)for(var a=Object.keys(Object(i)),o=0,s=a.length;o<s;o++){var l=a[o],u=Object.getOwnPropertyDescriptor(i,l);void 0!==u&&u.enumerable&&(r[l]=i[l])}}return r}t.exports={assign:e,polyfill:function(){Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:e})}}},8260:function(t,e,r){"use strict";t.exports=r(69711)()?r(94908).Symbol:r(18415)},69711:function(t,e,r){"use strict";var n=r(94908),i={object:!0,symbol:!0};t.exports=function(){var t,e=n.Symbol;if("function"!=typeof e)return!1;t=e("test symbol");try{String(t)}catch(t){return!1}return!!i[typeof e.iterator]&&!!i[typeof e.toPrimitive]&&!!i[typeof e.toStringTag]}},82276:function(t){"use strict";t.exports=function(t){return!!t&&("symbol"==typeof t||!!t.constructor&&"Symbol"===t.constructor.name&&"Symbol"===t[t.constructor.toStringTag])}},29366:function(t,e,r){"use strict";var n=r(62072),i=Object.create,a=Object.defineProperty,o=Object.prototype,s=i(null);t.exports=function(t){for(var e,r,i=0;s[t+(i||"")];)++i;return s[t+=i||""]=!0,a(o,e="@@"+t,n.gs(null,(function(t){r||(r=!0,a(this,e,n(t)),r=!1)}))),e}},92842:function(t,e,r){"use strict";var n=r(62072),i=r(94908).Symbol;t.exports=function(t){return Object.defineProperties(t,{hasInstance:n("",i&&i.hasInstance||t("hasInstance")),isConcatSpreadable:n("",i&&i.isConcatSpreadable||t("isConcatSpreadable")),iterator:n("",i&&i.iterator||t("iterator")),match:n("",i&&i.match||t("match")),replace:n("",i&&i.replace||t("replace")),search:n("",i&&i.search||t("search")),species:n("",i&&i.species||t("species")),split:n("",i&&i.split||t("split")),toPrimitive:n("",i&&i.toPrimitive||t("toPrimitive")),toStringTag:n("",i&&i.toStringTag||t("toStringTag")),unscopables:n("",i&&i.unscopables||t("unscopables"))})}},13304:function(t,e,r){"use strict";var n=r(62072),i=r(53308),a=Object.create(null);t.exports=function(t){return Object.defineProperties(t,{for:n((function(e){return a[e]?a[e]:a[e]=t(String(e))})),keyFor:n((function(t){var e;for(e in i(t),a)if(a[e]===t)return e}))})}},18415:function(t,e,r){"use strict";var n,i,a,o=r(62072),s=r(53308),l=r(94908).Symbol,u=r(29366),c=r(92842),f=r(13304),h=Object.create,p=Object.defineProperties,d=Object.defineProperty;if("function"==typeof l)try{String(l()),a=!0}catch(t){}else l=null;i=function(t){if(this instanceof i)throw new TypeError("Symbol is not a constructor");return n(t)},t.exports=n=function t(e){var r;if(this instanceof t)throw new TypeError("Symbol is not a constructor");return a?l(e):(r=h(i.prototype),e=void 0===e?"":String(e),p(r,{__description__:o("",e),__name__:o("",u(e))}))},c(n),f(n),p(i.prototype,{constructor:o(n),toString:o("",(function(){return this.__name__}))}),p(n.prototype,{toString:o((function(){return"Symbol ("+s(this).__description__+")"})),valueOf:o((function(){return s(this)}))}),d(n.prototype,n.toPrimitive,o("",(function(){var t=s(this);return"symbol"==typeof t?t:t.toString()}))),d(n.prototype,n.toStringTag,o("c","Symbol")),d(i.prototype,n.toStringTag,o("c",n.prototype[n.toStringTag])),d(i.prototype,n.toPrimitive,o("c",n.prototype[n.toPrimitive]))},53308:function(t,e,r){"use strict";var n=r(82276);t.exports=function(t){if(!n(t))throw new TypeError(t+" is not a symbol");return t}},83522:function(t,e,r){"use strict";t.exports=r(96402)()?WeakMap:r(329)},96402:function(t){"use strict";t.exports=function(){var t,e;if("function"!=typeof WeakMap)return!1;try{t=new WeakMap([[e={},"one"],[{},"two"],[{},"three"]])}catch(t){return!1}return"[object WeakMap]"===String(t)&&"function"==typeof t.set&&t.set({},1)===t&&"function"==typeof t.delete&&"function"==typeof t.has&&"one"===t.get(e)}},96416:function(t){"use strict";t.exports="function"==typeof WeakMap&&"[object WeakMap]"===Object.prototype.toString.call(new WeakMap)},329:function(t,e,r){"use strict";var n,i=r(95296),a=r(1496),o=r(98976),s=r(36672),l=r(43043),u=r(62072),c=r(66661),f=r(27515),h=r(8260).toStringTag,p=r(96416),d=Array.isArray,v=Object.defineProperty,g=Object.prototype.hasOwnProperty,y=Object.getPrototypeOf;t.exports=n=function(){var t,e=arguments[0];if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");return t=p&&a&&WeakMap!==n?a(new WeakMap,y(this)):this,i(e)&&(d(e)||(e=c(e))),v(t,"__weakMapData__",u("c","$weakMap$"+l())),e?(f(e,(function(e){s(e),t.set(e[0],e[1])})),t):t},p&&(a&&a(n,WeakMap),n.prototype=Object.create(WeakMap.prototype,{constructor:u(n)})),Object.defineProperties(n.prototype,{delete:u((function(t){return!!g.call(o(t),this.__weakMapData__)&&(delete t[this.__weakMapData__],!0)})),get:u((function(t){if(g.call(o(t),this.__weakMapData__))return t[this.__weakMapData__]})),has:u((function(t){return g.call(o(t),this.__weakMapData__)})),set:u((function(t,e){return v(o(t),this.__weakMapData__,u("c",e)),this})),toString:u((function(){return"[object WeakMap]"}))}),v(n.prototype,h,u("c","WeakMap"))},15398:function(t){"use strict";var e,r="object"==typeof Reflect?Reflect:null,n=r&&"function"==typeof r.apply?r.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)};e=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var i=Number.isNaN||function(t){return t!=t};function a(){a.init.call(this)}t.exports=a,t.exports.once=function(t,e){return new Promise((function(r,n){function i(r){t.removeListener(e,a),n(r)}function a(){"function"==typeof t.removeListener&&t.removeListener("error",i),r([].slice.call(arguments))}v(t,e,a,{once:!0}),"error"!==e&&function(t,e,r){"function"==typeof t.on&&v(t,"error",e,{once:!0})}(t,i)}))},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var o=10;function s(t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function l(t){return void 0===t._maxListeners?a.defaultMaxListeners:t._maxListeners}function u(t,e,r,n){var i,a,o,u;if(s(r),void 0===(a=t._events)?(a=t._events=Object.create(null),t._eventsCount=0):(void 0!==a.newListener&&(t.emit("newListener",e,r.listener?r.listener:r),a=t._events),o=a[e]),void 0===o)o=a[e]=r,++t._eventsCount;else if("function"==typeof o?o=a[e]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),(i=l(t))>0&&o.length>i&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=o.length,u=c,console&&console.warn&&console.warn(u)}return t}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=c.bind(n);return i.listener=r,n.wrapFn=i,i}function h(t,e,r){var n=t._events;if(void 0===n)return[];var i=n[e];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}(i):d(i,i.length)}function p(t){var e=this._events;if(void 0!==e){var r=e[t];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function d(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}function v(t,e,r,n){if("function"==typeof t.on)n.once?t.once(e,r):t.on(e,r);else{if("function"!=typeof t.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t);t.addEventListener(e,(function i(a){n.once&&t.removeEventListener(e,i),r(a)}))}}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(t){if("number"!=typeof t||t<0||i(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");o=t}}),a.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||i(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this},a.prototype.getMaxListeners=function(){return l(this)},a.prototype.emit=function(t){for(var e=[],r=1;r<arguments.length;r++)e.push(arguments[r]);var i="error"===t,a=this._events;if(void 0!==a)i=i&&void 0===a.error;else if(!i)return!1;if(i){var o;if(e.length>0&&(o=e[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var l=a[t];if(void 0===l)return!1;if("function"==typeof l)n(l,this,e);else{var u=l.length,c=d(l,u);for(r=0;r<u;++r)n(c[r],this,e)}return!0},a.prototype.addListener=function(t,e){return u(this,t,e,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(t,e){return u(this,t,e,!0)},a.prototype.once=function(t,e){return s(e),this.on(t,f(this,t,e)),this},a.prototype.prependOnceListener=function(t,e){return s(e),this.prependListener(t,f(this,t,e)),this},a.prototype.removeListener=function(t,e){var r,n,i,a,o;if(s(e),void 0===(n=this._events))return this;if(void 0===(r=n[t]))return this;if(r===e||r.listener===e)0==--this._eventsCount?this._events=Object.create(null):(delete n[t],n.removeListener&&this.emit("removeListener",t,r.listener||e));else if("function"!=typeof r){for(i=-1,a=r.length-1;a>=0;a--)if(r[a]===e||r[a].listener===e){o=r[a].listener,i=a;break}if(i<0)return this;0===i?r.shift():function(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}(r,i),1===r.length&&(n[t]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",t,o||e)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(t){var e,r,n;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[t]&&(0==--this._eventsCount?this._events=Object.create(null):delete r[t]),this;if(0===arguments.length){var i,a=Object.keys(r);for(n=0;n<a.length;++n)"removeListener"!==(i=a[n])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(e=r[t]))this.removeListener(t,e);else if(void 0!==e)for(n=e.length-1;n>=0;n--)this.removeListener(t,e[n]);return this},a.prototype.listeners=function(t){return h(this,t,!0)},a.prototype.rawListeners=function(t){return h(this,t,!1)},a.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):p.call(t,e)},a.prototype.listenerCount=p,a.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]}},60774:function(t){var e=function(){if("object"==typeof self&&self)return self;if("object"==typeof window&&window)return window;throw new Error("Unable to resolve global `this`")};t.exports=function(){if(this)return this;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(t){return e()}try{return __global__||e()}finally{delete Object.prototype.__global__}}()},94908:function(t,e,r){"use strict";t.exports=r(51152)()?globalThis:r(60774)},51152:function(t){"use strict";t.exports=function(){return"object"==typeof globalThis&&!!globalThis&&globalThis.Array===Array}},92770:function(t,e,r){"use strict";var n=r(18546);t.exports=function(t){var e=typeof t;if("string"===e){var r=t;if(0==(t=+t)&&n(r))return!1}else if("number"!==e)return!1;return t-t<1}},30120:function(t,e,r){var n=r(90660);t.exports=function(t,e,r){if(!t)throw new TypeError("must specify data as first parameter");if(r=0|+(r||0),Array.isArray(t)&&t[0]&&"number"==typeof t[0][0]){var i,a,o,s,l=t[0].length,u=t.length*l;e&&"string"!=typeof e||(e=new(n(e||"float32"))(u+r));var c=e.length-r;if(u!==c)throw new Error("source length "+u+" ("+l+"x"+t.length+") does not match destination length "+c);for(i=0,o=r;i<t.length;i++)for(a=0;a<l;a++)e[o++]=null===t[i][a]?NaN:t[i][a]}else if(e&&"string"!=typeof e)e.set(t,r);else{var f=n(e||"float32");if(Array.isArray(t)||"array"===e)for(i=0,o=r,s=(e=new f(t.length+r)).length;o<s;o++,i++)e[o]=null===t[i]?NaN:t[i];else 0===r?e=new f(t):(e=new f(t.length+r)).set(t,r)}return e}},68016:function(t,e,r){"use strict";var n=r(53313),i=[32,126];t.exports=function(t){var e=(t=t||{}).shape?t.shape:t.canvas?[t.canvas.width,t.canvas.height]:[512,512],r=t.canvas||document.createElement("canvas"),a=t.font,o="number"==typeof t.step?[t.step,t.step]:t.step||[32,32],s=t.chars||i;if(a&&"string"!=typeof a&&(a=n(a)),Array.isArray(s)){if(2===s.length&&"number"==typeof s[0]&&"number"==typeof s[1]){for(var l=[],u=s[0],c=0;u<=s[1];u++)l[c++]=String.fromCharCode(u);s=l}}else s=String(s).split("");e=e.slice(),r.width=e[0],r.height=e[1];var f=r.getContext("2d");f.fillStyle="#000",f.fillRect(0,0,r.width,r.height),f.font=a,f.textAlign="center",f.textBaseline="middle",f.fillStyle="#fff";var h=o[0]/2,p=o[1]/2;for(u=0;u<s.length;u++)f.fillText(s[u],h,p),(h+=o[0])>e[0]-o[0]/2&&(h=o[0]/2,p+=o[1]);return r}},32879:function(t){"use strict";function e(t,a){a||(a={}),("string"==typeof t||Array.isArray(t))&&(a.family=t);var o=Array.isArray(a.family)?a.family.join(", "):a.family;if(!o)throw Error("`family` must be defined");var s=a.size||a.fontSize||a.em||48,l=a.weight||a.fontWeight||"",u=(t=[a.style||a.fontStyle||"",l,s].join(" ")+"px "+o,a.origin||"top");if(e.cache[o]&&s<=e.cache[o].em)return r(e.cache[o],u);var c=a.canvas||e.canvas,f=c.getContext("2d"),h={upper:void 0!==a.upper?a.upper:"H",lower:void 0!==a.lower?a.lower:"x",descent:void 0!==a.descent?a.descent:"p",ascent:void 0!==a.ascent?a.ascent:"h",tittle:void 0!==a.tittle?a.tittle:"i",overshoot:void 0!==a.overshoot?a.overshoot:"O"},p=Math.ceil(1.5*s);c.height=p,c.width=.5*p,f.font=t;var d="H",v={top:0};f.clearRect(0,0,p,p),f.textBaseline="top",f.fillStyle="black",f.fillText(d,0,0);var g=n(f.getImageData(0,0,p,p));f.clearRect(0,0,p,p),f.textBaseline="bottom",f.fillText(d,0,p);var y=n(f.getImageData(0,0,p,p));v.lineHeight=v.bottom=p-y+g,f.clearRect(0,0,p,p),f.textBaseline="alphabetic",f.fillText(d,0,p);var m=p-n(f.getImageData(0,0,p,p))-1+g;v.baseline=v.alphabetic=m,f.clearRect(0,0,p,p),f.textBaseline="middle",f.fillText(d,0,.5*p);var x=n(f.getImageData(0,0,p,p));v.median=v.middle=p-x-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline="hanging",f.fillText(d,0,.5*p);var b=n(f.getImageData(0,0,p,p));v.hanging=p-b-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline="ideographic",f.fillText(d,0,p);var _=n(f.getImageData(0,0,p,p));if(v.ideographic=p-_-1+g,h.upper&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.upper,0,0),v.upper=n(f.getImageData(0,0,p,p)),v.capHeight=v.baseline-v.upper),h.lower&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.lower,0,0),v.lower=n(f.getImageData(0,0,p,p)),v.xHeight=v.baseline-v.lower),h.tittle&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.tittle,0,0),v.tittle=n(f.getImageData(0,0,p,p))),h.ascent&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.ascent,0,0),v.ascent=n(f.getImageData(0,0,p,p))),h.descent&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.descent,0,0),v.descent=i(f.getImageData(0,0,p,p))),h.overshoot){f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.overshoot,0,0);var w=i(f.getImageData(0,0,p,p));v.overshoot=w-m}for(var T in v)v[T]/=s;return v.em=s,e.cache[o]=v,r(v,u)}function r(t,e){var r={};for(var n in"string"==typeof e&&(e=t[e]),t)"em"!==n&&(r[n]=t[n]-e);return r}function n(t){for(var e=t.height,r=t.data,n=3;n<r.length;n+=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}function i(t){for(var e=t.height,r=t.data,n=r.length-1;n>0;n-=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}t.exports=e,e.canvas=document.createElement("canvas"),e.cache={}},86165:function(t){var e=Object.prototype.hasOwnProperty,r=Object.prototype.toString;t.exports=function(t,n,i){if("[object Function]"!==r.call(n))throw new TypeError("iterator must be a function");var a=t.length;if(a===+a)for(var o=0;o<a;o++)n.call(i,t[o],o,t);else for(var s in t)e.call(t,s)&&n.call(i,t[s],s,t)}},73047:function(t){"use strict";var e="Function.prototype.bind called on incompatible ",r=Array.prototype.slice,n=Object.prototype.toString,i="[object Function]";t.exports=function(t){var a=this;if("function"!=typeof a||n.call(a)!==i)throw new TypeError(e+a);for(var o,s=r.call(arguments,1),l=function(){if(this instanceof o){var e=a.apply(this,s.concat(r.call(arguments)));return Object(e)===e?e:this}return a.apply(t,s.concat(r.call(arguments)))},u=Math.max(0,a.length-s.length),c=[],f=0;f<u;f++)c.push("$"+f);if(o=Function("binder","return function ("+c.join(",")+"){ return binder.apply(this,arguments); }")(l),a.prototype){var h=function(){};h.prototype=a.prototype,o.prototype=new h,h.prototype=null}return o}},77575:function(t,e,r){"use strict";var n=r(73047);t.exports=Function.prototype.bind||n},86249:function(t){t.exports=function(t,e){if("string"!=typeof t)throw new TypeError("must specify type string");if(e=e||{},"undefined"==typeof document&&!e.canvas)return null;var r=e.canvas||document.createElement("canvas");"number"==typeof e.width&&(r.width=e.width),"number"==typeof e.height&&(r.height=e.height);var n,i=e;try{var a=[t];0===t.indexOf("webgl")&&a.push("experimental-"+t);for(var o=0;o<a.length;o++)if(n=r.getContext(a[o],i))return n}catch(t){n=null}return n||null}},68318:function(t,e,r){"use strict";var n,i=SyntaxError,a=Function,o=TypeError,s=function(t){try{return Function('"use strict"; return ('+t+").constructor;")()}catch(t){}},l=Object.getOwnPropertyDescriptor;if(l)try{l({},"")}catch(t){l=null}var u=function(){throw new o},c=l?function(){try{return u}catch(t){try{return l(arguments,"callee").get}catch(t){return u}}}():u,f=r(57877)(),h=Object.getPrototypeOf||function(t){return t.__proto__},p=s("async function* () {}"),d=p?p.prototype:n,v=d?d.prototype:n,g="undefined"==typeof Uint8Array?n:h(Uint8Array),y={"%AggregateError%":"undefined"==typeof AggregateError?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayIteratorPrototype%":f?h([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":s("async function () {}"),"%AsyncGenerator%":d,"%AsyncGeneratorFunction%":p,"%AsyncIteratorPrototype%":v?h(v):n,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%BigInt%":"undefined"==typeof BigInt?n:BigInt,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?n:FinalizationRegistry,"%Function%":a,"%GeneratorFunction%":s("function* () {}"),"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":f?h(h([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&f?h((new Map)[Symbol.iterator]()):n,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&f?h((new Set)[Symbol.iterator]()):n,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":f?h(""[Symbol.iterator]()):n,"%Symbol%":f?Symbol:n,"%SyntaxError%":i,"%ThrowTypeError%":c,"%TypedArray%":g,"%TypeError%":o,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?n:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet},m={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},x=r(77575),b=r(35065),_=x.call(Function.call,Array.prototype.concat),w=x.call(Function.apply,Array.prototype.splice),T=x.call(Function.call,String.prototype.replace),k=x.call(Function.call,String.prototype.slice),A=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,M=/\\(\\)?/g,S=function(t){var e=k(t,0,1),r=k(t,-1);if("%"===e&&"%"!==r)throw new i("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==e)throw new i("invalid intrinsic syntax, expected opening `%`");var n=[];return T(t,A,(function(t,e,r,i){n[n.length]=r?T(i,M,"$1"):e||t})),n},E=function(t,e){var r,n=t;if(b(m,n)&&(n="%"+(r=m[n])[0]+"%"),b(y,n)){var a=y[n];if(void 0===a&&!e)throw new o("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:r,name:n,value:a}}throw new i("intrinsic "+t+" does not exist!")};t.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new o("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new o('"allowMissing" argument must be a boolean');var r=S(t),n=r.length>0?r[0]:"",a=E("%"+n+"%",e),s=a.name,u=a.value,c=!1,f=a.alias;f&&(n=f[0],w(r,_([0,1],f)));for(var h=1,p=!0;h<r.length;h+=1){var d=r[h],v=k(d,0,1),g=k(d,-1);if(('"'===v||"'"===v||"`"===v||'"'===g||"'"===g||"`"===g)&&v!==g)throw new i("property names with quotes must have matching quotes");if("constructor"!==d&&p||(c=!0),b(y,s="%"+(n+="."+d)+"%"))u=y[s];else if(null!=u){if(!(d in u)){if(!e)throw new o("base intrinsic for "+t+" exists, but the property is not available.");return}if(l&&h+1>=r.length){var m=l(u,d);u=(p=!!m)&&"get"in m&&!("originalValue"in m.get)?m.get:u[d]}else p=b(u,d),u=u[d];p&&!c&&(y[s]=u)}}return u}},85400:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],u=e[7],c=e[8],f=e[9],h=e[10],p=e[11],d=e[12],v=e[13],g=e[14],y=e[15];return t[0]=s*(h*y-p*g)-f*(l*y-u*g)+v*(l*p-u*h),t[1]=-(n*(h*y-p*g)-f*(i*y-a*g)+v*(i*p-a*h)),t[2]=n*(l*y-u*g)-s*(i*y-a*g)+v*(i*u-a*l),t[3]=-(n*(l*p-u*h)-s*(i*p-a*h)+f*(i*u-a*l)),t[4]=-(o*(h*y-p*g)-c*(l*y-u*g)+d*(l*p-u*h)),t[5]=r*(h*y-p*g)-c*(i*y-a*g)+d*(i*p-a*h),t[6]=-(r*(l*y-u*g)-o*(i*y-a*g)+d*(i*u-a*l)),t[7]=r*(l*p-u*h)-o*(i*p-a*h)+c*(i*u-a*l),t[8]=o*(f*y-p*v)-c*(s*y-u*v)+d*(s*p-u*f),t[9]=-(r*(f*y-p*v)-c*(n*y-a*v)+d*(n*p-a*f)),t[10]=r*(s*y-u*v)-o*(n*y-a*v)+d*(n*u-a*s),t[11]=-(r*(s*p-u*f)-o*(n*p-a*f)+c*(n*u-a*s)),t[12]=-(o*(f*g-h*v)-c*(s*g-l*v)+d*(s*h-l*f)),t[13]=r*(f*g-h*v)-c*(n*g-i*v)+d*(n*h-i*f),t[14]=-(r*(s*g-l*v)-o*(n*g-i*v)+d*(n*l-i*s)),t[15]=r*(s*h-l*f)-o*(n*h-i*f)+c*(n*l-i*s),t}},42331:function(t){t.exports=function(t){var e=new Float32Array(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}},31042:function(t){t.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}},11902:function(t){t.exports=function(){var t=new Float32Array(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},89887:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3],a=t[4],o=t[5],s=t[6],l=t[7],u=t[8],c=t[9],f=t[10],h=t[11],p=t[12],d=t[13],v=t[14],g=t[15];return(e*o-r*a)*(f*g-h*v)-(e*s-n*a)*(c*g-h*d)+(e*l-i*a)*(c*v-f*d)+(r*s-n*o)*(u*g-h*p)-(r*l-i*o)*(u*v-f*p)+(n*l-i*s)*(u*d-c*p)}},27812:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r+r,s=n+n,l=i+i,u=r*o,c=n*o,f=n*s,h=i*o,p=i*s,d=i*l,v=a*o,g=a*s,y=a*l;return t[0]=1-f-d,t[1]=c+y,t[2]=h-g,t[3]=0,t[4]=c-y,t[5]=1-u-d,t[6]=p+v,t[7]=0,t[8]=h+g,t[9]=p-v,t[10]=1-u-f,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},34045:function(t){t.exports=function(t,e,r){var n,i,a,o=r[0],s=r[1],l=r[2],u=Math.sqrt(o*o+s*s+l*l);return Math.abs(u)<1e-6?null:(o*=u=1/u,s*=u,l*=u,n=Math.sin(e),a=1-(i=Math.cos(e)),t[0]=o*o*a+i,t[1]=s*o*a+l*n,t[2]=l*o*a-s*n,t[3]=0,t[4]=o*s*a-l*n,t[5]=s*s*a+i,t[6]=l*s*a+o*n,t[7]=0,t[8]=o*l*a+s*n,t[9]=s*l*a-o*n,t[10]=l*l*a+i,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}},45973:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=n+n,l=i+i,u=a+a,c=n*s,f=n*l,h=n*u,p=i*l,d=i*u,v=a*u,g=o*s,y=o*l,m=o*u;return t[0]=1-(p+v),t[1]=f+m,t[2]=h-y,t[3]=0,t[4]=f-m,t[5]=1-(c+v),t[6]=d+g,t[7]=0,t[8]=h+y,t[9]=d-g,t[10]=1-(c+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}},81472:function(t){t.exports=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},14669:function(t){t.exports=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}},75262:function(t){t.exports=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},331:function(t){t.exports=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},11049:function(t){t.exports=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},75195:function(t){t.exports=function(t,e,r,n,i,a,o){var s=1/(r-e),l=1/(i-n),u=1/(a-o);return t[0]=2*a*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*a*l,t[6]=0,t[7]=0,t[8]=(r+e)*s,t[9]=(i+n)*l,t[10]=(o+a)*u,t[11]=-1,t[12]=0,t[13]=0,t[14]=o*a*2*u,t[15]=0,t}},71551:function(t){t.exports=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},79576:function(t,e,r){t.exports={create:r(11902),clone:r(42331),copy:r(31042),identity:r(71551),transpose:r(88654),invert:r(95874),adjoint:r(85400),determinant:r(89887),multiply:r(91362),translate:r(31283),scale:r(10789),rotate:r(65074),rotateX:r(35545),rotateY:r(94918),rotateZ:r(15692),fromRotation:r(34045),fromRotationTranslation:r(45973),fromScaling:r(81472),fromTranslation:r(14669),fromXRotation:r(75262),fromYRotation:r(331),fromZRotation:r(11049),fromQuat:r(27812),frustum:r(75195),perspective:r(7864),perspectiveFromFieldOfView:r(35279),ortho:r(60378),lookAt:r(65551),str:r(6726)}},95874:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],u=e[7],c=e[8],f=e[9],h=e[10],p=e[11],d=e[12],v=e[13],g=e[14],y=e[15],m=r*s-n*o,x=r*l-i*o,b=r*u-a*o,_=n*l-i*s,w=n*u-a*s,T=i*u-a*l,k=c*v-f*d,A=c*g-h*d,M=c*y-p*d,S=f*g-h*v,E=f*y-p*v,L=h*y-p*g,C=m*L-x*E+b*S+_*M-w*A+T*k;return C?(C=1/C,t[0]=(s*L-l*E+u*S)*C,t[1]=(i*E-n*L-a*S)*C,t[2]=(v*T-g*w+y*_)*C,t[3]=(h*w-f*T-p*_)*C,t[4]=(l*M-o*L-u*A)*C,t[5]=(r*L-i*M+a*A)*C,t[6]=(g*b-d*T-y*x)*C,t[7]=(c*T-h*b+p*x)*C,t[8]=(o*E-s*M+u*k)*C,t[9]=(n*M-r*E-a*k)*C,t[10]=(d*w-v*b+y*m)*C,t[11]=(f*b-c*w-p*m)*C,t[12]=(s*A-o*S-l*k)*C,t[13]=(r*S-n*A+i*k)*C,t[14]=(v*x-d*_-g*m)*C,t[15]=(c*_-f*x+h*m)*C,t):null}},65551:function(t,e,r){var n=r(71551);t.exports=function(t,e,r,i){var a,o,s,l,u,c,f,h,p,d,v=e[0],g=e[1],y=e[2],m=i[0],x=i[1],b=i[2],_=r[0],w=r[1],T=r[2];return Math.abs(v-_)<1e-6&&Math.abs(g-w)<1e-6&&Math.abs(y-T)<1e-6?n(t):(f=v-_,h=g-w,p=y-T,a=x*(p*=d=1/Math.sqrt(f*f+h*h+p*p))-b*(h*=d),o=b*(f*=d)-m*p,s=m*h-x*f,(d=Math.sqrt(a*a+o*o+s*s))?(a*=d=1/d,o*=d,s*=d):(a=0,o=0,s=0),l=h*s-p*o,u=p*a-f*s,c=f*o-h*a,(d=Math.sqrt(l*l+u*u+c*c))?(l*=d=1/d,u*=d,c*=d):(l=0,u=0,c=0),t[0]=a,t[1]=l,t[2]=f,t[3]=0,t[4]=o,t[5]=u,t[6]=h,t[7]=0,t[8]=s,t[9]=c,t[10]=p,t[11]=0,t[12]=-(a*v+o*g+s*y),t[13]=-(l*v+u*g+c*y),t[14]=-(f*v+h*g+p*y),t[15]=1,t)}},91362:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],f=e[8],h=e[9],p=e[10],d=e[11],v=e[12],g=e[13],y=e[14],m=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*v,t[1]=x*i+b*l+_*h+w*g,t[2]=x*a+b*u+_*p+w*y,t[3]=x*o+b*c+_*d+w*m,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*f+w*v,t[5]=x*i+b*l+_*h+w*g,t[6]=x*a+b*u+_*p+w*y,t[7]=x*o+b*c+_*d+w*m,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*f+w*v,t[9]=x*i+b*l+_*h+w*g,t[10]=x*a+b*u+_*p+w*y,t[11]=x*o+b*c+_*d+w*m,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*f+w*v,t[13]=x*i+b*l+_*h+w*g,t[14]=x*a+b*u+_*p+w*y,t[15]=x*o+b*c+_*d+w*m,t}},60378:function(t){t.exports=function(t,e,r,n,i,a,o){var s=1/(e-r),l=1/(n-i),u=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*l,t[14]=(o+a)*u,t[15]=1,t}},7864:function(t){t.exports=function(t,e,r,n,i){var a=1/Math.tan(e/2),o=1/(n-i);return t[0]=a/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(i+n)*o,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*i*n*o,t[15]=0,t}},35279:function(t){t.exports=function(t,e,r,n){var i=Math.tan(e.upDegrees*Math.PI/180),a=Math.tan(e.downDegrees*Math.PI/180),o=Math.tan(e.leftDegrees*Math.PI/180),s=Math.tan(e.rightDegrees*Math.PI/180),l=2/(o+s),u=2/(i+a);return t[0]=l,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=u,t[6]=0,t[7]=0,t[8]=-(o-s)*l*.5,t[9]=(i-a)*u*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}},65074:function(t){t.exports=function(t,e,r,n){var i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S,E=n[0],L=n[1],C=n[2],P=Math.sqrt(E*E+L*L+C*C);return Math.abs(P)<1e-6?null:(E*=P=1/P,L*=P,C*=P,i=Math.sin(r),o=1-(a=Math.cos(r)),s=e[0],l=e[1],u=e[2],c=e[3],f=e[4],h=e[5],p=e[6],d=e[7],v=e[8],g=e[9],y=e[10],m=e[11],x=E*E*o+a,b=L*E*o+C*i,_=C*E*o-L*i,w=E*L*o-C*i,T=L*L*o+a,k=C*L*o+E*i,A=E*C*o+L*i,M=L*C*o-E*i,S=C*C*o+a,t[0]=s*x+f*b+v*_,t[1]=l*x+h*b+g*_,t[2]=u*x+p*b+y*_,t[3]=c*x+d*b+m*_,t[4]=s*w+f*T+v*k,t[5]=l*w+h*T+g*k,t[6]=u*w+p*T+y*k,t[7]=c*w+d*T+m*k,t[8]=s*A+f*M+v*S,t[9]=l*A+h*M+g*S,t[10]=u*A+p*M+y*S,t[11]=c*A+d*M+m*S,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}},35545:function(t){t.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[4],o=e[5],s=e[6],l=e[7],u=e[8],c=e[9],f=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=a*i+u*n,t[5]=o*i+c*n,t[6]=s*i+f*n,t[7]=l*i+h*n,t[8]=u*i-a*n,t[9]=c*i-o*n,t[10]=f*i-s*n,t[11]=h*i-l*n,t}},94918:function(t){t.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],u=e[8],c=e[9],f=e[10],h=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i-u*n,t[1]=o*i-c*n,t[2]=s*i-f*n,t[3]=l*i-h*n,t[8]=a*n+u*i,t[9]=o*n+c*i,t[10]=s*n+f*i,t[11]=l*n+h*i,t}},15692:function(t){t.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],u=e[4],c=e[5],f=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i+u*n,t[1]=o*i+c*n,t[2]=s*i+f*n,t[3]=l*i+h*n,t[4]=u*i-a*n,t[5]=c*i-o*n,t[6]=f*i-s*n,t[7]=h*i-l*n,t}},10789:function(t){t.exports=function(t,e,r){var n=r[0],i=r[1],a=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}},6726:function(t){t.exports=function(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"}},31283:function(t){t.exports=function(t,e,r){var n,i,a,o,s,l,u,c,f,h,p,d,v=r[0],g=r[1],y=r[2];return e===t?(t[12]=e[0]*v+e[4]*g+e[8]*y+e[12],t[13]=e[1]*v+e[5]*g+e[9]*y+e[13],t[14]=e[2]*v+e[6]*g+e[10]*y+e[14],t[15]=e[3]*v+e[7]*g+e[11]*y+e[15]):(n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],f=e[8],h=e[9],p=e[10],d=e[11],t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t[6]=u,t[7]=c,t[8]=f,t[9]=h,t[10]=p,t[11]=d,t[12]=n*v+s*g+f*y+e[12],t[13]=i*v+l*g+h*y+e[13],t[14]=a*v+u*g+p*y+e[14],t[15]=o*v+c*g+d*y+e[15]),t}},88654:function(t){t.exports=function(t,e){if(t===e){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],s=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[11]=e[14],t[12]=i,t[13]=o,t[14]=s}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}},42505:function(t,e,r){"use strict";var n=r(72791),i=r(71299),a=r(98580),o=r(12018),s=r(83522),l=r(25075),u=r(68016),c=r(58404),f=r(18863),h=r(10973),p=r(25677),d=r(75686),v=r(53545),g=r(56131),y=r(32879),m=r(30120),x=r(13547).nextPow2,b=new s,_=!1;if(document.body){var w=document.body.appendChild(document.createElement("div"));w.style.font="italic small-caps bold condensed 16px/2 cursive",getComputedStyle(w).fontStretch&&(_=!0),document.body.removeChild(w)}var T=function(t){!function(t){return"function"==typeof t&&t._gl&&t.prop&&t.texture&&t.buffer}(t)?this.gl=o(t):(t={regl:t},this.gl=t.regl._gl),this.shader=b.get(this.gl),this.shader?this.regl=this.shader.regl:this.regl=t.regl||a({gl:this.gl}),this.charBuffer=this.regl.buffer({type:"uint8",usage:"stream"}),this.sizeBuffer=this.regl.buffer({type:"float",usage:"stream"}),this.shader||(this.shader=this.createShader(),b.set(this.gl,this.shader)),this.batch=[],this.fontSize=[],this.font=[],this.fontAtlas=[],this.draw=this.shader.draw.bind(this),this.render=function(){this.regl._refresh(),this.draw(this.batch)},this.canvas=this.gl.canvas,this.update(h(t)?t:{})};T.prototype.createShader=function(){var t=this.regl,e=t({blend:{enable:!0,color:[0,0,0,1],func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},stencil:{enable:!1},depth:{enable:!1},count:t.prop("count"),offset:t.prop("offset"),attributes:{charOffset:{offset:4,stride:8,buffer:t.this("sizeBuffer")},width:{offset:0,stride:8,buffer:t.this("sizeBuffer")},char:t.this("charBuffer"),position:t.this("position")},uniforms:{atlasSize:function(t,e){return[e.atlas.width,e.atlas.height]},atlasDim:function(t,e){return[e.atlas.cols,e.atlas.rows]},atlas:function(t,e){return e.atlas.texture},charStep:function(t,e){return e.atlas.step},em:function(t,e){return e.atlas.em},color:t.prop("color"),opacity:t.prop("opacity"),viewport:t.this("viewportArray"),scale:t.this("scale"),align:t.prop("align"),baseline:t.prop("baseline"),translate:t.this("translate"),positionOffset:t.prop("positionOffset")},primitive:"points",viewport:t.this("viewport"),vert:"\n\t\t\tprecision highp float;\n\t\t\tattribute float width, charOffset, char;\n\t\t\tattribute vec2 position;\n\t\t\tuniform float fontSize, charStep, em, align, baseline;\n\t\t\tuniform vec4 viewport;\n\t\t\tuniform vec4 color;\n\t\t\tuniform vec2 atlasSize, atlasDim, scale, translate, positionOffset;\n\t\t\tvarying vec2 charCoord, charId;\n\t\t\tvarying float charWidth;\n\t\t\tvarying vec4 fontColor;\n\t\t\tvoid main () {\n\t\t\t\tvec2 offset = floor(em * (vec2(align + charOffset, baseline)\n\t\t\t\t\t+ vec2(positionOffset.x, -positionOffset.y)))\n\t\t\t\t\t/ (viewport.zw * scale.xy);\n\n\t\t\t\tvec2 position = (position + translate) * scale;\n\t\t\t\tposition += offset * scale;\n\n\t\t\t\tcharCoord = position * viewport.zw + viewport.xy;\n\n\t\t\t\tgl_Position = vec4(position * 2. - 1., 0, 1);\n\n\t\t\t\tgl_PointSize = charStep;\n\n\t\t\t\tcharId.x = mod(char, atlasDim.x);\n\t\t\t\tcharId.y = floor(char / atlasDim.x);\n\n\t\t\t\tcharWidth = width * em;\n\n\t\t\t\tfontColor = color / 255.;\n\t\t\t}",frag:"\n\t\t\tprecision highp float;\n\t\t\tuniform float fontSize, charStep, opacity;\n\t\t\tuniform vec2 atlasSize;\n\t\t\tuniform vec4 viewport;\n\t\t\tuniform sampler2D atlas;\n\t\t\tvarying vec4 fontColor;\n\t\t\tvarying vec2 charCoord, charId;\n\t\t\tvarying float charWidth;\n\n\t\t\tfloat lightness(vec4 color) {\n\t\t\t\treturn color.r * 0.299 + color.g * 0.587 + color.b * 0.114;\n\t\t\t}\n\n\t\t\tvoid main () {\n\t\t\t\tvec2 uv = gl_FragCoord.xy - charCoord + charStep * .5;\n\t\t\t\tfloat halfCharStep = floor(charStep * .5 + .5);\n\n\t\t\t\t// invert y and shift by 1px (FF expecially needs that)\n\t\t\t\tuv.y = charStep - uv.y;\n\n\t\t\t\t// ignore points outside of character bounding box\n\t\t\t\tfloat halfCharWidth = ceil(charWidth * .5);\n\t\t\t\tif (floor(uv.x) > halfCharStep + halfCharWidth ||\n\t\t\t\t\tfloor(uv.x) < halfCharStep - halfCharWidth) return;\n\n\t\t\t\tuv += charId * charStep;\n\t\t\t\tuv = uv / atlasSize;\n\n\t\t\t\tvec4 color = fontColor;\n\t\t\t\tvec4 mask = texture2D(atlas, uv);\n\n\t\t\t\tfloat maskY = lightness(mask);\n\t\t\t\t// float colorY = lightness(color);\n\t\t\t\tcolor.a *= maskY;\n\t\t\t\tcolor.a *= opacity;\n\n\t\t\t\t// color.a += .1;\n\n\t\t\t\t// antialiasing, see yiq color space y-channel formula\n\t\t\t\t// color.rgb += (1. - color.rgb) * (1. - mask.rgb);\n\n\t\t\t\tgl_FragColor = color;\n\t\t\t}"});return{regl:t,draw:e,atlas:{}}},T.prototype.update=function(t){var e=this;if("string"==typeof t)t={text:t};else if(!t)return;null!=(t=i(t,{position:"position positions coord coords coordinates",font:"font fontFace fontface typeface cssFont css-font family fontFamily",fontSize:"fontSize fontsize size font-size",text:"text texts chars characters value values symbols",align:"align alignment textAlign textbaseline",baseline:"baseline textBaseline textbaseline",direction:"dir direction textDirection",color:"color colour fill fill-color fillColor textColor textcolor",kerning:"kerning kern",range:"range dataBox",viewport:"vp viewport viewBox viewbox viewPort",opacity:"opacity alpha transparency visible visibility opaque",offset:"offset positionOffset padding shift indent indentation"},!0)).opacity&&(Array.isArray(t.opacity)?this.opacity=t.opacity.map((function(t){return parseFloat(t)})):this.opacity=parseFloat(t.opacity)),null!=t.viewport&&(this.viewport=f(t.viewport),this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null==this.viewport&&(this.viewport={x:0,y:0,width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight},this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null!=t.kerning&&(this.kerning=t.kerning),null!=t.offset&&("number"==typeof t.offset&&(t.offset=[t.offset,0]),this.positionOffset=m(t.offset)),t.direction&&(this.direction=t.direction),t.range&&(this.range=t.range,this.scale=[1/(t.range[2]-t.range[0]),1/(t.range[3]-t.range[1])],this.translate=[-t.range[0],-t.range[1]]),t.scale&&(this.scale=t.scale),t.translate&&(this.translate=t.translate),this.scale||(this.scale=[1/this.viewport.width,1/this.viewport.height]),this.translate||(this.translate=[0,0]),this.font.length||t.font||(t.font=T.baseFontSize+"px sans-serif");var r,a=!1,o=!1;if(t.font&&(Array.isArray(t.font)?t.font:[t.font]).forEach((function(t,r){if("string"==typeof t)try{t=n.parse(t)}catch(e){t=n.parse(T.baseFontSize+"px "+t)}else t=n.parse(n.stringify(t));var i=n.stringify({size:T.baseFontSize,family:t.family,stretch:_?t.stretch:void 0,variant:t.variant,weight:t.weight,style:t.style}),s=p(t.size),l=Math.round(s[0]*d(s[1]));if(l!==e.fontSize[r]&&(o=!0,e.fontSize[r]=l),!(e.font[r]&&i==e.font[r].baseString||(a=!0,e.font[r]=T.fonts[i],e.font[r]))){var u=t.family.join(", "),c=[t.style];t.style!=t.variant&&c.push(t.variant),t.variant!=t.weight&&c.push(t.weight),_&&t.weight!=t.stretch&&c.push(t.stretch),e.font[r]={baseString:i,family:u,weight:t.weight,stretch:t.stretch,style:t.style,variant:t.variant,width:{},kerning:{},metrics:y(u,{origin:"top",fontSize:T.baseFontSize,fontStyle:c.join(" ")})},T.fonts[i]=e.font[r]}})),(a||o)&&this.font.forEach((function(r,i){var a=n.stringify({size:e.fontSize[i],family:r.family,stretch:_?r.stretch:void 0,variant:r.variant,weight:r.weight,style:r.style});if(e.fontAtlas[i]=e.shader.atlas[a],!e.fontAtlas[i]){var o=r.metrics;e.shader.atlas[a]=e.fontAtlas[i]={fontString:a,step:2*Math.ceil(e.fontSize[i]*o.bottom*.5),em:e.fontSize[i],cols:0,rows:0,height:0,width:0,chars:[],ids:{},texture:e.regl.texture()}}null==t.text&&(t.text=e.text)})),"string"==typeof t.text&&t.position&&t.position.length>2){for(var s=Array(.5*t.position.length),h=0;h<s.length;h++)s[h]=t.text;t.text=s}if(null!=t.text||a){if(this.textOffsets=[0],Array.isArray(t.text)){this.count=t.text[0].length,this.counts=[this.count];for(var b=1;b<t.text.length;b++)this.textOffsets[b]=this.textOffsets[b-1]+t.text[b-1].length,this.count+=t.text[b].length,this.counts.push(t.text[b].length);this.text=t.text.join("")}else this.text=t.text,this.count=this.text.length,this.counts=[this.count];r=[],this.font.forEach((function(t,n){T.atlasContext.font=t.baseString;for(var i=e.fontAtlas[n],a=0;a<e.text.length;a++){var o=e.text.charAt(a);if(null==i.ids[o]&&(i.ids[o]=i.chars.length,i.chars.push(o),r.push(o)),null==t.width[o]&&(t.width[o]=T.atlasContext.measureText(o).width/T.baseFontSize,e.kerning)){var s=[];for(var l in t.width)s.push(l+o,o+l);g(t.kerning,v(t.family,{pairs:s}))}}}))}if(t.position)if(t.position.length>2){for(var w=!t.position[0].length,k=c.mallocFloat(2*this.count),A=0,M=0;A<this.counts.length;A++){var S=this.counts[A];if(w)for(var E=0;E<S;E++)k[M++]=t.position[2*A],k[M++]=t.position[2*A+1];else for(var L=0;L<S;L++)k[M++]=t.position[A][0],k[M++]=t.position[A][1]}this.position.call?this.position({type:"float",data:k}):this.position=this.regl.buffer({type:"float",data:k}),c.freeFloat(k)}else this.position.destroy&&this.position.destroy(),this.position={constant:t.position};if(t.text||a){var C=c.mallocUint8(this.count),P=c.mallocFloat(2*this.count);this.textWidth=[];for(var O=0,I=0;O<this.counts.length;O++){for(var D=this.counts[O],z=this.font[O]||this.font[0],R=this.fontAtlas[O]||this.fontAtlas[0],F=0;F<D;F++){var B=this.text.charAt(I),N=this.text.charAt(I-1);if(C[I]=R.ids[B],P[2*I]=z.width[B],F){var j=P[2*I-2],U=P[2*I],V=P[2*I-1]+.5*j+.5*U;if(this.kerning){var H=z.kerning[N+B];H&&(V+=.001*H)}P[2*I+1]=V}else P[2*I+1]=.5*P[2*I];I++}this.textWidth.push(P.length?.5*P[2*I-2]+P[2*I-1]:0)}t.align||(t.align=this.align),this.charBuffer({data:C,type:"uint8",usage:"stream"}),this.sizeBuffer({data:P,type:"float",usage:"stream"}),c.freeUint8(C),c.freeFloat(P),r.length&&this.font.forEach((function(t,r){var n=e.fontAtlas[r],i=n.step,a=Math.floor(T.maxAtlasSize/i),o=Math.min(a,n.chars.length),s=Math.ceil(n.chars.length/o),l=x(o*i),c=x(s*i);n.width=l,n.height=c,n.rows=s,n.cols=o,n.em&&n.texture({data:u({canvas:T.atlasCanvas,font:n.fontString,chars:n.chars,shape:[l,c],step:[i,i]})})}))}if(t.align&&(this.align=t.align,this.alignOffset=this.textWidth.map((function(t,r){var n=Array.isArray(e.align)?e.align.length>1?e.align[r]:e.align[0]:e.align;if("number"==typeof n)return n;switch(n){case"right":case"end":return-t;case"center":case"centre":case"middle":return.5*-t}return 0}))),null==this.baseline&&null==t.baseline&&(t.baseline=0),null!=t.baseline&&(this.baseline=t.baseline,Array.isArray(this.baseline)||(this.baseline=[this.baseline]),this.baselineOffset=this.baseline.map((function(t,r){var n=(e.font[r]||e.font[0]).metrics,i=0;return i+=.5*n.bottom,-1*(i+="number"==typeof t?t-n.baseline:-n[t])}))),null!=t.color)if(t.color||(t.color="transparent"),"string"!=typeof t.color&&isNaN(t.color)){var q;if("number"==typeof t.color[0]&&t.color.length>this.counts.length){var G=t.color.length;q=c.mallocUint8(G);for(var Z=(t.color.subarray||t.color.slice).bind(t.color),Y=0;Y<G;Y+=4)q.set(l(Z(Y,Y+4),"uint8"),Y)}else{var W=t.color.length;q=c.mallocUint8(4*W);for(var X=0;X<W;X++)q.set(l(t.color[X]||0,"uint8"),4*X)}this.color=q}else this.color=l(t.color,"uint8");if(t.position||t.text||t.color||t.baseline||t.align||t.font||t.offset||t.opacity)if(this.color.length>4||this.baselineOffset.length>1||this.align&&this.align.length>1||this.fontAtlas.length>1||this.positionOffset.length>2){var J=Math.max(.5*this.position.length||0,.25*this.color.length||0,this.baselineOffset.length||0,this.alignOffset.length||0,this.font.length||0,this.opacity.length||0,.5*this.positionOffset.length||0);this.batch=Array(J);for(var K=0;K<this.batch.length;K++)this.batch[K]={count:this.counts.length>1?this.counts[K]:this.counts[0],offset:this.textOffsets.length>1?this.textOffsets[K]:this.textOffsets[0],color:this.color?this.color.length<=4?this.color:this.color.subarray(4*K,4*K+4):[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[K]:this.opacity,baseline:null!=this.baselineOffset[K]?this.baselineOffset[K]:this.baselineOffset[0],align:this.align?null!=this.alignOffset[K]?this.alignOffset[K]:this.alignOffset[0]:0,atlas:this.fontAtlas[K]||this.fontAtlas[0],positionOffset:this.positionOffset.length>2?this.positionOffset.subarray(2*K,2*K+2):this.positionOffset}}else this.count?this.batch=[{count:this.count,offset:0,color:this.color||[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[0]:this.opacity,baseline:this.baselineOffset[0],align:this.alignOffset?this.alignOffset[0]:0,atlas:this.fontAtlas[0],positionOffset:this.positionOffset}]:this.batch=[]},T.prototype.destroy=function(){},T.prototype.kerning=!0,T.prototype.position={constant:new Float32Array(2)},T.prototype.translate=null,T.prototype.scale=null,T.prototype.font=null,T.prototype.text="",T.prototype.positionOffset=[0,0],T.prototype.opacity=1,T.prototype.color=new Uint8Array([0,0,0,255]),T.prototype.alignOffset=[0,0],T.maxAtlasSize=1024,T.atlasCanvas=document.createElement("canvas"),T.atlasContext=T.atlasCanvas.getContext("2d",{alpha:!1}),T.baseFontSize=64,T.fonts={},t.exports=T},12018:function(t,e,r){"use strict";var n=r(71299);function i(t){if(t.container)if(t.container==document.body)document.body.style.width||(t.canvas.width=t.width||t.pixelRatio*r.g.innerWidth),document.body.style.height||(t.canvas.height=t.height||t.pixelRatio*r.g.innerHeight);else{var e=t.container.getBoundingClientRect();t.canvas.width=t.width||e.right-e.left,t.canvas.height=t.height||e.bottom-e.top}}function a(t){return"function"==typeof t.getContext&&"width"in t&&"height"in t}function o(){var t=document.createElement("canvas");return t.style.position="absolute",t.style.top=0,t.style.left=0,t}t.exports=function(t){var e;if(t?"string"==typeof t&&(t={container:t}):t={},(t=a(t)||"string"==typeof(e=t).nodeName&&"function"==typeof e.appendChild&&"function"==typeof e.getBoundingClientRect?{container:t}:function(t){return"function"==typeof t.drawArrays||"function"==typeof t.drawElements}(t)?{gl:t}:n(t,{container:"container target element el canvas holder parent parentNode wrapper use ref root node",gl:"gl context webgl glContext",attrs:"attributes attrs contextAttributes",pixelRatio:"pixelRatio pxRatio px ratio pxratio pixelratio",width:"w width",height:"h height"},!0)).pixelRatio||(t.pixelRatio=r.g.pixelRatio||1),t.gl)return t.gl;if(t.canvas&&(t.container=t.canvas.parentNode),t.container){if("string"==typeof t.container){var s=document.querySelector(t.container);if(!s)throw Error("Element "+t.container+" is not found");t.container=s}a(t.container)?(t.canvas=t.container,t.container=t.canvas.parentNode):t.canvas||(t.canvas=o(),t.container.appendChild(t.canvas),i(t))}else if(!t.canvas){if("undefined"==typeof document)throw Error("Not DOM environment. Use headless-gl.");t.container=document.body||document.documentElement,t.canvas=o(),t.container.appendChild(t.canvas),i(t)}return t.gl||["webgl","experimental-webgl","webgl-experimental"].some((function(e){try{t.gl=t.canvas.getContext(e,t.attrs)}catch(t){}return t.gl})),t.gl}},56068:function(t){t.exports=function(t){"string"==typeof t&&(t=[t]);for(var e=[].slice.call(arguments,1),r=[],n=0;n<t.length-1;n++)r.push(t[n],e[n]||"");return r.push(t[n]),r.join("")}},57035:function(t,e,r){"use strict";var n,i=r(54404);n="function"==typeof r.g.matchMedia?!r.g.matchMedia("(hover: none)").matches:i,t.exports=n},38520:function(t,e,r){"use strict";var n=r(54404);t.exports=n&&function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(e){t=!1}return t}()},57877:function(t,e,r){"use strict";var n="undefined"!=typeof Symbol&&Symbol,i=r(35638);t.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&i()}},35638:function(t){"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(e in t[e]=42,t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var n=Object.getOwnPropertySymbols(t);if(1!==n.length||n[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},84543:function(t,e,r){"use strict";var n=r(35638);t.exports=function(){return n()&&!!Symbol.toStringTag}},35065:function(t,e,r){"use strict";var n=r(77575);t.exports=n.call(Function.call,Object.prototype.hasOwnProperty)},95280:function(t,e){e.read=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<<s)-1,u=l>>1,c=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=256*a+t[e+f],f+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+t[e+f],f+=h,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=u}return(p?-1:1)*o*Math.pow(2,a-n)},e.write=function(t,e,r,n,i,a){var o,s,l,u=8*a-i-1,c=(1<<u)-1,f=c>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<<i|s,u+=i;u>0;t[r+p]=255&o,p+=d,o/=256,u-=8);t[r+p-d]|=128*v}},42018:function(t){"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},47216:function(t){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,r=Object.prototype.toString,n=function(t){return!(e&&t&&"object"==typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===r.call(t)},i=function(t){return!!n(t)||null!==t&&"object"==typeof t&&"number"==typeof t.length&&t.length>=0&&"[object Array]"!==r.call(t)&&"[object Function]"===r.call(t.callee)},a=function(){return n(arguments)}();n.isLegacyArguments=i,t.exports=a?n:i},54404:function(t){t.exports=!0},65481:function(t,e,r){"use strict";var n,i=Object.prototype.toString,a=Function.prototype.toString,o=/^\s*(?:function)?\*/,s=r(84543)(),l=Object.getPrototypeOf;t.exports=function(t){if("function"!=typeof t)return!1;if(o.test(a.call(t)))return!0;if(!s)return"[object GeneratorFunction]"===i.call(t);if(!l)return!1;if(void 0===n){var e=function(){if(!s)return!1;try{return Function("return function*() {}")()}catch(t){}}();n=!!e&&l(e)}return l(t)===n}},62683:function(t){"use strict";t.exports="undefined"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion))},64274:function(t){"use strict";t.exports=function(t){return t!=t}},15567:function(t,e,r){"use strict";var n=r(68222),i=r(17045),a=r(64274),o=r(14922),s=r(22442),l=n(o(),Number);i(l,{getPolyfill:o,implementation:a,shim:s}),t.exports=l},14922:function(t,e,r){"use strict";var n=r(64274);t.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:n}},22442:function(t,e,r){"use strict";var n=r(17045),i=r(14922);t.exports=function(){var t=i();return n(Number,{isNaN:t},{isNaN:function(){return Number.isNaN!==t}}),t}},64941:function(t){"use strict";t.exports=function(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}},10973:function(t){"use strict";var e=Object.prototype.toString;t.exports=function(t){var r;return"[object Object]"===e.call(t)&&(null===(r=Object.getPrototypeOf(t))||r===Object.getPrototypeOf({}))}},18546:function(t){"use strict";t.exports=function(t){for(var e,r=t.length,n=0;n<r;n++)if(((e=t.charCodeAt(n))<9||e>13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}},89546:function(t){"use strict";t.exports=function(t){return"string"==typeof t&&(t=t.trim(),!!(/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4))}},9187:function(t,e,r){"use strict";var n=r(86165),i=r(72077),a=r(92978),o=a("Object.prototype.toString"),s=r(57877)()&&"symbol"==typeof Symbol.toStringTag,l=i(),u=a("Array.prototype.indexOf",!0)||function(t,e){for(var r=0;r<t.length;r+=1)if(t[r]===e)return r;return-1},c=a("String.prototype.slice"),f={},h=r(67295),p=Object.getPrototypeOf;s&&h&&p&&n(l,(function(t){var e=new r.g[t];if(!(Symbol.toStringTag in e))throw new EvalError("this engine has support for Symbol.toStringTag, but "+t+" does not have the property! Please report this.");var n=p(e),i=h(n,Symbol.toStringTag);if(!i){var a=p(n);i=h(a,Symbol.toStringTag)}f[t]=i.get})),t.exports=function(t){if(!t||"object"!=typeof t)return!1;if(!s){var e=c(o(t),8,-1);return u(l,e)>-1}return!!h&&function(t){var e=!1;return n(f,(function(r,n){if(!e)try{e=r.call(t)===n}catch(t){}})),e}(t)}},44517:function(t){t.exports=function(){"use strict";var t,e,r;function n(n,i){if(t)if(e){var a="var sharedChunk = {}; ("+t+")(sharedChunk); ("+e+")(sharedChunk);",o={};t(o),(r=i(o)).workerUrl=window.URL.createObjectURL(new Blob([a],{type:"text/javascript"}))}else e=i;else t=i}return n(0,(function(t){function e(t,e){return t(e={exports:{}},e.exports),e.exports}var r="1.10.1",n=i;function i(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=r,this.p2y=n}i.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},i.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},i.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},i.prototype.solveCurveX=function(t,e){var r,n,i,a,o;for(void 0===e&&(e=1e-6),i=t,o=0;o<8;o++){if(a=this.sampleCurveX(i)-t,Math.abs(a)<e)return i;var s=this.sampleCurveDerivativeX(i);if(Math.abs(s)<1e-6)break;i-=a/s}if((i=t)<(r=0))return r;if(i>(n=1))return n;for(;r<n;){if(a=this.sampleCurveX(i),Math.abs(a-t)<e)return i;t>a?r=i:n=i,i=.5*(n-r)+r}return i},i.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))};var a=o;function o(t,e){this.x=t,this.y=e}function s(t,e,r,i){var a=new n(t,e,r,i);return function(t){return a.solve(t)}}o.prototype={clone:function(){return new o(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,r=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=r,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=e*this.x-r*this.y,i=r*this.x+e*this.y;return this.x=n,this.y=i,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.x+r*(this.x-e.x)-n*(this.y-e.y),a=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=i,this.y=a,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},o.convert=function(t){return t instanceof o?t:Array.isArray(t)?new o(t[0],t[1]):t};var l=s(.25,.1,.25,1);function u(t,e,r){return Math.min(r,Math.max(e,t))}function c(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function f(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n<i.length;n+=1){var a=i[n];for(var o in a)t[o]=a[o]}return t}var h=1;function p(){return h++}function d(){return function t(e){return e?(e^16*Math.random()>>e/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,t)}()}function v(t){return!!t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)}function g(t,e){t.forEach((function(t){e[t]&&(e[t]=e[t].bind(e))}))}function y(t,e){return-1!==t.indexOf(e,t.length-e.length)}function m(t,e,r){var n={};for(var i in t)n[i]=e.call(r||this,t[i],i,t);return n}function x(t,e,r){var n={};for(var i in t)e.call(r||this,t[i],i,t)&&(n[i]=t[i]);return n}function b(t){return Array.isArray(t)?t.map(b):"object"==typeof t&&t?m(t,b):t}var _={};function w(t){_[t]||("undefined"!=typeof console&&console.warn(t),_[t]=!0)}function T(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function k(t){for(var e=0,r=0,n=t.length,i=n-1,a=void 0,o=void 0;r<n;i=r++)a=t[r],e+=((o=t[i]).x-a.x)*(a.y+o.y);return e}function A(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function M(t){var e={};if(t.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(function(t,r,n,i){var a=n||i;return e[r]=!a||a.toLowerCase(),""})),e["max-age"]){var r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r}return e}var S=null;function E(t){if(null==S){var e=t.navigator?t.navigator.userAgent:null;S=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return S}function L(t){try{var e=self[t];return e.setItem("_mapbox_test_",1),e.removeItem("_mapbox_test_"),!0}catch(t){return!1}}var C,P,O,I,D=self.performance&&self.performance.now?self.performance.now.bind(self.performance):Date.now.bind(Date),z=self.requestAnimationFrame||self.mozRequestAnimationFrame||self.webkitRequestAnimationFrame||self.msRequestAnimationFrame,R=self.cancelAnimationFrame||self.mozCancelAnimationFrame||self.webkitCancelAnimationFrame||self.msCancelAnimationFrame,F={now:D,frame:function(t){var e=z(t);return{cancel:function(){return R(e)}}},getImageData:function(t,e){void 0===e&&(e=0);var r=self.document.createElement("canvas"),n=r.getContext("2d");if(!n)throw new Error("failed to create canvas 2d context");return r.width=t.width,r.height=t.height,n.drawImage(t,0,0,t.width,t.height),n.getImageData(-e,-e,t.width+2*e,t.height+2*e)},resolveURL:function(t){return C||(C=self.document.createElement("a")),C.href=t,C.href},hardwareConcurrency:self.navigator.hardwareConcurrency||4,get devicePixelRatio(){return self.devicePixelRatio},get prefersReducedMotion(){return!!self.matchMedia&&(null==P&&(P=self.matchMedia("(prefers-reduced-motion: reduce)")),P.matches)}},B={API_URL:"https://api.mapbox.com",get EVENTS_URL(){return this.API_URL?0===this.API_URL.indexOf("https://api.mapbox.cn")?"https://events.mapbox.cn/events/v2":0===this.API_URL.indexOf("https://api.mapbox.com")?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},N={supported:!1,testSupport:function(t){!j&&I&&(U?V(t):O=t)}},j=!1,U=!1;function V(t){var e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,I),t.isContextLost())return;N.supported=!0}catch(t){}t.deleteTexture(e),j=!0}self.document&&((I=self.document.createElement("img")).onload=function(){O&&V(O),O=null,U=!0},I.onerror=function(){j=!0,O=null},I.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var H="01";var q=function(t,e){this._transformRequestFn=t,this._customAccessToken=e,this._createSkuToken()};function G(t){return 0===t.indexOf("mapbox:")}q.prototype._createSkuToken=function(){var t=function(){for(var t="",e=0;e<10;e++)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1",H,t].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=t.token,this._skuTokenExpiresAt=t.tokenExpiresAt},q.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},q.prototype.transformRequest=function(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}},q.prototype.normalizeStyleURL=function(t,e){if(!G(t))return t;var r=X(t);return r.path="/styles/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeGlyphsURL=function(t,e){if(!G(t))return t;var r=X(t);return r.path="/fonts/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeSourceURL=function(t,e){if(!G(t))return t;var r=X(t);return r.path="/v4/"+r.authority+".json",r.params.push("secure"),this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeSpriteURL=function(t,e,r,n){var i=X(t);return G(t)?(i.path="/styles/v1"+i.path+"/sprite"+e+r,this._makeAPIURL(i,this._customAccessToken||n)):(i.path+=""+e+r,J(i))},q.prototype.normalizeTileURL=function(t,e){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!G(t))return t;var r=X(t),n=F.devicePixelRatio>=2||512===e?"@2x":"",i=N.supported?".webp":"$1";r.path=r.path.replace(/(\.(png|jpg)\d*)(?=$)/,""+n+i),r.path=r.path.replace(/^.+\/v4\//,"/"),r.path="/v4"+r.path;var a=this._customAccessToken||function(t){for(var e=0,r=t;e<r.length;e+=1){var n=r[e].match(/^access_token=(.*)$/);if(n)return n[1]}return null}(r.params)||B.ACCESS_TOKEN;return B.REQUIRE_ACCESS_TOKEN&&a&&this._skuToken&&r.params.push("sku="+this._skuToken),this._makeAPIURL(r,a)},q.prototype.canonicalizeTileURL=function(t,e){var r=X(t);if(!r.path.match(/(^\/v4\/)/)||!r.path.match(/\.[\w]+$/))return t;var n="mapbox://tiles/";n+=r.path.replace("/v4/","");var i=r.params;return e&&(i=i.filter((function(t){return!t.match(/^access_token=/)}))),i.length&&(n+="?"+i.join("&")),n},q.prototype.canonicalizeTileset=function(t,e){for(var r=!!e&&G(e),n=[],i=0,a=t.tiles||[];i<a.length;i+=1){var o=a[i];Y(o)?n.push(this.canonicalizeTileURL(o,r)):n.push(o)}return n},q.prototype._makeAPIURL=function(t,e){var r="See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes",n=X(B.API_URL);if(t.protocol=n.protocol,t.authority=n.authority,"/"!==n.path&&(t.path=""+n.path+t.path),!B.REQUIRE_ACCESS_TOKEN)return J(t);if(!(e=e||B.ACCESS_TOKEN))throw new Error("An API access token is required to use Mapbox GL. "+r);if("s"===e[0])throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+r);return t.params=t.params.filter((function(t){return-1===t.indexOf("access_token")})),t.params.push("access_token="+e),J(t)};var Z=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;function Y(t){return Z.test(t)}var W=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function X(t){var e=t.match(W);if(!e)throw new Error("Unable to parse URL object");return{protocol:e[1],authority:e[2],path:e[3]||"/",params:e[4]?e[4].split("&"):[]}}function J(t){var e=t.params.length?"?"+t.params.join("&"):"";return t.protocol+"://"+t.authority+t.path+e}var K="mapbox.eventData";function $(t){if(!t)return null;var e,r=t.split(".");if(!r||3!==r.length)return null;try{return JSON.parse((e=r[1],decodeURIComponent(self.atob(e).split("").map((function(t){return"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)})).join(""))))}catch(t){return null}}var Q=function(t){this.type=t,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null};Q.prototype.getStorageKey=function(t){var e,r,n=$(B.ACCESS_TOKEN);return e=n&&n.u?(r=n.u,self.btoa(encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,(function(t,e){return String.fromCharCode(Number("0x"+e))})))):B.ACCESS_TOKEN||"",t?K+"."+t+":"+e:K+":"+e},Q.prototype.fetchEventData=function(){var t=L("localStorage"),e=this.getStorageKey(),r=this.getStorageKey("uuid");if(t)try{var n=self.localStorage.getItem(e);n&&(this.eventData=JSON.parse(n));var i=self.localStorage.getItem(r);i&&(this.anonId=i)}catch(t){w("Unable to read from LocalStorage")}},Q.prototype.saveEventData=function(){var t=L("localStorage"),e=this.getStorageKey(),r=this.getStorageKey("uuid");if(t)try{self.localStorage.setItem(r,this.anonId),Object.keys(this.eventData).length>=1&&self.localStorage.setItem(e,JSON.stringify(this.eventData))}catch(t){w("Unable to write to LocalStorage")}},Q.prototype.processRequests=function(t){},Q.prototype.postEvent=function(t,e,n,i){var a=this;if(B.EVENTS_URL){var o=X(B.EVENTS_URL);o.params.push("access_token="+(i||B.ACCESS_TOKEN||""));var s={event:this.type,created:new Date(t).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:r,skuId:H,userId:this.anonId},l=e?f(s,e):s,u={url:J(o),headers:{"Content-Type":"text/plain"},body:JSON.stringify([l])};this.pendingRequest=kt(u,(function(t){a.pendingRequest=null,n(t),a.saveEventData(),a.processRequests(i)}))}},Q.prototype.queueRequest=function(t,e){this.queue.push(t),this.processRequests(e)};var tt,et,rt=function(t){function e(){t.call(this,"map.load"),this.success={},this.skuToken=""}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.postMapLoadEvent=function(t,e,r,n){this.skuToken=r,(B.EVENTS_URL&&n||B.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return G(t)||Y(t)})))&&this.queueRequest({id:e,timestamp:Date.now()},n)},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){var r=this.queue.shift(),n=r.id,i=r.timestamp;n&&this.success[n]||(this.anonId||this.fetchEventData(),v(this.anonId)||(this.anonId=d()),this.postEvent(i,{skuToken:this.skuToken},(function(t){t||n&&(e.success[n]=!0)}),t))}},e}(Q),nt=function(t){function e(e){t.call(this,"appUserTurnstile"),this._customAccessToken=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.postTurnstileEvent=function(t,e){B.EVENTS_URL&&B.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return G(t)||Y(t)}))&&this.queueRequest(Date.now(),e)},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();var r=$(B.ACCESS_TOKEN),n=r?r.u:B.ACCESS_TOKEN,i=n!==this.eventData.tokenU;v(this.anonId)||(this.anonId=d(),i=!0);var a=this.queue.shift();if(this.eventData.lastSuccess){var o=new Date(this.eventData.lastSuccess),s=new Date(a),l=(a-this.eventData.lastSuccess)/864e5;i=i||l>=1||l<-1||o.getDate()!==s.getDate()}else i=!0;if(!i)return this.processRequests();this.postEvent(a,{"enabled.telemetry":!1},(function(t){t||(e.eventData.lastSuccess=a,e.eventData.tokenU=n)}),t)}},e}(Q),it=new nt,at=it.postTurnstileEvent.bind(it),ot=new rt,st=ot.postMapLoadEvent.bind(ot),lt="mapbox-tiles",ut=500,ct=50;function ft(){self.caches&&!tt&&(tt=self.caches.open(lt))}function ht(t,e,r){if(ft(),tt){var n={status:e.status,statusText:e.statusText,headers:new self.Headers};e.headers.forEach((function(t,e){return n.headers.set(e,t)}));var i=M(e.headers.get("Cache-Control")||"");i["no-store"]||(i["max-age"]&&n.headers.set("Expires",new Date(r+1e3*i["max-age"]).toUTCString()),new Date(n.headers.get("Expires")).getTime()-r<42e4||function(t,e){if(void 0===et)try{new Response(new ReadableStream),et=!0}catch(t){et=!1}et?e(t.body):t.blob().then(e)}(e,(function(e){var r=new self.Response(e,n);ft(),tt&&tt.then((function(e){return e.put(pt(t.url),r)})).catch((function(t){return w(t.message)}))})))}}function pt(t){var e=t.indexOf("?");return e<0?t:t.slice(0,e)}function dt(t,e){if(ft(),!tt)return e(null);var r=pt(t.url);tt.then((function(t){t.match(r).then((function(n){var i=function(t){if(!t)return!1;var e=new Date(t.headers.get("Expires")||0),r=M(t.headers.get("Cache-Control")||"");return e>Date.now()&&!r["no-cache"]}(n);t.delete(r),i&&t.put(r,n.clone()),e(null,n,i)})).catch(e)})).catch(e)}var vt,gt=1/0;function yt(){return null==vt&&(vt=self.OffscreenCanvas&&new self.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof self.createImageBitmap),vt}var mt={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};"function"==typeof Object.freeze&&Object.freeze(mt);var xt=function(t){function e(e,r,n){401===r&&Y(n)&&(e+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),t.call(this,e),this.status=r,this.url=n,this.name=this.constructor.name,this.message=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return this.name+": "+this.message+" ("+this.status+"): "+this.url},e}(Error),bt=A()?function(){return self.worker&&self.worker.referrer}:function(){return("blob:"===self.location.protocol?self.parent:self).location.href};function _t(t,e){var r,n=new self.AbortController,i=new self.Request(t.url,{method:t.method||"GET",body:t.body,credentials:t.credentials,headers:t.headers,referrer:bt(),signal:n.signal}),a=!1,o=!1,s=(r=i.url).indexOf("sku=")>0&&Y(r);"json"===t.type&&i.headers.set("Accept","application/json");var l=function(r,n,a){if(!o){if(r&&"SecurityError"!==r.message&&w(r),n&&a)return u(n);var l=Date.now();self.fetch(i).then((function(r){if(r.ok){var n=s?r.clone():null;return u(r,n,l)}return e(new xt(r.statusText,r.status,t.url))})).catch((function(t){20!==t.code&&e(new Error(t.message))}))}},u=function(r,n,s){("arrayBuffer"===t.type?r.arrayBuffer():"json"===t.type?r.json():r.text()).then((function(t){o||(n&&s&&ht(i,n,s),a=!0,e(null,t,r.headers.get("Cache-Control"),r.headers.get("Expires")))})).catch((function(t){o||e(new Error(t.message))}))};return s?dt(i,l):l(null,null),{cancel:function(){o=!0,a||n.abort()}}}var wt=function(t,e){if(r=t.url,!(/^file:/.test(r)||/^file:/.test(bt())&&!/^\w+:/.test(r))){if(self.fetch&&self.Request&&self.AbortController&&self.Request.prototype.hasOwnProperty("signal"))return _t(t,e);if(A()&&self.worker&&self.worker.actor){return self.worker.actor.send("getResource",t,e,void 0,!0)}}var r;return function(t,e){var r=new self.XMLHttpRequest;for(var n in r.open(t.method||"GET",t.url,!0),"arrayBuffer"===t.type&&(r.responseType="arraybuffer"),t.headers)r.setRequestHeader(n,t.headers[n]);return"json"===t.type&&(r.responseType="text",r.setRequestHeader("Accept","application/json")),r.withCredentials="include"===t.credentials,r.onerror=function(){e(new Error(r.statusText))},r.onload=function(){if((r.status>=200&&r.status<300||0===r.status)&&null!==r.response){var n=r.response;if("json"===t.type)try{n=JSON.parse(r.response)}catch(t){return e(t)}e(null,n,r.getResponseHeader("Cache-Control"),r.getResponseHeader("Expires"))}else e(new xt(r.statusText,r.status,t.url))},r.send(t.body),{cancel:function(){return r.abort()}}}(t,e)},Tt=function(t,e){return wt(f(t,{type:"arrayBuffer"}),e)},kt=function(t,e){return wt(f(t,{method:"POST"}),e)};var At,Mt;At=[],Mt=0;var St=function(t,e){if(N.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*"),Mt>=B.MAX_PARALLEL_IMAGE_REQUESTS){var r={requestParameters:t,callback:e,cancelled:!1,cancel:function(){this.cancelled=!0}};return At.push(r),r}Mt++;var n=!1,i=function(){if(!n)for(n=!0,Mt--;At.length&&Mt<B.MAX_PARALLEL_IMAGE_REQUESTS;){var t=At.shift(),e=t.requestParameters,r=t.callback;t.cancelled||(t.cancel=St(e,r).cancel)}},a=Tt(t,(function(t,r,n,a){i(),t?e(t):r&&(yt()?function(t,e){var r=new self.Blob([new Uint8Array(t)],{type:"image/png"});self.createImageBitmap(r).then((function(t){e(null,t)})).catch((function(t){e(new Error("Could not load image because of "+t.message+". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))}))}(r,e):function(t,e,r,n){var i=new self.Image,a=self.URL;i.onload=function(){e(null,i),a.revokeObjectURL(i.src)},i.onerror=function(){return e(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))};var o=new self.Blob([new Uint8Array(t)],{type:"image/png"});i.cacheControl=r,i.expires=n,i.src=t.byteLength?a.createObjectURL(o):"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="}(r,e,n,a))}));return{cancel:function(){a.cancel(),i()}}};function Et(t,e,r){r[t]&&-1!==r[t].indexOf(e)||(r[t]=r[t]||[],r[t].push(e))}function Lt(t,e,r){if(r&&r[t]){var n=r[t].indexOf(e);-1!==n&&r[t].splice(n,1)}}var Ct=function(t,e){void 0===e&&(e={}),f(this,e),this.type=t},Pt=function(t){function e(e,r){void 0===r&&(r={}),t.call(this,"error",f({error:e},r))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ct),Ot=function(){};Ot.prototype.on=function(t,e){return this._listeners=this._listeners||{},Et(t,e,this._listeners),this},Ot.prototype.off=function(t,e){return Lt(t,e,this._listeners),Lt(t,e,this._oneTimeListeners),this},Ot.prototype.once=function(t,e){return this._oneTimeListeners=this._oneTimeListeners||{},Et(t,e,this._oneTimeListeners),this},Ot.prototype.fire=function(t,e){"string"==typeof t&&(t=new Ct(t,e||{}));var r=t.type;if(this.listens(r)){t.target=this;for(var n=0,i=this._listeners&&this._listeners[r]?this._listeners[r].slice():[];n<i.length;n+=1)i[n].call(this,t);for(var a=0,o=this._oneTimeListeners&&this._oneTimeListeners[r]?this._oneTimeListeners[r].slice():[];a<o.length;a+=1){var s=o[a];Lt(r,s,this._oneTimeListeners),s.call(this,t)}var l=this._eventedParent;l&&(f(t,"function"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),l.fire(t))}else t instanceof Pt&&console.error(t.error);return this},Ot.prototype.listens=function(t){return this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)},Ot.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this};var It={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{}},default:"mapbox"},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},expression_name:{type:"enum",values:{let:{group:"Variable binding"},var:{group:"Variable binding"},literal:{group:"Types"},array:{group:"Types"},at:{group:"Lookup"},in:{group:"Lookup"},"index-of":{group:"Lookup"},slice:{group:"Lookup"},case:{group:"Decision"},match:{group:"Decision"},coalesce:{group:"Decision"},step:{group:"Ramps, scales, curves"},interpolate:{group:"Ramps, scales, curves"},"interpolate-hcl":{group:"Ramps, scales, curves"},"interpolate-lab":{group:"Ramps, scales, curves"},ln2:{group:"Math"},pi:{group:"Math"},e:{group:"Math"},typeof:{group:"Types"},string:{group:"Types"},number:{group:"Types"},boolean:{group:"Types"},object:{group:"Types"},collator:{group:"Types"},format:{group:"Types"},image:{group:"Types"},"number-format":{group:"Types"},"to-string":{group:"Types"},"to-number":{group:"Types"},"to-boolean":{group:"Types"},"to-rgba":{group:"Color"},"to-color":{group:"Types"},rgb:{group:"Color"},rgba:{group:"Color"},get:{group:"Lookup"},has:{group:"Lookup"},length:{group:"Lookup"},properties:{group:"Feature data"},"feature-state":{group:"Feature data"},"geometry-type":{group:"Feature data"},id:{group:"Feature data"},zoom:{group:"Zoom"},"heatmap-density":{group:"Heatmap"},"line-progress":{group:"Feature data"},accumulated:{group:"Feature data"},"+":{group:"Math"},"*":{group:"Math"},"-":{group:"Math"},"/":{group:"Math"},"%":{group:"Math"},"^":{group:"Math"},sqrt:{group:"Math"},log10:{group:"Math"},ln:{group:"Math"},log2:{group:"Math"},sin:{group:"Math"},cos:{group:"Math"},tan:{group:"Math"},asin:{group:"Math"},acos:{group:"Math"},atan:{group:"Math"},min:{group:"Math"},max:{group:"Math"},round:{group:"Math"},abs:{group:"Math"},ceil:{group:"Math"},floor:{group:"Math"},distance:{group:"Math"},"==":{group:"Decision"},"!=":{group:"Decision"},">":{group:"Decision"},"<":{group:"Decision"},">=":{group:"Decision"},"<=":{group:"Decision"},all:{group:"Decision"},any:{group:"Decision"},"!":{group:"Decision"},within:{group:"Decision"},"is-supported-script":{group:"String"},upcase:{group:"String"},downcase:{group:"String"},concat:{group:"String"},"resolved-locale":{group:"String"}}},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}},Dt=function(t,e,r,n){this.message=(t?t+": ":"")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__)};function zt(t){var e=t.key,r=t.value;return r?[new Dt(e,r,"constants have been deprecated as of v8")]:[]}function Rt(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n<i.length;n+=1){var a=i[n];for(var o in a)t[o]=a[o]}return t}function Ft(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}function Bt(t){if(Array.isArray(t))return t.map(Bt);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){var e={};for(var r in t)e[r]=Bt(t[r]);return e}return Ft(t)}var Nt=function(t){function e(e,r){t.call(this,r),this.message=r,this.key=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error),jt=function(t,e){void 0===e&&(e=[]),this.parent=t,this.bindings={};for(var r=0,n=e;r<n.length;r+=1){var i=n[r],a=i[0],o=i[1];this.bindings[a]=o}};jt.prototype.concat=function(t){return new jt(this,t)},jt.prototype.get=function(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(t+" not found in scope.")},jt.prototype.has=function(t){return!!this.bindings[t]||!!this.parent&&this.parent.has(t)};var Ut={kind:"null"},Vt={kind:"number"},Ht={kind:"string"},qt={kind:"boolean"},Gt={kind:"color"},Zt={kind:"object"},Yt={kind:"value"},Wt={kind:"collator"},Xt={kind:"formatted"},Jt={kind:"resolvedImage"};function Kt(t,e){return{kind:"array",itemType:t,N:e}}function $t(t){if("array"===t.kind){var e=$t(t.itemType);return"number"==typeof t.N?"array<"+e+", "+t.N+">":"value"===t.itemType.kind?"array":"array<"+e+">"}return t.kind}var Qt=[Ut,Vt,Ht,qt,Gt,Xt,Zt,Kt(Yt),Jt];function te(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!te(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if("value"===t.kind)for(var r=0,n=Qt;r<n.length;r+=1)if(!te(n[r],e))return null}return"Expected "+$t(t)+" but found "+$t(e)+" instead."}function ee(t,e){return e.some((function(e){return e.kind===t.kind}))}function re(t,e){return e.some((function(e){return"null"===e?null===t:"array"===e?Array.isArray(t):"object"===e?t&&!Array.isArray(t)&&"object"==typeof t:e===typeof t}))}var ne=e((function(t,e){var r={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function n(t){return(t=Math.round(t))<0?0:t>255?255:t}function i(t){return t<0?0:t>1?1:t}function a(t){return"%"===t[t.length-1]?n(parseFloat(t)/100*255):n(parseInt(t))}function o(t){return"%"===t[t.length-1]?i(parseFloat(t)/100):i(parseFloat(t))}function s(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{e.parseCSSColor=function(t){var e,i=t.replace(/ /g,"").toLowerCase();if(i in r)return r[i].slice();if("#"===i[0])return 4===i.length?(e=parseInt(i.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===i.length&&(e=parseInt(i.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var l=i.indexOf("("),u=i.indexOf(")");if(-1!==l&&u+1===i.length){var c=i.substr(0,l),f=i.substr(l+1,u-(l+1)).split(","),h=1;switch(c){case"rgba":if(4!==f.length)return null;h=o(f.pop());case"rgb":return 3!==f.length?null:[a(f[0]),a(f[1]),a(f[2]),h];case"hsla":if(4!==f.length)return null;h=o(f.pop());case"hsl":if(3!==f.length)return null;var p=(parseFloat(f[0])%360+360)%360/360,d=o(f[1]),v=o(f[2]),g=v<=.5?v*(d+1):v+d-v*d,y=2*v-g;return[n(255*s(y,g,p+1/3)),n(255*s(y,g,p)),n(255*s(y,g,p-1/3)),h];default:return null}}return null}}catch(t){}})),ie=ne.parseCSSColor,ae=function(t,e,r,n){void 0===n&&(n=1),this.r=t,this.g=e,this.b=r,this.a=n};ae.parse=function(t){if(t){if(t instanceof ae)return t;if("string"==typeof t){var e=ie(t);if(e)return new ae(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},ae.prototype.toString=function(){var t=this.toArray(),e=t[0],r=t[1],n=t[2],i=t[3];return"rgba("+Math.round(e)+","+Math.round(r)+","+Math.round(n)+","+i+")"},ae.prototype.toArray=function(){var t=this,e=t.r,r=t.g,n=t.b,i=t.a;return 0===i?[0,0,0,0]:[255*e/i,255*r/i,255*n/i,i]},ae.black=new ae(0,0,0,1),ae.white=new ae(1,1,1,1),ae.transparent=new ae(0,0,0,0),ae.red=new ae(1,0,0,1);var oe=function(t,e,r){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})};oe.prototype.compare=function(t,e){return this.collator.compare(t,e)},oe.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var se=function(t,e,r,n,i){this.text=t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i},le=function(t){this.sections=t};le.fromString=function(t){return new le([new se(t,null,null,null,null)])},le.prototype.isEmpty=function(){return 0===this.sections.length||!this.sections.some((function(t){return 0!==t.text.length||t.image&&0!==t.image.name.length}))},le.factory=function(t){return t instanceof le?t:le.fromString(t)},le.prototype.toString=function(){return 0===this.sections.length?"":this.sections.map((function(t){return t.text})).join("")},le.prototype.serialize=function(){for(var t=["format"],e=0,r=this.sections;e<r.length;e+=1){var n=r[e];if(n.image)t.push(["image",n.image.name]);else{t.push(n.text);var i={};n.fontStack&&(i["text-font"]=["literal",n.fontStack.split(",")]),n.scale&&(i["font-scale"]=n.scale),n.textColor&&(i["text-color"]=["rgba"].concat(n.textColor.toArray())),t.push(i)}}return t};var ue=function(t){this.name=t.name,this.available=t.available};function ce(t,e,r,n){return"number"==typeof t&&t>=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:"Invalid rgba value ["+[t,e,r,n].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+("number"==typeof n?[t,e,r,n]:[t,e,r]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}function fe(t){if(null===t)return!0;if("string"==typeof t)return!0;if("boolean"==typeof t)return!0;if("number"==typeof t)return!0;if(t instanceof ae)return!0;if(t instanceof oe)return!0;if(t instanceof le)return!0;if(t instanceof ue)return!0;if(Array.isArray(t)){for(var e=0,r=t;e<r.length;e+=1)if(!fe(r[e]))return!1;return!0}if("object"==typeof t){for(var n in t)if(!fe(t[n]))return!1;return!0}return!1}function he(t){if(null===t)return Ut;if("string"==typeof t)return Ht;if("boolean"==typeof t)return qt;if("number"==typeof t)return Vt;if(t instanceof ae)return Gt;if(t instanceof oe)return Wt;if(t instanceof le)return Xt;if(t instanceof ue)return Jt;if(Array.isArray(t)){for(var e,r=t.length,n=0,i=t;n<i.length;n+=1){var a=he(i[n]);if(e){if(e===a)continue;e=Yt;break}e=a}return Kt(e||Yt,r)}return Zt}function pe(t){var e=typeof t;return null===t?"":"string"===e||"number"===e||"boolean"===e?String(t):t instanceof ae||t instanceof le||t instanceof ue?t.toString():JSON.stringify(t)}ue.prototype.toString=function(){return this.name},ue.fromString=function(t){return t?new ue({name:t,available:!1}):null},ue.prototype.serialize=function(){return["image",this.name]};var de=function(t,e){this.type=t,this.value=e};de.parse=function(t,e){if(2!==t.length)return e.error("'literal' expression requires exactly one argument, but found "+(t.length-1)+" instead.");if(!fe(t[1]))return e.error("invalid value");var r=t[1],n=he(r),i=e.expectedType;return"array"!==n.kind||0!==n.N||!i||"array"!==i.kind||"number"==typeof i.N&&0!==i.N||(n=i),new de(n,r)},de.prototype.evaluate=function(){return this.value},de.prototype.eachChild=function(){},de.prototype.outputDefined=function(){return!0},de.prototype.serialize=function(){return"array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof ae?["rgba"].concat(this.value.toArray()):this.value instanceof le?this.value.serialize():this.value};var ve=function(t){this.name="ExpressionEvaluationError",this.message=t};ve.prototype.toJSON=function(){return this.message};var ge={string:Ht,number:Vt,boolean:qt,object:Zt},ye=function(t,e){this.type=t,this.args=e};ye.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r,n=1,i=t[0];if("array"===i){var a,o;if(t.length>2){var s=t[1];if("string"!=typeof s||!(s in ge)||"object"===s)return e.error('The item type argument of "array" must be one of string, number, boolean',1);a=ge[s],n++}else a=Yt;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);o=t[2],n++}r=Kt(a,o)}else r=ge[i];for(var l=[];n<t.length;n++){var u=e.parse(t[n],n,Yt);if(!u)return null;l.push(u)}return new ye(r,l)},ye.prototype.evaluate=function(t){for(var e=0;e<this.args.length;e++){var r=this.args[e].evaluate(t);if(!te(this.type,he(r)))return r;if(e===this.args.length-1)throw new ve("Expected value to be of type "+$t(this.type)+", but found "+$t(he(r))+" instead.")}return null},ye.prototype.eachChild=function(t){this.args.forEach(t)},ye.prototype.outputDefined=function(){return this.args.every((function(t){return t.outputDefined()}))},ye.prototype.serialize=function(){var t=this.type,e=[t.kind];if("array"===t.kind){var r=t.itemType;if("string"===r.kind||"number"===r.kind||"boolean"===r.kind){e.push(r.kind);var n=t.N;("number"==typeof n||this.args.length>1)&&e.push(n)}}return e.concat(this.args.map((function(t){return t.serialize()})))};var me=function(t){this.type=Xt,this.sections=t};me.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[1];if(!Array.isArray(r)&&"object"==typeof r)return e.error("First argument must be an image or text section.");for(var n=[],i=!1,a=1;a<=t.length-1;++a){var o=t[a];if(i&&"object"==typeof o&&!Array.isArray(o)){i=!1;var s=null;if(o["font-scale"]&&!(s=e.parse(o["font-scale"],1,Vt)))return null;var l=null;if(o["text-font"]&&!(l=e.parse(o["text-font"],1,Kt(Ht))))return null;var u=null;if(o["text-color"]&&!(u=e.parse(o["text-color"],1,Gt)))return null;var c=n[n.length-1];c.scale=s,c.font=l,c.textColor=u}else{var f=e.parse(t[a],1,Yt);if(!f)return null;var h=f.type.kind;if("string"!==h&&"value"!==h&&"null"!==h&&"resolvedImage"!==h)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");i=!0,n.push({content:f,scale:null,font:null,textColor:null})}}return new me(n)},me.prototype.evaluate=function(t){return new le(this.sections.map((function(e){var r=e.content.evaluate(t);return he(r)===Jt?new se("",r,null,null,null):new se(pe(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)})))},me.prototype.eachChild=function(t){for(var e=0,r=this.sections;e<r.length;e+=1){var n=r[e];t(n.content),n.scale&&t(n.scale),n.font&&t(n.font),n.textColor&&t(n.textColor)}},me.prototype.outputDefined=function(){return!1},me.prototype.serialize=function(){for(var t=["format"],e=0,r=this.sections;e<r.length;e+=1){var n=r[e];t.push(n.content.serialize());var i={};n.scale&&(i["font-scale"]=n.scale.serialize()),n.font&&(i["text-font"]=n.font.serialize()),n.textColor&&(i["text-color"]=n.textColor.serialize()),t.push(i)}return t};var xe=function(t){this.type=Jt,this.input=t};xe.parse=function(t,e){if(2!==t.length)return e.error("Expected two arguments.");var r=e.parse(t[1],1,Ht);return r?new xe(r):e.error("No image name provided.")},xe.prototype.evaluate=function(t){var e=this.input.evaluate(t),r=ue.fromString(e);return r&&t.availableImages&&(r.available=t.availableImages.indexOf(e)>-1),r},xe.prototype.eachChild=function(t){t(this.input)},xe.prototype.outputDefined=function(){return!1},xe.prototype.serialize=function(){return["image",this.input.serialize()]};var be={"to-boolean":qt,"to-color":Gt,"to-number":Vt,"to-string":Ht},_e=function(t,e){this.type=t,this.args=e};_e.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[0];if(("to-boolean"===r||"to-string"===r)&&2!==t.length)return e.error("Expected one argument.");for(var n=be[r],i=[],a=1;a<t.length;a++){var o=e.parse(t[a],a,Yt);if(!o)return null;i.push(o)}return new _e(n,i)},_e.prototype.evaluate=function(t){if("boolean"===this.type.kind)return Boolean(this.args[0].evaluate(t));if("color"===this.type.kind){for(var e,r,n=0,i=this.args;n<i.length;n+=1){if(r=null,(e=i[n].evaluate(t))instanceof ae)return e;if("string"==typeof e){var a=t.parseColor(e);if(a)return a}else if(Array.isArray(e)&&!(r=e.length<3||e.length>4?"Invalid rbga value "+JSON.stringify(e)+": expected an array containing either three or four numeric values.":ce(e[0],e[1],e[2],e[3])))return new ae(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new ve(r||"Could not parse color from value '"+("string"==typeof e?e:String(JSON.stringify(e)))+"'")}if("number"===this.type.kind){for(var o=null,s=0,l=this.args;s<l.length;s+=1){if(null===(o=l[s].evaluate(t)))return 0;var u=Number(o);if(!isNaN(u))return u}throw new ve("Could not convert "+JSON.stringify(o)+" to number.")}return"formatted"===this.type.kind?le.fromString(pe(this.args[0].evaluate(t))):"resolvedImage"===this.type.kind?ue.fromString(pe(this.args[0].evaluate(t))):pe(this.args[0].evaluate(t))},_e.prototype.eachChild=function(t){this.args.forEach(t)},_e.prototype.outputDefined=function(){return this.args.every((function(t){return t.outputDefined()}))},_e.prototype.serialize=function(){if("formatted"===this.type.kind)return new me([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new xe(this.args[0]).serialize();var t=["to-"+this.type.kind];return this.eachChild((function(e){t.push(e.serialize())})),t};var we=["Unknown","Point","LineString","Polygon"],Te=function(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null};Te.prototype.id=function(){return this.feature&&"id"in this.feature?this.feature.id:null},Te.prototype.geometryType=function(){return this.feature?"number"==typeof this.feature.type?we[this.feature.type]:this.feature.type:null},Te.prototype.geometry=function(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null},Te.prototype.canonicalID=function(){return this.canonical},Te.prototype.properties=function(){return this.feature&&this.feature.properties||{}},Te.prototype.parseColor=function(t){var e=this._parseColorCache[t];return e||(e=this._parseColorCache[t]=ae.parse(t)),e};var ke=function(t,e,r,n){this.name=t,this.type=e,this._evaluate=r,this.args=n};ke.prototype.evaluate=function(t){return this._evaluate(t,this.args)},ke.prototype.eachChild=function(t){this.args.forEach(t)},ke.prototype.outputDefined=function(){return!1},ke.prototype.serialize=function(){return[this.name].concat(this.args.map((function(t){return t.serialize()})))},ke.parse=function(t,e){var r,n=t[0],i=ke.definitions[n];if(!i)return e.error('Unknown expression "'+n+'". If you wanted a literal array, use ["literal", [...]].',0);for(var a=Array.isArray(i)?i[0]:i.type,o=Array.isArray(i)?[[i[1],i[2]]]:i.overloads,s=o.filter((function(e){var r=e[0];return!Array.isArray(r)||r.length===t.length-1})),l=null,u=0,c=s;u<c.length;u+=1){var f=c[u],h=f[0],p=f[1];l=new Ye(e.registry,e.path,null,e.scope);for(var d=[],v=!1,g=1;g<t.length;g++){var y=t[g],m=Array.isArray(h)?h[g-1]:h.type,x=l.parse(y,1+d.length,m);if(!x){v=!0;break}d.push(x)}if(!v)if(Array.isArray(h)&&h.length!==d.length)l.error("Expected "+h.length+" arguments, but found "+d.length+" instead.");else{for(var b=0;b<d.length;b++){var _=Array.isArray(h)?h[b]:h.type,w=d[b];l.concat(b+1).checkSubtype(_,w.type)}if(0===l.errors.length)return new ke(n,a,p,d)}}if(1===s.length)(r=e.errors).push.apply(r,l.errors);else{for(var T=(s.length?s:o).map((function(t){return e=t[0],Array.isArray(e)?"("+e.map($t).join(", ")+")":"("+$t(e.type)+"...)";var e})).join(" | "),k=[],A=1;A<t.length;A++){var M=e.parse(t[A],1+k.length);if(!M)return null;k.push($t(M.type))}e.error("Expected arguments of type "+T+", but found ("+k.join(", ")+") instead.")}return null},ke.register=function(t,e){for(var r in ke.definitions=e,e)t[r]=ke};var Ae=function(t,e,r){this.type=Wt,this.locale=r,this.caseSensitive=t,this.diacriticSensitive=e};Ae.parse=function(t,e){if(2!==t.length)return e.error("Expected one argument.");var r=t[1];if("object"!=typeof r||Array.isArray(r))return e.error("Collator options argument must be an object.");var n=e.parse(void 0!==r["case-sensitive"]&&r["case-sensitive"],1,qt);if(!n)return null;var i=e.parse(void 0!==r["diacritic-sensitive"]&&r["diacritic-sensitive"],1,qt);if(!i)return null;var a=null;return r.locale&&!(a=e.parse(r.locale,1,Ht))?null:new Ae(n,i,a)},Ae.prototype.evaluate=function(t){return new oe(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)},Ae.prototype.eachChild=function(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)},Ae.prototype.outputDefined=function(){return!1},Ae.prototype.serialize=function(){var t={};return t["case-sensitive"]=this.caseSensitive.serialize(),t["diacritic-sensitive"]=this.diacriticSensitive.serialize(),this.locale&&(t.locale=this.locale.serialize()),["collator",t]};var Me=8192;function Se(t,e){t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.max(t[2],e[0]),t[3]=Math.max(t[3],e[1])}function Ee(t,e){return!(t[0]<=e[0]||t[2]>=e[2]||t[1]<=e[1]||t[3]>=e[3])}function Le(t,e){var r,n=(180+t[0])/360,i=(r=t[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+r*Math.PI/360)))/360),a=Math.pow(2,e.z);return[Math.round(n*a*Me),Math.round(i*a*Me)]}function Ce(t,e,r){return e[1]>t[1]!=r[1]>t[1]&&t[0]<(r[0]-e[0])*(t[1]-e[1])/(r[1]-e[1])+e[0]}function Pe(t,e){for(var r=!1,n=0,i=e.length;n<i;n++)for(var a=e[n],o=0,s=a.length;o<s-1;o++){if(l=t,u=a[o],c=a[o+1],f=void 0,h=void 0,p=void 0,d=void 0,f=l[0]-u[0],h=l[1]-u[1],p=l[0]-c[0],d=l[1]-c[1],f*d-p*h==0&&f*p<=0&&h*d<=0)return!1;Ce(t,a[o],a[o+1])&&(r=!r)}var l,u,c,f,h,p,d;return r}function Oe(t,e){for(var r=0;r<e.length;r++)if(Pe(t,e[r]))return!0;return!1}function Ie(t,e,r,n){var i=t[0]-r[0],a=t[1]-r[1],o=e[0]-r[0],s=e[1]-r[1],l=n[0]-r[0],u=n[1]-r[1],c=i*u-l*a,f=o*u-l*s;return c>0&&f<0||c<0&&f>0}function De(t,e,r){for(var n=0,i=r;n<i.length;n+=1)for(var a=i[n],o=0;o<a.length-1;++o)if(s=t,l=e,u=a[o],c=a[o+1],f=void 0,h=void 0,p=void 0,p=[l[0]-s[0],l[1]-s[1]],0!=(f=[c[0]-u[0],c[1]-u[1]],h=p,f[0]*h[1]-f[1]*h[0])&&Ie(s,l,u,c)&&Ie(u,c,s,l))return!0;var s,l,u,c,f,h,p;return!1}function ze(t,e){for(var r=0;r<t.length;++r)if(!Pe(t[r],e))return!1;for(var n=0;n<t.length-1;++n)if(De(t[n],t[n+1],e))return!1;return!0}function Re(t,e){for(var r=0;r<e.length;r++)if(ze(t,e[r]))return!0;return!1}function Fe(t,e,r){for(var n=[],i=0;i<t.length;i++){for(var a=[],o=0;o<t[i].length;o++){var s=Le(t[i][o],r);Se(e,s),a.push(s)}n.push(a)}return n}function Be(t,e,r){for(var n=[],i=0;i<t.length;i++){var a=Fe(t[i],e,r);n.push(a)}return n}function Ne(t,e,r,n){if(t[0]<r[0]||t[0]>r[2]){var i=.5*n,a=t[0]-r[0]>i?-n:r[0]-t[0]>i?n:0;0===a&&(a=t[0]-r[2]>i?-n:r[2]-t[0]>i?n:0),t[0]+=a}Se(e,t)}function je(t,e,r,n){for(var i=Math.pow(2,n.z)*Me,a=[n.x*Me,n.y*Me],o=[],s=0,l=t;s<l.length;s+=1)for(var u=0,c=l[s];u<c.length;u+=1){var f=c[u],h=[f.x+a[0],f.y+a[1]];Ne(h,e,r,i),o.push(h)}return o}function Ue(t,e,r,n){for(var i=Math.pow(2,n.z)*Me,a=[n.x*Me,n.y*Me],o=[],s=0,l=t;s<l.length;s+=1){for(var u=[],c=0,f=l[s];c<f.length;c+=1){var h=f[c],p=[h.x+a[0],h.y+a[1]];Se(e,p),u.push(p)}o.push(u)}if(e[2]-e[0]<=i/2){(m=e)[0]=m[1]=1/0,m[2]=m[3]=-1/0;for(var d=0,v=o;d<v.length;d+=1)for(var g=0,y=v[d];g<y.length;g+=1)Ne(y[g],e,r,i)}var m;return o}var Ve=function(t,e){this.type=qt,this.geojson=t,this.geometries=e};function He(t){if(t instanceof ke){if("get"===t.name&&1===t.args.length)return!1;if("feature-state"===t.name)return!1;if("has"===t.name&&1===t.args.length)return!1;if("properties"===t.name||"geometry-type"===t.name||"id"===t.name)return!1;if(/^filter-/.test(t.name))return!1}if(t instanceof Ve)return!1;var e=!0;return t.eachChild((function(t){e&&!He(t)&&(e=!1)})),e}function qe(t){if(t instanceof ke&&"feature-state"===t.name)return!1;var e=!0;return t.eachChild((function(t){e&&!qe(t)&&(e=!1)})),e}function Ge(t,e){if(t instanceof ke&&e.indexOf(t.name)>=0)return!1;var r=!0;return t.eachChild((function(t){r&&!Ge(t,e)&&(r=!1)})),r}Ve.parse=function(t,e){if(2!==t.length)return e.error("'within' expression requires exactly one argument, but found "+(t.length-1)+" instead.");if(fe(t[1])){var r=t[1];if("FeatureCollection"===r.type)for(var n=0;n<r.features.length;++n){var i=r.features[n].geometry.type;if("Polygon"===i||"MultiPolygon"===i)return new Ve(r,r.features[n].geometry)}else if("Feature"===r.type){var a=r.geometry.type;if("Polygon"===a||"MultiPolygon"===a)return new Ve(r,r.geometry)}else if("Polygon"===r.type||"MultiPolygon"===r.type)return new Ve(r,r)}return e.error("'within' expression requires valid geojson object that contains polygon geometry type.")},Ve.prototype.evaluate=function(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,e){var r=[1/0,1/0,-1/0,-1/0],n=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if("Polygon"===e.type){var a=Fe(e.coordinates,n,i),o=je(t.geometry(),r,n,i);if(!Ee(r,n))return!1;for(var s=0,l=o;s<l.length;s+=1)if(!Pe(l[s],a))return!1}if("MultiPolygon"===e.type){var u=Be(e.coordinates,n,i),c=je(t.geometry(),r,n,i);if(!Ee(r,n))return!1;for(var f=0,h=c;f<h.length;f+=1)if(!Oe(h[f],u))return!1}return!0}(t,this.geometries);if("LineString"===t.geometryType())return function(t,e){var r=[1/0,1/0,-1/0,-1/0],n=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if("Polygon"===e.type){var a=Fe(e.coordinates,n,i),o=Ue(t.geometry(),r,n,i);if(!Ee(r,n))return!1;for(var s=0,l=o;s<l.length;s+=1)if(!ze(l[s],a))return!1}if("MultiPolygon"===e.type){var u=Be(e.coordinates,n,i),c=Ue(t.geometry(),r,n,i);if(!Ee(r,n))return!1;for(var f=0,h=c;f<h.length;f+=1)if(!Re(h[f],u))return!1}return!0}(t,this.geometries)}return!1},Ve.prototype.eachChild=function(){},Ve.prototype.outputDefined=function(){return!0},Ve.prototype.serialize=function(){return["within",this.geojson]};var Ze=function(t,e){this.type=e.type,this.name=t,this.boundExpression=e};Ze.parse=function(t,e){if(2!==t.length||"string"!=typeof t[1])return e.error("'var' expression requires exactly one string literal argument.");var r=t[1];return e.scope.has(r)?new Ze(r,e.scope.get(r)):e.error('Unknown variable "'+r+'". Make sure "'+r+'" has been bound in an enclosing "let" expression before using it.',1)},Ze.prototype.evaluate=function(t){return this.boundExpression.evaluate(t)},Ze.prototype.eachChild=function(){},Ze.prototype.outputDefined=function(){return!1},Ze.prototype.serialize=function(){return["var",this.name]};var Ye=function(t,e,r,n,i){void 0===e&&(e=[]),void 0===n&&(n=new jt),void 0===i&&(i=[]),this.registry=t,this.path=e,this.key=e.map((function(t){return"["+t+"]"})).join(""),this.scope=n,this.errors=i,this.expectedType=r};function We(t){if(t instanceof Ze)return We(t.boundExpression);if(t instanceof ke&&"error"===t.name)return!1;if(t instanceof Ae)return!1;if(t instanceof Ve)return!1;var e=t instanceof _e||t instanceof ye,r=!0;return t.eachChild((function(t){r=e?r&&We(t):r&&t instanceof de})),!!r&&He(t)&&Ge(t,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}function Xe(t,e){for(var r,n,i=t.length-1,a=0,o=i,s=0;a<=o;)if(r=t[s=Math.floor((a+o)/2)],n=t[s+1],r<=e){if(s===i||e<n)return s;a=s+1}else{if(!(r>e))throw new ve("Input is not a number.");o=s-1}return 0}Ye.prototype.parse=function(t,e,r,n,i){return void 0===i&&(i={}),e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)},Ye.prototype._parse=function(t,e){function r(t,e,r){return"assert"===r?new ye(e,[t]):"coerce"===r?new _e(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var n=t[0];if("string"!=typeof n)return this.error("Expression name must be a string, but found "+typeof n+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var i=this.registry[n];if(i){var a=i.parse(t,this);if(!a)return null;if(this.expectedType){var o=this.expectedType,s=a.type;if("string"!==o.kind&&"number"!==o.kind&&"boolean"!==o.kind&&"object"!==o.kind&&"array"!==o.kind||"value"!==s.kind)if("color"!==o.kind&&"formatted"!==o.kind&&"resolvedImage"!==o.kind||"value"!==s.kind&&"string"!==s.kind){if(this.checkSubtype(o,s))return null}else a=r(a,o,e.typeAnnotation||"coerce");else a=r(a,o,e.typeAnnotation||"assert")}if(!(a instanceof de)&&"resolvedImage"!==a.type.kind&&We(a)){var l=new Te;try{a=new de(a.type,a.evaluate(l))}catch(t){return this.error(t.message),null}}return a}return this.error('Unknown expression "'+n+'". If you wanted a literal array, use ["literal", [...]].',0)}return void 0===t?this.error("'undefined' value invalid. Use null instead."):"object"==typeof t?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error("Expected an array, but found "+typeof t+" instead.")},Ye.prototype.concat=function(t,e,r){var n="number"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new Ye(this.registry,n,e||null,i,this.errors)},Ye.prototype.error=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];var n=""+this.key+e.map((function(t){return"["+t+"]"})).join("");this.errors.push(new Nt(n,t))},Ye.prototype.checkSubtype=function(t,e){var r=te(t,e);return r&&this.error(r),r};var Je=function(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(var n=0,i=r;n<i.length;n+=1){var a=i[n],o=a[0],s=a[1];this.labels.push(o),this.outputs.push(s)}};function Ke(t,e,r){return t*(1-r)+e*r}Je.parse=function(t,e){if(t.length-1<4)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");var r=e.parse(t[1],1,Vt);if(!r)return null;var n=[],i=null;e.expectedType&&"value"!==e.expectedType.kind&&(i=e.expectedType);for(var a=1;a<t.length;a+=2){var o=1===a?-1/0:t[a],s=t[a+1],l=a,u=a+1;if("number"!=typeof o)return e.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.',l);if(n.length&&n[n.length-1][0]>=o)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',l);var c=e.parse(s,u,i);if(!c)return null;i=i||c.type,n.push([o,c])}return new Je(i,r,n)},Je.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[Xe(e,n)].evaluate(t)},Je.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e<r.length;e+=1)t(r[e])},Je.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))},Je.prototype.serialize=function(){for(var t=["step",this.input.serialize()],e=0;e<this.labels.length;e++)e>0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t};var $e=Object.freeze({__proto__:null,number:Ke,color:function(t,e,r){return new ae(Ke(t.r,e.r,r),Ke(t.g,e.g,r),Ke(t.b,e.b,r),Ke(t.a,e.a,r))},array:function(t,e,r){return t.map((function(t,n){return Ke(t,e[n],r)}))}}),Qe=.95047,tr=1.08883,er=4/29,rr=6/29,nr=3*rr*rr,ir=Math.PI/180,ar=180/Math.PI;function or(t){return t>.008856451679035631?Math.pow(t,1/3):t/nr+er}function sr(t){return t>rr?t*t*t:nr*(t-er)}function lr(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function ur(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function cr(t){var e=ur(t.r),r=ur(t.g),n=ur(t.b),i=or((.4124564*e+.3575761*r+.1804375*n)/Qe),a=or((.2126729*e+.7151522*r+.072175*n)/1);return{l:116*a-16,a:500*(i-a),b:200*(a-or((.0193339*e+.119192*r+.9503041*n)/tr)),alpha:t.a}}function fr(t){var e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=1*sr(e),r=Qe*sr(r),n=tr*sr(n),new ae(lr(3.2404542*r-1.5371385*e-.4985314*n),lr(-.969266*r+1.8760108*e+.041556*n),lr(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function hr(t,e,r){var n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}var pr={forward:cr,reverse:fr,interpolate:function(t,e,r){return{l:Ke(t.l,e.l,r),a:Ke(t.a,e.a,r),b:Ke(t.b,e.b,r),alpha:Ke(t.alpha,e.alpha,r)}}},dr={forward:function(t){var e=cr(t),r=e.l,n=e.a,i=e.b,a=Math.atan2(i,n)*ar;return{h:a<0?a+360:a,c:Math.sqrt(n*n+i*i),l:r,alpha:t.a}},reverse:function(t){var e=t.h*ir,r=t.c;return fr({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return{h:hr(t.h,e.h,r),c:Ke(t.c,e.c,r),l:Ke(t.l,e.l,r),alpha:Ke(t.alpha,e.alpha,r)}}},vr=Object.freeze({__proto__:null,lab:pr,hcl:dr}),gr=function(t,e,r,n,i){this.type=t,this.operator=e,this.interpolation=r,this.input=n,this.labels=[],this.outputs=[];for(var a=0,o=i;a<o.length;a+=1){var s=o[a],l=s[0],u=s[1];this.labels.push(l),this.outputs.push(u)}};function yr(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}gr.interpolationFactor=function(t,e,r,i){var a=0;if("exponential"===t.name)a=yr(e,t.base,r,i);else if("linear"===t.name)a=yr(e,1,r,i);else if("cubic-bezier"===t.name){var o=t.controlPoints;a=new n(o[0],o[1],o[2],o[3]).solve(yr(e,1,r,i))}return a},gr.parse=function(t,e){var r=t[0],n=t[1],i=t[2],a=t.slice(3);if(!Array.isArray(n)||0===n.length)return e.error("Expected an interpolation type expression.",1);if("linear"===n[0])n={name:"linear"};else if("exponential"===n[0]){var o=n[1];if("number"!=typeof o)return e.error("Exponential interpolation requires a numeric base.",1,1);n={name:"exponential",base:o}}else{if("cubic-bezier"!==n[0])return e.error("Unknown interpolation type "+String(n[0]),1,0);var s=n.slice(1);if(4!==s.length||s.some((function(t){return"number"!=typeof t||t<0||t>1})))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);n={name:"cubic-bezier",controlPoints:s}}if(t.length-1<4)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(!(i=e.parse(i,2,Vt)))return null;var l=[],u=null;"interpolate-hcl"===r||"interpolate-lab"===r?u=Gt:e.expectedType&&"value"!==e.expectedType.kind&&(u=e.expectedType);for(var c=0;c<a.length;c+=2){var f=a[c],h=a[c+1],p=c+3,d=c+4;if("number"!=typeof f)return e.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.',p);if(l.length&&l[l.length-1][0]>=f)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',p);var v=e.parse(h,d,u);if(!v)return null;u=u||v.type,l.push([f,v])}return"number"===u.kind||"color"===u.kind||"array"===u.kind&&"number"===u.itemType.kind&&"number"==typeof u.N?new gr(u,r,n,i,l):e.error("Type "+$t(u)+" is not interpolatable.")},gr.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);var a=Xe(e,n),o=e[a],s=e[a+1],l=gr.interpolationFactor(this.interpolation,n,o,s),u=r[a].evaluate(t),c=r[a+1].evaluate(t);return"interpolate"===this.operator?$e[this.type.kind.toLowerCase()](u,c,l):"interpolate-hcl"===this.operator?dr.reverse(dr.interpolate(dr.forward(u),dr.forward(c),l)):pr.reverse(pr.interpolate(pr.forward(u),pr.forward(c),l))},gr.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e<r.length;e+=1)t(r[e])},gr.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))},gr.prototype.serialize=function(){var t;t="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);for(var e=[this.operator,t,this.input.serialize()],r=0;r<this.labels.length;r++)e.push(this.labels[r],this.outputs[r].serialize());return e};var mr=function(t,e){this.type=t,this.args=e};mr.parse=function(t,e){if(t.length<2)return e.error("Expectected at least one argument.");var r=null,n=e.expectedType;n&&"value"!==n.kind&&(r=n);for(var i=[],a=0,o=t.slice(1);a<o.length;a+=1){var s=o[a],l=e.parse(s,1+i.length,r,void 0,{typeAnnotation:"omit"});if(!l)return null;r=r||l.type,i.push(l)}var u=n&&i.some((function(t){return te(n,t.type)}));return new mr(u?Yt:r,i)},mr.prototype.evaluate=function(t){for(var e,r=null,n=0,i=0,a=this.args;i<a.length&&(n++,(r=a[i].evaluate(t))&&r instanceof ue&&!r.available&&(e||(e=r.name),r=null,n===this.args.length&&(r=e)),null===r);i+=1);return r},mr.prototype.eachChild=function(t){this.args.forEach(t)},mr.prototype.outputDefined=function(){return this.args.every((function(t){return t.outputDefined()}))},mr.prototype.serialize=function(){var t=["coalesce"];return this.eachChild((function(e){t.push(e.serialize())})),t};var xr=function(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e};xr.prototype.evaluate=function(t){return this.result.evaluate(t)},xr.prototype.eachChild=function(t){for(var e=0,r=this.bindings;e<r.length;e+=1)t(r[e][1]);t(this.result)},xr.parse=function(t,e){if(t.length<4)return e.error("Expected at least 3 arguments, but found "+(t.length-1)+" instead.");for(var r=[],n=1;n<t.length-1;n+=2){var i=t[n];if("string"!=typeof i)return e.error("Expected string, but found "+typeof i+" instead.",n);if(/[^a-zA-Z0-9_]/.test(i))return e.error("Variable names must contain only alphanumeric characters or '_'.",n);var a=e.parse(t[n+1],n+1);if(!a)return null;r.push([i,a])}var o=e.parse(t[t.length-1],t.length-1,e.expectedType,r);return o?new xr(r,o):null},xr.prototype.outputDefined=function(){return this.result.outputDefined()},xr.prototype.serialize=function(){for(var t=["let"],e=0,r=this.bindings;e<r.length;e+=1){var n=r[e],i=n[0],a=n[1];t.push(i,a.serialize())}return t.push(this.result.serialize()),t};var br=function(t,e,r){this.type=t,this.index=e,this.input=r};br.parse=function(t,e){if(3!==t.length)return e.error("Expected 2 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Vt),n=e.parse(t[2],2,Kt(e.expectedType||Yt));if(!r||!n)return null;var i=n.type;return new br(i.itemType,r,n)},br.prototype.evaluate=function(t){var e=this.index.evaluate(t),r=this.input.evaluate(t);if(e<0)throw new ve("Array index out of bounds: "+e+" < 0.");if(e>=r.length)throw new ve("Array index out of bounds: "+e+" > "+(r.length-1)+".");if(e!==Math.floor(e))throw new ve("Array index must be an integer, but found "+e+" instead.");return r[e]},br.prototype.eachChild=function(t){t(this.index),t(this.input)},br.prototype.outputDefined=function(){return!1},br.prototype.serialize=function(){return["at",this.index.serialize(),this.input.serialize()]};var _r=function(t,e){this.type=qt,this.needle=t,this.haystack=e};_r.parse=function(t,e){if(3!==t.length)return e.error("Expected 2 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Yt),n=e.parse(t[2],2,Yt);return r&&n?ee(r.type,[qt,Ht,Vt,Ut,Yt])?new _r(r,n):e.error("Expected first argument to be of type boolean, string, number or null, but found "+$t(r.type)+" instead"):null},_r.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!r)return!1;if(!re(e,["boolean","string","number","null"]))throw new ve("Expected first argument to be of type boolean, string, number or null, but found "+$t(he(e))+" instead.");if(!re(r,["string","array"]))throw new ve("Expected second argument to be of type array or string, but found "+$t(he(r))+" instead.");return r.indexOf(e)>=0},_r.prototype.eachChild=function(t){t(this.needle),t(this.haystack)},_r.prototype.outputDefined=function(){return!0},_r.prototype.serialize=function(){return["in",this.needle.serialize(),this.haystack.serialize()]};var wr=function(t,e,r){this.type=Vt,this.needle=t,this.haystack=e,this.fromIndex=r};wr.parse=function(t,e){if(t.length<=2||t.length>=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Yt),n=e.parse(t[2],2,Yt);if(!r||!n)return null;if(!ee(r.type,[qt,Ht,Vt,Ut,Yt]))return e.error("Expected first argument to be of type boolean, string, number or null, but found "+$t(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Vt);return i?new wr(r,n,i):null}return new wr(r,n)},wr.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!re(e,["boolean","string","number","null"]))throw new ve("Expected first argument to be of type boolean, string, number or null, but found "+$t(he(e))+" instead.");if(!re(r,["string","array"]))throw new ve("Expected second argument to be of type array or string, but found "+$t(he(r))+" instead.");if(this.fromIndex){var n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)},wr.prototype.eachChild=function(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)},wr.prototype.outputDefined=function(){return!1},wr.prototype.serialize=function(){if(null!=this.fromIndex&&void 0!==this.fromIndex){var t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]};var Tr=function(t,e,r,n,i,a){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=a};Tr.parse=function(t,e){if(t.length<5)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if(t.length%2!=1)return e.error("Expected an even number of arguments.");var r,n;e.expectedType&&"value"!==e.expectedType.kind&&(n=e.expectedType);for(var i={},a=[],o=2;o<t.length-1;o+=2){var s=t[o],l=t[o+1];Array.isArray(s)||(s=[s]);var u=e.concat(o);if(0===s.length)return u.error("Expected at least one branch label.");for(var c=0,f=s;c<f.length;c+=1){var h=f[c];if("number"!=typeof h&&"string"!=typeof h)return u.error("Branch labels must be numbers or strings.");if("number"==typeof h&&Math.abs(h)>Number.MAX_SAFE_INTEGER)return u.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if("number"==typeof h&&Math.floor(h)!==h)return u.error("Numeric branch labels must be integer values.");if(r){if(u.checkSubtype(r,he(h)))return null}else r=he(h);if(void 0!==i[String(h)])return u.error("Branch labels must be unique.");i[String(h)]=a.length}var p=e.parse(l,o,n);if(!p)return null;n=n||p.type,a.push(p)}var d=e.parse(t[1],1,Yt);if(!d)return null;var v=e.parse(t[t.length-1],t.length-1,n);return v?"value"!==d.type.kind&&e.concat(1).checkSubtype(r,d.type)?null:new Tr(r,n,d,i,a,v):null},Tr.prototype.evaluate=function(t){var e=this.input.evaluate(t);return(he(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},Tr.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)},Tr.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))&&this.otherwise.outputDefined()},Tr.prototype.serialize=function(){for(var t=this,e=["match",this.input.serialize()],r=[],n={},i=0,a=Object.keys(this.cases).sort();i<a.length;i+=1){var o=a[i];void 0===(f=n[this.cases[o]])?(n[this.cases[o]]=r.length,r.push([this.cases[o],[o]])):r[f][1].push(o)}for(var s=function(e){return"number"===t.inputType.kind?Number(e):e},l=0,u=r;l<u.length;l+=1){var c=u[l],f=c[0],h=c[1];1===h.length?e.push(s(h[0])):e.push(h.map(s)),e.push(this.outputs[outputIndex$1].serialize())}return e.push(this.otherwise.serialize()),e};var kr=function(t,e,r){this.type=t,this.branches=e,this.otherwise=r};kr.parse=function(t,e){if(t.length<4)return e.error("Expected at least 3 arguments, but found only "+(t.length-1)+".");if(t.length%2!=0)return e.error("Expected an odd number of arguments.");var r;e.expectedType&&"value"!==e.expectedType.kind&&(r=e.expectedType);for(var n=[],i=1;i<t.length-1;i+=2){var a=e.parse(t[i],i,qt);if(!a)return null;var o=e.parse(t[i+1],i+1,r);if(!o)return null;n.push([a,o]),r=r||o.type}var s=e.parse(t[t.length-1],t.length-1,r);return s?new kr(r,n,s):null},kr.prototype.evaluate=function(t){for(var e=0,r=this.branches;e<r.length;e+=1){var n=r[e],i=n[0],a=n[1];if(i.evaluate(t))return a.evaluate(t)}return this.otherwise.evaluate(t)},kr.prototype.eachChild=function(t){for(var e=0,r=this.branches;e<r.length;e+=1){var n=r[e],i=n[0],a=n[1];t(i),t(a)}t(this.otherwise)},kr.prototype.outputDefined=function(){return this.branches.every((function(t){return t[0],t[1].outputDefined()}))&&this.otherwise.outputDefined()},kr.prototype.serialize=function(){var t=["case"];return this.eachChild((function(e){t.push(e.serialize())})),t};var Ar=function(t,e,r,n){this.type=t,this.input=e,this.beginIndex=r,this.endIndex=n};function Mr(t,e){return"=="===t||"!="===t?"boolean"===e.kind||"string"===e.kind||"number"===e.kind||"null"===e.kind||"value"===e.kind:"string"===e.kind||"number"===e.kind||"value"===e.kind}function Sr(t,e,r,n){return 0===n.compare(e,r)}function Er(t,e,r){var n="=="!==t&&"!="!==t;return function(){function i(t,e,r){this.type=qt,this.lhs=t,this.rhs=e,this.collator=r,this.hasUntypedArgument="value"===t.type.kind||"value"===e.type.kind}return i.parse=function(t,e){if(3!==t.length&&4!==t.length)return e.error("Expected two or three arguments.");var r=t[0],a=e.parse(t[1],1,Yt);if(!a)return null;if(!Mr(r,a.type))return e.concat(1).error('"'+r+"\" comparisons are not supported for type '"+$t(a.type)+"'.");var o=e.parse(t[2],2,Yt);if(!o)return null;if(!Mr(r,o.type))return e.concat(2).error('"'+r+"\" comparisons are not supported for type '"+$t(o.type)+"'.");if(a.type.kind!==o.type.kind&&"value"!==a.type.kind&&"value"!==o.type.kind)return e.error("Cannot compare types '"+$t(a.type)+"' and '"+$t(o.type)+"'.");n&&("value"===a.type.kind&&"value"!==o.type.kind?a=new ye(o.type,[a]):"value"!==a.type.kind&&"value"===o.type.kind&&(o=new ye(a.type,[o])));var s=null;if(4===t.length){if("string"!==a.type.kind&&"string"!==o.type.kind&&"value"!==a.type.kind&&"value"!==o.type.kind)return e.error("Cannot use collator to compare non-string types.");if(!(s=e.parse(t[3],3,Wt)))return null}return new i(a,o,s)},i.prototype.evaluate=function(i){var a=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(n&&this.hasUntypedArgument){var s=he(a),l=he(o);if(s.kind!==l.kind||"string"!==s.kind&&"number"!==s.kind)throw new ve('Expected arguments for "'+t+'" to be (string, string) or (number, number), but found ('+s.kind+", "+l.kind+") instead.")}if(this.collator&&!n&&this.hasUntypedArgument){var u=he(a),c=he(o);if("string"!==u.kind||"string"!==c.kind)return e(i,a,o)}return this.collator?r(i,a,o,this.collator.evaluate(i)):e(i,a,o)},i.prototype.eachChild=function(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)},i.prototype.outputDefined=function(){return!0},i.prototype.serialize=function(){var e=[t];return this.eachChild((function(t){e.push(t.serialize())})),e},i}()}Ar.parse=function(t,e){if(t.length<=2||t.length>=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Yt),n=e.parse(t[2],2,Vt);if(!r||!n)return null;if(!ee(r.type,[Kt(Yt),Ht,Yt]))return e.error("Expected first argument to be of type array or string, but found "+$t(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Vt);return i?new Ar(r.type,r,n,i):null}return new Ar(r.type,r,n)},Ar.prototype.evaluate=function(t){var e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!re(e,["string","array"]))throw new ve("Expected first argument to be of type array or string, but found "+$t(he(e))+" instead.");if(this.endIndex){var n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)},Ar.prototype.eachChild=function(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)},Ar.prototype.outputDefined=function(){return!1},Ar.prototype.serialize=function(){if(null!=this.endIndex&&void 0!==this.endIndex){var t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]};var Lr=Er("==",(function(t,e,r){return e===r}),Sr),Cr=Er("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return!Sr(0,e,r,n)})),Pr=Er("<",(function(t,e,r){return e<r}),(function(t,e,r,n){return n.compare(e,r)<0})),Or=Er(">",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),Ir=Er("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),Dr=Er(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0})),zr=function(t,e,r,n,i){this.type=Ht,this.number=t,this.locale=e,this.currency=r,this.minFractionDigits=n,this.maxFractionDigits=i};zr.parse=function(t,e){if(3!==t.length)return e.error("Expected two arguments.");var r=e.parse(t[1],1,Vt);if(!r)return null;var n=t[2];if("object"!=typeof n||Array.isArray(n))return e.error("NumberFormat options argument must be an object.");var i=null;if(n.locale&&!(i=e.parse(n.locale,1,Ht)))return null;var a=null;if(n.currency&&!(a=e.parse(n.currency,1,Ht)))return null;var o=null;if(n["min-fraction-digits"]&&!(o=e.parse(n["min-fraction-digits"],1,Vt)))return null;var s=null;return n["max-fraction-digits"]&&!(s=e.parse(n["max-fraction-digits"],1,Vt))?null:new zr(r,i,a,o,s)},zr.prototype.evaluate=function(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))},zr.prototype.eachChild=function(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)},zr.prototype.outputDefined=function(){return!1},zr.prototype.serialize=function(){var t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]};var Rr=function(t){this.type=Vt,this.input=t};Rr.parse=function(t,e){if(2!==t.length)return e.error("Expected 1 argument, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?e.error("Expected argument of type string or array, but found "+$t(r.type)+" instead."):new Rr(r):null},Rr.prototype.evaluate=function(t){var e=this.input.evaluate(t);if("string"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new ve("Expected value to be of type string or array, but found "+$t(he(e))+" instead.")},Rr.prototype.eachChild=function(t){t(this.input)},Rr.prototype.outputDefined=function(){return!1},Rr.prototype.serialize=function(){var t=["length"];return this.eachChild((function(e){t.push(e.serialize())})),t};var Fr={"==":Lr,"!=":Cr,">":Or,"<":Pr,">=":Dr,"<=":Ir,array:ye,at:br,boolean:ye,case:kr,coalesce:mr,collator:Ae,format:me,image:xe,in:_r,"index-of":wr,interpolate:gr,"interpolate-hcl":gr,"interpolate-lab":gr,length:Rr,let:xr,literal:de,match:Tr,number:ye,"number-format":zr,object:ye,slice:Ar,step:Je,string:ye,"to-boolean":_e,"to-color":_e,"to-number":_e,"to-string":_e,var:Ze,within:Ve};function Br(t,e){var r=e[0],n=e[1],i=e[2],a=e[3];r=r.evaluate(t),n=n.evaluate(t),i=i.evaluate(t);var o=a?a.evaluate(t):1,s=ce(r,n,i,o);if(s)throw new ve(s);return new ae(r/255*o,n/255*o,i/255*o,o)}function Nr(t,e){return t in e}function jr(t,e){var r=e[t];return void 0===r?null:r}function Ur(t){return{type:t}}function Vr(t){return{result:"success",value:t}}function Hr(t){return{result:"error",value:t}}function qr(t){return"data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Gr(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Zr(t){return!!t.expression&&t.expression.interpolated}function Yr(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function Wr(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function Xr(t){return t}function Jr(t,e){var r,n,i,a="color"===e.type,o=t.stops&&"object"==typeof t.stops[0][0],s=o||void 0!==t.property,l=o||!s,u=t.type||(Zr(e)?"exponential":"interval");if(a&&((t=Rt({},t)).stops&&(t.stops=t.stops.map((function(t){return[t[0],ae.parse(t[1])]}))),t.default?t.default=ae.parse(t.default):t.default=ae.parse(e.default)),t.colorSpace&&"rgb"!==t.colorSpace&&!vr[t.colorSpace])throw new Error("Unknown color space: "+t.colorSpace);if("exponential"===u)r=tn;else if("interval"===u)r=Qr;else if("categorical"===u){r=$r,n=Object.create(null);for(var c=0,f=t.stops;c<f.length;c+=1){var h=f[c];n[h[0]]=h[1]}i=typeof t.stops[0][0]}else{if("identity"!==u)throw new Error('Unknown function type "'+u+'"');r=en}if(o){for(var p={},d=[],v=0;v<t.stops.length;v++){var g=t.stops[v],y=g[0].zoom;void 0===p[y]&&(p[y]={zoom:y,type:t.type,property:t.property,default:t.default,stops:[]},d.push(y)),p[y].stops.push([g[0].value,g[1]])}for(var m=[],x=0,b=d;x<b.length;x+=1){var _=b[x];m.push([p[_].zoom,Jr(p[_],e)])}var w={name:"linear"};return{kind:"composite",interpolationType:w,interpolationFactor:gr.interpolationFactor.bind(void 0,w),zoomStops:m.map((function(t){return t[0]})),evaluate:function(r,n){var i=r.zoom;return tn({stops:m,base:t.base},e,i).evaluate(i,n)}}}if(l){var T="exponential"===u?{name:"exponential",base:void 0!==t.base?t.base:1}:null;return{kind:"camera",interpolationType:T,interpolationFactor:gr.interpolationFactor.bind(void 0,T),zoomStops:t.stops.map((function(t){return t[0]})),evaluate:function(a){var o=a.zoom;return r(t,e,o,n,i)}}}return{kind:"source",evaluate:function(a,o){var s=o&&o.properties?o.properties[t.property]:void 0;return void 0===s?Kr(t.default,e.default):r(t,e,s,n,i)}}}function Kr(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function $r(t,e,r,n,i){return Kr(typeof r===i?n[r]:void 0,t.default,e.default)}function Qr(t,e,r){if("number"!==Yr(r))return Kr(t.default,e.default);var n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];var i=Xe(t.stops.map((function(t){return t[0]})),r);return t.stops[i][1]}function tn(t,e,r){var n=void 0!==t.base?t.base:1;if("number"!==Yr(r))return Kr(t.default,e.default);var i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];var a=Xe(t.stops.map((function(t){return t[0]})),r),o=function(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[a][0],t.stops[a+1][0]),s=t.stops[a][1],l=t.stops[a+1][1],u=$e[e.type]||Xr;if(t.colorSpace&&"rgb"!==t.colorSpace){var c=vr[t.colorSpace];u=function(t,e){return c.reverse(c.interpolate(c.forward(t),c.forward(e),o))}}return"function"==typeof s.evaluate?{evaluate:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var r=s.evaluate.apply(void 0,t),n=l.evaluate.apply(void 0,t);if(void 0!==r&&void 0!==n)return u(r,n,o)}}:u(s,l,o)}function en(t,e,r){return"color"===e.type?r=ae.parse(r):"formatted"===e.type?r=le.fromString(r.toString()):"resolvedImage"===e.type?r=ue.fromString(r.toString()):Yr(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),Kr(r,t.default,e.default)}ke.register(Fr,{error:[{kind:"error"},[Ht],function(t,e){var r=e[0];throw new ve(r.evaluate(t))}],typeof:[Ht,[Yt],function(t,e){return $t(he(e[0].evaluate(t)))}],"to-rgba":[Kt(Vt,4),[Gt],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[Gt,[Vt,Vt,Vt],Br],rgba:[Gt,[Vt,Vt,Vt,Vt],Br],has:{type:qt,overloads:[[[Ht],function(t,e){return Nr(e[0].evaluate(t),t.properties())}],[[Ht,Zt],function(t,e){var r=e[0],n=e[1];return Nr(r.evaluate(t),n.evaluate(t))}]]},get:{type:Yt,overloads:[[[Ht],function(t,e){return jr(e[0].evaluate(t),t.properties())}],[[Ht,Zt],function(t,e){var r=e[0],n=e[1];return jr(r.evaluate(t),n.evaluate(t))}]]},"feature-state":[Yt,[Ht],function(t,e){return jr(e[0].evaluate(t),t.featureState||{})}],properties:[Zt,[],function(t){return t.properties()}],"geometry-type":[Ht,[],function(t){return t.geometryType()}],id:[Yt,[],function(t){return t.id()}],zoom:[Vt,[],function(t){return t.globals.zoom}],"heatmap-density":[Vt,[],function(t){return t.globals.heatmapDensity||0}],"line-progress":[Vt,[],function(t){return t.globals.lineProgress||0}],accumulated:[Yt,[],function(t){return void 0===t.globals.accumulated?null:t.globals.accumulated}],"+":[Vt,Ur(Vt),function(t,e){for(var r=0,n=0,i=e;n<i.length;n+=1)r+=i[n].evaluate(t);return r}],"*":[Vt,Ur(Vt),function(t,e){for(var r=1,n=0,i=e;n<i.length;n+=1)r*=i[n].evaluate(t);return r}],"-":{type:Vt,overloads:[[[Vt,Vt],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)-n.evaluate(t)}],[[Vt],function(t,e){return-e[0].evaluate(t)}]]},"/":[Vt,[Vt,Vt],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)/n.evaluate(t)}],"%":[Vt,[Vt,Vt],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)%n.evaluate(t)}],ln2:[Vt,[],function(){return Math.LN2}],pi:[Vt,[],function(){return Math.PI}],e:[Vt,[],function(){return Math.E}],"^":[Vt,[Vt,Vt],function(t,e){var r=e[0],n=e[1];return Math.pow(r.evaluate(t),n.evaluate(t))}],sqrt:[Vt,[Vt],function(t,e){var r=e[0];return Math.sqrt(r.evaluate(t))}],log10:[Vt,[Vt],function(t,e){var r=e[0];return Math.log(r.evaluate(t))/Math.LN10}],ln:[Vt,[Vt],function(t,e){var r=e[0];return Math.log(r.evaluate(t))}],log2:[Vt,[Vt],function(t,e){var r=e[0];return Math.log(r.evaluate(t))/Math.LN2}],sin:[Vt,[Vt],function(t,e){var r=e[0];return Math.sin(r.evaluate(t))}],cos:[Vt,[Vt],function(t,e){var r=e[0];return Math.cos(r.evaluate(t))}],tan:[Vt,[Vt],function(t,e){var r=e[0];return Math.tan(r.evaluate(t))}],asin:[Vt,[Vt],function(t,e){var r=e[0];return Math.asin(r.evaluate(t))}],acos:[Vt,[Vt],function(t,e){var r=e[0];return Math.acos(r.evaluate(t))}],atan:[Vt,[Vt],function(t,e){var r=e[0];return Math.atan(r.evaluate(t))}],min:[Vt,Ur(Vt),function(t,e){return Math.min.apply(Math,e.map((function(e){return e.evaluate(t)})))}],max:[Vt,Ur(Vt),function(t,e){return Math.max.apply(Math,e.map((function(e){return e.evaluate(t)})))}],abs:[Vt,[Vt],function(t,e){var r=e[0];return Math.abs(r.evaluate(t))}],round:[Vt,[Vt],function(t,e){var r=e[0].evaluate(t);return r<0?-Math.round(-r):Math.round(r)}],floor:[Vt,[Vt],function(t,e){var r=e[0];return Math.floor(r.evaluate(t))}],ceil:[Vt,[Vt],function(t,e){var r=e[0];return Math.ceil(r.evaluate(t))}],"filter-==":[qt,[Ht,Yt],function(t,e){var r=e[0],n=e[1];return t.properties()[r.value]===n.value}],"filter-id-==":[qt,[Yt],function(t,e){var r=e[0];return t.id()===r.value}],"filter-type-==":[qt,[Ht],function(t,e){var r=e[0];return t.geometryType()===r.value}],"filter-<":[qt,[Ht,Yt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<a}],"filter-id-<":[qt,[Yt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<i}],"filter->":[qt,[Ht,Yt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>a}],"filter-id->":[qt,[Yt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>i}],"filter-<=":[qt,[Ht,Yt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<=a}],"filter-id-<=":[qt,[Yt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<=i}],"filter->=":[qt,[Ht,Yt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>=a}],"filter-id->=":[qt,[Yt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>=i}],"filter-has":[qt,[Yt],function(t,e){return e[0].value in t.properties()}],"filter-has-id":[qt,[],function(t){return null!==t.id()&&void 0!==t.id()}],"filter-type-in":[qt,[Kt(Ht)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],"filter-id-in":[qt,[Kt(Yt)],function(t,e){return e[0].value.indexOf(t.id())>=0}],"filter-in-small":[qt,[Ht,Kt(Yt)],function(t,e){var r=e[0];return e[1].value.indexOf(t.properties()[r.value])>=0}],"filter-in-large":[qt,[Ht,Kt(Yt)],function(t,e){var r=e[0],n=e[1];return function(t,e,r,n){for(;r<=n;){var i=r+n>>1;if(e[i]===t)return!0;e[i]>t?n=i-1:r=i+1}return!1}(t.properties()[r.value],n.value,0,n.value.length-1)}],all:{type:qt,overloads:[[[qt,qt],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)&&n.evaluate(t)}],[Ur(qt),function(t,e){for(var r=0,n=e;r<n.length;r+=1)if(!n[r].evaluate(t))return!1;return!0}]]},any:{type:qt,overloads:[[[qt,qt],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)||n.evaluate(t)}],[Ur(qt),function(t,e){for(var r=0,n=e;r<n.length;r+=1)if(n[r].evaluate(t))return!0;return!1}]]},"!":[qt,[qt],function(t,e){return!e[0].evaluate(t)}],"is-supported-script":[qt,[Ht],function(t,e){var r=e[0],n=t.globals&&t.globals.isSupportedScript;return!n||n(r.evaluate(t))}],upcase:[Ht,[Ht],function(t,e){return e[0].evaluate(t).toUpperCase()}],downcase:[Ht,[Ht],function(t,e){return e[0].evaluate(t).toLowerCase()}],concat:[Ht,Ur(Yt),function(t,e){return e.map((function(e){return pe(e.evaluate(t))})).join("")}],"resolved-locale":[Ht,[Wt],function(t,e){return e[0].evaluate(t).resolvedLocale()}]});var rn=function(t,e){this.expression=t,this._warningHistory={},this._evaluator=new Te,this._defaultValue=e?function(t){return"color"===t.type&&Wr(t.default)?new ae(0,0,0,0):"color"===t.type?ae.parse(t.default)||null:void 0===t.default?null:t.default}(e):null,this._enumValues=e&&"enum"===e.type?e.values:null};function nn(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in Fr}function an(t,e){var r=new Ye(Fr,[],e?function(t){var e={color:Gt,string:Ht,number:Vt,enum:Ht,boolean:qt,formatted:Xt,resolvedImage:Jt};return"array"===t.type?Kt(e[t.value]||Yt,t.length):e[t.type]}(e):void 0),n=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return n?Vr(new rn(n,e)):Hr(r.errors)}rn.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)},rn.prototype.evaluate=function(t,e,r,n,i,a){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{var o=this.expression.evaluate(this._evaluator);if(null==o||"number"==typeof o&&o!=o)return this._defaultValue;if(this._enumValues&&!(o in this._enumValues))throw new ve("Expected value to be one of "+Object.keys(this._enumValues).map((function(t){return JSON.stringify(t)})).join(", ")+", but found "+JSON.stringify(o)+" instead.");return o}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this._defaultValue}};var on=function(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!qe(e.expression)};on.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},on.prototype.evaluate=function(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)};var sn=function(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent="camera"!==t&&!qe(e.expression),this.interpolationType=n};function ln(t,e){if("error"===(t=an(t,e)).result)return t;var r=t.value.expression,n=He(r);if(!n&&!qr(e))return Hr([new Nt("","data expressions not supported")]);var i=Ge(r,["zoom"]);if(!i&&!Gr(e))return Hr([new Nt("","zoom expressions not supported")]);var a=cn(r);if(!a&&!i)return Hr([new Nt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);if(a instanceof Nt)return Hr([a]);if(a instanceof gr&&!Zr(e))return Hr([new Nt("",'"interpolate" expressions cannot be used with this property')]);if(!a)return Vr(new on(n?"constant":"source",t.value));var o=a instanceof gr?a.interpolation:void 0;return Vr(new sn(n?"camera":"composite",t.value,a.labels,o))}sn.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},sn.prototype.evaluate=function(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)},sn.prototype.interpolationFactor=function(t,e,r){return this.interpolationType?gr.interpolationFactor(this.interpolationType,t,e,r):0};var un=function(t,e){this._parameters=t,this._specification=e,Rt(this,Jr(this._parameters,this._specification))};function cn(t){var e=null;if(t instanceof xr)e=cn(t.result);else if(t instanceof mr)for(var r=0,n=t.args;r<n.length;r+=1){var i=n[r];if(e=cn(i))break}else(t instanceof Je||t instanceof gr)&&t.input instanceof ke&&"zoom"===t.input.name&&(e=t);return e instanceof Nt||t.eachChild((function(t){var r=cn(t);r instanceof Nt?e=r:!e&&r?e=new Nt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&r&&e!==r&&(e=new Nt("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))})),e}function fn(t){var e=t.key,r=t.value,n=t.valueSpec||{},i=t.objectElementValidators||{},a=t.style,o=t.styleSpec,s=[],l=Yr(r);if("object"!==l)return[new Dt(e,r,"object expected, "+l+" found")];for(var u in r){var c=u.split(".")[0],f=n[c]||n["*"],h=void 0;if(i[c])h=i[c];else if(n[c])h=Bn;else if(i["*"])h=i["*"];else{if(!n["*"]){s.push(new Dt(e,r[u],'unknown property "'+u+'"'));continue}h=Bn}s=s.concat(h({key:(e?e+".":e)+u,value:r[u],valueSpec:f,style:a,styleSpec:o,object:r,objectKey:u},r))}for(var p in n)i[p]||n[p].required&&void 0===n[p].default&&void 0===r[p]&&s.push(new Dt(e,r,'missing required property "'+p+'"'));return s}function hn(t){var e=t.value,r=t.valueSpec,n=t.style,i=t.styleSpec,a=t.key,o=t.arrayElementValidator||Bn;if("array"!==Yr(e))return[new Dt(a,e,"array expected, "+Yr(e)+" found")];if(r.length&&e.length!==r.length)return[new Dt(a,e,"array length "+r.length+" expected, length "+e.length+" found")];if(r["min-length"]&&e.length<r["min-length"])return[new Dt(a,e,"array length at least "+r["min-length"]+" expected, length "+e.length+" found")];var s={type:r.value,values:r.values};i.$version<7&&(s.function=r.function),"object"===Yr(r.value)&&(s=r.value);for(var l=[],u=0;u<e.length;u++)l=l.concat(o({array:e,arrayIndex:u,value:e[u],valueSpec:s,style:n,styleSpec:i,key:a+"["+u+"]"}));return l}function pn(t){var e=t.key,r=t.value,n=t.valueSpec,i=Yr(r);return"number"===i&&r!=r&&(i="NaN"),"number"!==i?[new Dt(e,r,"number expected, "+i+" found")]:"minimum"in n&&r<n.minimum?[new Dt(e,r,r+" is less than the minimum value "+n.minimum)]:"maximum"in n&&r>n.maximum?[new Dt(e,r,r+" is greater than the maximum value "+n.maximum)]:[]}function dn(t){var e,r,n,i=t.valueSpec,a=Ft(t.value.type),o={},s="categorical"!==a&&void 0===t.value.property,l=!s,u="array"===Yr(t.value.stops)&&"array"===Yr(t.value.stops[0])&&"object"===Yr(t.value.stops[0][0]),c=fn({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===a)return[new Dt(t.key,t.value,'identity function may not have a "stops" property')];var e=[],r=t.value;return e=e.concat(hn({key:t.key,value:r,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:f})),"array"===Yr(r)&&0===r.length&&e.push(new Dt(t.key,r,"array must have at least one stop")),e},default:function(t){return Bn({key:t.key,value:t.value,valueSpec:i,style:t.style,styleSpec:t.styleSpec})}}});return"identity"===a&&s&&c.push(new Dt(t.key,t.value,'missing required property "property"')),"identity"===a||t.value.stops||c.push(new Dt(t.key,t.value,'missing required property "stops"')),"exponential"===a&&t.valueSpec.expression&&!Zr(t.valueSpec)&&c.push(new Dt(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!qr(t.valueSpec)?c.push(new Dt(t.key,t.value,"property functions not supported")):s&&!Gr(t.valueSpec)&&c.push(new Dt(t.key,t.value,"zoom functions not supported"))),"categorical"!==a&&!u||void 0!==t.value.property||c.push(new Dt(t.key,t.value,'"property" property is required')),c;function f(t){var e=[],a=t.value,s=t.key;if("array"!==Yr(a))return[new Dt(s,a,"array expected, "+Yr(a)+" found")];if(2!==a.length)return[new Dt(s,a,"array length 2 expected, length "+a.length+" found")];if(u){if("object"!==Yr(a[0]))return[new Dt(s,a,"object expected, "+Yr(a[0])+" found")];if(void 0===a[0].zoom)return[new Dt(s,a,"object stop key must have zoom")];if(void 0===a[0].value)return[new Dt(s,a,"object stop key must have value")];if(n&&n>Ft(a[0].zoom))return[new Dt(s,a[0].zoom,"stop zoom values must appear in ascending order")];Ft(a[0].zoom)!==n&&(n=Ft(a[0].zoom),r=void 0,o={}),e=e.concat(fn({key:s+"[0]",value:a[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:pn,value:h}}))}else e=e.concat(h({key:s+"[0]",value:a[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},a));return nn(Bt(a[1]))?e.concat([new Dt(s+"[1]",a[1],"expressions are not allowed in function stops.")]):e.concat(Bn({key:s+"[1]",value:a[1],valueSpec:i,style:t.style,styleSpec:t.styleSpec}))}function h(t,n){var s=Yr(t.value),l=Ft(t.value),u=null!==t.value?t.value:n;if(e){if(s!==e)return[new Dt(t.key,u,s+" stop domain type must match previous stop domain type "+e)]}else e=s;if("number"!==s&&"string"!==s&&"boolean"!==s)return[new Dt(t.key,u,"stop domain value must be a number, string, or boolean")];if("number"!==s&&"categorical"!==a){var c="number expected, "+s+" found";return qr(i)&&void 0===a&&(c+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new Dt(t.key,u,c)]}return"categorical"!==a||"number"!==s||isFinite(l)&&Math.floor(l)===l?"categorical"!==a&&"number"===s&&void 0!==r&&l<r?[new Dt(t.key,u,"stop domain values must appear in ascending order")]:(r=l,"categorical"===a&&l in o?[new Dt(t.key,u,"stop domain values must be unique")]:(o[l]=!0,[])):[new Dt(t.key,u,"integer expected, found "+l)]}}function vn(t){var e=("property"===t.expressionContext?ln:an)(Bt(t.value),t.valueSpec);if("error"===e.result)return e.value.map((function(e){return new Dt(""+t.key+e.key,t.value,e.message)}));var r=e.value.expression||e.value._styleExpression.expression;if("property"===t.expressionContext&&"text-font"===t.propertyKey&&!r.outputDefined())return[new Dt(t.key,t.value,'Invalid data expression for "'+t.propertyKey+'". Output values must be contained as literals within the expression.')];if("property"===t.expressionContext&&"layout"===t.propertyType&&!qe(r))return[new Dt(t.key,t.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===t.expressionContext&&!qe(r))return[new Dt(t.key,t.value,'"feature-state" data expressions are not supported with filters.')];if(t.expressionContext&&0===t.expressionContext.indexOf("cluster")){if(!Ge(r,["zoom","feature-state"]))return[new Dt(t.key,t.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===t.expressionContext&&!He(r))return[new Dt(t.key,t.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function gn(t){var e=t.key,r=t.value,n=t.valueSpec,i=[];return Array.isArray(n.values)?-1===n.values.indexOf(Ft(r))&&i.push(new Dt(e,r,"expected one of ["+n.values.join(", ")+"], "+JSON.stringify(r)+" found")):-1===Object.keys(n.values).indexOf(Ft(r))&&i.push(new Dt(e,r,"expected one of ["+Object.keys(n.values).join(", ")+"], "+JSON.stringify(r)+" found")),i}function yn(t){if(!0===t||!1===t)return!0;if(!Array.isArray(t)||0===t.length)return!1;switch(t[0]){case"has":return t.length>=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(var e=0,r=t.slice(1);e<r.length;e+=1){var n=r[e];if(!yn(n)&&"boolean"!=typeof n)return!1}return!0;default:return!0}}un.deserialize=function(t){return new un(t._parameters,t._specification)},un.serialize=function(t){return{_parameters:t._parameters,_specification:t._specification}};var mn={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function xn(t){if(null==t)return{filter:function(){return!0},needGeometry:!1};yn(t)||(t=wn(t));var e=an(t,mn);if("error"===e.result)throw new Error(e.value.map((function(t){return t.key+": "+t.message})).join(", "));return{filter:function(t,r,n){return e.value.evaluate(t,r,{},n)},needGeometry:_n(t)}}function bn(t,e){return t<e?-1:t>e?1:0}function _n(t){if(!Array.isArray(t))return!1;if("within"===t[0])return!0;for(var e=1;e<t.length;e++)if(_n(t[e]))return!0;return!1}function wn(t){if(!t)return!0;var e,r=t[0];return t.length<=1?"any"!==r:"=="===r?Tn(t[1],t[2],"=="):"!="===r?Mn(Tn(t[1],t[2],"==")):"<"===r||">"===r||"<="===r||">="===r?Tn(t[1],t[2],r):"any"===r?(e=t.slice(1),["any"].concat(e.map(wn))):"all"===r?["all"].concat(t.slice(1).map(wn)):"none"===r?["all"].concat(t.slice(1).map(wn).map(Mn)):"in"===r?kn(t[1],t.slice(2)):"!in"===r?Mn(kn(t[1],t.slice(2))):"has"===r?An(t[1]):"!has"===r?Mn(An(t[1])):"within"!==r||t}function Tn(t,e,r){switch(t){case"$type":return["filter-type-"+r,e];case"$id":return["filter-id-"+r,e];default:return["filter-"+r,t,e]}}function kn(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((function(t){return typeof t!=typeof e[0]}))?["filter-in-large",t,["literal",e.sort(bn)]]:["filter-in-small",t,["literal",e]]}}function An(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function Mn(t){return["!",t]}function Sn(t){return yn(Bt(t.value))?vn(Rt({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):En(t)}function En(t){var e=t.value,r=t.key;if("array"!==Yr(e))return[new Dt(r,e,"array expected, "+Yr(e)+" found")];var n,i=t.styleSpec,a=[];if(e.length<1)return[new Dt(r,e,"filter array must have at least 1 element")];switch(a=a.concat(gn({key:r+"[0]",value:e[0],valueSpec:i.filter_operator,style:t.style,styleSpec:t.styleSpec})),Ft(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&"$type"===Ft(e[1])&&a.push(new Dt(r,e,'"$type" cannot be use with operator "'+e[0]+'"'));case"==":case"!=":3!==e.length&&a.push(new Dt(r,e,'filter array for operator "'+e[0]+'" must have 3 elements'));case"in":case"!in":e.length>=2&&"string"!==(n=Yr(e[1]))&&a.push(new Dt(r+"[1]",e[1],"string expected, "+n+" found"));for(var o=2;o<e.length;o++)n=Yr(e[o]),"$type"===Ft(e[1])?a=a.concat(gn({key:r+"["+o+"]",value:e[o],valueSpec:i.geometry_type,style:t.style,styleSpec:t.styleSpec})):"string"!==n&&"number"!==n&&"boolean"!==n&&a.push(new Dt(r+"["+o+"]",e[o],"string, number, or boolean expected, "+n+" found"));break;case"any":case"all":case"none":for(var s=1;s<e.length;s++)a=a.concat(En({key:r+"["+s+"]",value:e[s],style:t.style,styleSpec:t.styleSpec}));break;case"has":case"!has":n=Yr(e[1]),2!==e.length?a.push(new Dt(r,e,'filter array for "'+e[0]+'" operator must have 2 elements')):"string"!==n&&a.push(new Dt(r+"[1]",e[1],"string expected, "+n+" found"));break;case"within":n=Yr(e[1]),2!==e.length?a.push(new Dt(r,e,'filter array for "'+e[0]+'" operator must have 2 elements')):"object"!==n&&a.push(new Dt(r+"[1]",e[1],"object expected, "+n+" found"))}return a}function Ln(t,e){var r=t.key,n=t.style,i=t.styleSpec,a=t.value,o=t.objectKey,s=i[e+"_"+t.layerType];if(!s)return[];var l=o.match(/^(.*)-transition$/);if("paint"===e&&l&&s[l[1]]&&s[l[1]].transition)return Bn({key:r,value:a,valueSpec:i.transition,style:n,styleSpec:i});var u,c=t.valueSpec||s[o];if(!c)return[new Dt(r,a,'unknown property "'+o+'"')];if("string"===Yr(a)&&qr(c)&&!c.tokens&&(u=/^{([^}]+)}$/.exec(a)))return[new Dt(r,a,'"'+o+'" does not support interpolation syntax\nUse an identity property function instead: `{ "type": "identity", "property": '+JSON.stringify(u[1])+" }`.")];var f=[];return"symbol"===t.layerType&&("text-field"===o&&n&&!n.glyphs&&f.push(new Dt(r,a,'use of "text-field" requires a style "glyphs" property')),"text-font"===o&&Wr(Bt(a))&&"identity"===Ft(a.type)&&f.push(new Dt(r,a,'"text-font" does not support identity functions'))),f.concat(Bn({key:t.key,value:a,valueSpec:c,style:n,styleSpec:i,expressionContext:"property",propertyType:e,propertyKey:o}))}function Cn(t){return Ln(t,"paint")}function Pn(t){return Ln(t,"layout")}function On(t){var e=[],r=t.value,n=t.key,i=t.style,a=t.styleSpec;r.type||r.ref||e.push(new Dt(n,r,'either "type" or "ref" is required'));var o,s=Ft(r.type),l=Ft(r.ref);if(r.id)for(var u=Ft(r.id),c=0;c<t.arrayIndex;c++){var f=i.layers[c];Ft(f.id)===u&&e.push(new Dt(n,r.id,'duplicate layer id "'+r.id+'", previously used at line '+f.id.__line__))}if("ref"in r)["type","source","source-layer","filter","layout"].forEach((function(t){t in r&&e.push(new Dt(n,r[t],'"'+t+'" is prohibited for ref layers'))})),i.layers.forEach((function(t){Ft(t.id)===l&&(o=t)})),o?o.ref?e.push(new Dt(n,r.ref,"ref cannot reference another ref layer")):s=Ft(o.type):e.push(new Dt(n,r.ref,'ref layer "'+l+'" not found'));else if("background"!==s)if(r.source){var h=i.sources&&i.sources[r.source],p=h&&Ft(h.type);h?"vector"===p&&"raster"===s?e.push(new Dt(n,r.source,'layer "'+r.id+'" requires a raster source')):"raster"===p&&"raster"!==s?e.push(new Dt(n,r.source,'layer "'+r.id+'" requires a vector source')):"vector"!==p||r["source-layer"]?"raster-dem"===p&&"hillshade"!==s?e.push(new Dt(n,r.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"!==s||!r.paint||!r.paint["line-gradient"]||"geojson"===p&&h.lineMetrics||e.push(new Dt(n,r,'layer "'+r.id+'" specifies a line-gradient, which requires a GeoJSON source with `lineMetrics` enabled.')):e.push(new Dt(n,r,'layer "'+r.id+'" must specify a "source-layer"')):e.push(new Dt(n,r.source,'source "'+r.source+'" not found'))}else e.push(new Dt(n,r,'missing required property "source"'));return e=e.concat(fn({key:n,value:r,valueSpec:a.layer,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":function(){return[]},type:function(){return Bn({key:n+".type",value:r.type,valueSpec:a.layer.type,style:t.style,styleSpec:t.styleSpec,object:r,objectKey:"type"})},filter:Sn,layout:function(t){return fn({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":function(t){return Pn(Rt({layerType:s},t))}}})},paint:function(t){return fn({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":function(t){return Cn(Rt({layerType:s},t))}}})}}})),e}function In(t){var e=t.value,r=t.key,n=Yr(e);return"string"!==n?[new Dt(r,e,"string expected, "+n+" found")]:[]}var Dn={promoteId:function(t){var e=t.key,r=t.value;if("string"===Yr(r))return In({key:e,value:r});var n=[];for(var i in r)n.push.apply(n,In({key:e+"."+i,value:r[i]}));return n}};function zn(t){var e=t.value,r=t.key,n=t.styleSpec,i=t.style;if(!e.type)return[new Dt(r,e,'"type" is required')];var a,o=Ft(e.type);switch(o){case"vector":case"raster":case"raster-dem":return fn({key:r,value:e,valueSpec:n["source_"+o.replace("-","_")],style:t.style,styleSpec:n,objectElementValidators:Dn});case"geojson":if(a=fn({key:r,value:e,valueSpec:n.source_geojson,style:i,styleSpec:n,objectElementValidators:Dn}),e.cluster)for(var s in e.clusterProperties){var l=e.clusterProperties[s],u=l[0],c=l[1],f="string"==typeof u?[u,["accumulated"],["get",s]]:u;a.push.apply(a,vn({key:r+"."+s+".map",value:c,expressionContext:"cluster-map"})),a.push.apply(a,vn({key:r+"."+s+".reduce",value:f,expressionContext:"cluster-reduce"}))}return a;case"video":return fn({key:r,value:e,valueSpec:n.source_video,style:i,styleSpec:n});case"image":return fn({key:r,value:e,valueSpec:n.source_image,style:i,styleSpec:n});case"canvas":return[new Dt(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return gn({key:r+".type",value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:i,styleSpec:n})}}function Rn(t){var e=t.value,r=t.styleSpec,n=r.light,i=t.style,a=[],o=Yr(e);if(void 0===e)return a;if("object"!==o)return a.concat([new Dt("light",e,"object expected, "+o+" found")]);for(var s in e){var l=s.match(/^(.*)-transition$/);a=l&&n[l[1]]&&n[l[1]].transition?a.concat(Bn({key:s,value:e[s],valueSpec:r.transition,style:i,styleSpec:r})):n[s]?a.concat(Bn({key:s,value:e[s],valueSpec:n[s],style:i,styleSpec:r})):a.concat([new Dt(s,e[s],'unknown property "'+s+'"')])}return a}var Fn={"*":function(){return[]},array:hn,boolean:function(t){var e=t.value,r=t.key,n=Yr(e);return"boolean"!==n?[new Dt(r,e,"boolean expected, "+n+" found")]:[]},number:pn,color:function(t){var e=t.key,r=t.value,n=Yr(r);return"string"!==n?[new Dt(e,r,"color expected, "+n+" found")]:null===ie(r)?[new Dt(e,r,'color expected, "'+r+'" found')]:[]},constants:zt,enum:gn,filter:Sn,function:dn,layer:On,object:fn,source:zn,light:Rn,string:In,formatted:function(t){return 0===In(t).length?[]:vn(t)},resolvedImage:function(t){return 0===In(t).length?[]:vn(t)}};function Bn(t){var e=t.value,r=t.valueSpec,n=t.styleSpec;return r.expression&&Wr(Ft(e))?dn(t):r.expression&&nn(Bt(e))?vn(t):r.type&&Fn[r.type]?Fn[r.type](t):fn(Rt({},t,{valueSpec:r.type?n[r.type]:r}))}function Nn(t){var e=t.value,r=t.key,n=In(t);return n.length||(-1===e.indexOf("{fontstack}")&&n.push(new Dt(r,e,'"glyphs" url must include a "{fontstack}" token')),-1===e.indexOf("{range}")&&n.push(new Dt(r,e,'"glyphs" url must include a "{range}" token'))),n}function jn(t,e){void 0===e&&(e=It);var r=[];return r=r.concat(Bn({key:"",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:Nn,"*":function(){return[]}}})),t.constants&&(r=r.concat(zt({key:"constants",value:t.constants,style:t,styleSpec:e}))),Un(r)}function Un(t){return[].concat(t).sort((function(t,e){return t.line-e.line}))}function Vn(t){return function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];return Un(t.apply(this,e))}}jn.source=Vn(zn),jn.light=Vn(Rn),jn.layer=Vn(On),jn.filter=Vn(Sn),jn.paintProperty=Vn(Cn),jn.layoutProperty=Vn(Pn);var Hn=jn,qn=Hn.light,Gn=Hn.paintProperty,Zn=Hn.layoutProperty;function Yn(t,e){var r=!1;if(e&&e.length)for(var n=0,i=e;n<i.length;n+=1){var a=i[n];t.fire(new Pt(new Error(a.message))),r=!0}return r}var Wn=Xn;function Xn(t,e,r){var n=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;var i=new Int32Array(this.arrayBuffer);t=i[0],e=i[1],r=i[2],this.d=e+2*r;for(var a=0;a<this.d*this.d;a++){var o=i[3+a],s=i[3+a+1];n.push(o===s?null:i.subarray(o,s))}var l=i[3+n.length],u=i[3+n.length+1];this.keys=i.subarray(l,u),this.bboxes=i.subarray(u),this.insert=this._insertReadonly}else{this.d=e+2*r;for(var c=0;c<this.d*this.d;c++)n.push([]);this.keys=[],this.bboxes=[]}this.n=e,this.extent=t,this.padding=r,this.scale=e/t,this.uid=0;var f=r/e*t;this.min=-f,this.max=t+f}Xn.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertCell,this.uid++),this.keys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i)},Xn.prototype._insertReadonly=function(){throw"Cannot insert into a GridIndex created from an ArrayBuffer."},Xn.prototype._insertCell=function(t,e,r,n,i,a){this.cells[i].push(a)},Xn.prototype.query=function(t,e,r,n,i){var a=this.min,o=this.max;if(t<=a&&e<=a&&o<=r&&o<=n&&!i)return Array.prototype.slice.call(this.keys);var s=[];return this._forEachCell(t,e,r,n,this._queryCell,s,{},i),s},Xn.prototype._queryCell=function(t,e,r,n,i,a,o,s){var l=this.cells[i];if(null!==l)for(var u=this.keys,c=this.bboxes,f=0;f<l.length;f++){var h=l[f];if(void 0===o[h]){var p=4*h;(s?s(c[p+0],c[p+1],c[p+2],c[p+3]):t<=c[p+2]&&e<=c[p+3]&&r>=c[p+0]&&n>=c[p+1])?(o[h]=!0,a.push(u[h])):o[h]=!1}}},Xn.prototype._forEachCell=function(t,e,r,n,i,a,o,s){for(var l=this._convertToCellCoord(t),u=this._convertToCellCoord(e),c=this._convertToCellCoord(r),f=this._convertToCellCoord(n),h=l;h<=c;h++)for(var p=u;p<=f;p++){var d=this.d*p+h;if((!s||s(this._convertFromCellCoord(h),this._convertFromCellCoord(p),this._convertFromCellCoord(h+1),this._convertFromCellCoord(p+1)))&&i.call(this,t,e,r,n,d,a,o,s))return}},Xn.prototype._convertFromCellCoord=function(t){return(t-this.padding)/this.scale},Xn.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},Xn.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=3+this.cells.length+1+1,r=0,n=0;n<this.cells.length;n++)r+=this.cells[n].length;var i=new Int32Array(e+r+this.keys.length+this.bboxes.length);i[0]=this.extent,i[1]=this.n,i[2]=this.padding;for(var a=e,o=0;o<t.length;o++){var s=t[o];i[3+o]=a,i.set(s,a),a+=s.length}return i[3+t.length]=a,i.set(this.keys,a),a+=this.keys.length,i[3+t.length+1]=a,i.set(this.bboxes,a),a+=this.bboxes.length,i.buffer};var Jn=self.ImageData,Kn=self.ImageBitmap,$n={};function Qn(t,e,r){void 0===r&&(r={}),Object.defineProperty(e,"_classRegistryKey",{value:t,writeable:!1}),$n[t]={klass:e,omit:r.omit||[],shallow:r.shallow||[]}}for(var ti in Qn("Object",Object),Wn.serialize=function(t,e){var r=t.toArrayBuffer();return e&&e.push(r),{buffer:r}},Wn.deserialize=function(t){return new Wn(t.buffer)},Qn("Grid",Wn),Qn("Color",ae),Qn("Error",Error),Qn("ResolvedImage",ue),Qn("StylePropertyFunction",un),Qn("StyleExpression",rn,{omit:["_evaluator"]}),Qn("ZoomDependentExpression",sn),Qn("ZoomConstantExpression",on),Qn("CompoundExpression",ke,{omit:["_evaluate"]}),Fr)Fr[ti]._classRegistryKey||Qn("Expression_"+ti,Fr[ti]);function ei(t){return t&&"undefined"!=typeof ArrayBuffer&&(t instanceof ArrayBuffer||t.constructor&&"ArrayBuffer"===t.constructor.name)}function ri(t){return Kn&&t instanceof Kn}function ni(t,e){if(null==t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp)return t;if(ei(t)||ri(t))return e&&e.push(t),t;if(ArrayBuffer.isView(t)){var r=t;return e&&e.push(r.buffer),r}if(t instanceof Jn)return e&&e.push(t.data.buffer),t;if(Array.isArray(t)){for(var n=[],i=0,a=t;i<a.length;i+=1){var o=a[i];n.push(ni(o,e))}return n}if("object"==typeof t){var s=t.constructor,l=s._classRegistryKey;if(!l)throw new Error("can't serialize object of unregistered class");var u=s.serialize?s.serialize(t,e):{};if(!s.serialize){for(var c in t)if(t.hasOwnProperty(c)&&!($n[l].omit.indexOf(c)>=0)){var f=t[c];u[c]=$n[l].shallow.indexOf(c)>=0?f:ni(f,e)}t instanceof Error&&(u.message=t.message)}if(u.$name)throw new Error("$name property is reserved for worker serialization logic.");return"Object"!==l&&(u.$name=l),u}throw new Error("can't serialize object of type "+typeof t)}function ii(t){if(null==t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||ei(t)||ri(t)||ArrayBuffer.isView(t)||t instanceof Jn)return t;if(Array.isArray(t))return t.map(ii);if("object"==typeof t){var e=t.$name||"Object",r=$n[e].klass;if(!r)throw new Error("can't deserialize unregistered class "+e);if(r.deserialize)return r.deserialize(t);for(var n=Object.create(r.prototype),i=0,a=Object.keys(t);i<a.length;i+=1){var o=a[i];if("$name"!==o){var s=t[o];n[o]=$n[e].shallow.indexOf(o)>=0?s:ii(s)}}return n}throw new Error("can't deserialize object of type "+typeof t)}var ai=function(){this.first=!0};ai.prototype.update=function(t,e){var r=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=r,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=r,!0):(this.lastFloorZoom>r?(this.lastIntegerZoom=r+1,this.lastIntegerZoomTime=e):this.lastFloorZoom<r&&(this.lastIntegerZoom=r,this.lastIntegerZoomTime=e),t!==this.lastZoom&&(this.lastZoom=t,this.lastFloorZoom=r,!0))};var oi={"Latin-1 Supplement":function(t){return t>=128&&t<=255},Arabic:function(t){return t>=1536&&t<=1791},"Arabic Supplement":function(t){return t>=1872&&t<=1919},"Arabic Extended-A":function(t){return t>=2208&&t<=2303},"Hangul Jamo":function(t){return t>=4352&&t<=4607},"Unified Canadian Aboriginal Syllabics":function(t){return t>=5120&&t<=5759},Khmer:function(t){return t>=6016&&t<=6143},"Unified Canadian Aboriginal Syllabics Extended":function(t){return t>=6320&&t<=6399},"General Punctuation":function(t){return t>=8192&&t<=8303},"Letterlike Symbols":function(t){return t>=8448&&t<=8527},"Number Forms":function(t){return t>=8528&&t<=8591},"Miscellaneous Technical":function(t){return t>=8960&&t<=9215},"Control Pictures":function(t){return t>=9216&&t<=9279},"Optical Character Recognition":function(t){return t>=9280&&t<=9311},"Enclosed Alphanumerics":function(t){return t>=9312&&t<=9471},"Geometric Shapes":function(t){return t>=9632&&t<=9727},"Miscellaneous Symbols":function(t){return t>=9728&&t<=9983},"Miscellaneous Symbols and Arrows":function(t){return t>=11008&&t<=11263},"CJK Radicals Supplement":function(t){return t>=11904&&t<=12031},"Kangxi Radicals":function(t){return t>=12032&&t<=12255},"Ideographic Description Characters":function(t){return t>=12272&&t<=12287},"CJK Symbols and Punctuation":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},"Hangul Compatibility Jamo":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},"Bopomofo Extended":function(t){return t>=12704&&t<=12735},"CJK Strokes":function(t){return t>=12736&&t<=12783},"Katakana Phonetic Extensions":function(t){return t>=12784&&t<=12799},"Enclosed CJK Letters and Months":function(t){return t>=12800&&t<=13055},"CJK Compatibility":function(t){return t>=13056&&t<=13311},"CJK Unified Ideographs Extension A":function(t){return t>=13312&&t<=19903},"Yijing Hexagram Symbols":function(t){return t>=19904&&t<=19967},"CJK Unified Ideographs":function(t){return t>=19968&&t<=40959},"Yi Syllables":function(t){return t>=40960&&t<=42127},"Yi Radicals":function(t){return t>=42128&&t<=42191},"Hangul Jamo Extended-A":function(t){return t>=43360&&t<=43391},"Hangul Syllables":function(t){return t>=44032&&t<=55215},"Hangul Jamo Extended-B":function(t){return t>=55216&&t<=55295},"Private Use Area":function(t){return t>=57344&&t<=63743},"CJK Compatibility Ideographs":function(t){return t>=63744&&t<=64255},"Arabic Presentation Forms-A":function(t){return t>=64336&&t<=65023},"Vertical Forms":function(t){return t>=65040&&t<=65055},"CJK Compatibility Forms":function(t){return t>=65072&&t<=65103},"Small Form Variants":function(t){return t>=65104&&t<=65135},"Arabic Presentation Forms-B":function(t){return t>=65136&&t<=65279},"Halfwidth and Fullwidth Forms":function(t){return t>=65280&&t<=65519}};function si(t){for(var e=0,r=t;e<r.length;e+=1)if(li(r[e].charCodeAt(0)))return!0;return!1}function li(t){return!(746!==t&&747!==t&&(t<4352||!(oi["Bopomofo Extended"](t)||oi.Bopomofo(t)||oi["CJK Compatibility Forms"](t)&&!(t>=65097&&t<=65103)||oi["CJK Compatibility Ideographs"](t)||oi["CJK Compatibility"](t)||oi["CJK Radicals Supplement"](t)||oi["CJK Strokes"](t)||!(!oi["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||oi["CJK Unified Ideographs Extension A"](t)||oi["CJK Unified Ideographs"](t)||oi["Enclosed CJK Letters and Months"](t)||oi["Hangul Compatibility Jamo"](t)||oi["Hangul Jamo Extended-A"](t)||oi["Hangul Jamo Extended-B"](t)||oi["Hangul Jamo"](t)||oi["Hangul Syllables"](t)||oi.Hiragana(t)||oi["Ideographic Description Characters"](t)||oi.Kanbun(t)||oi["Kangxi Radicals"](t)||oi["Katakana Phonetic Extensions"](t)||oi.Katakana(t)&&12540!==t||!(!oi["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!oi["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||oi["Unified Canadian Aboriginal Syllabics"](t)||oi["Unified Canadian Aboriginal Syllabics Extended"](t)||oi["Vertical Forms"](t)||oi["Yijing Hexagram Symbols"](t)||oi["Yi Syllables"](t)||oi["Yi Radicals"](t))))}function ui(t){return!(li(t)||function(t){return!!(oi["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||oi["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||oi["Letterlike Symbols"](t)||oi["Number Forms"](t)||oi["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||oi["Control Pictures"](t)&&9251!==t||oi["Optical Character Recognition"](t)||oi["Enclosed Alphanumerics"](t)||oi["Geometric Shapes"](t)||oi["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||oi["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||oi["CJK Symbols and Punctuation"](t)||oi.Katakana(t)||oi["Private Use Area"](t)||oi["CJK Compatibility Forms"](t)||oi["Small Form Variants"](t)||oi["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function ci(t){return oi.Arabic(t)||oi["Arabic Supplement"](t)||oi["Arabic Extended-A"](t)||oi["Arabic Presentation Forms-A"](t)||oi["Arabic Presentation Forms-B"](t)}function fi(t){return t>=1424&&t<=2303||oi["Arabic Presentation Forms-A"](t)||oi["Arabic Presentation Forms-B"](t)}function hi(t,e){return!(!e&&fi(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||oi.Khmer(t))}function pi(t){for(var e=0,r=t;e<r.length;e+=1)if(fi(r[e].charCodeAt(0)))return!0;return!1}var di="deferred",vi="loading",gi="loaded",yi="error",mi=null,xi="unavailable",bi=null,_i=function(t){t&&"string"==typeof t&&t.indexOf("NetworkError")>-1&&(xi=yi),mi&&mi(t)};function wi(){Ti.fire(new Ct("pluginStateChange",{pluginStatus:xi,pluginURL:bi}))}var Ti=new Ot,ki=function(){return xi},Ai=function(){if(xi!==di||!bi)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");xi=vi,wi(),bi&&Tt({url:bi},(function(t){t?_i(t):(xi=gi,wi())}))},Mi={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return xi===gi||null!=Mi.applyArabicShaping},isLoading:function(){return xi===vi},setState:function(t){xi=t.pluginStatus,bi=t.pluginURL},isParsed:function(){return null!=Mi.applyArabicShaping&&null!=Mi.processBidirectionalText&&null!=Mi.processStyledBidirectionalText},getPluginURL:function(){return bi}},Si=function(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new ai,this.transition={})};Si.prototype.isSupportedScript=function(t){return function(t,e){for(var r=0,n=t;r<n.length;r+=1)if(!hi(n[r].charCodeAt(0),e))return!1;return!0}(t,Mi.isLoaded())},Si.prototype.crossFadingFactor=function(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)},Si.prototype.getCrossfadeParameters=function(){var t=this.zoom,e=t-Math.floor(t),r=this.crossFadingFactor();return t>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:e+(1-e)*r}:{fromScale:.5,toScale:1,t:1-(1-r)*e}};var Ei=function(t,e){this.property=t,this.value=e,this.expression=function(t,e){if(Wr(t))return new un(t,e);if(nn(t)){var r=ln(t,e);if("error"===r.result)throw new Error(r.value.map((function(t){return t.key+": "+t.message})).join(", "));return r.value}var n=t;return"string"==typeof t&&"color"===e.type&&(n=ae.parse(t)),{kind:"constant",evaluate:function(){return n}}}(void 0===e?t.specification.default:e,t.specification)};Ei.prototype.isDataDriven=function(){return"source"===this.expression.kind||"composite"===this.expression.kind},Ei.prototype.possiblyEvaluate=function(t,e,r){return this.property.possiblyEvaluate(this,t,e,r)};var Li=function(t){this.property=t,this.value=new Ei(t,void 0)};Li.prototype.transitioned=function(t,e){return new Pi(this.property,this.value,e,f({},t.transition,this.transition),t.now)},Li.prototype.untransitioned=function(){return new Pi(this.property,this.value,null,{},0)};var Ci=function(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)};Ci.prototype.getValue=function(t){return b(this._values[t].value.value)},Ci.prototype.setValue=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new Li(this._values[t].property)),this._values[t].value=new Ei(this._values[t].property,null===e?void 0:b(e))},Ci.prototype.getTransition=function(t){return b(this._values[t].transition)},Ci.prototype.setTransition=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new Li(this._values[t].property)),this._values[t].transition=b(e)||void 0},Ci.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);e<r.length;e+=1){var n=r[e],i=this.getValue(n);void 0!==i&&(t[n]=i);var a=this.getTransition(n);void 0!==a&&(t[n+"-transition"]=a)}return t},Ci.prototype.transitioned=function(t,e){for(var r=new Oi(this._properties),n=0,i=Object.keys(this._values);n<i.length;n+=1){var a=i[n];r._values[a]=this._values[a].transitioned(t,e._values[a])}return r},Ci.prototype.untransitioned=function(){for(var t=new Oi(this._properties),e=0,r=Object.keys(this._values);e<r.length;e+=1){var n=r[e];t._values[n]=this._values[n].untransitioned()}return t};var Pi=function(t,e,r,n,i){this.property=t,this.value=e,this.begin=i+n.delay||0,this.end=this.begin+n.duration||0,t.specification.transition&&(n.delay||n.duration)&&(this.prior=r)};Pi.prototype.possiblyEvaluate=function(t,e,r){var n=t.now||0,i=this.value.possiblyEvaluate(t,e,r),a=this.prior;if(a){if(n>this.end)return this.prior=null,i;if(this.value.isDataDriven())return this.prior=null,i;if(n<this.begin)return a.possiblyEvaluate(t,e,r);var o=(n-this.begin)/(this.end-this.begin);return this.property.interpolate(a.possiblyEvaluate(t,e,r),i,function(t){if(t<=0)return 0;if(t>=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}(o))}return i};var Oi=function(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues)};Oi.prototype.possiblyEvaluate=function(t,e,r){for(var n=new zi(this._properties),i=0,a=Object.keys(this._values);i<a.length;i+=1){var o=a[i];n._values[o]=this._values[o].possiblyEvaluate(t,e,r)}return n},Oi.prototype.hasTransition=function(){for(var t=0,e=Object.keys(this._values);t<e.length;t+=1){var r=e[t];if(this._values[r].prior)return!0}return!1};var Ii=function(t){this._properties=t,this._values=Object.create(t.defaultPropertyValues)};Ii.prototype.getValue=function(t){return b(this._values[t].value)},Ii.prototype.setValue=function(t,e){this._values[t]=new Ei(this._values[t].property,null===e?void 0:b(e))},Ii.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);e<r.length;e+=1){var n=r[e],i=this.getValue(n);void 0!==i&&(t[n]=i)}return t},Ii.prototype.possiblyEvaluate=function(t,e,r){for(var n=new zi(this._properties),i=0,a=Object.keys(this._values);i<a.length;i+=1){var o=a[i];n._values[o]=this._values[o].possiblyEvaluate(t,e,r)}return n};var Di=function(t,e,r){this.property=t,this.value=e,this.parameters=r};Di.prototype.isConstant=function(){return"constant"===this.value.kind},Di.prototype.constantOr=function(t){return"constant"===this.value.kind?this.value.value:t},Di.prototype.evaluate=function(t,e,r,n){return this.property.evaluate(this.value,this.parameters,t,e,r,n)};var zi=function(t){this._properties=t,this._values=Object.create(t.defaultPossiblyEvaluatedValues)};zi.prototype.get=function(t){return this._values[t]};var Ri=function(t){this.specification=t};Ri.prototype.possiblyEvaluate=function(t,e){return t.expression.evaluate(e)},Ri.prototype.interpolate=function(t,e,r){var n=$e[this.specification.type];return n?n(t,e,r):t};var Fi=function(t,e){this.specification=t,this.overrides=e};Fi.prototype.possiblyEvaluate=function(t,e,r,n){return"constant"===t.expression.kind||"camera"===t.expression.kind?new Di(this,{kind:"constant",value:t.expression.evaluate(e,null,{},r,n)},e):new Di(this,t.expression,e)},Fi.prototype.interpolate=function(t,e,r){if("constant"!==t.value.kind||"constant"!==e.value.kind)return t;if(void 0===t.value.value||void 0===e.value.value)return new Di(this,{kind:"constant",value:void 0},t.parameters);var n=$e[this.specification.type];return n?new Di(this,{kind:"constant",value:n(t.value.value,e.value.value,r)},t.parameters):t},Fi.prototype.evaluate=function(t,e,r,n,i,a){return"constant"===t.kind?t.value:t.evaluate(e,r,n,i,a)};var Bi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.possiblyEvaluate=function(t,e,r,n){if(void 0===t.value)return new Di(this,{kind:"constant",value:void 0},e);if("constant"===t.expression.kind){var i=t.expression.evaluate(e,null,{},r,n),a="resolvedImage"===t.property.specification.type&&"string"!=typeof i?i.name:i,o=this._calculate(a,a,a,e);return new Di(this,{kind:"constant",value:o},e)}if("camera"===t.expression.kind){var s=this._calculate(t.expression.evaluate({zoom:e.zoom-1}),t.expression.evaluate({zoom:e.zoom}),t.expression.evaluate({zoom:e.zoom+1}),e);return new Di(this,{kind:"constant",value:s},e)}return new Di(this,t.expression,e)},e.prototype.evaluate=function(t,e,r,n,i,a){if("source"===t.kind){var o=t.evaluate(e,r,n,i,a);return this._calculate(o,o,o,e)}return"composite"===t.kind?this._calculate(t.evaluate({zoom:Math.floor(e.zoom)-1},r,n),t.evaluate({zoom:Math.floor(e.zoom)},r,n),t.evaluate({zoom:Math.floor(e.zoom)+1},r,n),e):t.value},e.prototype._calculate=function(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},e.prototype.interpolate=function(t){return t},e}(Fi),Ni=function(t){this.specification=t};Ni.prototype.possiblyEvaluate=function(t,e,r,n){if(void 0!==t.value){if("constant"===t.expression.kind){var i=t.expression.evaluate(e,null,{},r,n);return this._calculate(i,i,i,e)}return this._calculate(t.expression.evaluate(new Si(Math.floor(e.zoom-1),e)),t.expression.evaluate(new Si(Math.floor(e.zoom),e)),t.expression.evaluate(new Si(Math.floor(e.zoom+1),e)),e)}},Ni.prototype._calculate=function(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},Ni.prototype.interpolate=function(t){return t};var ji=function(t){this.specification=t};ji.prototype.possiblyEvaluate=function(t,e,r,n){return!!t.expression.evaluate(e,null,{},r,n)},ji.prototype.interpolate=function(){return!1};var Ui=function(t){for(var e in this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],t){var r=t[e];r.specification.overridable&&this.overridableProperties.push(e);var n=this.defaultPropertyValues[e]=new Ei(r,void 0),i=this.defaultTransitionablePropertyValues[e]=new Li(r);this.defaultTransitioningPropertyValues[e]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=n.possiblyEvaluate({})}};Qn("DataDrivenProperty",Fi),Qn("DataConstantProperty",Ri),Qn("CrossFadedDataDrivenProperty",Bi),Qn("CrossFadedProperty",Ni),Qn("ColorRampProperty",ji);var Vi="-transition",Hi=function(t){function e(e,r){if(t.call(this),this.id=e.id,this.type=e.type,this._featureFilter={filter:function(){return!0},needGeometry:!1},"custom"!==e.type&&(this.metadata=e.metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,"background"!==e.type&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter),r.layout&&(this._unevaluatedLayout=new Ii(r.layout)),r.paint)){for(var n in this._transitionablePaint=new Ci(r.paint),e.paint)this.setPaintProperty(n,e.paint[n],{validate:!1});for(var i in e.layout)this.setLayoutProperty(i,e.layout[i],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new zi(r.paint)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},e.prototype.getLayoutProperty=function(t){return"visibility"===t?this.visibility:this._unevaluatedLayout.getValue(t)},e.prototype.setLayoutProperty=function(t,e,r){if(void 0===r&&(r={}),null!=e){var n="layers."+this.id+".layout."+t;if(this._validate(Zn,n,t,e,r))return}"visibility"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e},e.prototype.getPaintProperty=function(t){return y(t,Vi)?this._transitionablePaint.getTransition(t.slice(0,-Vi.length)):this._transitionablePaint.getValue(t)},e.prototype.setPaintProperty=function(t,e,r){if(void 0===r&&(r={}),null!=e){var n="layers."+this.id+".paint."+t;if(this._validate(Gn,n,t,e,r))return!1}if(y(t,Vi))return this._transitionablePaint.setTransition(t.slice(0,-Vi.length),e||void 0),!1;var i=this._transitionablePaint._values[t],a="cross-faded-data-driven"===i.property.specification["property-type"],o=i.value.isDataDriven(),s=i.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);var l=this._transitionablePaint._values[t].value;return l.isDataDriven()||o||a||this._handleOverridablePaintPropertyUpdate(t,s,l)},e.prototype._handleSpecialPaintPropertyUpdate=function(t){},e.prototype._handleOverridablePaintPropertyUpdate=function(t,e,r){return!1},e.prototype.isHidden=function(t){return!!(this.minzoom&&t<this.minzoom)||!!(this.maxzoom&&t>=this.maxzoom)||"none"===this.visibility},e.prototype.updateTransitions=function(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)},e.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},e.prototype.recalculate=function(t,e){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e)},e.prototype.serialize=function(){var t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),x(t,(function(t,e){return!(void 0===t||"layout"===e&&!Object.keys(t).length||"paint"===e&&!Object.keys(t).length)}))},e.prototype._validate=function(t,e,r,n,i){return void 0===i&&(i={}),(!i||!1!==i.validate)&&Yn(this,t.call(Hn,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:It,style:{glyphs:!0,sprite:!0}}))},e.prototype.is3D=function(){return!1},e.prototype.isTileClipped=function(){return!1},e.prototype.hasOffscreenPass=function(){return!1},e.prototype.resize=function(){},e.prototype.isStateDependent=function(){for(var t in this.paint._values){var e=this.paint.get(t);if(e instanceof Di&&qr(e.property.specification)&&("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent)return!0}return!1},e}(Ot),qi={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},Gi=function(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},Zi=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};function Yi(t,e){void 0===e&&(e=1);var r=0,n=0;return{members:t.map((function(t){var i,a=(i=t.type,qi[i].BYTES_PER_ELEMENT),o=r=Wi(r,Math.max(e,a)),s=t.components||1;return n=Math.max(n,a),r+=a*s,{name:t.name,type:t.type,components:s,offset:o}})),size:Wi(r,Math.max(n,e)),alignment:e}}function Wi(t,e){return Math.ceil(t/e)*e}Zi.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},Zi.deserialize=function(t){var e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e},Zi.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},Zi.prototype.clear=function(){this.length=0},Zi.prototype.resize=function(t){this.reserve(t),this.length=t},Zi.prototype.reserve=function(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},Zi.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var Xi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.int16[n+0]=e,this.int16[n+1]=r,t},e}(Zi);Xi.prototype.bytesPerElement=4,Qn("StructArrayLayout2i4",Xi);var Ji=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.int16[a+0]=e,this.int16[a+1]=r,this.int16[a+2]=n,this.int16[a+3]=i,t},e}(Zi);Ji.prototype.bytesPerElement=8,Qn("StructArrayLayout4i8",Ji);var Ki=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(Zi);Ki.prototype.bytesPerElement=12,Qn("StructArrayLayout2i4i12",Ki);var $i=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=4*t,l=8*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.uint8[l+4]=n,this.uint8[l+5]=i,this.uint8[l+6]=a,this.uint8[l+7]=o,t},e}(Zi);$i.prototype.bytesPerElement=8,Qn("StructArrayLayout2i4ub8",$i);var Qi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,u){var c=this.length;return this.resize(c+1),this.emplace(c,t,e,r,n,i,a,o,s,l,u)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u,c){var f=9*t,h=18*t;return this.uint16[f+0]=e,this.uint16[f+1]=r,this.uint16[f+2]=n,this.uint16[f+3]=i,this.uint16[f+4]=a,this.uint16[f+5]=o,this.uint16[f+6]=s,this.uint16[f+7]=l,this.uint8[h+16]=u,this.uint8[h+17]=c,t},e}(Zi);Qi.prototype.bytesPerElement=18,Qn("StructArrayLayout8ui2ub18",Qi);var ta=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,u,c,f){var h=this.length;return this.resize(h+1),this.emplace(h,t,e,r,n,i,a,o,s,l,u,c,f)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u,c,f,h){var p=12*t;return this.int16[p+0]=e,this.int16[p+1]=r,this.int16[p+2]=n,this.int16[p+3]=i,this.uint16[p+4]=a,this.uint16[p+5]=o,this.uint16[p+6]=s,this.uint16[p+7]=l,this.int16[p+8]=u,this.int16[p+9]=c,this.int16[p+10]=f,this.int16[p+11]=h,t},e}(Zi);ta.prototype.bytesPerElement=24,Qn("StructArrayLayout4i4ui4i24",ta);var ea=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.float32[i+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t},e}(Zi);ea.prototype.bytesPerElement=12,Qn("StructArrayLayout3f12",ea);var ra=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){var r=1*t;return this.uint32[r+0]=e,t},e}(Zi);ra.prototype.bytesPerElement=4,Qn("StructArrayLayout1ul4",ra);var na=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l){var u=this.length;return this.resize(u+1),this.emplace(u,t,e,r,n,i,a,o,s,l)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u){var c=10*t,f=5*t;return this.int16[c+0]=e,this.int16[c+1]=r,this.int16[c+2]=n,this.int16[c+3]=i,this.int16[c+4]=a,this.int16[c+5]=o,this.uint32[f+3]=s,this.uint16[c+8]=l,this.uint16[c+9]=u,t},e}(Zi);na.prototype.bytesPerElement=20,Qn("StructArrayLayout6i1ul2ui20",na);var ia=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(Zi);ia.prototype.bytesPerElement=12,Qn("StructArrayLayout2i2i2i12",ia);var aa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i){var a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)},e.prototype.emplace=function(t,e,r,n,i,a){var o=4*t,s=8*t;return this.float32[o+0]=e,this.float32[o+1]=r,this.float32[o+2]=n,this.int16[s+6]=i,this.int16[s+7]=a,t},e}(Zi);aa.prototype.bytesPerElement=16,Qn("StructArrayLayout2f1f2i16",aa);var oa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=12*t,o=3*t;return this.uint8[a+0]=e,this.uint8[a+1]=r,this.float32[o+1]=n,this.float32[o+2]=i,t},e}(Zi);oa.prototype.bytesPerElement=12,Qn("StructArrayLayout2ub2f12",oa);var sa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.uint16[i+0]=e,this.uint16[i+1]=r,this.uint16[i+2]=n,t},e}(Zi);sa.prototype.bytesPerElement=6,Qn("StructArrayLayout3ui6",sa);var la=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g){var y=this.length;return this.resize(y+1),this.emplace(y,t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y){var m=24*t,x=12*t,b=48*t;return this.int16[m+0]=e,this.int16[m+1]=r,this.uint16[m+2]=n,this.uint16[m+3]=i,this.uint32[x+2]=a,this.uint32[x+3]=o,this.uint32[x+4]=s,this.uint16[m+10]=l,this.uint16[m+11]=u,this.uint16[m+12]=c,this.float32[x+7]=f,this.float32[x+8]=h,this.uint8[b+36]=p,this.uint8[b+37]=d,this.uint8[b+38]=v,this.uint32[x+10]=g,this.int16[m+22]=y,t},e}(Zi);la.prototype.bytesPerElement=48,Qn("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",la);var ua=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S){var E=this.length;return this.resize(E+1),this.emplace(E,t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S,E){var L=34*t,C=17*t;return this.int16[L+0]=e,this.int16[L+1]=r,this.int16[L+2]=n,this.int16[L+3]=i,this.int16[L+4]=a,this.int16[L+5]=o,this.int16[L+6]=s,this.int16[L+7]=l,this.uint16[L+8]=u,this.uint16[L+9]=c,this.uint16[L+10]=f,this.uint16[L+11]=h,this.uint16[L+12]=p,this.uint16[L+13]=d,this.uint16[L+14]=v,this.uint16[L+15]=g,this.uint16[L+16]=y,this.uint16[L+17]=m,this.uint16[L+18]=x,this.uint16[L+19]=b,this.uint16[L+20]=_,this.uint16[L+21]=w,this.uint16[L+22]=T,this.uint32[C+12]=k,this.float32[C+13]=A,this.float32[C+14]=M,this.float32[C+15]=S,this.float32[C+16]=E,t},e}(Zi);ua.prototype.bytesPerElement=68,Qn("StructArrayLayout8i15ui1ul4f68",ua);var ca=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){var r=1*t;return this.float32[r+0]=e,t},e}(Zi);ca.prototype.bytesPerElement=4,Qn("StructArrayLayout1f4",ca);var fa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.int16[i+0]=e,this.int16[i+1]=r,this.int16[i+2]=n,t},e}(Zi);fa.prototype.bytesPerElement=6,Qn("StructArrayLayout3i6",fa);var ha=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=2*t,a=4*t;return this.uint32[i+0]=e,this.uint16[a+2]=r,this.uint16[a+3]=n,t},e}(Zi);ha.prototype.bytesPerElement=8,Qn("StructArrayLayout1ul2ui8",ha);var pa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.uint16[n+0]=e,this.uint16[n+1]=r,t},e}(Zi);pa.prototype.bytesPerElement=4,Qn("StructArrayLayout2ui4",pa);var da=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){var r=1*t;return this.uint16[r+0]=e,t},e}(Zi);da.prototype.bytesPerElement=2,Qn("StructArrayLayout1ui2",da);var va=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.float32[n+0]=e,this.float32[n+1]=r,t},e}(Zi);va.prototype.bytesPerElement=8,Qn("StructArrayLayout2f8",va);var ga=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.float32[a+3]=i,t},e}(Zi);ga.prototype.bytesPerElement=16,Qn("StructArrayLayout4f16",ga);var ya=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},anchorPoint:{configurable:!0}};return r.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},r.x1.get=function(){return this._structArray.int16[this._pos2+2]},r.y1.get=function(){return this._structArray.int16[this._pos2+3]},r.x2.get=function(){return this._structArray.int16[this._pos2+4]},r.y2.get=function(){return this._structArray.int16[this._pos2+5]},r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.anchorPoint.get=function(){return new a(this.anchorPointX,this.anchorPointY)},Object.defineProperties(e.prototype,r),e}(Gi);ya.prototype.size=20;var ma=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new ya(this,t)},e}(na);Qn("CollisionBoxArray",ma);var xa=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},r.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},r.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},r.segment.get=function(){return this._structArray.uint16[this._pos2+10]},r.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},r.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},r.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},r.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},r.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},r.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},r.placedOrientation.set=function(t){this._structArray.uint8[this._pos1+37]=t},r.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},r.hidden.set=function(t){this._structArray.uint8[this._pos1+38]=t},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+10]=t},r.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},Object.defineProperties(e.prototype,r),e}(Gi);xa.prototype.size=48;var ba=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new xa(this,t)},e}(la);Qn("PlacedSymbolArray",ba);var _a=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},useRuntimeCollisionCircles:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0},collisionCircleDiameter:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},r.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},r.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},r.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},r.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},r.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},r.key.get=function(){return this._structArray.uint16[this._pos2+8]},r.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},r.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},r.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},r.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},r.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},r.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},r.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},r.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},r.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},r.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},r.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},r.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},r.useRuntimeCollisionCircles.get=function(){return this._structArray.uint16[this._pos2+22]},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+12]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+12]=t},r.textBoxScale.get=function(){return this._structArray.float32[this._pos4+13]},r.textOffset0.get=function(){return this._structArray.float32[this._pos4+14]},r.textOffset1.get=function(){return this._structArray.float32[this._pos4+15]},r.collisionCircleDiameter.get=function(){return this._structArray.float32[this._pos4+16]},Object.defineProperties(e.prototype,r),e}(Gi);_a.prototype.size=68;var wa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new _a(this,t)},e}(ua);Qn("SymbolInstanceArray",wa);var Ta=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getoffsetX=function(t){return this.float32[1*t+0]},e}(ca);Qn("GlyphOffsetArray",Ta);var ka=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getx=function(t){return this.int16[3*t+0]},e.prototype.gety=function(t){return this.int16[3*t+1]},e.prototype.gettileUnitDistanceFromAnchor=function(t){return this.int16[3*t+2]},e}(fa);Qn("SymbolLineVertexArray",ka);var Aa=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},Object.defineProperties(e.prototype,r),e}(Gi);Aa.prototype.size=8;var Ma=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new Aa(this,t)},e}(ha);Qn("FeatureIndexArray",Ma);var Sa=Yi([{name:"a_pos",components:2,type:"Int16"}],4).members,Ea=function(t){void 0===t&&(t=[]),this.segments=t};function La(t,e){return 256*(t=u(Math.floor(t),0,255))+u(Math.floor(e),0,255)}Ea.prototype.prepareSegment=function(t,e,r,n){var i=this.segments[this.segments.length-1];return t>Ea.MAX_VERTEX_ARRAY_LENGTH&&w("Max vertices per segment is "+Ea.MAX_VERTEX_ARRAY_LENGTH+": bucket requested "+t),(!i||i.vertexLength+t>Ea.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==n)&&(i={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},void 0!==n&&(i.sortKey=n),this.segments.push(i)),i},Ea.prototype.get=function(){return this.segments},Ea.prototype.destroy=function(){for(var t=0,e=this.segments;t<e.length;t+=1){var r=e[t];for(var n in r.vaos)r.vaos[n].destroy()}},Ea.simpleSegment=function(t,e,r,n){return new Ea([{vertexOffset:t,primitiveOffset:e,vertexLength:r,primitiveLength:n,vaos:{},sortKey:0}])},Ea.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,Qn("SegmentVector",Ea);var Ca=Yi([{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint8"},{name:"a_pixel_ratio_to",components:1,type:"Uint8"}]),Pa=e((function(t){t.exports=function(t,e){var r,n,i,a,o,s,l,u;for(r=3&t.length,n=t.length-r,i=e,o=3432918353,s=461845907,u=0;u<n;)l=255&t.charCodeAt(u)|(255&t.charCodeAt(++u))<<8|(255&t.charCodeAt(++u))<<16|(255&t.charCodeAt(++u))<<24,++u,i=27492+(65535&(a=5*(65535&(i=(i^=l=(65535&(l=(l=(65535&l)*o+(((l>>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,r){case 3:l^=(255&t.charCodeAt(u+2))<<16;case 2:l^=(255&t.charCodeAt(u+1))<<8;case 1:i^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(u)))*o+(((l>>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295}return i^=t.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0}})),Oa=e((function(t){t.exports=function(t,e){for(var r,n=t.length,i=e^n,a=0;n>=4;)r=1540483477*(65535&(r=255&t.charCodeAt(a)|(255&t.charCodeAt(++a))<<8|(255&t.charCodeAt(++a))<<16|(255&t.charCodeAt(++a))<<24))+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),n-=4,++a;switch(n){case 3:i^=(255&t.charCodeAt(a+2))<<16;case 2:i^=(255&t.charCodeAt(a+1))<<8;case 1:i=1540483477*(65535&(i^=255&t.charCodeAt(a)))+((1540483477*(i>>>16)&65535)<<16)}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0}})),Ia=Pa,Da=Pa,za=Oa;Ia.murmur3=Da,Ia.murmur2=za;var Ra=function(){this.ids=[],this.positions=[],this.indexed=!1};Ra.prototype.add=function(t,e,r,n){this.ids.push(Ba(t)),this.positions.push(e,r,n)},Ra.prototype.getPositions=function(t){for(var e=Ba(t),r=0,n=this.ids.length-1;r<n;){var i=r+n>>1;this.ids[i]>=e?n=i:r=i+1}for(var a=[];this.ids[r]===e;){var o=this.positions[3*r],s=this.positions[3*r+1],l=this.positions[3*r+2];a.push({index:o,start:s,end:l}),r++}return a},Ra.serialize=function(t,e){var r=new Float64Array(t.ids),n=new Uint32Array(t.positions);return Na(r,n,0,r.length-1),e&&e.push(r.buffer,n.buffer),{ids:r,positions:n}},Ra.deserialize=function(t){var e=new Ra;return e.ids=t.ids,e.positions=t.positions,e.indexed=!0,e};var Fa=Math.pow(2,53)-1;function Ba(t){var e=+t;return!isNaN(e)&&e<=Fa?e:Ia(String(t))}function Na(t,e,r,n){for(;r<n;){for(var i=t[r+n>>1],a=r-1,o=n+1;;){do{a++}while(t[a]<i);do{o--}while(t[o]>i);if(a>=o)break;ja(t,a,o),ja(e,3*a,3*o),ja(e,3*a+1,3*o+1),ja(e,3*a+2,3*o+2)}o-r<n-o?(Na(t,e,r,o),r=o+1):(Na(t,e,o+1,n),n=o)}}function ja(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}Qn("FeaturePositionMap",Ra);var Ua=function(t,e){this.gl=t.gl,this.location=e},Va=function(t){function e(e,r){t.call(this,e,r),this.current=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){this.current!==t&&(this.current=t,this.gl.uniform1i(this.location,t))},e}(Ua),Ha=function(t){function e(e,r){t.call(this,e,r),this.current=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){this.current!==t&&(this.current=t,this.gl.uniform1f(this.location,t))},e}(Ua),qa=function(t){function e(e,r){t.call(this,e,r),this.current=[0,0]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){t[0]===this.current[0]&&t[1]===this.current[1]||(this.current=t,this.gl.uniform2f(this.location,t[0],t[1]))},e}(Ua),Ga=function(t){function e(e,r){t.call(this,e,r),this.current=[0,0,0]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){t[0]===this.current[0]&&t[1]===this.current[1]&&t[2]===this.current[2]||(this.current=t,this.gl.uniform3f(this.location,t[0],t[1],t[2]))},e}(Ua),Za=function(t){function e(e,r){t.call(this,e,r),this.current=[0,0,0,0]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){t[0]===this.current[0]&&t[1]===this.current[1]&&t[2]===this.current[2]&&t[3]===this.current[3]||(this.current=t,this.gl.uniform4f(this.location,t[0],t[1],t[2],t[3]))},e}(Ua),Ya=function(t){function e(e,r){t.call(this,e,r),this.current=ae.transparent}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){t.r===this.current.r&&t.g===this.current.g&&t.b===this.current.b&&t.a===this.current.a||(this.current=t,this.gl.uniform4f(this.location,t.r,t.g,t.b,t.a))},e}(Ua),Wa=new Float32Array(16),Xa=function(t){function e(e,r){t.call(this,e,r),this.current=Wa}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){if(t[12]!==this.current[12]||t[0]!==this.current[0])return this.current=t,void this.gl.uniformMatrix4fv(this.location,!1,t);for(var e=1;e<16;e++)if(t[e]!==this.current[e]){this.current=t,this.gl.uniformMatrix4fv(this.location,!1,t);break}},e}(Ua);function Ja(t){return[La(255*t.r,255*t.g),La(255*t.b,255*t.a)]}var Ka=function(t,e,r){this.value=t,this.uniformNames=e.map((function(t){return"u_"+t})),this.type=r};Ka.prototype.setUniform=function(t,e,r){t.set(r.constantOr(this.value))},Ka.prototype.getBinding=function(t,e,r){return"color"===this.type?new Ya(t,e):new Ha(t,e)};var $a=function(t,e){this.uniformNames=e.map((function(t){return"u_"+t})),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1};$a.prototype.setConstantPatternPositions=function(t,e){this.pixelRatioFrom=e.pixelRatio,this.pixelRatioTo=t.pixelRatio,this.patternFrom=e.tlbr,this.patternTo=t.tlbr},$a.prototype.setUniform=function(t,e,r,n){var i="u_pattern_to"===n?this.patternTo:"u_pattern_from"===n?this.patternFrom:"u_pixel_ratio_to"===n?this.pixelRatioTo:"u_pixel_ratio_from"===n?this.pixelRatioFrom:null;i&&t.set(i)},$a.prototype.getBinding=function(t,e,r){return"u_pattern"===r.substr(0,9)?new Za(t,e):new Ha(t,e)};var Qa=function(t,e,r,n){this.expression=t,this.type=r,this.maxValue=0,this.paintVertexAttributes=e.map((function(t){return{name:"a_"+t,type:"Float32",components:"color"===r?2:1,offset:0}})),this.paintVertexArray=new n};Qa.prototype.populatePaintArray=function(t,e,r,n,i){var a=this.paintVertexArray.length,o=this.expression.evaluate(new Si(0),e,{},n,[],i);this.paintVertexArray.resize(t),this._setPaintValue(a,t,o)},Qa.prototype.updatePaintArray=function(t,e,r,n){var i=this.expression.evaluate({zoom:0},r,n);this._setPaintValue(t,e,i)},Qa.prototype._setPaintValue=function(t,e,r){if("color"===this.type)for(var n=Ja(r),i=t;i<e;i++)this.paintVertexArray.emplace(i,n[0],n[1]);else{for(var a=t;a<e;a++)this.paintVertexArray.emplace(a,r);this.maxValue=Math.max(this.maxValue,Math.abs(r))}},Qa.prototype.upload=function(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))},Qa.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()};var to=function(t,e,r,n,i,a){this.expression=t,this.uniformNames=e.map((function(t){return"u_"+t+"_t"})),this.type=r,this.useIntegerZoom=n,this.zoom=i,this.maxValue=0,this.paintVertexAttributes=e.map((function(t){return{name:"a_"+t,type:"Float32",components:"color"===r?4:2,offset:0}})),this.paintVertexArray=new a};to.prototype.populatePaintArray=function(t,e,r,n,i){var a=this.expression.evaluate(new Si(this.zoom),e,{},n,[],i),o=this.expression.evaluate(new Si(this.zoom+1),e,{},n,[],i),s=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(s,t,a,o)},to.prototype.updatePaintArray=function(t,e,r,n){var i=this.expression.evaluate({zoom:this.zoom},r,n),a=this.expression.evaluate({zoom:this.zoom+1},r,n);this._setPaintValue(t,e,i,a)},to.prototype._setPaintValue=function(t,e,r,n){if("color"===this.type)for(var i=Ja(r),a=Ja(n),o=t;o<e;o++)this.paintVertexArray.emplace(o,i[0],i[1],a[0],a[1]);else{for(var s=t;s<e;s++)this.paintVertexArray.emplace(s,r,n);this.maxValue=Math.max(this.maxValue,Math.abs(r),Math.abs(n))}},to.prototype.upload=function(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))},to.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()},to.prototype.setUniform=function(t,e){var r=this.useIntegerZoom?Math.floor(e.zoom):e.zoom,n=u(this.expression.interpolationFactor(r,this.zoom,this.zoom+1),0,1);t.set(n)},to.prototype.getBinding=function(t,e,r){return new Ha(t,e)};var eo=function(t,e,r,n,i,a){this.expression=t,this.type=e,this.useIntegerZoom=r,this.zoom=n,this.layerId=a,this.zoomInPaintVertexArray=new i,this.zoomOutPaintVertexArray=new i};eo.prototype.populatePaintArray=function(t,e,r){var n=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(t),this.zoomOutPaintVertexArray.resize(t),this._setPaintValues(n,t,e.patterns&&e.patterns[this.layerId],r)},eo.prototype.updatePaintArray=function(t,e,r,n,i){this._setPaintValues(t,e,r.patterns&&r.patterns[this.layerId],i)},eo.prototype._setPaintValues=function(t,e,r,n){if(n&&r){var i=r.min,a=r.mid,o=r.max,s=n[i],l=n[a],u=n[o];if(s&&l&&u)for(var c=t;c<e;c++)this.zoomInPaintVertexArray.emplace(c,l.tl[0],l.tl[1],l.br[0],l.br[1],s.tl[0],s.tl[1],s.br[0],s.br[1],l.pixelRatio,s.pixelRatio),this.zoomOutPaintVertexArray.emplace(c,l.tl[0],l.tl[1],l.br[0],l.br[1],u.tl[0],u.tl[1],u.br[0],u.br[1],l.pixelRatio,u.pixelRatio)}},eo.prototype.upload=function(t){this.zoomInPaintVertexArray&&this.zoomInPaintVertexArray.arrayBuffer&&this.zoomOutPaintVertexArray&&this.zoomOutPaintVertexArray.arrayBuffer&&(this.zoomInPaintVertexBuffer=t.createVertexBuffer(this.zoomInPaintVertexArray,Ca.members,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=t.createVertexBuffer(this.zoomOutPaintVertexArray,Ca.members,this.expression.isStateDependent))},eo.prototype.destroy=function(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy()};var ro=function(t,e,r,n){this.binders={},this.layoutAttributes=n,this._buffers=[];var i=[];for(var a in t.paint._values)if(r(a)){var o=t.paint.get(a);if(o instanceof Di&&qr(o.property.specification)){var s=io(a,t.type),l=o.value,u=o.property.specification.type,c=o.property.useIntegerZoom,f=o.property.specification["property-type"],h="cross-faded"===f||"cross-faded-data-driven"===f;if("constant"===l.kind)this.binders[a]=h?new $a(l.value,s):new Ka(l.value,s,u),i.push("/u_"+a);else if("source"===l.kind||h){var p=ao(a,u,"source");this.binders[a]=h?new eo(l,u,c,e,p,t.id):new Qa(l,s,u,p),i.push("/a_"+a)}else{var d=ao(a,u,"composite");this.binders[a]=new to(l,s,u,c,e,d),i.push("/z_"+a)}}}this.cacheKey=i.sort().join("")};ro.prototype.getMaxValue=function(t){var e=this.binders[t];return e instanceof Qa||e instanceof to?e.maxValue:0},ro.prototype.populatePaintArrays=function(t,e,r,n,i){for(var a in this.binders){var o=this.binders[a];(o instanceof Qa||o instanceof to||o instanceof eo)&&o.populatePaintArray(t,e,r,n,i)}},ro.prototype.setConstantPatternPositions=function(t,e){for(var r in this.binders){var n=this.binders[r];n instanceof $a&&n.setConstantPatternPositions(t,e)}},ro.prototype.updatePaintArrays=function(t,e,r,n,i){var a=!1;for(var o in t)for(var s=0,l=e.getPositions(o);s<l.length;s+=1){var u=l[s],c=r.feature(u.index);for(var f in this.binders){var h=this.binders[f];if((h instanceof Qa||h instanceof to||h instanceof eo)&&!0===h.expression.isStateDependent){var p=n.paint.get(f);h.expression=p.value,h.updatePaintArray(u.start,u.end,c,t[o],i),a=!0}}}return a},ro.prototype.defines=function(){var t=[];for(var e in this.binders){var r=this.binders[e];(r instanceof Ka||r instanceof $a)&&t.push.apply(t,r.uniformNames.map((function(t){return"#define HAS_UNIFORM_"+t})))}return t},ro.prototype.getPaintVertexBuffers=function(){return this._buffers},ro.prototype.getUniforms=function(t,e){var r=[];for(var n in this.binders){var i=this.binders[n];if(i instanceof Ka||i instanceof $a||i instanceof to)for(var a=0,o=i.uniformNames;a<o.length;a+=1){var s=o[a];if(e[s]){var l=i.getBinding(t,e[s],s);r.push({name:s,property:n,binding:l})}}}return r},ro.prototype.setUniforms=function(t,e,r,n){for(var i=0,a=e;i<a.length;i+=1){var o=a[i],s=o.name,l=o.property,u=o.binding;this.binders[l].setUniform(u,n,r.get(l),s)}},ro.prototype.updatePaintBuffers=function(t){for(var e in this._buffers=[],this.binders){var r=this.binders[e];if(t&&r instanceof eo){var n=2===t.fromScale?r.zoomInPaintVertexBuffer:r.zoomOutPaintVertexBuffer;n&&this._buffers.push(n)}else(r instanceof Qa||r instanceof to)&&r.paintVertexBuffer&&this._buffers.push(r.paintVertexBuffer)}},ro.prototype.upload=function(t){for(var e in this.binders){var r=this.binders[e];(r instanceof Qa||r instanceof to||r instanceof eo)&&r.upload(t)}this.updatePaintBuffers()},ro.prototype.destroy=function(){for(var t in this.binders){var e=this.binders[t];(e instanceof Qa||e instanceof to||e instanceof eo)&&e.destroy()}};var no=function(t,e,r,n){void 0===n&&(n=function(){return!0}),this.programConfigurations={};for(var i=0,a=e;i<a.length;i+=1){var o=a[i];this.programConfigurations[o.id]=new ro(o,r,n,t)}this.needsUpload=!1,this._featureMap=new Ra,this._bufferOffset=0};function io(t,e){return{"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"]}[t]||[t.replace(e+"-","").replace(/-/g,"_")]}function ao(t,e,r){var n={color:{source:va,composite:ga},number:{source:ca,composite:va}},i=function(t){return{"line-pattern":{source:Qi,composite:Qi},"fill-pattern":{source:Qi,composite:Qi},"fill-extrusion-pattern":{source:Qi,composite:Qi}}[t]}(t);return i&&i[r]||n[e][r]}no.prototype.populatePaintArrays=function(t,e,r,n,i,a){for(var o in this.programConfigurations)this.programConfigurations[o].populatePaintArrays(t,e,n,i,a);void 0!==e.id&&this._featureMap.add(e.id,r,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0},no.prototype.updatePaintArrays=function(t,e,r,n){for(var i=0,a=r;i<a.length;i+=1){var o=a[i];this.needsUpload=this.programConfigurations[o.id].updatePaintArrays(t,this._featureMap,e,o,n)||this.needsUpload}},no.prototype.get=function(t){return this.programConfigurations[t]},no.prototype.upload=function(t){if(this.needsUpload){for(var e in this.programConfigurations)this.programConfigurations[e].upload(t);this.needsUpload=!1}},no.prototype.destroy=function(){for(var t in this.programConfigurations)this.programConfigurations[t].destroy()},Qn("ConstantBinder",Ka),Qn("CrossFadedConstantBinder",$a),Qn("SourceExpressionBinder",Qa),Qn("CrossFadedCompositeBinder",eo),Qn("CompositeExpressionBinder",to),Qn("ProgramConfiguration",ro,{omit:["_buffers"]}),Qn("ProgramConfigurationSet",no);var oo=8192;var so,lo=(so=15,{min:-1*Math.pow(2,so-1),max:Math.pow(2,so-1)-1});function uo(t){for(var e=oo/t.extent,r=t.loadGeometry(),n=0;n<r.length;n++)for(var i=r[n],a=0;a<i.length;a++){var o=i[a];o.x=Math.round(o.x*e),o.y=Math.round(o.y*e),(o.x<lo.min||o.x>lo.max||o.y<lo.min||o.y>lo.max)&&(w("Geometry exceeds allowed extent, reduce your vector tile buffer size"),o.x=u(o.x,lo.min,lo.max),o.y=u(o.y,lo.min,lo.max))}return r}function co(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2)}var fo=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Xi,this.indexArray=new sa,this.segments=new Ea,this.programConfigurations=new no(Sa,t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};function ho(t,e){for(var r=0;r<t.length;r++)if(wo(e,t[r]))return!0;for(var n=0;n<e.length;n++)if(wo(t,e[n]))return!0;return!!yo(t,e)}function po(t,e,r){return!!wo(t,e)||!!xo(e,t,r)}function vo(t,e){if(1===t.length)return _o(e,t[0]);for(var r=0;r<e.length;r++)for(var n=e[r],i=0;i<n.length;i++)if(wo(t,n[i]))return!0;for(var a=0;a<t.length;a++)if(_o(e,t[a]))return!0;for(var o=0;o<e.length;o++)if(yo(t,e[o]))return!0;return!1}function go(t,e,r){if(t.length>1){if(yo(t,e))return!0;for(var n=0;n<e.length;n++)if(xo(e[n],t,r))return!0}for(var i=0;i<t.length;i++)if(xo(t[i],e,r))return!0;return!1}function yo(t,e){if(0===t.length||0===e.length)return!1;for(var r=0;r<t.length-1;r++)for(var n=t[r],i=t[r+1],a=0;a<e.length-1;a++)if(mo(n,i,e[a],e[a+1]))return!0;return!1}function mo(t,e,r,n){return T(t,r,n)!==T(e,r,n)&&T(t,e,r)!==T(t,e,n)}function xo(t,e,r){var n=r*r;if(1===e.length)return t.distSqr(e[0])<n;for(var i=1;i<e.length;i++)if(bo(t,e[i-1],e[i])<n)return!0;return!1}function bo(t,e,r){var n=e.distSqr(r);if(0===n)return t.distSqr(e);var i=((t.x-e.x)*(r.x-e.x)+(t.y-e.y)*(r.y-e.y))/n;return i<0?t.distSqr(e):i>1?t.distSqr(r):t.distSqr(r.sub(e)._mult(i)._add(e))}function _o(t,e){for(var r,n,i,a=!1,o=0;o<t.length;o++)for(var s=0,l=(r=t[o]).length-1;s<r.length;l=s++)n=r[s],i=r[l],n.y>e.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);return a}function wo(t,e){for(var r=!1,n=0,i=t.length-1;n<t.length;i=n++){var a=t[n],o=t[i];a.y>e.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(r=!r)}return r}function To(t,e,r){var n=r[0],i=r[2];if(t.x<n.x&&e.x<n.x||t.x>i.x&&e.x>i.x||t.y<n.y&&e.y<n.y||t.y>i.y&&e.y>i.y)return!1;var a=T(t,e,r[0]);return a!==T(t,e,r[1])||a!==T(t,e,r[2])||a!==T(t,e,r[3])}function ko(t,e,r){var n=e.paint.get(t).value;return"constant"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function Ao(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Mo(t,e,r,n,i){if(!e[0]&&!e[1])return t;var o=a.convert(e)._mult(i);"viewport"===r&&o._rotate(-n);for(var s=[],l=0;l<t.length;l++){var u=t[l];s.push(u.sub(o))}return s}fo.prototype.populate=function(t,e,r){var n=this.layers[0],i=[],a=null;"circle"===n.type&&(a=n.layout.get("circle-sort-key"));for(var o=0,s=t;o<s.length;o+=1){var l=s[o],u=l.feature,c=l.id,f=l.index,h=l.sourceLayerIndex,p=this.layers[0]._featureFilter.needGeometry,d={type:u.type,id:c,properties:u.properties,geometry:p?uo(u):[]};if(this.layers[0]._featureFilter.filter(new Si(this.zoom),d,r)){p||(d.geometry=uo(u));var v=a?a.evaluate(d,{},r):void 0,g={id:c,properties:u.properties,type:u.type,sourceLayerIndex:h,index:f,geometry:d.geometry,patterns:{},sortKey:v};i.push(g)}}a&&i.sort((function(t,e){return t.sortKey-e.sortKey}));for(var y=0,m=i;y<m.length;y+=1){var x=m[y],b=x,_=b.geometry,w=b.index,T=b.sourceLayerIndex,k=t[w].feature;this.addFeature(x,_,w,r),e.featureIndex.insert(k,_,w,T,this.index)}},fo.prototype.update=function(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r)},fo.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},fo.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},fo.prototype.upload=function(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Sa),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0},fo.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},fo.prototype.addFeature=function(t,e,r,n){for(var i=0,a=e;i<a.length;i+=1)for(var o=0,s=a[i];o<s.length;o+=1){var l=s[o],u=l.x,c=l.y;if(!(u<0||u>=oo||c<0||c>=oo)){var f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),h=f.vertexLength;co(this.layoutVertexArray,u,c,-1,-1),co(this.layoutVertexArray,u,c,1,-1),co(this.layoutVertexArray,u,c,1,1),co(this.layoutVertexArray,u,c,-1,1),this.indexArray.emplaceBack(h,h+1,h+2),this.indexArray.emplaceBack(h,h+3,h+2),f.vertexLength+=4,f.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n)},Qn("CircleBucket",fo,{omit:["layers"]});var So=new Ui({"circle-sort-key":new Fi(It.layout_circle["circle-sort-key"])}),Eo={paint:new Ui({"circle-radius":new Fi(It.paint_circle["circle-radius"]),"circle-color":new Fi(It.paint_circle["circle-color"]),"circle-blur":new Fi(It.paint_circle["circle-blur"]),"circle-opacity":new Fi(It.paint_circle["circle-opacity"]),"circle-translate":new Ri(It.paint_circle["circle-translate"]),"circle-translate-anchor":new Ri(It.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new Ri(It.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new Ri(It.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new Fi(It.paint_circle["circle-stroke-width"]),"circle-stroke-color":new Fi(It.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new Fi(It.paint_circle["circle-stroke-opacity"])}),layout:So},Lo="undefined"!=typeof Float32Array?Float32Array:Array;function Co(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Po(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],f=e[8],h=e[9],p=e[10],d=e[11],v=e[12],g=e[13],y=e[14],m=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*v,t[1]=x*i+b*l+_*h+w*g,t[2]=x*a+b*u+_*p+w*y,t[3]=x*o+b*c+_*d+w*m,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*f+w*v,t[5]=x*i+b*l+_*h+w*g,t[6]=x*a+b*u+_*p+w*y,t[7]=x*o+b*c+_*d+w*m,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*f+w*v,t[9]=x*i+b*l+_*h+w*g,t[10]=x*a+b*u+_*p+w*y,t[11]=x*o+b*c+_*d+w*m,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*f+w*v,t[13]=x*i+b*l+_*h+w*g,t[14]=x*a+b*u+_*p+w*y,t[15]=x*o+b*c+_*d+w*m,t}Math.hypot||(Math.hypot=function(){for(var t=arguments,e=0,r=arguments.length;r--;)e+=t[r]*t[r];return Math.sqrt(e)});var Oo=Po;var Io,Do=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t};function zo(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}Io=new Lo(3),Lo!=Float32Array&&(Io[0]=0,Io[1]=0,Io[2]=0),function(){var t=new Lo(4);Lo!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0)}();var Ro=function(t){var e=t[0],r=t[1];return e*e+r*r},Fo=(function(){var t=new Lo(2);Lo!=Float32Array&&(t[0]=0,t[1]=0)}(),function(t){function e(e){t.call(this,e,Eo)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new fo(t)},e.prototype.queryRadius=function(t){var e=t;return ko("circle-radius",this,e)+ko("circle-stroke-width",this,e)+Ao(this.paint.get("circle-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o,s){for(var l=Mo(t,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,o),u=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r),c="map"===this.paint.get("circle-pitch-alignment"),f=c?l:function(t,e){return t.map((function(t){return Bo(t,e)}))}(l,s),h=c?u*o:u,p=0,d=n;p<d.length;p+=1)for(var v=0,g=d[p];v<g.length;v+=1){var y=g[v],m=c?y:Bo(y,s),x=h,b=zo([],[y.x,y.y,0,1],s);if("viewport"===this.paint.get("circle-pitch-scale")&&"map"===this.paint.get("circle-pitch-alignment")?x*=b[3]/a.cameraToCenterDistance:"map"===this.paint.get("circle-pitch-scale")&&"viewport"===this.paint.get("circle-pitch-alignment")&&(x*=a.cameraToCenterDistance/b[3]),po(f,m,x))return!0}return!1},e}(Hi));function Bo(t,e){var r=zo([],[t.x,t.y,0,1],e);return new a(r[0]/r[3],r[1]/r[3])}var No=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(fo);function jo(t,e,r,n){var i=e.width,a=e.height;if(n){if(n instanceof Uint8ClampedArray)n=new Uint8Array(n.buffer);else if(n.length!==i*a*r)throw new RangeError("mismatched image size")}else n=new Uint8Array(i*a*r);return t.width=i,t.height=a,t.data=n,t}function Uo(t,e,r){var n=e.width,i=e.height;if(n!==t.width||i!==t.height){var a=jo({},{width:n,height:i},r);Vo(t,a,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,n),height:Math.min(t.height,i)},r),t.width=n,t.height=i,t.data=a.data}}function Vo(t,e,r,n,i,a){if(0===i.width||0===i.height)return e;if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError("out of range destination coordinates for image copy");for(var o=t.data,s=e.data,l=0;l<i.height;l++)for(var u=((r.y+l)*t.width+r.x)*a,c=((n.y+l)*e.width+n.x)*a,f=0;f<i.width*a;f++)s[c+f]=o[u+f];return e}Qn("HeatmapBucket",No,{omit:["layers"]});var Ho=function(t,e){jo(this,t,1,e)};Ho.prototype.resize=function(t){Uo(this,t,1)},Ho.prototype.clone=function(){return new Ho({width:this.width,height:this.height},new Uint8Array(this.data))},Ho.copy=function(t,e,r,n,i){Vo(t,e,r,n,i,1)};var qo=function(t,e){jo(this,t,4,e)};qo.prototype.resize=function(t){Uo(this,t,4)},qo.prototype.replace=function(t,e){e?this.data.set(t):t instanceof Uint8ClampedArray?this.data=new Uint8Array(t.buffer):this.data=t},qo.prototype.clone=function(){return new qo({width:this.width,height:this.height},new Uint8Array(this.data))},qo.copy=function(t,e,r,n,i){Vo(t,e,r,n,i,4)},Qn("AlphaImage",Ho),Qn("RGBAImage",qo);var Go={paint:new Ui({"heatmap-radius":new Fi(It.paint_heatmap["heatmap-radius"]),"heatmap-weight":new Fi(It.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new Ri(It.paint_heatmap["heatmap-intensity"]),"heatmap-color":new ji(It.paint_heatmap["heatmap-color"]),"heatmap-opacity":new Ri(It.paint_heatmap["heatmap-opacity"])})};function Zo(t,e){for(var r=new Uint8Array(1024),n={},i=0,a=0;i<256;i++,a+=4){n[e]=i/255;var o=t.evaluate(n);r[a+0]=Math.floor(255*o.r/o.a),r[a+1]=Math.floor(255*o.g/o.a),r[a+2]=Math.floor(255*o.b/o.a),r[a+3]=Math.floor(255*o.a)}return new qo({width:256,height:1},r)}var Yo=function(t){function e(e){t.call(this,e,Go),this._updateColorRamp()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new No(t)},e.prototype._handleSpecialPaintPropertyUpdate=function(t){"heatmap-color"===t&&this._updateColorRamp()},e.prototype._updateColorRamp=function(){var t=this._transitionablePaint._values["heatmap-color"].value.expression;this.colorRamp=Zo(t,"heatmapDensity"),this.colorRampTexture=null},e.prototype.resize=function(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)},e.prototype.queryRadius=function(){return 0},e.prototype.queryIntersectsFeature=function(){return!1},e.prototype.hasOffscreenPass=function(){return 0!==this.paint.get("heatmap-opacity")&&"none"!==this.visibility},e}(Hi),Wo={paint:new Ui({"hillshade-illumination-direction":new Ri(It.paint_hillshade["hillshade-illumination-direction"]),"hillshade-illumination-anchor":new Ri(It.paint_hillshade["hillshade-illumination-anchor"]),"hillshade-exaggeration":new Ri(It.paint_hillshade["hillshade-exaggeration"]),"hillshade-shadow-color":new Ri(It.paint_hillshade["hillshade-shadow-color"]),"hillshade-highlight-color":new Ri(It.paint_hillshade["hillshade-highlight-color"]),"hillshade-accent-color":new Ri(It.paint_hillshade["hillshade-accent-color"])})},Xo=function(t){function e(e){t.call(this,e,Wo)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.hasOffscreenPass=function(){return 0!==this.paint.get("hillshade-exaggeration")&&"none"!==this.visibility},e}(Hi),Jo=Yi([{name:"a_pos",components:2,type:"Int16"}],4).members,Ko=Qo,$o=Qo;function Qo(t,e,r){r=r||2;var n,i,a,o,s,l,u,c=e&&e.length,f=c?e[0]*r:t.length,h=ts(t,0,f,r,!0),p=[];if(!h||h.next===h.prev)return p;if(c&&(h=function(t,e,r,n){var i,a,o,s=[];for(i=0,a=e.length;i<a;i++)(o=ts(t,e[i]*n,i<a-1?e[i+1]*n:t.length,n,!1))===o.next&&(o.steiner=!0),s.push(fs(o));for(s.sort(ss),i=0;i<s.length;i++)ls(s[i],r),r=es(r,r.next);return r}(t,e,h,r)),t.length>80*r){n=a=t[0],i=o=t[1];for(var d=r;d<f;d+=r)(s=t[d])<n&&(n=s),(l=t[d+1])<i&&(i=l),s>a&&(a=s),l>o&&(o=l);u=0!==(u=Math.max(a-n,o-i))?1/u:0}return rs(h,p,r,n,i,u),p}function ts(t,e,r,n,i){var a,o;if(i===ks(t,e,r,n)>0)for(a=e;a<r;a+=n)o=_s(a,t[a],t[a+1],o);else for(a=r-n;a>=e;a-=n)o=_s(a,t[a],t[a+1],o);return o&&vs(o,o.next)&&(ws(o),o=o.next),o}function es(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!vs(n,n.next)&&0!==ds(n.prev,n,n.next))n=n.next;else{if(ws(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function rs(t,e,r,n,i,a,o){if(t){!o&&a&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=cs(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,u=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e<u&&(s++,n=n.nextZ);e++);for(l=u;s>0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,u*=2}while(o>1)}(i)}(t,n,i,a);for(var s,l,u=t;t.prev!==t.next;)if(s=t.prev,l=t.next,a?is(t,n,i,a):ns(t))e.push(s.i/r),e.push(t.i/r),e.push(l.i/r),ws(t),t=l.next,u=l.next;else if((t=l)===u){o?1===o?rs(t=as(es(t),e,r),e,r,n,i,a,2):2===o&&os(t,e,r,n,i,a):rs(es(t),e,r,n,i,a,1);break}}}function ns(t){var e=t.prev,r=t,n=t.next;if(ds(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(hs(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&ds(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function is(t,e,r,n){var i=t.prev,a=t,o=t.next;if(ds(i,a,o)>=0)return!1;for(var s=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,l=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,u=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,c=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=cs(s,l,e,r,n),h=cs(u,c,e,r,n),p=t.prevZ,d=t.nextZ;p&&p.z>=f&&d&&d.z<=h;){if(p!==t.prev&&p!==t.next&&hs(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&ds(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,d!==t.prev&&d!==t.next&&hs(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&ds(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(;p&&p.z>=f;){if(p!==t.prev&&p!==t.next&&hs(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&ds(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;d&&d.z<=h;){if(d!==t.prev&&d!==t.next&&hs(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&ds(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function as(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!vs(i,a)&&gs(i,n,n.next,a)&&xs(i,a)&&xs(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),ws(n),ws(n.next),n=t=a),n=n.next}while(n!==t);return es(n)}function os(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&ps(o,s)){var l=bs(o,s);return o=es(o,o.next),l=es(l,l.next),rs(o,e,r,n,i,a),void rs(l,e,r,n,i,a)}s=s.next}o=o.next}while(o!==t)}function ss(t,e){return t.x-e.x}function ls(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!r)return null;if(i===o)return r;var l,u=r,c=r.x,f=r.y,h=1/0;n=r;do{i>=n.x&&n.x>=c&&i!==n.x&&hs(a<f?i:o,a,c,f,a<f?o:i,a,n.x,n.y)&&(l=Math.abs(a-n.y)/(i-n.x),xs(n,t)&&(l<h||l===h&&(n.x>r.x||n.x===r.x&&us(r,n)))&&(r=n,h=l)),n=n.next}while(n!==u);return r}(t,e)){var r=bs(e,t);es(e,e.next),es(r,r.next)}}function us(t,e){return ds(t.prev,t,e.prev)<0&&ds(e.next,t,t.next)<0}function cs(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function fs(t){var e=t,r=t;do{(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next}while(e!==t);return r}function hs(t,e,r,n,i,a,o,s){return(i-o)*(e-s)-(t-o)*(a-s)>=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function ps(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&gs(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(xs(t,e)&&xs(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(ds(t.prev,t,e.prev)||ds(t,e.prev,e))||vs(t,e)&&ds(t.prev,t,t.next)>0&&ds(e.prev,e,e.next)>0)}function ds(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function vs(t,e){return t.x===e.x&&t.y===e.y}function gs(t,e,r,n){var i=ms(ds(t,e,r)),a=ms(ds(t,e,n)),o=ms(ds(r,n,t)),s=ms(ds(r,n,e));return i!==a&&o!==s||!(0!==i||!ys(t,r,e))||!(0!==a||!ys(t,n,e))||!(0!==o||!ys(r,t,n))||!(0!==s||!ys(r,e,n))}function ys(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function ms(t){return t>0?1:t<0?-1:0}function xs(t,e){return ds(t.prev,t,t.next)<0?ds(t,e,t.next)>=0&&ds(t,t.prev,e)>=0:ds(t,e,t.prev)<0||ds(t,t.next,e)<0}function bs(t,e){var r=new Ts(t.i,t.x,t.y),n=new Ts(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function _s(t,e,r,n){var i=new Ts(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function ws(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Ts(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function ks(t,e,r,n){for(var i=0,a=e,o=r-n;a<r;a+=n)i+=(t[o]-t[a])*(t[a+1]+t[o+1]),o=a;return i}function As(t,e,r,n,i){Ms(t,e,r||0,n||t.length-1,i||Es)}function Ms(t,e,r,n,i){for(;n>r;){if(n-r>600){var a=n-r+1,o=e-r+1,s=Math.log(a),l=.5*Math.exp(2*s/3),u=.5*Math.sqrt(s*l*(a-l)/a)*(o-a/2<0?-1:1);Ms(t,e,Math.max(r,Math.floor(e-o*l/a+u)),Math.min(n,Math.floor(e+(a-o)*l/a+u)),i)}var c=t[e],f=r,h=n;for(Ss(t,r,e),i(t[n],c)>0&&Ss(t,r,n);f<h;){for(Ss(t,f,h),f++,h--;i(t[f],c)<0;)f++;for(;i(t[h],c)>0;)h--}0===i(t[r],c)?Ss(t,r,h):Ss(t,++h,n),h<=e&&(r=h+1),e<=h&&(n=h-1)}}function Ss(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function Es(t,e){return t<e?-1:t>e?1:0}function Ls(t,e){var r=t.length;if(r<=1)return[t];for(var n,i,a=[],o=0;o<r;o++){var s=k(t[o]);0!==s&&(t[o].area=Math.abs(s),void 0===i&&(i=s<0),i===s<0?(n&&a.push(n),n=[t[o]]):n.push(t[o]))}if(n&&a.push(n),e>1)for(var l=0;l<a.length;l++)a[l].length<=e||(As(a[l],e,1,a[l].length-1,Cs),a[l]=a[l].slice(0,e));return a}function Cs(t,e){return e.area-t.area}function Ps(t,e,r){for(var n=r.patternDependencies,i=!1,a=0,o=e;a<o.length;a+=1){var s=o[a].paint.get(t+"-pattern");s.isConstant()||(i=!0);var l=s.constantOr(null);l&&(i=!0,n[l.to]=!0,n[l.from]=!0)}return i}function Os(t,e,r,n,i){for(var a=i.patternDependencies,o=0,s=e;o<s.length;o+=1){var l=s[o],u=l.paint.get(t+"-pattern").value;if("constant"!==u.kind){var c=u.evaluate({zoom:n-1},r,{},i.availableImages),f=u.evaluate({zoom:n},r,{},i.availableImages),h=u.evaluate({zoom:n+1},r,{},i.availableImages);c=c&&c.name?c.name:c,f=f&&f.name?f.name:f,h=h&&h.name?h.name:h,a[c]=!0,a[f]=!0,a[h]=!0,r.patterns[l.id]={min:c,mid:f,max:h}}}return r}Qo.deviation=function(t,e,r,n){var i=e&&e.length,a=i?e[0]*r:t.length,o=Math.abs(ks(t,0,a,r));if(i)for(var s=0,l=e.length;s<l;s++){var u=e[s]*r,c=s<l-1?e[s+1]*r:t.length;o-=Math.abs(ks(t,u,c,r))}var f=0;for(s=0;s<n.length;s+=3){var h=n[s]*r,p=n[s+1]*r,d=n[s+2]*r;f+=Math.abs((t[h]-t[d])*(t[p+1]-t[h+1])-(t[h]-t[p])*(t[d+1]-t[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},Qo.flatten=function(t){for(var e=t[0][0].length,r={vertices:[],holes:[],dimensions:e},n=0,i=0;i<t.length;i++){for(var a=0;a<t[i].length;a++)for(var o=0;o<e;o++)r.vertices.push(t[i][a][o]);i>0&&(n+=t[i-1].length,r.holes.push(n))}return r},Ko.default=$o;var Is=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Xi,this.indexArray=new sa,this.indexArray2=new pa,this.programConfigurations=new no(Jo,t.layers,t.zoom),this.segments=new Ea,this.segments2=new Ea,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};Is.prototype.populate=function(t,e,r){this.hasPattern=Ps("fill",this.layers,e);for(var n=this.layers[0].layout.get("fill-sort-key"),i=[],a=0,o=t;a<o.length;a+=1){var s=o[a],l=s.feature,u=s.id,c=s.index,f=s.sourceLayerIndex,h=this.layers[0]._featureFilter.needGeometry,p={type:l.type,id:u,properties:l.properties,geometry:h?uo(l):[]};if(this.layers[0]._featureFilter.filter(new Si(this.zoom),p,r)){h||(p.geometry=uo(l));var d=n?n.evaluate(p,{},r,e.availableImages):void 0,v={id:u,properties:l.properties,type:l.type,sourceLayerIndex:f,index:c,geometry:p.geometry,patterns:{},sortKey:d};i.push(v)}}n&&i.sort((function(t,e){return t.sortKey-e.sortKey}));for(var g=0,y=i;g<y.length;g+=1){var m=y[g],x=m,b=x.geometry,_=x.index,w=x.sourceLayerIndex;if(this.hasPattern){var T=Os("fill",this.layers,m,this.zoom,e);this.patternFeatures.push(T)}else this.addFeature(m,b,_,r,{});var k=t[_].feature;e.featureIndex.insert(k,b,_,w,this.index)}},Is.prototype.update=function(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r)},Is.prototype.addFeatures=function(t,e,r){for(var n=0,i=this.patternFeatures;n<i.length;n+=1){var a=i[n];this.addFeature(a,a.geometry,a.index,e,r)}},Is.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},Is.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},Is.prototype.upload=function(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Jo),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0},Is.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())},Is.prototype.addFeature=function(t,e,r,n,i){for(var a=0,o=Ls(e,500);a<o.length;a+=1){for(var s=o[a],l=0,u=0,c=s;u<c.length;u+=1)l+=c[u].length;for(var f=this.segments.prepareSegment(l,this.layoutVertexArray,this.indexArray),h=f.vertexLength,p=[],d=[],v=0,g=s;v<g.length;v+=1){var y=g[v];if(0!==y.length){y!==s[0]&&d.push(p.length/2);var m=this.segments2.prepareSegment(y.length,this.layoutVertexArray,this.indexArray2),x=m.vertexLength;this.layoutVertexArray.emplaceBack(y[0].x,y[0].y),this.indexArray2.emplaceBack(x+y.length-1,x),p.push(y[0].x),p.push(y[0].y);for(var b=1;b<y.length;b++)this.layoutVertexArray.emplaceBack(y[b].x,y[b].y),this.indexArray2.emplaceBack(x+b-1,x+b),p.push(y[b].x),p.push(y[b].y);m.vertexLength+=y.length,m.primitiveLength+=y.length}}for(var _=Ko(p,d),w=0;w<_.length;w+=3)this.indexArray.emplaceBack(h+_[w],h+_[w+1],h+_[w+2]);f.vertexLength+=l,f.primitiveLength+=_.length/3}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,n)},Qn("FillBucket",Is,{omit:["layers","patternFeatures"]});var Ds=new Ui({"fill-sort-key":new Fi(It.layout_fill["fill-sort-key"])}),zs={paint:new Ui({"fill-antialias":new Ri(It.paint_fill["fill-antialias"]),"fill-opacity":new Fi(It.paint_fill["fill-opacity"]),"fill-color":new Fi(It.paint_fill["fill-color"]),"fill-outline-color":new Fi(It.paint_fill["fill-outline-color"]),"fill-translate":new Ri(It.paint_fill["fill-translate"]),"fill-translate-anchor":new Ri(It.paint_fill["fill-translate-anchor"]),"fill-pattern":new Bi(It.paint_fill["fill-pattern"])}),layout:Ds},Rs=function(t){function e(e){t.call(this,e,zs)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.recalculate=function(e,r){t.prototype.recalculate.call(this,e,r);var n=this.paint._values["fill-outline-color"];"constant"===n.value.kind&&void 0===n.value.value&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])},e.prototype.createBucket=function(t){return new Is(t)},e.prototype.queryRadius=function(){return Ao(this.paint.get("fill-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o){return vo(Mo(t,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),a.angle,o),n)},e.prototype.isTileClipped=function(){return!0},e}(Hi),Fs=Yi([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal_ed",components:4,type:"Int16"}],4).members,Bs=Ns;function Ns(t,e,r,n,i){this.properties={},this.extent=r,this.type=0,this._pbf=t,this._geometry=-1,this._keys=n,this._values=i,t.readFields(js,this,e)}function js(t,e,r){1==t?e.id=r.readVarint():2==t?function(t,e){for(var r=t.readVarint()+t.pos;t.pos<r;){var n=e._keys[t.readVarint()],i=e._values[t.readVarint()];e.properties[n]=i}}(r,e):3==t?e.type=r.readVarint():4==t&&(e._geometry=r.pos)}function Us(t){for(var e,r,n=0,i=0,a=t.length,o=a-1;i<a;o=i++)e=t[i],n+=((r=t[o]).x-e.x)*(e.y+r.y);return n}Ns.types=["Unknown","Point","LineString","Polygon"],Ns.prototype.loadGeometry=function(){var t=this._pbf;t.pos=this._geometry;for(var e,r=t.readVarint()+t.pos,n=1,i=0,o=0,s=0,l=[];t.pos<r;){if(i<=0){var u=t.readVarint();n=7&u,i=u>>3}if(i--,1===n||2===n)o+=t.readSVarint(),s+=t.readSVarint(),1===n&&(e&&l.push(e),e=[]),e.push(new a(o,s));else{if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone())}}return e&&l.push(e),l},Ns.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,o=1/0,s=-1/0,l=1/0,u=-1/0;t.pos<e;){if(n<=0){var c=t.readVarint();r=7&c,n=c>>3}if(n--,1===r||2===r)(i+=t.readSVarint())<o&&(o=i),i>s&&(s=i),(a+=t.readSVarint())<l&&(l=a),a>u&&(u=a);else if(7!==r)throw new Error("unknown command "+r)}return[o,l,s,u]},Ns.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),o=this.extent*t,s=this.extent*e,l=this.loadGeometry(),u=Ns.types[this.type];function c(t){for(var e=0;e<t.length;e++){var r=t[e],n=180-360*(r.y+s)/a;t[e]=[360*(r.x+o)/a-180,360/Math.PI*Math.atan(Math.exp(n*Math.PI/180))-90]}}switch(this.type){case 1:var f=[];for(n=0;n<l.length;n++)f[n]=l[n][0];c(l=f);break;case 2:for(n=0;n<l.length;n++)c(l[n]);break;case 3:for(l=function(t){var e=t.length;if(e<=1)return[t];for(var r,n,i=[],a=0;a<e;a++){var o=Us(t[a]);0!==o&&(void 0===n&&(n=o<0),n===o<0?(r&&i.push(r),r=[t[a]]):r.push(t[a]))}return r&&i.push(r),i}(l),n=0;n<l.length;n++)for(i=0;i<l[n].length;i++)c(l[n][i])}1===l.length?l=l[0]:u="Multi"+u;var h={type:"Feature",geometry:{type:u,coordinates:l},properties:this.properties};return"id"in this&&(h.id=this.id),h};var Vs=Hs;function Hs(t,e){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(qs,this,e),this.length=this._features.length}function qs(t,e,r){15===t?e.version=r.readVarint():1===t?e.name=r.readString():5===t?e.extent=r.readVarint():2===t?e._features.push(r.pos):3===t?e._keys.push(r.readString()):4===t&&e._values.push(function(t){for(var e=null,r=t.readVarint()+t.pos;t.pos<r;){var n=t.readVarint()>>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null}return e}(r))}function Gs(t,e,r){if(3===t){var n=new Vs(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n)}}Hs.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new Bs(this._pbf,e,this.extent,this._keys,this._values)};var Zs={VectorTile:function(t,e){this.layers=t.readFields(Gs,{},e)},VectorTileFeature:Bs,VectorTileLayer:Vs},Ys=Zs.VectorTileFeature.types,Ws=Math.pow(2,13);function Xs(t,e,r,n,i,a,o,s){t.emplaceBack(e,r,2*Math.floor(n*Ws)+o,i*Ws*2,a*Ws*2,Math.round(s))}var Js=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Ki,this.indexArray=new sa,this.programConfigurations=new no(Fs,t.layers,t.zoom),this.segments=new Ea,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};function Ks(t,e){return t.x===e.x&&(t.x<0||t.x>oo)||t.y===e.y&&(t.y<0||t.y>oo)}Js.prototype.populate=function(t,e,r){this.features=[],this.hasPattern=Ps("fill-extrusion",this.layers,e);for(var n=0,i=t;n<i.length;n+=1){var a=i[n],o=a.feature,s=a.id,l=a.index,u=a.sourceLayerIndex,c=this.layers[0]._featureFilter.needGeometry,f={type:o.type,id:s,properties:o.properties,geometry:c?uo(o):[]};if(this.layers[0]._featureFilter.filter(new Si(this.zoom),f,r)){var h={id:s,sourceLayerIndex:u,index:l,geometry:c?f.geometry:uo(o),properties:o.properties,type:o.type,patterns:{}};void 0!==o.id&&(h.id=o.id),this.hasPattern?this.features.push(Os("fill-extrusion",this.layers,h,this.zoom,e)):this.addFeature(h,h.geometry,l,r,{}),e.featureIndex.insert(o,h.geometry,l,u,this.index,!0)}}},Js.prototype.addFeatures=function(t,e,r){for(var n=0,i=this.features;n<i.length;n+=1){var a=i[n],o=a.geometry;this.addFeature(a,o,a.index,e,r)}},Js.prototype.update=function(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r)},Js.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},Js.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},Js.prototype.upload=function(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Fs),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0},Js.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},Js.prototype.addFeature=function(t,e,r,n,i){for(var a=0,o=Ls(e,500);a<o.length;a+=1){for(var s=o[a],l=0,u=0,c=s;u<c.length;u+=1)l+=c[u].length;for(var f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray),h=0,p=s;h<p.length;h+=1){var d=p[h];if(0!==d.length&&!((O=d).every((function(t){return t.x<0}))||O.every((function(t){return t.x>oo}))||O.every((function(t){return t.y<0}))||O.every((function(t){return t.y>oo}))))for(var v=0,g=0;g<d.length;g++){var y=d[g];if(g>=1){var m=d[g-1];if(!Ks(y,m)){f.vertexLength+4>Ea.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var x=y.sub(m)._perp()._unit(),b=m.dist(y);v+b>32768&&(v=0),Xs(this.layoutVertexArray,y.x,y.y,x.x,x.y,0,0,v),Xs(this.layoutVertexArray,y.x,y.y,x.x,x.y,0,1,v),v+=b,Xs(this.layoutVertexArray,m.x,m.y,x.x,x.y,0,0,v),Xs(this.layoutVertexArray,m.x,m.y,x.x,x.y,0,1,v);var _=f.vertexLength;this.indexArray.emplaceBack(_,_+2,_+1),this.indexArray.emplaceBack(_+1,_+2,_+3),f.vertexLength+=4,f.primitiveLength+=2}}}}if(f.vertexLength+l>Ea.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(l,this.layoutVertexArray,this.indexArray)),"Polygon"===Ys[t.type]){for(var w=[],T=[],k=f.vertexLength,A=0,M=s;A<M.length;A+=1){var S=M[A];if(0!==S.length){S!==s[0]&&T.push(w.length/2);for(var E=0;E<S.length;E++){var L=S[E];Xs(this.layoutVertexArray,L.x,L.y,0,0,1,1,0),w.push(L.x),w.push(L.y)}}}for(var C=Ko(w,T),P=0;P<C.length;P+=3)this.indexArray.emplaceBack(k+C[P],k+C[P+2],k+C[P+1]);f.primitiveLength+=C.length/3,f.vertexLength+=l}}var O;this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,n)},Qn("FillExtrusionBucket",Js,{omit:["layers","features"]});var $s={paint:new Ui({"fill-extrusion-opacity":new Ri(It["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Fi(It["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new Ri(It["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new Ri(It["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new Bi(It["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Fi(It["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Fi(It["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new Ri(It["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})},Qs=function(t){function e(e){t.call(this,e,$s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new Js(t)},e.prototype.queryRadius=function(){return Ao(this.paint.get("fill-extrusion-translate"))},e.prototype.is3D=function(){return!0},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,o,s,l){var u=Mo(t,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),o.angle,s),c=this.paint.get("fill-extrusion-height").evaluate(e,r),f=this.paint.get("fill-extrusion-base").evaluate(e,r),h=function(t,e,r,n){for(var i=[],o=0,s=t;o<s.length;o+=1){var l=s[o],u=[l.x,l.y,n,1];zo(u,u,e),i.push(new a(u[0]/u[3],u[1]/u[3]))}return i}(u,l,0,0),p=function(t,e,r,n){for(var i=[],o=[],s=n[8]*e,l=n[9]*e,u=n[10]*e,c=n[11]*e,f=n[8]*r,h=n[9]*r,p=n[10]*r,d=n[11]*r,v=0,g=t;v<g.length;v+=1){for(var y=[],m=[],x=0,b=g[v];x<b.length;x+=1){var _=b[x],w=_.x,T=_.y,k=n[0]*w+n[4]*T+n[12],A=n[1]*w+n[5]*T+n[13],M=n[2]*w+n[6]*T+n[14],S=n[3]*w+n[7]*T+n[15],E=M+u,L=S+c,C=k+f,P=A+h,O=M+p,I=S+d,D=new a((k+s)/L,(A+l)/L);D.z=E/L,y.push(D);var z=new a(C/I,P/I);z.z=O/I,m.push(z)}i.push(y),o.push(m)}return[i,o]}(n,f,c,l);return function(t,e,r){var n=1/0;vo(r,e)&&(n=el(r,e[0]));for(var i=0;i<e.length;i++)for(var a=e[i],o=t[i],s=0;s<a.length-1;s++){var l=a[s],u=a[s+1],c=o[s],f=[l,u,o[s+1],c,l];ho(r,f)&&(n=Math.min(n,el(r,f)))}return n!==1/0&&n}(p[0],p[1],h)},e}(Hi);function tl(t,e){return t.x*e.x+t.y*e.y}function el(t,e){if(1===t.length){for(var r,n=0,i=e[n++];!r||i.equals(r);)if(!(r=e[n++]))return 1/0;for(;n<e.length;n++){var a=e[n],o=t[0],s=r.sub(i),l=a.sub(i),u=o.sub(i),c=tl(s,s),f=tl(s,l),h=tl(l,l),p=tl(u,s),d=tl(u,l),v=c*h-f*f,g=(h*p-f*d)/v,y=(c*d-f*p)/v,m=1-g-y,x=i.z*m+r.z*g+a.z*y;if(isFinite(x))return x}return 1/0}for(var b=1/0,_=0,w=e;_<w.length;_+=1){var T=w[_];b=Math.min(b,T.z)}return b}var rl=Yi([{name:"a_pos_normal",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}],4).members,nl=Zs.VectorTileFeature.types,il=Math.cos(Math.PI/180*37.5),al=Math.pow(2,14)/.5,ol=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new $i,this.indexArray=new sa,this.programConfigurations=new no(rl,t.layers,t.zoom),this.segments=new Ea,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};ol.prototype.populate=function(t,e,r){this.hasPattern=Ps("line",this.layers,e);for(var n=this.layers[0].layout.get("line-sort-key"),i=[],a=0,o=t;a<o.length;a+=1){var s=o[a],l=s.feature,u=s.id,c=s.index,f=s.sourceLayerIndex,h=this.layers[0]._featureFilter.needGeometry,p={type:l.type,id:u,properties:l.properties,geometry:h?uo(l):[]};if(this.layers[0]._featureFilter.filter(new Si(this.zoom),p,r)){h||(p.geometry=uo(l));var d=n?n.evaluate(p,{},r):void 0,v={id:u,properties:l.properties,type:l.type,sourceLayerIndex:f,index:c,geometry:p.geometry,patterns:{},sortKey:d};i.push(v)}}n&&i.sort((function(t,e){return t.sortKey-e.sortKey}));for(var g=0,y=i;g<y.length;g+=1){var m=y[g],x=m,b=x.geometry,_=x.index,w=x.sourceLayerIndex;if(this.hasPattern){var T=Os("line",this.layers,m,this.zoom,e);this.patternFeatures.push(T)}else this.addFeature(m,b,_,r,{});var k=t[_].feature;e.featureIndex.insert(k,b,_,w,this.index)}},ol.prototype.update=function(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r)},ol.prototype.addFeatures=function(t,e,r){for(var n=0,i=this.patternFeatures;n<i.length;n+=1){var a=i[n];this.addFeature(a,a.geometry,a.index,e,r)}},ol.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},ol.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},ol.prototype.upload=function(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,rl),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0},ol.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},ol.prototype.addFeature=function(t,e,r,n,i){for(var a=this.layers[0].layout,o=a.get("line-join").evaluate(t,{}),s=a.get("line-cap"),l=a.get("line-miter-limit"),u=a.get("line-round-limit"),c=0,f=e;c<f.length;c+=1){var h=f[c];this.addLine(h,t,o,s,l,u)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,n)},ol.prototype.addLine=function(t,e,r,n,i,a){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,e.properties&&e.properties.hasOwnProperty("mapbox_clip_start")&&e.properties.hasOwnProperty("mapbox_clip_end")){this.clipStart=+e.properties.mapbox_clip_start,this.clipEnd=+e.properties.mapbox_clip_end;for(var o=0;o<t.length-1;o++)this.totalDistance+=t[o].dist(t[o+1]);this.updateScaledDistance()}for(var s="Polygon"===nl[e.type],l=t.length;l>=2&&t[l-1].equals(t[l-2]);)l--;for(var u=0;u<l-1&&t[u].equals(t[u+1]);)u++;if(!(l<(s?3:2))){"bevel"===r&&(i=1.05);var c,f=this.overscaling<=16?122880/(512*this.overscaling):0,h=this.segments.prepareSegment(10*l,this.layoutVertexArray,this.indexArray),p=void 0,d=void 0,v=void 0,g=void 0;this.e1=this.e2=-1,s&&(c=t[l-2],g=t[u].sub(c)._unit()._perp());for(var y=u;y<l;y++)if(!(d=y===l-1?s?t[u+1]:void 0:t[y+1])||!t[y].equals(d)){g&&(v=g),c&&(p=c),c=t[y],g=d?d.sub(c)._unit()._perp():v;var m=(v=v||g).add(g);0===m.x&&0===m.y||m._unit();var x=v.x*g.x+v.y*g.y,b=m.x*g.x+m.y*g.y,_=0!==b?1/b:1/0,w=2*Math.sqrt(2-2*b),T=b<il&&p&&d,k=v.x*g.y-v.y*g.x>0;if(T&&y>u){var A=c.dist(p);if(A>2*f){var M=c.sub(c.sub(p)._mult(f/A)._round());this.updateDistance(p,M),this.addCurrentVertex(M,v,0,0,h),p=M}}var S=p&&d,E=S?r:s?"butt":n;if(S&&"round"===E&&(_<a?E="miter":_<=2&&(E="fakeround")),"miter"===E&&_>i&&(E="bevel"),"bevel"===E&&(_>2&&(E="flipbevel"),_<i&&(E="miter")),p&&this.updateDistance(p,c),"miter"===E)m._mult(_),this.addCurrentVertex(c,m,0,0,h);else if("flipbevel"===E){if(_>100)m=g.mult(-1);else{var L=_*v.add(g).mag()/v.sub(g).mag();m._perp()._mult(L*(k?-1:1))}this.addCurrentVertex(c,m,0,0,h),this.addCurrentVertex(c,m.mult(-1),0,0,h)}else if("bevel"===E||"fakeround"===E){var C=-Math.sqrt(_*_-1),P=k?C:0,O=k?0:C;if(p&&this.addCurrentVertex(c,v,P,O,h),"fakeround"===E)for(var I=Math.round(180*w/Math.PI/20),D=1;D<I;D++){var z=D/I;if(.5!==z){var R=z-.5;z+=z*R*(z-1)*((1.0904+x*(x*(3.55645-1.43519*x)-3.2452))*R*R+(.848013+x*(.215638*x-1.06021)))}var F=g.sub(v)._mult(z)._add(v)._unit()._mult(k?-1:1);this.addHalfVertex(c,F.x,F.y,!1,k,0,h)}d&&this.addCurrentVertex(c,g,-P,-O,h)}else if("butt"===E)this.addCurrentVertex(c,m,0,0,h);else if("square"===E){var B=p?1:-1;this.addCurrentVertex(c,m,B,B,h)}else"round"===E&&(p&&(this.addCurrentVertex(c,v,0,0,h),this.addCurrentVertex(c,v,1,1,h,!0)),d&&(this.addCurrentVertex(c,g,-1,-1,h,!0),this.addCurrentVertex(c,g,0,0,h)));if(T&&y<l-1){var N=c.dist(d);if(N>2*f){var j=c.add(d.sub(c)._mult(f/N)._round());this.updateDistance(c,j),this.addCurrentVertex(j,g,0,0,h),c=j}}}}},ol.prototype.addCurrentVertex=function(t,e,r,n,i,a){void 0===a&&(a=!1);var o=e.x+e.y*r,s=e.y-e.x*r,l=-e.x+e.y*n,u=-e.y-e.x*n;this.addHalfVertex(t,o,s,a,!1,r,i),this.addHalfVertex(t,l,u,a,!0,-n,i),this.distance>al/2&&0===this.totalDistance&&(this.distance=0,this.addCurrentVertex(t,e,r,n,i,a))},ol.prototype.addHalfVertex=function(t,e,r,n,i,a,o){var s=t.x,l=t.y,u=.5*this.scaledDistance;this.layoutVertexArray.emplaceBack((s<<1)+(n?1:0),(l<<1)+(i?1:0),Math.round(63*e)+128,Math.round(63*r)+128,1+(0===a?0:a<0?-1:1)|(63&u)<<2,u>>6);var c=o.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,c),o.primitiveLength++),i?this.e2=c:this.e1=c},ol.prototype.updateScaledDistance=function(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(al-1):this.distance},ol.prototype.updateDistance=function(t,e){this.distance+=t.dist(e),this.updateScaledDistance()},Qn("LineBucket",ol,{omit:["layers","patternFeatures"]});var sl=new Ui({"line-cap":new Ri(It.layout_line["line-cap"]),"line-join":new Fi(It.layout_line["line-join"]),"line-miter-limit":new Ri(It.layout_line["line-miter-limit"]),"line-round-limit":new Ri(It.layout_line["line-round-limit"]),"line-sort-key":new Fi(It.layout_line["line-sort-key"])}),ll={paint:new Ui({"line-opacity":new Fi(It.paint_line["line-opacity"]),"line-color":new Fi(It.paint_line["line-color"]),"line-translate":new Ri(It.paint_line["line-translate"]),"line-translate-anchor":new Ri(It.paint_line["line-translate-anchor"]),"line-width":new Fi(It.paint_line["line-width"]),"line-gap-width":new Fi(It.paint_line["line-gap-width"]),"line-offset":new Fi(It.paint_line["line-offset"]),"line-blur":new Fi(It.paint_line["line-blur"]),"line-dasharray":new Ni(It.paint_line["line-dasharray"]),"line-pattern":new Bi(It.paint_line["line-pattern"]),"line-gradient":new ji(It.paint_line["line-gradient"])}),layout:sl},ul=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.possiblyEvaluate=function(e,r){return r=new Si(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),t.prototype.possiblyEvaluate.call(this,e,r)},e.prototype.evaluate=function(e,r,n,i){return r=f({},r,{zoom:Math.floor(r.zoom)}),t.prototype.evaluate.call(this,e,r,n,i)},e}(Fi),cl=new ul(ll.paint.properties["line-width"].specification);cl.useIntegerZoom=!0;var fl=function(t){function e(e){t.call(this,e,ll)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._handleSpecialPaintPropertyUpdate=function(t){"line-gradient"===t&&this._updateGradient()},e.prototype._updateGradient=function(){var t=this._transitionablePaint._values["line-gradient"].value.expression;this.gradient=Zo(t,"lineProgress"),this.gradientTexture=null},e.prototype.recalculate=function(e,r){t.prototype.recalculate.call(this,e,r),this.paint._values["line-floorwidth"]=cl.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,e)},e.prototype.createBucket=function(t){return new ol(t)},e.prototype.queryRadius=function(t){var e=t,r=hl(ko("line-width",this,e),ko("line-gap-width",this,e)),n=ko("line-offset",this,e);return r/2+Math.abs(n)+Ao(this.paint.get("line-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,o,s){var l=Mo(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),o.angle,s),u=s/2*hl(this.paint.get("line-width").evaluate(e,r),this.paint.get("line-gap-width").evaluate(e,r)),c=this.paint.get("line-offset").evaluate(e,r);return c&&(n=function(t,e){for(var r=[],n=new a(0,0),i=0;i<t.length;i++){for(var o=t[i],s=[],l=0;l<o.length;l++){var u=o[l-1],c=o[l],f=o[l+1],h=0===l?n:c.sub(u)._unit()._perp(),p=l===o.length-1?n:f.sub(c)._unit()._perp(),d=h._add(p)._unit(),v=d.x*p.x+d.y*p.y;d._mult(1/v),s.push(d._mult(e)._add(c))}r.push(s)}return r}(n,c*s)),function(t,e,r){for(var n=0;n<e.length;n++){var i=e[n];if(t.length>=3)for(var a=0;a<i.length;a++)if(wo(t,i[a]))return!0;if(go(t,i,r))return!0}return!1}(l,n,u)},e.prototype.isTileClipped=function(){return!0},e}(Hi);function hl(t,e){return e>0?e+2*t:t}var pl=Yi([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),dl=Yi([{name:"a_projected_pos",components:3,type:"Float32"}],4),vl=(Yi([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),Yi([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),gl=(Yi([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]),Yi([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),yl=Yi([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function ml(t,e,r){return t.sections.forEach((function(t){t.text=function(t,e,r){var n=e.layout.get("text-transform").evaluate(r,{});return"uppercase"===n?t=t.toLocaleUpperCase():"lowercase"===n&&(t=t.toLocaleLowerCase()),Mi.applyArabicShaping&&(t=Mi.applyArabicShaping(t)),t}(t.text,e,r)})),t}Yi([{name:"triangle",components:3,type:"Uint16"}]),Yi([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),Yi([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),Yi([{type:"Float32",name:"offsetX"}]),Yi([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);var xl={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var bl=24,_l=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<<s)-1,u=l>>1,c=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=256*a+t[e+f],f+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+t[e+f],f+=h,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=u}return(p?-1:1)*o*Math.pow(2,a-n)},wl=function(t,e,r,n,i,a){var o,s,l,u=8*a-i-1,c=(1<<u)-1,f=c>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<<i|s,u+=i;u>0;t[r+p]=255&o,p+=d,o/=256,u-=8);t[r+p-d]|=128*v},Tl=kl;function kl(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}kl.Varint=0,kl.Fixed64=1,kl.Bytes=2,kl.Fixed32=5;var Al=4294967296,Ml=1/Al,Sl="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function El(t){return t.type===kl.Bytes?t.readVarint()+t.pos:t.pos+1}function Ll(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function Cl(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i]}function Pl(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r])}function Ol(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r])}function Il(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r])}function Dl(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r])}function zl(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r])}function Rl(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r])}function Fl(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r])}function Bl(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r])}function Nl(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r])}function jl(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+16777216*t[e+3]}function Ul(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function Vl(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}kl.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),i=n>>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=jl(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=Vl(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=jl(this.buf,this.pos)+jl(this.buf,this.pos+4)*Al;return this.pos+=8,t},readSFixed64:function(){var t=jl(this.buf,this.pos)+Vl(this.buf,this.pos+4)*Al;return this.pos+=8,t},readFloat:function(){var t=_l(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=_l(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,a=r.buf;if(n=(112&(i=a[r.pos++]))>>4,i<128)return Ll(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return Ll(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return Ll(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return Ll(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return Ll(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return Ll(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&Sl?function(t,e,r){return Sl.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n="",i=e;i<r;){var a,o,s,l=t[i],u=null,c=l>239?4:l>223?3:l>191?2:1;if(i+c>r)break;1===c?l<128&&(u=l):2===c?128==(192&(a=t[i+1]))&&(u=(31&l)<<6|63&a)<=127&&(u=null):3===c?(a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&((u=(15&l)<<12|(63&a)<<6|63&o)<=2047||u>=55296&&u<=57343)&&(u=null)):4===c&&(a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&((u=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,c=1):u>65535&&(u-=65536,n+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),n+=String.fromCharCode(u),i+=c}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==kl.Bytes)return t.push(this.readVarint(e));var r=El(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==kl.Bytes)return t.push(this.readSVarint());var e=El(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==kl.Bytes)return t.push(this.readBoolean());var e=El(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==kl.Bytes)return t.push(this.readFloat());var e=El(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==kl.Bytes)return t.push(this.readDouble());var e=El(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==kl.Bytes)return t.push(this.readFixed32());var e=El(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==kl.Bytes)return t.push(this.readSFixed32());var e=El(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==kl.Bytes)return t.push(this.readFixed64());var e=El(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==kl.Bytes)return t.push(this.readSFixed64());var e=El(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=7&t;if(e===kl.Varint)for(;this.buf[this.pos++]>127;);else if(e===kl.Bytes)this.pos=this.readVarint()+this.pos;else if(e===kl.Fixed32)this.pos+=4;else{if(e!==kl.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var r=new Uint8Array(e);r.set(this.buf),this.buf=r,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),Ul(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),Ul(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),Ul(this.buf,-1&t,this.pos),Ul(this.buf,Math.floor(t*Ml),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),Ul(this.buf,-1&t,this.pos),Ul(this.buf,Math.floor(t*Ml),this.pos+4),this.pos+=8},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos]=127&t}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))))}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a<e.length;a++){if((n=e.charCodeAt(a))>55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128)}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&Cl(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),wl(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),wl(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r<e;r++)this.buf[this.pos++]=t[r]},writeRawMessage:function(t,e){this.pos++;var r=this.pos;t(e,this);var n=this.pos-r;n>=128&&Cl(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,kl.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,Pl,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,Ol,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,zl,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,Il,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,Dl,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,Rl,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,Fl,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,Bl,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,Nl,e)},writeBytesField:function(t,e){this.writeTag(t,kl.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,kl.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,kl.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,kl.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,kl.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,kl.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,kl.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,kl.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,kl.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,kl.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};function Hl(t,e,r){1===t&&r.readMessage(ql,e)}function ql(t,e,r){if(3===t){var n=r.readMessage(Gl,{}),i=n.id,a=n.bitmap,o=n.width,s=n.height,l=n.left,u=n.top,c=n.advance;e.push({id:i,bitmap:new Ho({width:o+6,height:s+6},a),metrics:{width:o,height:s,left:l,top:u,advance:c}})}}function Gl(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint())}function Zl(t){for(var e=0,r=0,n=0,i=t;n<i.length;n+=1){var a=i[n];e+=a.w*a.h,r=Math.max(r,a.w)}t.sort((function(t,e){return e.h-t.h}));for(var o=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),r),h:1/0}],s=0,l=0,u=0,c=t;u<c.length;u+=1)for(var f=c[u],h=o.length-1;h>=0;h--){var p=o[h];if(!(f.w>p.w||f.h>p.h)){if(f.x=p.x,f.y=p.y,l=Math.max(l,f.y+f.h),s=Math.max(s,f.x+f.w),f.w===p.w&&f.h===p.h){var d=o.pop();h<o.length&&(o[h]=d)}else f.h===p.h?(p.x+=f.w,p.w-=f.w):f.w===p.w?(p.y+=f.h,p.h-=f.h):(o.push({x:p.x+f.w,y:p.y,w:p.w-f.w,h:f.h}),p.y+=f.h,p.h-=f.h);break}}return{w:s,h:l,fill:e/(s*l)||0}}var Yl=function(t,e){var r=e.pixelRatio,n=e.version,i=e.stretchX,a=e.stretchY,o=e.content;this.paddedRect=t,this.pixelRatio=r,this.stretchX=i,this.stretchY=a,this.content=o,this.version=n},Wl={tl:{configurable:!0},br:{configurable:!0},tlbr:{configurable:!0},displaySize:{configurable:!0}};Wl.tl.get=function(){return[this.paddedRect.x+1,this.paddedRect.y+1]},Wl.br.get=function(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]},Wl.tlbr.get=function(){return this.tl.concat(this.br)},Wl.displaySize.get=function(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]},Object.defineProperties(Yl.prototype,Wl);var Xl=function(t,e){var r={},n={};this.haveRenderCallbacks=[];var i=[];this.addImages(t,r,i),this.addImages(e,n,i);var a=Zl(i),o=a.w,s=a.h,l=new qo({width:o||1,height:s||1});for(var u in t){var c=t[u],f=r[u].paddedRect;qo.copy(c.data,l,{x:0,y:0},{x:f.x+1,y:f.y+1},c.data)}for(var h in e){var p=e[h],d=n[h].paddedRect,v=d.x+1,g=d.y+1,y=p.data.width,m=p.data.height;qo.copy(p.data,l,{x:0,y:0},{x:v,y:g},p.data),qo.copy(p.data,l,{x:0,y:m-1},{x:v,y:g-1},{width:y,height:1}),qo.copy(p.data,l,{x:0,y:0},{x:v,y:g+m},{width:y,height:1}),qo.copy(p.data,l,{x:y-1,y:0},{x:v-1,y:g},{width:1,height:m}),qo.copy(p.data,l,{x:0,y:0},{x:v+y,y:g},{width:1,height:m})}this.image=l,this.iconPositions=r,this.patternPositions=n};Xl.prototype.addImages=function(t,e,r){for(var n in t){var i=t[n],a={x:0,y:0,w:i.data.width+2,h:i.data.height+2};r.push(a),e[n]=new Yl(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(n)}},Xl.prototype.patchUpdatedImages=function(t,e){for(var r in t.dispatchRenderCallbacks(this.haveRenderCallbacks),t.updatedImages)this.patchUpdatedImage(this.iconPositions[r],t.getImage(r),e),this.patchUpdatedImage(this.patternPositions[r],t.getImage(r),e)},Xl.prototype.patchUpdatedImage=function(t,e,r){if(t&&e&&t.version!==e.version){t.version=e.version;var n=t.tl,i=n[0],a=n[1];r.update(e.data,void 0,{x:i,y:a})}},Qn("ImagePosition",Yl),Qn("ImageAtlas",Xl);var Jl={horizontal:1,vertical:2,horizontalOnly:3},Kl=-17;var $l=function(){this.scale=1,this.fontStack="",this.imageName=null};$l.forText=function(t,e){var r=new $l;return r.scale=t||1,r.fontStack=e,r},$l.forImage=function(t){var e=new $l;return e.imageName=t,e};var Ql=function(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null};function tu(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v){var g,y=Ql.fromFeature(t,i);f===Jl.vertical&&y.verticalizePunctuation();var m=Mi.processBidirectionalText,x=Mi.processStyledBidirectionalText;if(m&&1===y.sections.length){g=[];for(var b=0,_=m(y.toString(),lu(y,u,a,e,n,p,d));b<_.length;b+=1){var w=_[b],T=new Ql;T.text=w,T.sections=y.sections;for(var k=0;k<w.length;k++)T.sectionIndex.push(0);g.push(T)}}else if(x){g=[];for(var A=0,M=x(y.text,y.sectionIndex,lu(y,u,a,e,n,p,d));A<M.length;A+=1){var S=M[A],E=new Ql;E.text=S[0],E.sectionIndex=S[1],E.sections=y.sections,g.push(E)}}else g=function(t,e){for(var r=[],n=t.text,i=0,a=0,o=e;a<o.length;a+=1){var s=o[a];r.push(t.substring(i,s)),i=s}return i<n.length&&r.push(t.substring(i,n.length)),r}(y,lu(y,u,a,e,n,p,d));var L=[],C={positionedLines:L,text:y.toString(),top:c[1],bottom:c[1],left:c[0],right:c[0],writingMode:f,iconsInText:!1,verticalizable:!1};return function(t,e,r,n,i,a,o,s,l,u,c,f){for(var h=0,p=Kl,d=0,v=0,g="right"===s?1:"left"===s?0:.5,y=0,m=0,x=i;m<x.length;m+=1){var b=x[m];b.trim();var _=b.getMaxScale(),w=(_-1)*bl,T={positionedGlyphs:[],lineOffset:0};t.positionedLines[y]=T;var k=T.positionedGlyphs,A=0;if(b.length()){for(var M=0;M<b.length();M++){var S=b.getSection(M),E=b.getSectionIndex(M),L=b.getCharCode(M),C=0,P=null,O=null,I=null,D=bl,z=!(l===Jl.horizontal||!c&&!li(L)||c&&(eu[L]||ci(L)));if(S.imageName){var R=n[S.imageName];if(!R)continue;I=S.imageName,t.iconsInText=t.iconsInText||!0,O=R.paddedRect;var F=R.displaySize;S.scale=S.scale*bl/f,P={width:F[0],height:F[1],left:1,top:-3,advance:z?F[1]:F[0]},C=w+(bl-F[1]*S.scale),D=P.advance;var B=z?F[0]*S.scale-bl*_:F[1]*S.scale-bl*_;B>0&&B>A&&(A=B)}else{var N=r[S.fontStack],j=N&&N[L];if(j&&j.rect)O=j.rect,P=j.metrics;else{var U=e[S.fontStack],V=U&&U[L];if(!V)continue;P=V.metrics}C=(_-S.scale)*bl}z?(t.verticalizable=!0,k.push({glyph:L,imageName:I,x:h,y:p+C,vertical:z,scale:S.scale,fontStack:S.fontStack,sectionIndex:E,metrics:P,rect:O}),h+=D*S.scale+u):(k.push({glyph:L,imageName:I,x:h,y:p+C,vertical:z,scale:S.scale,fontStack:S.fontStack,sectionIndex:E,metrics:P,rect:O}),h+=P.advance*S.scale+u)}if(0!==k.length){var H=h-u;d=Math.max(H,d),cu(k,0,k.length-1,g,A)}h=0;var q=a*_+A;T.lineOffset=Math.max(A,w),p+=q,v=Math.max(q,v),++y}else p+=a,++y}var G=p-Kl,Z=uu(o),Y=Z.horizontalAlign,W=Z.verticalAlign;(function(t,e,r,n,i,a,o,s,l){var u=(e-r)*i,c=0;c=a!==o?-s*n-Kl:(-n*l+.5)*o;for(var f=0,h=t;f<h.length;f+=1)for(var p=0,d=h[f].positionedGlyphs;p<d.length;p+=1){var v=d[p];v.x+=u,v.y+=c}})(t.positionedLines,g,Y,W,d,v,a,G,i.length),t.top+=-W*G,t.bottom=t.top+G,t.left+=-Y*d,t.right=t.left+d}(C,e,r,n,g,o,s,l,f,u,h,v),!function(t){for(var e=0,r=t;e<r.length;e+=1)if(0!==r[e].positionedGlyphs.length)return!1;return!0}(L)&&C}Ql.fromFeature=function(t,e){for(var r=new Ql,n=0;n<t.sections.length;n++){var i=t.sections[n];i.image?r.addImageSection(i):r.addTextSection(i,e)}return r},Ql.prototype.length=function(){return this.text.length},Ql.prototype.getSection=function(t){return this.sections[this.sectionIndex[t]]},Ql.prototype.getSectionIndex=function(t){return this.sectionIndex[t]},Ql.prototype.getCharCode=function(t){return this.text.charCodeAt(t)},Ql.prototype.verticalizePunctuation=function(){this.text=function(t){for(var e="",r=0;r<t.length;r++){var n=t.charCodeAt(r+1)||null,i=t.charCodeAt(r-1)||null;n&&ui(n)&&!xl[t[r+1]]||i&&ui(i)&&!xl[t[r-1]]||!xl[t[r]]?e+=t[r]:e+=xl[t[r]]}return e}(this.text)},Ql.prototype.trim=function(){for(var t=0,e=0;e<this.text.length&&eu[this.text.charCodeAt(e)];e++)t++;for(var r=this.text.length,n=this.text.length-1;n>=0&&n>=t&&eu[this.text.charCodeAt(n)];n--)r--;this.text=this.text.substring(t,r),this.sectionIndex=this.sectionIndex.slice(t,r)},Ql.prototype.substring=function(t,e){var r=new Ql;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r},Ql.prototype.toString=function(){return this.text},Ql.prototype.getMaxScale=function(){var t=this;return this.sectionIndex.reduce((function(e,r){return Math.max(e,t.sections[r].scale)}),0)},Ql.prototype.addTextSection=function(t,e){this.text+=t.text,this.sections.push($l.forText(t.scale,t.fontStack||e));for(var r=this.sections.length-1,n=0;n<t.text.length;++n)this.sectionIndex.push(r)},Ql.prototype.addImageSection=function(t){var e=t.image?t.image.name:"";if(0!==e.length){var r=this.getNextImageSectionCharCode();r?(this.text+=String.fromCharCode(r),this.sections.push($l.forImage(e)),this.sectionIndex.push(this.sections.length-1)):w("Reached maximum number of images 6401")}else w("Can't add FormattedSection with an empty image.")},Ql.prototype.getNextImageSectionCharCode=function(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)};var eu={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},ru={};function nu(t,e,r,n,i,a){if(e.imageName){var o=n[e.imageName];return o?o.displaySize[0]*e.scale*bl/a+i:0}var s=r[e.fontStack],l=s&&s[t];return l?l.metrics.advance*e.scale+i:0}function iu(t,e,r,n){var i=Math.pow(t-e,2);return n?t<e?i/2:2*i:i+Math.abs(r)*r}function au(t,e,r){var n=0;return 10===t&&(n-=1e4),r&&(n+=150),40!==t&&65288!==t||(n+=50),41!==e&&65289!==e||(n+=50),n}function ou(t,e,r,n,i,a){for(var o=null,s=iu(e,r,i,a),l=0,u=n;l<u.length;l+=1){var c=u[l],f=iu(e-c.x,r,i,a)+c.badness;f<=s&&(o=c,s=f)}return{index:t,x:e,priorBreak:o,badness:s}}function su(t){return t?su(t.priorBreak).concat(t.index):[]}function lu(t,e,r,n,i,a,o){if("point"!==a)return[];if(!t)return[];for(var s=[],l=function(t,e,r,n,i,a){for(var o=0,s=0;s<t.length();s++){var l=t.getSection(s);o+=nu(t.getCharCode(s),l,n,i,e,a)}return o/Math.max(1,Math.ceil(o/r))}(t,e,r,n,i,o),u=t.text.indexOf("​")>=0,c=0,f=0;f<t.length();f++){var h=t.getSection(f),p=t.getCharCode(f);if(eu[p]||(c+=nu(p,h,n,i,e,o)),f<t.length()-1){var d=!((v=p)<11904||!(oi["Bopomofo Extended"](v)||oi.Bopomofo(v)||oi["CJK Compatibility Forms"](v)||oi["CJK Compatibility Ideographs"](v)||oi["CJK Compatibility"](v)||oi["CJK Radicals Supplement"](v)||oi["CJK Strokes"](v)||oi["CJK Symbols and Punctuation"](v)||oi["CJK Unified Ideographs Extension A"](v)||oi["CJK Unified Ideographs"](v)||oi["Enclosed CJK Letters and Months"](v)||oi["Halfwidth and Fullwidth Forms"](v)||oi.Hiragana(v)||oi["Ideographic Description Characters"](v)||oi["Kangxi Radicals"](v)||oi["Katakana Phonetic Extensions"](v)||oi.Katakana(v)||oi["Vertical Forms"](v)||oi["Yi Radicals"](v)||oi["Yi Syllables"](v)));(ru[p]||d||h.imageName)&&s.push(ou(f+1,c,l,s,au(p,t.getCharCode(f+1),d&&u),!1))}}var v;return su(ou(t.length(),c,l,s,0,!0))}function uu(t){var e=.5,r=.5;switch(t){case"right":case"top-right":case"bottom-right":e=1;break;case"left":case"top-left":case"bottom-left":e=0}switch(t){case"bottom":case"bottom-right":case"bottom-left":r=1;break;case"top":case"top-right":case"top-left":r=0}return{horizontalAlign:e,verticalAlign:r}}function cu(t,e,r,n,i){if(n||i)for(var a=t[r],o=a.metrics.advance*a.scale,s=(t[r].x+o)*n,l=e;l<=r;l++)t[l].x-=s,t[l].y+=i}function fu(t,e,r,n,i,a){var o,s=t.image;if(s.content){var l=s.content,u=s.pixelRatio||1;o=[l[0]/u,l[1]/u,s.displaySize[0]-l[2]/u,s.displaySize[1]-l[3]/u]}var c,f,h,p,d=e.left*a,v=e.right*a;"width"===r||"both"===r?(p=i[0]+d-n[3],f=i[0]+v+n[1]):f=(p=i[0]+(d+v-s.displaySize[0])/2)+s.displaySize[0];var g=e.top*a,y=e.bottom*a;return"height"===r||"both"===r?(c=i[1]+g-n[0],h=i[1]+y+n[2]):h=(c=i[1]+(g+y-s.displaySize[1])/2)+s.displaySize[1],{image:s,top:c,right:f,bottom:h,left:p,collisionPadding:o}}ru[10]=!0,ru[32]=!0,ru[38]=!0,ru[40]=!0,ru[41]=!0,ru[43]=!0,ru[45]=!0,ru[47]=!0,ru[173]=!0,ru[183]=!0,ru[8203]=!0,ru[8208]=!0,ru[8211]=!0,ru[8231]=!0;var hu=function(t){function e(e,r,n,i){t.call(this,e,r),this.angle=n,void 0!==i&&(this.segment=i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e(this.x,this.y,this.angle,this.segment)},e}(a);Qn("Anchor",hu);var pu=128;function du(t,e){var r=e.expression;if("constant"===r.kind)return{kind:"constant",layoutSize:r.evaluate(new Si(t+1))};if("source"===r.kind)return{kind:"source"};for(var n=r.zoomStops,i=r.interpolationType,a=0;a<n.length&&n[a]<=t;)a++;for(var o=a=Math.max(0,a-1);o<n.length&&n[o]<t+1;)o++;o=Math.min(n.length-1,o);var s=n[a],l=n[o];return"composite"===r.kind?{kind:"composite",minZoom:s,maxZoom:l,interpolationType:i}:{kind:"camera",minZoom:s,maxZoom:l,minSize:r.evaluate(new Si(s)),maxSize:r.evaluate(new Si(l)),interpolationType:i}}function vu(t,e,r){var n=e.uSize,i=e.uSizeT,a=r.lowerSize,o=r.upperSize;return"source"===t.kind?a/pu:"composite"===t.kind?Ke(a/pu,o/pu,i):n}function gu(t,e){var r=0,n=0;if("constant"===t.kind)n=t.layoutSize;else if("source"!==t.kind){var i=t.interpolationType,a=t.minZoom,o=t.maxZoom,s=i?u(gr.interpolationFactor(i,e,a,o),0,1):0;"camera"===t.kind?n=Ke(t.minSize,t.maxSize,s):r=s}return{uSizeT:r,uSize:n}}var yu=Object.freeze({__proto__:null,getSizeData:du,evaluateSizeForFeature:vu,evaluateSizeForZoom:gu,SIZE_PACK_FACTOR:pu});function mu(t,e,r,n,i){if(void 0===e.segment)return!0;for(var a=e,o=e.segment+1,s=0;s>-r/2;){if(--o<0)return!1;s-=t[o].dist(a),a=t[o]}s+=t[o].dist(t[o+1]),o++;for(var l=[],u=0;s<r/2;){var c=t[o-1],f=t[o],h=t[o+1];if(!h)return!1;var p=c.angleTo(f)-f.angleTo(h);for(p=Math.abs((p+3*Math.PI)%(2*Math.PI)-Math.PI),l.push({distance:s,angleDelta:p}),u+=p;s-l[0].distance>n;)u-=l.shift().angleDelta;if(u>i)return!1;o++,s+=f.dist(h)}return!0}function xu(t){for(var e=0,r=0;r<t.length-1;r++)e+=t[r].dist(t[r+1]);return e}function bu(t,e,r){return t?.6*e*r:0}function _u(t,e){return Math.max(t?t.right-t.left:0,e?e.right-e.left:0)}function wu(t,e,r,n,i,a){for(var o=bu(r,i,a),s=_u(r,n)*a,l=0,u=xu(t)/2,c=0;c<t.length-1;c++){var f=t[c],h=t[c+1],p=f.dist(h);if(l+p>u){var d=(u-l)/p,v=Ke(f.x,h.x,d),g=Ke(f.y,h.y,d),y=new hu(v,g,h.angleTo(f),c);return y._round(),!o||mu(t,y,s,o,e)?y:void 0}l+=p}}function Tu(t,e,r,n,i,a,o,s,l){var u=bu(n,a,o),c=_u(n,i),f=c*o,h=0===t[0].x||t[0].x===l||0===t[0].y||t[0].y===l;return e-f<e/4&&(e=f+e/4),ku(t,h?e/2*s%e:(c/2+2*a)*o*s%e,e,u,r,f,h,!1,l)}function ku(t,e,r,n,i,a,o,s,l){for(var u=a/2,c=xu(t),f=0,h=e-r,p=[],d=0;d<t.length-1;d++){for(var v=t[d],g=t[d+1],y=v.dist(g),m=g.angleTo(v);h+r<f+y;){var x=((h+=r)-f)/y,b=Ke(v.x,g.x,x),_=Ke(v.y,g.y,x);if(b>=0&&b<l&&_>=0&&_<l&&h-u>=0&&h+u<=c){var w=new hu(b,_,m,d);w._round(),n&&!mu(t,w,a,n,i)||p.push(w)}}f+=y}return s||p.length||o||(p=ku(t,f/2,r,n,i,a,o,!0,l)),p}function Au(t,e,r,n,i){for(var o=[],s=0;s<t.length;s++)for(var l=t[s],u=void 0,c=0;c<l.length-1;c++){var f=l[c],h=l[c+1];f.x<e&&h.x<e||(f.x<e?f=new a(e,f.y+(h.y-f.y)*((e-f.x)/(h.x-f.x)))._round():h.x<e&&(h=new a(e,f.y+(h.y-f.y)*((e-f.x)/(h.x-f.x)))._round()),f.y<r&&h.y<r||(f.y<r?f=new a(f.x+(h.x-f.x)*((r-f.y)/(h.y-f.y)),r)._round():h.y<r&&(h=new a(f.x+(h.x-f.x)*((r-f.y)/(h.y-f.y)),r)._round()),f.x>=n&&h.x>=n||(f.x>=n?f=new a(n,f.y+(h.y-f.y)*((n-f.x)/(h.x-f.x)))._round():h.x>=n&&(h=new a(n,f.y+(h.y-f.y)*((n-f.x)/(h.x-f.x)))._round()),f.y>=i&&h.y>=i||(f.y>=i?f=new a(f.x+(h.x-f.x)*((i-f.y)/(h.y-f.y)),i)._round():h.y>=i&&(h=new a(f.x+(h.x-f.x)*((i-f.y)/(h.y-f.y)),i)._round()),u&&f.equals(u[u.length-1])||(u=[f],o.push(u)),u.push(h)))))}return o}function Mu(t,e,r,n){var i=[],o=t.image,s=o.pixelRatio,l=o.paddedRect.w-2,u=o.paddedRect.h-2,c=t.right-t.left,f=t.bottom-t.top,h=o.stretchX||[[0,l]],p=o.stretchY||[[0,u]],d=function(t,e){return t+e[1]-e[0]},v=h.reduce(d,0),g=p.reduce(d,0),y=l-v,m=u-g,x=0,b=v,_=0,w=g,T=0,k=y,A=0,M=m;if(o.content&&n){var S=o.content;x=Su(h,0,S[0]),_=Su(p,0,S[1]),b=Su(h,S[0],S[2]),w=Su(p,S[1],S[3]),T=S[0]-x,A=S[1]-_,k=S[2]-S[0]-b,M=S[3]-S[1]-w}var E=function(n,i,l,u){var h=Lu(n.stretch-x,b,c,t.left),p=Cu(n.fixed-T,k,n.stretch,v),d=Lu(i.stretch-_,w,f,t.top),y=Cu(i.fixed-A,M,i.stretch,g),m=Lu(l.stretch-x,b,c,t.left),S=Cu(l.fixed-T,k,l.stretch,v),E=Lu(u.stretch-_,w,f,t.top),L=Cu(u.fixed-A,M,u.stretch,g),C=new a(h,d),P=new a(m,d),O=new a(m,E),I=new a(h,E),D=new a(p/s,y/s),z=new a(S/s,L/s),R=e*Math.PI/180;if(R){var F=Math.sin(R),B=Math.cos(R),N=[B,-F,F,B];C._matMult(N),P._matMult(N),I._matMult(N),O._matMult(N)}var j=n.stretch+n.fixed,U=l.stretch+l.fixed,V=i.stretch+i.fixed,H=u.stretch+u.fixed;return{tl:C,tr:P,bl:I,br:O,tex:{x:o.paddedRect.x+1+j,y:o.paddedRect.y+1+V,w:U-j,h:H-V},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:D,pixelOffsetBR:z,minFontScaleX:k/s/c,minFontScaleY:M/s/f,isSDF:r}};if(n&&(o.stretchX||o.stretchY))for(var L=Eu(h,y,v),C=Eu(p,m,g),P=0;P<L.length-1;P++)for(var O=L[P],I=L[P+1],D=0;D<C.length-1;D++){var z=C[D],R=C[D+1];i.push(E(O,z,I,R))}else i.push(E({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:l+1},{fixed:0,stretch:u+1}));return i}function Su(t,e,r){for(var n=0,i=0,a=t;i<a.length;i+=1){var o=a[i];n+=Math.max(e,Math.min(r,o[1]))-Math.max(e,Math.min(r,o[0]))}return n}function Eu(t,e,r){for(var n=[{fixed:-1,stretch:0}],i=0,a=t;i<a.length;i+=1){var o=a[i],s=o[0],l=o[1],u=n[n.length-1];n.push({fixed:s-u.stretch,stretch:u.stretch}),n.push({fixed:s-u.stretch,stretch:u.stretch+(l-s)})}return n.push({fixed:e+1,stretch:r}),n}function Lu(t,e,r,n){return t/e*r+n}function Cu(t,e,r,n){return t-e*r/n}var Pu=function(t,e,r,n,i,o,s,l,u,c){if(this.boxStartIndex=t.length,u){var f=o.top,h=o.bottom,p=o.collisionPadding;p&&(f-=p[1],h+=p[3]);var d=h-f;d>0&&(d=Math.max(10,d),this.circleDiameter=d)}else{var v=o.top*s-l,g=o.bottom*s+l,y=o.left*s-l,m=o.right*s+l,x=o.collisionPadding;if(x&&(y-=x[0]*s,v-=x[1]*s,m+=x[2]*s,g+=x[3]*s),c){var b=new a(y,v),_=new a(m,v),w=new a(y,g),T=new a(m,g),k=c*Math.PI/180;b._rotate(k),_._rotate(k),w._rotate(k),T._rotate(k),y=Math.min(b.x,_.x,w.x,T.x),m=Math.max(b.x,_.x,w.x,T.x),v=Math.min(b.y,_.y,w.y,T.y),g=Math.max(b.y,_.y,w.y,T.y)}t.emplaceBack(e.x,e.y,y,v,m,g,r,n,i)}this.boxEndIndex=t.length},Ou=function(t,e){if(void 0===t&&(t=[]),void 0===e&&(e=Iu),this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(var r=(this.length>>1)-1;r>=0;r--)this._down(r)};function Iu(t,e){return t<e?-1:t>e?1:0}function Du(t,e,r){void 0===e&&(e=1),void 0===r&&(r=!1);for(var n=1/0,i=1/0,o=-1/0,s=-1/0,l=t[0],u=0;u<l.length;u++){var c=l[u];(!u||c.x<n)&&(n=c.x),(!u||c.y<i)&&(i=c.y),(!u||c.x>o)&&(o=c.x),(!u||c.y>s)&&(s=c.y)}var f=o-n,h=s-i,p=Math.min(f,h),d=p/2,v=new Ou([],zu);if(0===p)return new a(n,i);for(var g=n;g<o;g+=p)for(var y=i;y<s;y+=p)v.push(new Ru(g+d,y+d,d,t));for(var m=function(t){for(var e=0,r=0,n=0,i=t[0],a=0,o=i.length,s=o-1;a<o;s=a++){var l=i[a],u=i[s],c=l.x*u.y-u.x*l.y;r+=(l.x+u.x)*c,n+=(l.y+u.y)*c,e+=3*c}return new Ru(r/e,n/e,0,t)}(t),x=v.length;v.length;){var b=v.pop();(b.d>m.d||!m.d)&&(m=b,r&&console.log("found best %d after %d probes",Math.round(1e4*b.d)/1e4,x)),b.max-m.d<=e||(d=b.h/2,v.push(new Ru(b.p.x-d,b.p.y-d,d,t)),v.push(new Ru(b.p.x+d,b.p.y-d,d,t)),v.push(new Ru(b.p.x-d,b.p.y+d,d,t)),v.push(new Ru(b.p.x+d,b.p.y+d,d,t)),x+=4)}return r&&(console.log("num probes: "+x),console.log("best distance: "+m.d)),m.p}function zu(t,e){return e.max-t.max}function Ru(t,e,r,n){this.p=new a(t,e),this.h=r,this.d=function(t,e){for(var r=!1,n=1/0,i=0;i<e.length;i++)for(var a=e[i],o=0,s=a.length,l=s-1;o<s;l=o++){var u=a[o],c=a[l];u.y>t.y!=c.y>t.y&&t.x<(c.x-u.x)*(t.y-u.y)/(c.y-u.y)+u.x&&(r=!r),n=Math.min(n,bo(t,u,c))}return(r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2}Ou.prototype.push=function(t){this.data.push(t),this.length++,this._up(this.length-1)},Ou.prototype.pop=function(){if(0!==this.length){var t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}},Ou.prototype.peek=function(){return this.data[0]},Ou.prototype._up=function(t){for(var e=this.data,r=this.compare,n=e[t];t>0;){var i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i}e[t]=n},Ou.prototype._down=function(t){for(var e=this.data,r=this.compare,n=this.length>>1,i=e[t];t<n;){var a=1+(t<<1),o=e[a],s=a+1;if(s<this.length&&r(e[s],o)<0&&(a=s,o=e[s]),r(o,i)>=0)break;e[t]=o,t=a}e[t]=i};var Fu=Number.POSITIVE_INFINITY;function Bu(t,e){return e[1]!==Fu?function(t,e,r){var n=0,i=0;switch(e=Math.abs(e),r=Math.abs(r),t){case"top-right":case"top-left":case"top":i=r-7;break;case"bottom-right":case"bottom-left":case"bottom":i=7-r}switch(t){case"top-right":case"bottom-right":case"right":n=-e;break;case"top-left":case"bottom-left":case"left":n=e}return[n,i]}(t,e[0],e[1]):function(t,e){var r=0,n=0;e<0&&(e=0);var i=e/Math.sqrt(2);switch(t){case"top-right":case"top-left":n=i-7;break;case"bottom-right":case"bottom-left":n=7-i;break;case"bottom":n=7-e;break;case"top":n=e-7}switch(t){case"top-right":case"bottom-right":r=-i;break;case"top-left":case"bottom-left":r=i;break;case"left":r=e;break;case"right":r=-e}return[r,n]}(t,e[0])}function Nu(t){switch(t){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}var ju=32640;function Uu(t,e,r,n,i,o,s,l,u,c,f,h,p,d,v){var g=function(t,e,r,n,i,o,s,l){for(var u=n.layout.get("text-rotate").evaluate(o,{})*Math.PI/180,c=[],f=0,h=e.positionedLines;f<h.length;f+=1)for(var p=h[f],d=0,v=p.positionedGlyphs;d<v.length;d+=1){var g=v[d];if(g.rect){var y=g.rect||{},m=4,x=!0,b=1,_=0,w=(i||l)&&g.vertical,T=g.metrics.advance*g.scale/2;if(l&&e.verticalizable){var k=(g.scale-1)*bl,A=(bl-g.metrics.width*g.scale)/2;_=p.lineOffset/2-(g.imageName?-A:k)}if(g.imageName){var M=s[g.imageName];x=M.sdf,m=1/(b=M.pixelRatio)}var S=i?[g.x+T,g.y]:[0,0],E=i?[0,0]:[g.x+T+r[0],g.y+r[1]-_],L=[0,0];w&&(L=E,E=[0,0]);var C=(g.metrics.left-m)*g.scale-T+E[0],P=(-g.metrics.top-m)*g.scale+E[1],O=C+y.w*g.scale/b,I=P+y.h*g.scale/b,D=new a(C,P),z=new a(O,P),R=new a(C,I),F=new a(O,I);if(w){var B=new a(-T,T-Kl),N=-Math.PI/2,j=12-T,U=g.imageName?j:0,V=new a(22-j,-U),H=new(Function.prototype.bind.apply(a,[null].concat(L)));D._rotateAround(N,B)._add(V)._add(H),z._rotateAround(N,B)._add(V)._add(H),R._rotateAround(N,B)._add(V)._add(H),F._rotateAround(N,B)._add(V)._add(H)}if(u){var q=Math.sin(u),G=Math.cos(u),Z=[G,-q,q,G];D._matMult(Z),z._matMult(Z),R._matMult(Z),F._matMult(Z)}var Y=new a(0,0),W=new a(0,0);c.push({tl:D,tr:z,bl:R,br:F,tex:y,writingMode:e.writingMode,glyphOffset:S,sectionIndex:g.sectionIndex,isSDF:x,pixelOffsetTL:Y,pixelOffsetBR:W,minFontScaleX:0,minFontScaleY:0})}}return c}(0,r,l,i,o,s,n,t.allowVerticalPlacement),y=t.textSizeData,m=null;"source"===y.kind?(m=[pu*i.layout.get("text-size").evaluate(s,{})])[0]>ju&&w(t.layerIds[0]+': Value for "text-size" is >= '+'255. Reduce your "text-size".'):"composite"===y.kind&&((m=[pu*d.compositeTextSizes[0].evaluate(s,{},v),pu*d.compositeTextSizes[1].evaluate(s,{},v)])[0]>ju||m[1]>ju)&&w(t.layerIds[0]+': Value for "text-size" is >= '+'255. Reduce your "text-size".'),t.addSymbols(t.text,g,m,l,o,s,c,e,u.lineStartIndex,u.lineLength,p,v);for(var x=0,b=f;x<b.length;x+=1)h[b[x]]=t.text.placedSymbolArray.length-1;return 4*g.length}function Vu(t){for(var e in t)return t[e];return null}function Hu(t,e,r,n){var i=t.compareText;if(e in i){for(var a=i[e],o=a.length-1;o>=0;o--)if(n.dist(a[o])<r)return!0}else i[e]=[];return i[e].push(n),!1}var qu=Zs.VectorTileFeature.types,Gu=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function Zu(t,e,r,n,i,a,o,s,l,u,c,f,h){var p=s?Math.min(ju,Math.round(s[0])):0,d=s?Math.min(ju,Math.round(s[1])):0;t.emplaceBack(e,r,Math.round(32*n),Math.round(32*i),a,o,(p<<1)+(l?1:0),d,16*u,16*c,256*f,256*h)}function Yu(t,e,r){t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r)}function Wu(t){for(var e=0,r=t.sections;e<r.length;e+=1)if(pi(r[e].text))return!0;return!1}var Xu=function(t){this.layoutVertexArray=new ta,this.indexArray=new sa,this.programConfigurations=t,this.segments=new Ea,this.dynamicLayoutVertexArray=new ea,this.opacityVertexArray=new ra,this.placedSymbolArray=new ba};Xu.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length&&0===this.indexArray.length&&0===this.dynamicLayoutVertexArray.length&&0===this.opacityVertexArray.length},Xu.prototype.upload=function(t,e,r,n){this.isEmpty()||(r&&(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,pl.members),this.indexBuffer=t.createIndexBuffer(this.indexArray,e),this.dynamicLayoutVertexBuffer=t.createVertexBuffer(this.dynamicLayoutVertexArray,dl.members,!0),this.opacityVertexBuffer=t.createVertexBuffer(this.opacityVertexArray,Gu,!0),this.opacityVertexBuffer.itemSize=1),(r||n)&&this.programConfigurations.upload(t))},Xu.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())},Qn("SymbolBuffers",Xu);var Ju=function(t,e,r){this.layoutVertexArray=new t,this.layoutAttributes=e,this.indexArray=new r,this.segments=new Ea,this.collisionVertexArray=new oa};Ju.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=t.createVertexBuffer(this.collisionVertexArray,vl.members,!0)},Ju.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy())},Qn("CollisionBuffers",Ju);var Ku=function(t){this.collisionBoxArray=t.collisionBoxArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=Co([]),this.placementViewportMatrix=Co([]);var e=this.layers[0]._unevaluatedLayout._values;this.textSizeData=du(this.zoom,e["text-size"]),this.iconSizeData=du(this.zoom,e["icon-size"]);var r=this.layers[0].layout,n=r.get("symbol-sort-key"),i=r.get("symbol-z-order");this.sortFeaturesByKey="viewport-y"!==i&&void 0!==n.constantOr(1);var a="viewport-y"===i||"auto"===i&&!this.sortFeaturesByKey;this.sortFeaturesByY=a&&(r.get("text-allow-overlap")||r.get("icon-allow-overlap")||r.get("text-ignore-placement")||r.get("icon-ignore-placement")),"point"===r.get("symbol-placement")&&(this.writingModes=r.get("text-writing-mode").map((function(t){return Jl[t]}))),this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id})),this.sourceID=t.sourceID};Ku.prototype.createArrays=function(){this.text=new Xu(new no(pl.members,this.layers,this.zoom,(function(t){return/^text/.test(t)}))),this.icon=new Xu(new no(pl.members,this.layers,this.zoom,(function(t){return/^icon/.test(t)}))),this.glyphOffsetArray=new Ta,this.lineVertexArray=new ka,this.symbolInstances=new wa},Ku.prototype.calculateGlyphDependencies=function(t,e,r,n,i){for(var a=0;a<t.length;a++)if(e[t.charCodeAt(a)]=!0,(r||n)&&i){var o=xl[t.charAt(a)];o&&(e[o.charCodeAt(0)]=!0)}},Ku.prototype.populate=function(t,e,r){var n=this.layers[0],i=n.layout,a=i.get("text-font"),o=i.get("text-field"),s=i.get("icon-image"),l=("constant"!==o.value.kind||o.value.value instanceof le&&!o.value.value.isEmpty()||o.value.value.toString().length>0)&&("constant"!==a.value.kind||a.value.value.length>0),u="constant"!==s.value.kind||!!s.value.value||Object.keys(s.parameters).length>0,c=i.get("symbol-sort-key");if(this.features=[],l||u){for(var f=e.iconDependencies,h=e.glyphDependencies,p=e.availableImages,d=new Si(this.zoom),v=0,g=t;v<g.length;v+=1){var y=g[v],m=y.feature,x=y.id,b=y.index,_=y.sourceLayerIndex,w=n._featureFilter.needGeometry,T={type:m.type,id:x,properties:m.properties,geometry:w?uo(m):[]};if(n._featureFilter.filter(d,T,r)){w||(T.geometry=uo(m));var k=void 0;if(l){var A=n.getValueAndResolveTokens("text-field",T,r,p),M=le.factory(A);Wu(M)&&(this.hasRTLText=!0),(!this.hasRTLText||"unavailable"===ki()||this.hasRTLText&&Mi.isParsed())&&(k=ml(M,n,T))}var S=void 0;if(u){var E=n.getValueAndResolveTokens("icon-image",T,r,p);S=E instanceof ue?E:ue.fromString(E)}if(k||S){var L=this.sortFeaturesByKey?c.evaluate(T,{},r):void 0,C={id:x,text:k,icon:S,index:b,sourceLayerIndex:_,geometry:uo(m),properties:m.properties,type:qu[m.type],sortKey:L};if(this.features.push(C),S&&(f[S.name]=!0),k){var P=a.evaluate(T,{},r).join(","),O="map"===i.get("text-rotation-alignment")&&"point"!==i.get("symbol-placement");this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(Jl.vertical)>=0;for(var I=0,D=k.sections;I<D.length;I+=1){var z=D[I];if(z.image)f[z.image.name]=!0;else{var R=si(k.toString()),F=z.fontStack||P,B=h[F]=h[F]||{};this.calculateGlyphDependencies(z.text,B,O,this.allowVerticalPlacement,R)}}}}}}"line"===i.get("symbol-placement")&&(this.features=function(t){var e={},r={},n=[],i=0;function a(e){n.push(t[e]),i++}function o(t,e,i){var a=r[t];return delete r[t],r[e]=a,n[a].geometry[0].pop(),n[a].geometry[0]=n[a].geometry[0].concat(i[0]),a}function s(t,r,i){var a=e[r];return delete e[r],e[t]=a,n[a].geometry[0].shift(),n[a].geometry[0]=i[0].concat(n[a].geometry[0]),a}function l(t,e,r){var n=r?e[0][e[0].length-1]:e[0][0];return t+":"+n.x+":"+n.y}for(var u=0;u<t.length;u++){var c=t[u],f=c.geometry,h=c.text?c.text.toString():null;if(h){var p=l(h,f),d=l(h,f,!0);if(p in r&&d in e&&r[p]!==e[d]){var v=s(p,d,f),g=o(p,d,n[v].geometry);delete e[p],delete r[d],r[l(h,n[g].geometry,!0)]=g,n[v].geometry=null}else p in r?o(p,d,f):d in e?s(p,d,f):(a(u),e[p]=i-1,r[d]=i-1)}else a(u)}return n.filter((function(t){return t.geometry}))}(this.features)),this.sortFeaturesByKey&&this.features.sort((function(t,e){return t.sortKey-e.sortKey}))}},Ku.prototype.update=function(t,e,r){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,e,this.layers,r),this.icon.programConfigurations.updatePaintArrays(t,e,this.layers,r))},Ku.prototype.isEmpty=function(){return 0===this.symbolInstances.length&&!this.hasRTLText},Ku.prototype.uploadPending=function(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload},Ku.prototype.upload=function(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0},Ku.prototype.destroyDebugData=function(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()},Ku.prototype.destroy=function(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()},Ku.prototype.addToLineVertexArray=function(t,e){var r=this.lineVertexArray.length;if(void 0!==t.segment){for(var n=t.dist(e[t.segment+1]),i=t.dist(e[t.segment]),a={},o=t.segment+1;o<e.length;o++)a[o]={x:e[o].x,y:e[o].y,tileUnitDistanceFromAnchor:n},o<e.length-1&&(n+=e[o+1].dist(e[o]));for(var s=t.segment||0;s>=0;s--)a[s]={x:e[s].x,y:e[s].y,tileUnitDistanceFromAnchor:i},s>0&&(i+=e[s-1].dist(e[s]));for(var l=0;l<e.length;l++){var u=a[l];this.lineVertexArray.emplaceBack(u.x,u.y,u.tileUnitDistanceFromAnchor)}}return{lineStartIndex:r,lineLength:this.lineVertexArray.length-r}},Ku.prototype.addSymbols=function(t,e,r,n,i,a,o,s,l,u,c,f){for(var h=t.indexArray,p=t.layoutVertexArray,d=t.segments.prepareSegment(4*e.length,p,h,a.sortKey),v=this.glyphOffsetArray.length,g=d.vertexLength,y=this.allowVerticalPlacement&&o===Jl.vertical?Math.PI/2:0,m=a.text&&a.text.sections,x=0;x<e.length;x++){var b=e[x],_=b.tl,w=b.tr,T=b.bl,k=b.br,A=b.tex,M=b.pixelOffsetTL,S=b.pixelOffsetBR,E=b.minFontScaleX,L=b.minFontScaleY,C=b.glyphOffset,P=b.isSDF,O=b.sectionIndex,I=d.vertexLength,D=C[1];Zu(p,s.x,s.y,_.x,D+_.y,A.x,A.y,r,P,M.x,M.y,E,L),Zu(p,s.x,s.y,w.x,D+w.y,A.x+A.w,A.y,r,P,S.x,M.y,E,L),Zu(p,s.x,s.y,T.x,D+T.y,A.x,A.y+A.h,r,P,M.x,S.y,E,L),Zu(p,s.x,s.y,k.x,D+k.y,A.x+A.w,A.y+A.h,r,P,S.x,S.y,E,L),Yu(t.dynamicLayoutVertexArray,s,y),h.emplaceBack(I,I+1,I+2),h.emplaceBack(I+1,I+2,I+3),d.vertexLength+=4,d.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(C[0]),x!==e.length-1&&O===e[x+1].sectionIndex||t.programConfigurations.populatePaintArrays(p.length,a,a.index,{},f,m&&m[O])}t.placedSymbolArray.emplaceBack(s.x,s.y,v,this.glyphOffsetArray.length-v,g,l,u,s.segment,r?r[0]:0,r?r[1]:0,n[0],n[1],o,0,!1,0,c)},Ku.prototype._addCollisionDebugVertex=function(t,e,r,n,i,a){return e.emplaceBack(0,0),t.emplaceBack(r.x,r.y,n,i,Math.round(a.x),Math.round(a.y))},Ku.prototype.addCollisionDebugVertices=function(t,e,r,n,i,o,s){var l=i.segments.prepareSegment(4,i.layoutVertexArray,i.indexArray),u=l.vertexLength,c=i.layoutVertexArray,f=i.collisionVertexArray,h=s.anchorX,p=s.anchorY;this._addCollisionDebugVertex(c,f,o,h,p,new a(t,e)),this._addCollisionDebugVertex(c,f,o,h,p,new a(r,e)),this._addCollisionDebugVertex(c,f,o,h,p,new a(r,n)),this._addCollisionDebugVertex(c,f,o,h,p,new a(t,n)),l.vertexLength+=4;var d=i.indexArray;d.emplaceBack(u,u+1),d.emplaceBack(u+1,u+2),d.emplaceBack(u+2,u+3),d.emplaceBack(u+3,u),l.primitiveLength+=4},Ku.prototype.addDebugCollisionBoxes=function(t,e,r,n){for(var i=t;i<e;i++){var a=this.collisionBoxArray.get(i),o=a.x1,s=a.y1,l=a.x2,u=a.y2;this.addCollisionDebugVertices(o,s,l,u,n?this.textCollisionBox:this.iconCollisionBox,a.anchorPoint,r)}},Ku.prototype.generateCollisionDebugBuffers=function(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new Ju(ia,gl.members,pa),this.iconCollisionBox=new Ju(ia,gl.members,pa);for(var t=0;t<this.symbolInstances.length;t++){var e=this.symbolInstances.get(t);this.addDebugCollisionBoxes(e.textBoxStartIndex,e.textBoxEndIndex,e,!0),this.addDebugCollisionBoxes(e.verticalTextBoxStartIndex,e.verticalTextBoxEndIndex,e,!0),this.addDebugCollisionBoxes(e.iconBoxStartIndex,e.iconBoxEndIndex,e,!1),this.addDebugCollisionBoxes(e.verticalIconBoxStartIndex,e.verticalIconBoxEndIndex,e,!1)}},Ku.prototype._deserializeCollisionBoxesForSymbol=function(t,e,r,n,i,a,o,s,l){for(var u={},c=e;c<r;c++){var f=t.get(c);u.textBox={x1:f.x1,y1:f.y1,x2:f.x2,y2:f.y2,anchorPointX:f.anchorPointX,anchorPointY:f.anchorPointY},u.textFeatureIndex=f.featureIndex;break}for(var h=n;h<i;h++){var p=t.get(h);u.verticalTextBox={x1:p.x1,y1:p.y1,x2:p.x2,y2:p.y2,anchorPointX:p.anchorPointX,anchorPointY:p.anchorPointY},u.verticalTextFeatureIndex=p.featureIndex;break}for(var d=a;d<o;d++){var v=t.get(d);u.iconBox={x1:v.x1,y1:v.y1,x2:v.x2,y2:v.y2,anchorPointX:v.anchorPointX,anchorPointY:v.anchorPointY},u.iconFeatureIndex=v.featureIndex;break}for(var g=s;g<l;g++){var y=t.get(g);u.verticalIconBox={x1:y.x1,y1:y.y1,x2:y.x2,y2:y.y2,anchorPointX:y.anchorPointX,anchorPointY:y.anchorPointY},u.verticalIconFeatureIndex=y.featureIndex;break}return u},Ku.prototype.deserializeCollisionBoxes=function(t){this.collisionArrays=[];for(var e=0;e<this.symbolInstances.length;e++){var r=this.symbolInstances.get(e);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t,r.textBoxStartIndex,r.textBoxEndIndex,r.verticalTextBoxStartIndex,r.verticalTextBoxEndIndex,r.iconBoxStartIndex,r.iconBoxEndIndex,r.verticalIconBoxStartIndex,r.verticalIconBoxEndIndex))}},Ku.prototype.hasTextData=function(){return this.text.segments.get().length>0},Ku.prototype.hasIconData=function(){return this.icon.segments.get().length>0},Ku.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},Ku.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},Ku.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},Ku.prototype.addIndicesForPlacedSymbol=function(t,e){for(var r=t.placedSymbolArray.get(e),n=r.vertexStartIndex+4*r.numGlyphs,i=r.vertexStartIndex;i<n;i+=4)t.indexArray.emplaceBack(i,i+1,i+2),t.indexArray.emplaceBack(i+1,i+2,i+3)},Ku.prototype.getSortedSymbolIndexes=function(t){if(this.sortedAngle===t&&void 0!==this.symbolInstanceIndexes)return this.symbolInstanceIndexes;for(var e=Math.sin(t),r=Math.cos(t),n=[],i=[],a=[],o=0;o<this.symbolInstances.length;++o){a.push(o);var s=this.symbolInstances.get(o);n.push(0|Math.round(e*s.anchorX+r*s.anchorY)),i.push(s.featureIndex)}return a.sort((function(t,e){return n[t]-n[e]||i[e]-i[t]})),a},Ku.prototype.addToSortKeyRanges=function(t,e){var r=this.sortKeyRanges[this.sortKeyRanges.length-1];r&&r.sortKey===e?r.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:e,symbolInstanceStart:t,symbolInstanceEnd:t+1})},Ku.prototype.sortFeatures=function(t){var e=this;if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var r=0,n=this.symbolInstanceIndexes;r<n.length;r+=1){var i=n[r],a=this.symbolInstances.get(i);this.featureSortOrder.push(a.featureIndex),[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((function(t,r,n){t>=0&&n.indexOf(t)===r&&e.addIndicesForPlacedSymbol(e.text,t)})),a.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,a.verticalPlacedTextSymbolIndex),a.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,a.placedIconSymbolIndex),a.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,a.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},Qn("SymbolBucket",Ku,{omit:["layers","collisionBoxArray","features","compareText"]}),Ku.MAX_GLYPHS=65535,Ku.addDynamicAttributes=Yu;var $u=new Ui({"symbol-placement":new Ri(It.layout_symbol["symbol-placement"]),"symbol-spacing":new Ri(It.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new Ri(It.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Fi(It.layout_symbol["symbol-sort-key"]),"symbol-z-order":new Ri(It.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new Ri(It.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new Ri(It.layout_symbol["icon-ignore-placement"]),"icon-optional":new Ri(It.layout_symbol["icon-optional"]),"icon-rotation-alignment":new Ri(It.layout_symbol["icon-rotation-alignment"]),"icon-size":new Fi(It.layout_symbol["icon-size"]),"icon-text-fit":new Ri(It.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new Ri(It.layout_symbol["icon-text-fit-padding"]),"icon-image":new Fi(It.layout_symbol["icon-image"]),"icon-rotate":new Fi(It.layout_symbol["icon-rotate"]),"icon-padding":new Ri(It.layout_symbol["icon-padding"]),"icon-keep-upright":new Ri(It.layout_symbol["icon-keep-upright"]),"icon-offset":new Fi(It.layout_symbol["icon-offset"]),"icon-anchor":new Fi(It.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new Ri(It.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new Ri(It.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new Ri(It.layout_symbol["text-rotation-alignment"]),"text-field":new Fi(It.layout_symbol["text-field"]),"text-font":new Fi(It.layout_symbol["text-font"]),"text-size":new Fi(It.layout_symbol["text-size"]),"text-max-width":new Fi(It.layout_symbol["text-max-width"]),"text-line-height":new Ri(It.layout_symbol["text-line-height"]),"text-letter-spacing":new Fi(It.layout_symbol["text-letter-spacing"]),"text-justify":new Fi(It.layout_symbol["text-justify"]),"text-radial-offset":new Fi(It.layout_symbol["text-radial-offset"]),"text-variable-anchor":new Ri(It.layout_symbol["text-variable-anchor"]),"text-anchor":new Fi(It.layout_symbol["text-anchor"]),"text-max-angle":new Ri(It.layout_symbol["text-max-angle"]),"text-writing-mode":new Ri(It.layout_symbol["text-writing-mode"]),"text-rotate":new Fi(It.layout_symbol["text-rotate"]),"text-padding":new Ri(It.layout_symbol["text-padding"]),"text-keep-upright":new Ri(It.layout_symbol["text-keep-upright"]),"text-transform":new Fi(It.layout_symbol["text-transform"]),"text-offset":new Fi(It.layout_symbol["text-offset"]),"text-allow-overlap":new Ri(It.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new Ri(It.layout_symbol["text-ignore-placement"]),"text-optional":new Ri(It.layout_symbol["text-optional"])}),Qu={paint:new Ui({"icon-opacity":new Fi(It.paint_symbol["icon-opacity"]),"icon-color":new Fi(It.paint_symbol["icon-color"]),"icon-halo-color":new Fi(It.paint_symbol["icon-halo-color"]),"icon-halo-width":new Fi(It.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Fi(It.paint_symbol["icon-halo-blur"]),"icon-translate":new Ri(It.paint_symbol["icon-translate"]),"icon-translate-anchor":new Ri(It.paint_symbol["icon-translate-anchor"]),"text-opacity":new Fi(It.paint_symbol["text-opacity"]),"text-color":new Fi(It.paint_symbol["text-color"],{runtimeType:Gt,getOverride:function(t){return t.textColor},hasOverride:function(t){return!!t.textColor}}),"text-halo-color":new Fi(It.paint_symbol["text-halo-color"]),"text-halo-width":new Fi(It.paint_symbol["text-halo-width"]),"text-halo-blur":new Fi(It.paint_symbol["text-halo-blur"]),"text-translate":new Ri(It.paint_symbol["text-translate"]),"text-translate-anchor":new Ri(It.paint_symbol["text-translate-anchor"])}),layout:$u},tc=function(t){this.type=t.property.overrides?t.property.overrides.runtimeType:Ut,this.defaultValue=t};tc.prototype.evaluate=function(t){if(t.formattedSection){var e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default},tc.prototype.eachChild=function(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)},tc.prototype.outputDefined=function(){return!1},tc.prototype.serialize=function(){return null},Qn("FormatSectionOverride",tc,{omit:["defaultValue"]});var ec=function(t){function e(e){t.call(this,e,Qu)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.recalculate=function(e,r){if(t.prototype.recalculate.call(this,e,r),"auto"===this.layout.get("icon-rotation-alignment")&&("point"!==this.layout.get("symbol-placement")?this.layout._values["icon-rotation-alignment"]="map":this.layout._values["icon-rotation-alignment"]="viewport"),"auto"===this.layout.get("text-rotation-alignment")&&("point"!==this.layout.get("symbol-placement")?this.layout._values["text-rotation-alignment"]="map":this.layout._values["text-rotation-alignment"]="viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),"point"===this.layout.get("symbol-placement")){var n=this.layout.get("text-writing-mode");if(n){for(var i=[],a=0,o=n;a<o.length;a+=1){var s=o[a];i.indexOf(s)<0&&i.push(s)}this.layout._values["text-writing-mode"]=i}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()},e.prototype.getValueAndResolveTokens=function(t,e,r,n){var i=this.layout.get(t).evaluate(e,{},r,n),a=this._unevaluatedLayout._values[t];return a.isDataDriven()||nn(a.value)||!i?i:function(t,e){return e.replace(/{([^{}]+)}/g,(function(e,r){return r in t?String(t[r]):""}))}(e.properties,i)},e.prototype.createBucket=function(t){return new Ku(t)},e.prototype.queryRadius=function(){return 0},e.prototype.queryIntersectsFeature=function(){return!1},e.prototype._setPaintOverrides=function(){for(var t=0,r=Qu.paint.overridableProperties;t<r.length;t+=1){var n=r[t];if(e.hasPaintOverride(this.layout,n)){var i,a=this.paint.get(n),o=new tc(a),s=new rn(o,a.property.specification);i="constant"===a.value.kind||"source"===a.value.kind?new on("source",s):new sn("composite",s,a.value.zoomStops,a.value._interpolationType),this.paint._values[n]=new Di(a.property,i,a.parameters)}}},e.prototype._handleOverridablePaintPropertyUpdate=function(t,r,n){return!(!this.layout||r.isDataDriven()||n.isDataDriven())&&e.hasPaintOverride(this.layout,t)},e.hasPaintOverride=function(t,e){var r=t.get("text-field"),n=Qu.paint.properties[e],i=!1,a=function(t){for(var e=0,r=t;e<r.length;e+=1){var a=r[e];if(n.overrides&&n.overrides.hasOverride(a))return void(i=!0)}};if("constant"===r.value.kind&&r.value.value instanceof le)a(r.value.value.sections);else if("source"===r.value.kind){var o=function(t){if(!i)if(t instanceof de&&he(t.value)===Xt){var e=t.value;a(e.sections)}else t instanceof me?a(t.sections):t.eachChild(o)},s=r.value;s._styleExpression&&o(s._styleExpression.expression)}return i},e}(Hi),rc={paint:new Ui({"background-color":new Ri(It.paint_background["background-color"]),"background-pattern":new Ni(It.paint_background["background-pattern"]),"background-opacity":new Ri(It.paint_background["background-opacity"])})},nc=function(t){function e(e){t.call(this,e,rc)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Hi),ic={paint:new Ui({"raster-opacity":new Ri(It.paint_raster["raster-opacity"]),"raster-hue-rotate":new Ri(It.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new Ri(It.paint_raster["raster-brightness-min"]),"raster-brightness-max":new Ri(It.paint_raster["raster-brightness-max"]),"raster-saturation":new Ri(It.paint_raster["raster-saturation"]),"raster-contrast":new Ri(It.paint_raster["raster-contrast"]),"raster-resampling":new Ri(It.paint_raster["raster-resampling"]),"raster-fade-duration":new Ri(It.paint_raster["raster-fade-duration"])})},ac=function(t){function e(e){t.call(this,e,ic)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Hi);var oc=function(t){function e(e){t.call(this,e,{}),this.implementation=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.is3D=function(){return"3d"===this.implementation.renderingMode},e.prototype.hasOffscreenPass=function(){return void 0!==this.implementation.prerender},e.prototype.recalculate=function(){},e.prototype.updateTransitions=function(){},e.prototype.hasTransition=function(){},e.prototype.serialize=function(){},e.prototype.onAdd=function(t){this.implementation.onAdd&&this.implementation.onAdd(t,t.painter.context.gl)},e.prototype.onRemove=function(t){this.implementation.onRemove&&this.implementation.onRemove(t,t.painter.context.gl)},e}(Hi),sc={circle:Fo,heatmap:Yo,hillshade:Xo,fill:Rs,"fill-extrusion":Qs,line:fl,symbol:ec,background:nc,raster:ac};var lc=self.HTMLImageElement,uc=self.HTMLCanvasElement,cc=self.HTMLVideoElement,fc=self.ImageData,hc=self.ImageBitmap,pc=function(t,e,r,n){this.context=t,this.format=r,this.texture=t.gl.createTexture(),this.update(e,n)};pc.prototype.update=function(t,e,r){var n=t.width,i=t.height,a=!(this.size&&this.size[0]===n&&this.size[1]===i||r),o=this.context,s=o.gl;if(this.useMipmap=Boolean(e&&e.useMipmap),s.bindTexture(s.TEXTURE_2D,this.texture),o.pixelStoreUnpackFlipY.set(!1),o.pixelStoreUnpack.set(1),o.pixelStoreUnpackPremultiplyAlpha.set(this.format===s.RGBA&&(!e||!1!==e.premultiply)),a)this.size=[n,i],t instanceof lc||t instanceof uc||t instanceof cc||t instanceof fc||hc&&t instanceof hc?s.texImage2D(s.TEXTURE_2D,0,this.format,this.format,s.UNSIGNED_BYTE,t):s.texImage2D(s.TEXTURE_2D,0,this.format,n,i,0,this.format,s.UNSIGNED_BYTE,t.data);else{var l=r||{x:0,y:0},u=l.x,c=l.y;t instanceof lc||t instanceof uc||t instanceof cc||t instanceof fc||hc&&t instanceof hc?s.texSubImage2D(s.TEXTURE_2D,0,u,c,s.RGBA,s.UNSIGNED_BYTE,t):s.texSubImage2D(s.TEXTURE_2D,0,u,c,n,i,s.RGBA,s.UNSIGNED_BYTE,t.data)}this.useMipmap&&this.isSizePowerOfTwo()&&s.generateMipmap(s.TEXTURE_2D)},pc.prototype.bind=function(t,e,r){var n=this.context.gl;n.bindTexture(n.TEXTURE_2D,this.texture),r!==n.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(r=n.LINEAR),t!==this.filter&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,t),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,r||t),this.filter=t),e!==this.wrap&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,e),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,e),this.wrap=e)},pc.prototype.isSizePowerOfTwo=function(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0},pc.prototype.destroy=function(){this.context.gl.deleteTexture(this.texture),this.texture=null};var dc=function(t){var e=this;this._callback=t,this._triggered=!1,"undefined"!=typeof MessageChannel&&(this._channel=new MessageChannel,this._channel.port2.onmessage=function(){e._triggered=!1,e._callback()})};dc.prototype.trigger=function(){var t=this;this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout((function(){t._triggered=!1,t._callback()}),0))},dc.prototype.remove=function(){delete this._channel,this._callback=function(){}};var vc=function(t,e,r){this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},g(["receive","process"],this),this.invoker=new dc(this.process),this.target.addEventListener("message",this.receive,!1),this.globalScope=A()?t:self};function gc(t,e,r){var n=2*Math.PI*6378137/256/Math.pow(2,r);return[t*n-2*Math.PI*6378137/2,e*n-2*Math.PI*6378137/2]}vc.prototype.send=function(t,e,r,n,i){var a=this;void 0===i&&(i=!1);var o=Math.round(1e18*Math.random()).toString(36).substring(0,10);r&&(this.callbacks[o]=r);var s=E(this.globalScope)?void 0:[];return this.target.postMessage({id:o,type:t,hasCallback:!!r,targetMapId:n,mustQueue:i,sourceMapId:this.mapId,data:ni(e,s)},s),{cancel:function(){r&&delete a.callbacks[o],a.target.postMessage({id:o,type:"<cancel>",targetMapId:n,sourceMapId:a.mapId})}}},vc.prototype.receive=function(t){var e=t.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if("<cancel>"===e.type){delete this.tasks[r];var n=this.cancelCallbacks[r];delete this.cancelCallbacks[r],n&&n()}else A()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e)},vc.prototype.process=function(){if(this.taskQueue.length){var t=this.taskQueue.shift(),e=this.tasks[t];delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),e&&this.processTask(t,e)}},vc.prototype.processTask=function(t,e){var r=this;if("<response>"===e.type){var n=this.callbacks[t];delete this.callbacks[t],n&&(e.error?n(ii(e.error)):n(null,ii(e.data)))}else{var i=!1,a=E(this.globalScope)?void 0:[],o=e.hasCallback?function(e,n){i=!0,delete r.cancelCallbacks[t],r.target.postMessage({id:t,type:"<response>",sourceMapId:r.mapId,error:e?ni(e):null,data:ni(n,a)},a)}:function(t){i=!0},s=null,l=ii(e.data);if(this.parent[e.type])s=this.parent[e.type](e.sourceMapId,l,o);else if(this.parent.getWorkerSource){var u=e.type.split(".");s=this.parent.getWorkerSource(e.sourceMapId,u[0],l.source)[u[1]](l,o)}else o(new Error("Could not find function "+e.type));!i&&s&&s.cancel&&(this.cancelCallbacks[t]=s.cancel)}},vc.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)};var yc=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};yc.prototype.setNorthEast=function(t){return this._ne=t instanceof xc?new xc(t.lng,t.lat):xc.convert(t),this},yc.prototype.setSouthWest=function(t){return this._sw=t instanceof xc?new xc(t.lng,t.lat):xc.convert(t),this},yc.prototype.extend=function(t){var e,r,n=this._sw,i=this._ne;if(t instanceof xc)e=t,r=t;else{if(!(t instanceof yc)){if(Array.isArray(t)){if(4===t.length||t.every(Array.isArray)){var a=t;return this.extend(yc.convert(a))}var o=t;return this.extend(xc.convert(o))}return this}if(e=t._sw,r=t._ne,!e||!r)return this}return n||i?(n.lng=Math.min(e.lng,n.lng),n.lat=Math.min(e.lat,n.lat),i.lng=Math.max(r.lng,i.lng),i.lat=Math.max(r.lat,i.lat)):(this._sw=new xc(e.lng,e.lat),this._ne=new xc(r.lng,r.lat)),this},yc.prototype.getCenter=function(){return new xc((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},yc.prototype.getSouthWest=function(){return this._sw},yc.prototype.getNorthEast=function(){return this._ne},yc.prototype.getNorthWest=function(){return new xc(this.getWest(),this.getNorth())},yc.prototype.getSouthEast=function(){return new xc(this.getEast(),this.getSouth())},yc.prototype.getWest=function(){return this._sw.lng},yc.prototype.getSouth=function(){return this._sw.lat},yc.prototype.getEast=function(){return this._ne.lng},yc.prototype.getNorth=function(){return this._ne.lat},yc.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},yc.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},yc.prototype.isEmpty=function(){return!(this._sw&&this._ne)},yc.prototype.contains=function(t){var e=xc.convert(t),r=e.lng,n=e.lat,i=this._sw.lat<=n&&n<=this._ne.lat,a=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(a=this._sw.lng>=r&&r>=this._ne.lng),i&&a},yc.convert=function(t){return!t||t instanceof yc?t:new yc(t)};var mc=6371008.8,xc=function(t,e){if(isNaN(t)||isNaN(e))throw new Error("Invalid LngLat object: ("+t+", "+e+")");if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};xc.prototype.wrap=function(){return new xc(c(this.lng,-180,180),this.lat)},xc.prototype.toArray=function(){return[this.lng,this.lat]},xc.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},xc.prototype.distanceTo=function(t){var e=Math.PI/180,r=this.lat*e,n=t.lat*e,i=Math.sin(r)*Math.sin(n)+Math.cos(r)*Math.cos(n)*Math.cos((t.lng-this.lng)*e);return mc*Math.acos(Math.min(i,1))},xc.prototype.toBounds=function(t){void 0===t&&(t=0);var e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new yc(new xc(this.lng-r,this.lat-e),new xc(this.lng+r,this.lat+e))},xc.convert=function(t){if(t instanceof xc)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new xc(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new xc(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]")};var bc=2*Math.PI*mc;function _c(t){return bc*Math.cos(t*Math.PI/180)}function wc(t){return(180+t)/360}function Tc(t){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function kc(t,e){return t/_c(e)}function Ac(t){var e=180-360*t;return 360/Math.PI*Math.atan(Math.exp(e*Math.PI/180))-90}var Mc=function(t,e,r){void 0===r&&(r=0),this.x=+t,this.y=+e,this.z=+r};Mc.fromLngLat=function(t,e){void 0===e&&(e=0);var r=xc.convert(t);return new Mc(wc(r.lng),Tc(r.lat),kc(e,r.lat))},Mc.prototype.toLngLat=function(){return new xc(360*this.x-180,Ac(this.y))},Mc.prototype.toAltitude=function(){return t=this.z,e=this.y,t*_c(Ac(e));var t,e},Mc.prototype.meterInMercatorCoordinateUnits=function(){return 1/bc*(t=Ac(this.y),1/Math.cos(t*Math.PI/180));var t};var Sc=function(t,e,r){this.z=t,this.x=e,this.y=r,this.key=Cc(0,t,t,e,r)};Sc.prototype.equals=function(t){return this.z===t.z&&this.x===t.x&&this.y===t.y},Sc.prototype.url=function(t,e){var r,n,i,a,o,s=(r=this.x,n=this.y,i=this.z,a=gc(256*r,256*(n=Math.pow(2,i)-n-1),i),o=gc(256*(r+1),256*(n+1),i),a[0]+","+a[1]+","+o[0]+","+o[1]),l=function(t,e,r){for(var n,i="",a=t;a>0;a--)i+=(e&(n=1<<a-1)?1:0)+(r&n?2:0);return i}(this.z,this.x,this.y);return t[(this.x+this.y)%t.length].replace("{prefix}",(this.x%16).toString(16)+(this.y%16).toString(16)).replace("{z}",String(this.z)).replace("{x}",String(this.x)).replace("{y}",String("tms"===e?Math.pow(2,this.z)-this.y-1:this.y)).replace("{quadkey}",l).replace("{bbox-epsg-3857}",s)},Sc.prototype.getTilePoint=function(t){var e=Math.pow(2,this.z);return new a((t.x*e-this.x)*oo,(t.y*e-this.y)*oo)},Sc.prototype.toString=function(){return this.z+"/"+this.x+"/"+this.y};var Ec=function(t,e){this.wrap=t,this.canonical=e,this.key=Cc(t,e.z,e.z,e.x,e.y)},Lc=function(t,e,r,n,i){this.overscaledZ=t,this.wrap=e,this.canonical=new Sc(r,+n,+i),this.key=Cc(e,t,r,n,i)};function Cc(t,e,r,n,i){(t*=2)<0&&(t=-1*t-1);var a=1<<r;return(a*a*t+a*i+n).toString(36)+r.toString(36)+e.toString(36)}Lc.prototype.equals=function(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)},Lc.prototype.scaledTo=function(t){var e=this.canonical.z-t;return t>this.canonical.z?new Lc(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Lc(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},Lc.prototype.calculateScaledKey=function(t,e){var r=this.canonical.z-t;return t>this.canonical.z?Cc(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):Cc(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)},Lc.prototype.isChildOf=function(t){if(t.wrap!==this.wrap)return!1;var e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ<this.overscaledZ&&t.canonical.x===this.canonical.x>>e&&t.canonical.y===this.canonical.y>>e},Lc.prototype.children=function(t){if(this.overscaledZ>=t)return[new Lc(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return[new Lc(e,this.wrap,e,r,n),new Lc(e,this.wrap,e,r+1,n),new Lc(e,this.wrap,e,r,n+1),new Lc(e,this.wrap,e,r+1,n+1)]},Lc.prototype.isLessThan=function(t){return this.wrap<t.wrap||!(this.wrap>t.wrap)&&(this.overscaledZ<t.overscaledZ||!(this.overscaledZ>t.overscaledZ)&&(this.canonical.x<t.canonical.x||!(this.canonical.x>t.canonical.x)&&this.canonical.y<t.canonical.y))},Lc.prototype.wrapped=function(){return new Lc(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)},Lc.prototype.unwrapTo=function(t){return new Lc(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)},Lc.prototype.overscaleFactor=function(){return Math.pow(2,this.overscaledZ-this.canonical.z)},Lc.prototype.toUnwrapped=function(){return new Ec(this.wrap,this.canonical)},Lc.prototype.toString=function(){return this.overscaledZ+"/"+this.canonical.x+"/"+this.canonical.y},Lc.prototype.getTilePoint=function(t){return this.canonical.getTilePoint(new Mc(t.x-this.wrap,t.y))},Qn("CanonicalTileID",Sc),Qn("OverscaledTileID",Lc,{omit:["posMatrix"]});var Pc=function(t,e,r){if(this.uid=t,e.height!==e.width)throw new RangeError("DEM tiles must be square");if(r&&"mapbox"!==r&&"terrarium"!==r)return w('"'+r+'" is not a valid encoding type. Valid types include "mapbox" and "terrarium".');this.stride=e.height;var n=this.dim=e.height-2;this.data=new Uint32Array(e.data.buffer),this.encoding=r||"mapbox";for(var i=0;i<n;i++)this.data[this._idx(-1,i)]=this.data[this._idx(0,i)],this.data[this._idx(n,i)]=this.data[this._idx(n-1,i)],this.data[this._idx(i,-1)]=this.data[this._idx(i,0)],this.data[this._idx(i,n)]=this.data[this._idx(i,n-1)];this.data[this._idx(-1,-1)]=this.data[this._idx(0,0)],this.data[this._idx(n,-1)]=this.data[this._idx(n-1,0)],this.data[this._idx(-1,n)]=this.data[this._idx(0,n-1)],this.data[this._idx(n,n)]=this.data[this._idx(n-1,n-1)]};Pc.prototype.get=function(t,e){var r=new Uint8Array(this.data.buffer),n=4*this._idx(t,e);return("terrarium"===this.encoding?this._unpackTerrarium:this._unpackMapbox)(r[n],r[n+1],r[n+2])},Pc.prototype.getUnpackVector=function(){return"terrarium"===this.encoding?[256,1,1/256,32768]:[6553.6,25.6,.1,1e4]},Pc.prototype._idx=function(t,e){if(t<-1||t>=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(e+1)*this.stride+(t+1)},Pc.prototype._unpackMapbox=function(t,e,r){return(256*t*256+256*e+r)/10-1e4},Pc.prototype._unpackTerrarium=function(t,e,r){return 256*t+e+r/256-32768},Pc.prototype.getPixels=function(){return new qo({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},Pc.prototype.backfillBorder=function(t,e,r){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");var n=e*this.dim,i=e*this.dim+this.dim,a=r*this.dim,o=r*this.dim+this.dim;switch(e){case-1:n=i-1;break;case 1:i=n+1}switch(r){case-1:a=o-1;break;case 1:o=a+1}for(var s=-e*this.dim,l=-r*this.dim,u=a;u<o;u++)for(var c=n;c<i;c++)this.data[this._idx(c,u)]=t.data[this._idx(c+s,u+l)]},Qn("DEMData",Pc);var Oc=function(t){this._stringToNumber={},this._numberToString=[];for(var e=0;e<t.length;e++){var r=t[e];this._stringToNumber[r]=e,this._numberToString[e]=r}};Oc.prototype.encode=function(t){return this._stringToNumber[t]},Oc.prototype.decode=function(t){return this._numberToString[t]};var Ic=function(t,e,r,n,i){this.type="Feature",this._vectorTileFeature=t,t._z=e,t._x=r,t._y=n,this.properties=t.properties,this.id=i},Dc={geometry:{configurable:!0}};Dc.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},Dc.geometry.set=function(t){this._geometry=t},Ic.prototype.toJSON=function(){var t={geometry:this.geometry};for(var e in this)"_geometry"!==e&&"_vectorTileFeature"!==e&&(t[e]=this[e]);return t},Object.defineProperties(Ic.prototype,Dc);var zc=function(){this.state={},this.stateChanges={},this.deletedStates={}};zc.prototype.updateState=function(t,e,r){var n=String(e);if(this.stateChanges[t]=this.stateChanges[t]||{},this.stateChanges[t][n]=this.stateChanges[t][n]||{},f(this.stateChanges[t][n],r),null===this.deletedStates[t])for(var i in this.deletedStates[t]={},this.state[t])i!==n&&(this.deletedStates[t][i]=null);else if(this.deletedStates[t]&&null===this.deletedStates[t][n])for(var a in this.deletedStates[t][n]={},this.state[t][n])r[a]||(this.deletedStates[t][n][a]=null);else for(var o in r)this.deletedStates[t]&&this.deletedStates[t][n]&&null===this.deletedStates[t][n][o]&&delete this.deletedStates[t][n][o]},zc.prototype.removeFeatureState=function(t,e,r){if(null!==this.deletedStates[t]){var n=String(e);if(this.deletedStates[t]=this.deletedStates[t]||{},r&&void 0!==e)null!==this.deletedStates[t][n]&&(this.deletedStates[t][n]=this.deletedStates[t][n]||{},this.deletedStates[t][n][r]=null);else if(void 0!==e)if(this.stateChanges[t]&&this.stateChanges[t][n])for(r in this.deletedStates[t][n]={},this.stateChanges[t][n])this.deletedStates[t][n][r]=null;else this.deletedStates[t][n]=null;else this.deletedStates[t]=null}},zc.prototype.getState=function(t,e){var r=String(e),n=this.state[t]||{},i=this.stateChanges[t]||{},a=f({},n[r],i[r]);if(null===this.deletedStates[t])return{};if(this.deletedStates[t]){var o=this.deletedStates[t][e];if(null===o)return{};for(var s in o)delete a[s]}return a},zc.prototype.initializeTileState=function(t,e){t.setFeatureState(this.state,e)},zc.prototype.coalesceChanges=function(t,e){var r={};for(var n in this.stateChanges){this.state[n]=this.state[n]||{};var i={};for(var a in this.stateChanges[n])this.state[n][a]||(this.state[n][a]={}),f(this.state[n][a],this.stateChanges[n][a]),i[a]=this.state[n][a];r[n]=i}for(var o in this.deletedStates){this.state[o]=this.state[o]||{};var s={};if(null===this.deletedStates[o])for(var l in this.state[o])s[l]={},this.state[o][l]={};else for(var u in this.deletedStates[o]){if(null===this.deletedStates[o][u])this.state[o][u]={};else for(var c=0,h=Object.keys(this.deletedStates[o][u]);c<h.length;c+=1){var p=h[c];delete this.state[o][u][p]}s[u]=this.state[o][u]}r[o]=r[o]||{},f(r[o],s)}if(this.stateChanges={},this.deletedStates={},0!==Object.keys(r).length)for(var d in t)t[d].setFeatureState(r,e)};var Rc=function(t,e){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=new Wn(oo,16,0),this.grid3D=new Wn(oo,16,0),this.featureIndexArray=new Ma,this.promoteId=e};function Fc(t,e,r,n,i){return m(t,(function(t,a){var o=e instanceof zi?e.get(a):null;return o&&o.evaluate?o.evaluate(r,n,i):o}))}function Bc(t){for(var e=1/0,r=1/0,n=-1/0,i=-1/0,a=0,o=t;a<o.length;a+=1){var s=o[a];e=Math.min(e,s.x),r=Math.min(r,s.y),n=Math.max(n,s.x),i=Math.max(i,s.y)}return{minX:e,minY:r,maxX:n,maxY:i}}function Nc(t,e){return e-t}Rc.prototype.insert=function(t,e,r,n,i,a){var o=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(r,n,i);for(var s=a?this.grid3D:this.grid,l=0;l<e.length;l++){for(var u=e[l],c=[1/0,1/0,-1/0,-1/0],f=0;f<u.length;f++){var h=u[f];c[0]=Math.min(c[0],h.x),c[1]=Math.min(c[1],h.y),c[2]=Math.max(c[2],h.x),c[3]=Math.max(c[3],h.y)}c[0]<oo&&c[1]<oo&&c[2]>=0&&c[3]>=0&&s.insert(o,c[0],c[1],c[2],c[3])}},Rc.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new Zs.VectorTile(new Tl(this.rawTileData)).layers,this.sourceLayerCoder=new Oc(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},Rc.prototype.query=function(t,e,r,n){var i=this;this.loadVTLayers();for(var o=t.params||{},s=oo/t.tileSize/t.scale,l=xn(o.filter),u=t.queryGeometry,c=t.queryPadding*s,f=Bc(u),h=this.grid.query(f.minX-c,f.minY-c,f.maxX+c,f.maxY+c),p=Bc(t.cameraQueryGeometry),d=0,v=this.grid3D.query(p.minX-c,p.minY-c,p.maxX+c,p.maxY+c,(function(e,r,n,i){return function(t,e,r,n,i){for(var o=0,s=t;o<s.length;o+=1){var l=s[o];if(e<=l.x&&r<=l.y&&n>=l.x&&i>=l.y)return!0}var u=[new a(e,r),new a(e,i),new a(n,i),new a(n,r)];if(t.length>2)for(var c=0,f=u;c<f.length;c+=1)if(wo(t,f[c]))return!0;for(var h=0;h<t.length-1;h++)if(To(t[h],t[h+1],u))return!0;return!1}(t.cameraQueryGeometry,e-c,r-c,n+c,i+c)}));d<v.length;d+=1){var g=v[d];h.push(g)}h.sort(Nc);for(var y,m={},x=function(a){var c=h[a];if(c!==y){y=c;var f=i.featureIndexArray.get(c),p=null;i.loadMatchingFeature(m,f.bucketIndex,f.sourceLayerIndex,f.featureIndex,l,o.layers,o.availableImages,e,r,n,(function(e,r,n){return p||(p=uo(e)),r.queryIntersectsFeature(u,e,n,p,i.z,t.transform,s,t.pixelPosMatrix)}))}},b=0;b<h.length;b++)x(b);return m},Rc.prototype.loadMatchingFeature=function(t,e,r,n,i,a,o,s,l,u,c){var f=this.bucketLayerIDs[e];if(!a||function(t,e){for(var r=0;r<t.length;r++)if(e.indexOf(t[r])>=0)return!0;return!1}(a,f)){var h=this.sourceLayerCoder.decode(r),p=this.vtLayers[h].feature(n);if(i.filter(new Si(this.tileID.overscaledZ),p))for(var d=this.getId(p,h),v=0;v<f.length;v++){var g=f[v];if(!(a&&a.indexOf(g)<0)){var y=s[g];if(y){var m={};void 0!==d&&u&&(m=u.getState(y.sourceLayer||"_geojsonTileLayer",d));var x=l[g];x.paint=Fc(x.paint,y.paint,p,m,o),x.layout=Fc(x.layout,y.layout,p,m,o);var b=!c||c(p,y,m);if(b){var _=new Ic(p,this.z,this.x,this.y,d);_.layer=x;var w=t[g];void 0===w&&(w=t[g]=[]),w.push({featureIndex:n,feature:_,intersectionZ:b})}}}}}},Rc.prototype.lookupSymbolFeatures=function(t,e,r,n,i,a,o,s){var l={};this.loadVTLayers();for(var u=xn(i),c=0,f=t;c<f.length;c+=1){var h=f[c];this.loadMatchingFeature(l,r,n,h,u,a,o,s,e)}return l},Rc.prototype.hasLayer=function(t){for(var e=0,r=this.bucketLayerIDs;e<r.length;e+=1)for(var n=0,i=r[e];n<i.length;n+=1)if(t===i[n])return!0;return!1},Rc.prototype.getId=function(t,e){var r=t.id;if(this.promoteId){var n="string"==typeof this.promoteId?this.promoteId:this.promoteId[e];"boolean"==typeof(r=t.properties[n])&&(r=Number(r))}return r},Qn("FeatureIndex",Rc,{omit:["rawTileData","sourceLayerCoder"]});var jc=function(t,e){this.tileID=t,this.uid=p(),this.uses=0,this.tileSize=e,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.expiredRequestCount=0,this.state="loading"};jc.prototype.registerFadeDuration=function(t){var e=t+this.timeAdded;e<F.now()||this.fadeEndTime&&e<this.fadeEndTime||(this.fadeEndTime=e)},jc.prototype.wasRequested=function(){return"errored"===this.state||"loaded"===this.state||"reloading"===this.state},jc.prototype.loadVectorData=function(t,e,r){if(this.hasData()&&this.unloadVectorData(),this.state="loaded",t){for(var n in t.featureIndex&&(this.latestFeatureIndex=t.featureIndex,t.rawTileData?(this.latestRawTileData=t.rawTileData,this.latestFeatureIndex.rawTileData=t.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=t.collisionBoxArray,this.buckets=function(t,e){var r={};if(!e)return r;for(var n=function(){var t=a[i],n=t.layerIds.map((function(t){return e.getLayer(t)})).filter(Boolean);if(0!==n.length){t.layers=n,t.stateDependentLayerIds&&(t.stateDependentLayers=t.stateDependentLayerIds.map((function(t){return n.filter((function(e){return e.id===t}))[0]})));for(var o=0,s=n;o<s.length;o+=1){var l=s[o];r[l.id]=t}}},i=0,a=t;i<a.length;i+=1)n();return r}(t.buckets,e.style),this.hasSymbolBuckets=!1,this.buckets){var i=this.buckets[n];if(i instanceof Ku){if(this.hasSymbolBuckets=!0,!r)break;i.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(var a in this.buckets){var o=this.buckets[a];if(o instanceof Ku&&o.hasRTLText){this.hasRTLText=!0,Mi.isLoading()||Mi.isLoaded()||"deferred"!==ki()||Ai();break}}for(var s in this.queryPadding=0,this.buckets){var l=this.buckets[s];this.queryPadding=Math.max(this.queryPadding,e.style.getLayer(s).queryRadius(l))}t.imageAtlas&&(this.imageAtlas=t.imageAtlas),t.glyphAtlasImage&&(this.glyphAtlasImage=t.glyphAtlasImage)}else this.collisionBoxArray=new ma},jc.prototype.unloadVectorData=function(){for(var t in this.buckets)this.buckets[t].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state="unloaded"},jc.prototype.getBucket=function(t){return this.buckets[t.id]},jc.prototype.upload=function(t){for(var e in this.buckets){var r=this.buckets[e];r.uploadPending()&&r.upload(t)}var n=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new pc(t,this.imageAtlas.image,n.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new pc(t,this.glyphAtlasImage,n.ALPHA),this.glyphAtlasImage=null)},jc.prototype.prepare=function(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture)},jc.prototype.queryRenderedFeatures=function(t,e,r,n,i,a,o,s,l,u){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:n,cameraQueryGeometry:i,scale:a,tileSize:this.tileSize,pixelPosMatrix:u,transform:s,params:o,queryPadding:this.queryPadding*l},t,e,r):{}},jc.prototype.querySourceFeatures=function(t,e){var r=this.latestFeatureIndex;if(r&&r.rawTileData){var n=r.loadVTLayers(),i=e?e.sourceLayer:"",a=n._geojsonTileLayer||n[i];if(a)for(var o=xn(e&&e.filter),s=this.tileID.canonical,l=s.z,u=s.x,c=s.y,f={z:l,x:u,y:c},h=0;h<a.length;h++){var p=a.feature(h);if(o.filter(new Si(this.tileID.overscaledZ),p)){var d=r.getId(p,i),v=new Ic(p,l,u,c,d);v.tile=f,t.push(v)}}}},jc.prototype.hasData=function(){return"loaded"===this.state||"reloading"===this.state||"expired"===this.state},jc.prototype.patternsLoaded=function(){return this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length},jc.prototype.setExpiryData=function(t){var e=this.expirationTime;if(t.cacheControl){var r=M(t.cacheControl);r["max-age"]&&(this.expirationTime=Date.now()+1e3*r["max-age"])}else t.expires&&(this.expirationTime=new Date(t.expires).getTime());if(this.expirationTime){var n=Date.now(),i=!1;if(this.expirationTime>n)i=!1;else if(e)if(this.expirationTime<e)i=!0;else{var a=this.expirationTime-e;a?this.expirationTime=n+Math.max(a,3e4):i=!0}else i=!0;i?(this.expiredRequestCount++,this.state="expired"):this.expiredRequestCount=0}},jc.prototype.getExpiryTimeout=function(){if(this.expirationTime)return this.expiredRequestCount?1e3*(1<<Math.min(this.expiredRequestCount-1,31)):Math.min(this.expirationTime-(new Date).getTime(),Math.pow(2,31)-1)},jc.prototype.setFeatureState=function(t,e){if(this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData&&0!==Object.keys(t).length){var r=this.latestFeatureIndex.loadVTLayers();for(var n in this.buckets)if(e.style.hasLayer(n)){var i=this.buckets[n],a=i.layers[0].sourceLayer||"_geojsonTileLayer",o=r[a],s=t[a];if(o&&s&&0!==Object.keys(s).length){i.update(s,o,this.imageAtlas&&this.imageAtlas.patternPositions||{});var l=e&&e.style&&e.style.getLayer(n);l&&(this.queryPadding=Math.max(this.queryPadding,l.queryRadius(i)))}}}},jc.prototype.holdingForFade=function(){return void 0!==this.symbolFadeHoldUntil},jc.prototype.symbolFadeFinished=function(){return!this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<F.now()},jc.prototype.clearFadeHold=function(){this.symbolFadeHoldUntil=void 0},jc.prototype.setHoldDuration=function(t){this.symbolFadeHoldUntil=F.now()+t},jc.prototype.setDependencies=function(t,e){for(var r={},n=0,i=e;n<i.length;n+=1)r[i[n]]=!0;this.dependencies[t]=r},jc.prototype.hasDependency=function(t,e){for(var r=0,n=t;r<n.length;r+=1){var i=n[r],a=this.dependencies[i];if(a)for(var o=0,s=e;o<s.length;o+=1)if(a[s[o]])return!0}return!1};var Uc=self.performance,Vc=function(t){this._marks={start:[t.url,"start"].join("#"),end:[t.url,"end"].join("#"),measure:t.url.toString()},Uc.mark(this._marks.start)};Vc.prototype.finish=function(){Uc.mark(this._marks.end);var t=Uc.getEntriesByName(this._marks.measure);return 0===t.length&&(Uc.measure(this._marks.measure,this._marks.start,this._marks.end),t=Uc.getEntriesByName(this._marks.measure),Uc.clearMarks(this._marks.start),Uc.clearMarks(this._marks.end),Uc.clearMeasures(this._marks.measure)),t},t.Actor=vc,t.AlphaImage=Ho,t.CanonicalTileID=Sc,t.CollisionBoxArray=ma,t.Color=ae,t.DEMData=Pc,t.DataConstantProperty=Ri,t.DictionaryCoder=Oc,t.EXTENT=oo,t.ErrorEvent=Pt,t.EvaluationParameters=Si,t.Event=Ct,t.Evented=Ot,t.FeatureIndex=Rc,t.FillBucket=Is,t.FillExtrusionBucket=Js,t.ImageAtlas=Xl,t.ImagePosition=Yl,t.LineBucket=ol,t.LngLat=xc,t.LngLatBounds=yc,t.MercatorCoordinate=Mc,t.ONE_EM=bl,t.OverscaledTileID=Lc,t.Point=a,t.Point$1=a,t.Properties=Ui,t.Protobuf=Tl,t.RGBAImage=qo,t.RequestManager=q,t.RequestPerformance=Vc,t.ResourceType=mt,t.SegmentVector=Ea,t.SourceFeatureState=zc,t.StructArrayLayout1ui2=da,t.StructArrayLayout2f1f2i16=aa,t.StructArrayLayout2i4=Xi,t.StructArrayLayout3ui6=sa,t.StructArrayLayout4i8=Ji,t.SymbolBucket=Ku,t.Texture=pc,t.Tile=jc,t.Transitionable=Ci,t.Uniform1f=Ha,t.Uniform1i=Va,t.Uniform2f=qa,t.Uniform3f=Ga,t.Uniform4f=Za,t.UniformColor=Ya,t.UniformMatrix4f=Xa,t.UnwrappedTileID=Ec,t.ValidationError=Dt,t.WritingMode=Jl,t.ZoomHistory=ai,t.add=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t},t.addDynamicAttributes=Yu,t.asyncAll=function(t,e,r){if(!t.length)return r(null,[]);var n=t.length,i=new Array(t.length),a=null;t.forEach((function(t,o){e(t,(function(t,e){t&&(a=t),i[o]=e,0==--n&&r(a,i)}))}))},t.bezier=s,t.bindAll=g,t.browser=F,t.cacheEntryPossiblyAdded=function(t){++gt>ct&&(t.getActor().send("enforceCacheSizeLimit",ut),gt=0)},t.clamp=u,t.clearTileCache=function(t){var e=self.caches.delete(lt);t&&e.catch(t).then((function(){return t()}))},t.clipLine=Au,t.clone=function(t){var e=new Lo(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.clone$1=b,t.clone$2=function(t){var e=new Lo(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},t.collisionCircleLayout=yl,t.config=B,t.create=function(){var t=new Lo(16);return Lo!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t.create$1=function(){var t=new Lo(9);return Lo!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t},t.create$2=function(){var t=new Lo(4);return Lo!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},t.createCommonjsModule=e,t.createExpression=an,t.createLayout=Yi,t.createStyleLayer=function(t){return"custom"===t.type?new oc(t):new sc[t.type](t)},t.cross=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t},t.deepEqual=function t(e,r){if(Array.isArray(e)){if(!Array.isArray(r)||e.length!==r.length)return!1;for(var n=0;n<e.length;n++)if(!t(e[n],r[n]))return!1;return!0}if("object"==typeof e&&null!==e&&null!==r){if("object"!=typeof r)return!1;if(Object.keys(e).length!==Object.keys(r).length)return!1;for(var i in e)if(!t(e[i],r[i]))return!1;return!0}return e===r},t.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},t.dot$1=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]},t.ease=l,t.emitValidationErrors=Yn,t.endsWith=y,t.enforceCacheSizeLimit=function(t){ft(),tt&&tt.then((function(e){e.keys().then((function(r){for(var n=0;n<r.length-t;n++)e.delete(r[n])}))}))},t.evaluateSizeForFeature=vu,t.evaluateSizeForZoom=gu,t.evaluateVariableOffset=Bu,t.evented=Ti,t.extend=f,t.featureFilter=xn,t.filterObject=x,t.fromRotation=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=-r,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},t.getAnchorAlignment=uu,t.getAnchorJustification=Nu,t.getArrayBuffer=Tt,t.getImage=St,t.getJSON=function(t,e){return wt(f(t,{type:"json"}),e)},t.getRTLTextPluginStatus=ki,t.getReferrer=bt,t.getVideo=function(t,e){var r,n,i=self.document.createElement("video");i.muted=!0,i.onloadstart=function(){e(null,i)};for(var a=0;a<t.length;a++){var o=self.document.createElement("source");r=t[a],n=void 0,(n=self.document.createElement("a")).href=r,n.protocol===self.document.location.protocol&&n.host===self.document.location.host||(i.crossOrigin="Anonymous"),o.src=t[a],i.appendChild(o)}return{cancel:function(){}}},t.identity=Co,t.invert=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],u=e[7],c=e[8],f=e[9],h=e[10],p=e[11],d=e[12],v=e[13],g=e[14],y=e[15],m=r*s-n*o,x=r*l-i*o,b=r*u-a*o,_=n*l-i*s,w=n*u-a*s,T=i*u-a*l,k=c*v-f*d,A=c*g-h*d,M=c*y-p*d,S=f*g-h*v,E=f*y-p*v,L=h*y-p*g,C=m*L-x*E+b*S+_*M-w*A+T*k;return C?(C=1/C,t[0]=(s*L-l*E+u*S)*C,t[1]=(i*E-n*L-a*S)*C,t[2]=(v*T-g*w+y*_)*C,t[3]=(h*w-f*T-p*_)*C,t[4]=(l*M-o*L-u*A)*C,t[5]=(r*L-i*M+a*A)*C,t[6]=(g*b-d*T-y*x)*C,t[7]=(c*T-h*b+p*x)*C,t[8]=(o*E-s*M+u*k)*C,t[9]=(n*M-r*E-a*k)*C,t[10]=(d*w-v*b+y*m)*C,t[11]=(f*b-c*w-p*m)*C,t[12]=(s*A-o*S-l*k)*C,t[13]=(r*S-n*A+i*k)*C,t[14]=(v*x-d*_-g*m)*C,t[15]=(c*_-f*x+h*m)*C,t):null},t.isChar=oi,t.isMapboxURL=G,t.keysDifference=function(t,e){var r=[];for(var n in t)n in e||r.push(n);return r},t.makeRequest=wt,t.mapObject=m,t.mercatorXfromLng=wc,t.mercatorYfromLat=Tc,t.mercatorZfromAltitude=kc,t.mul=Oo,t.multiply=Po,t.mvt=Zs,t.normalize=function(t,e){var r=e[0],n=e[1],i=e[2],a=r*r+n*n+i*i;return a>0&&(a=1/Math.sqrt(a)),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t},t.number=Ke,t.offscreenCanvasSupported=yt,t.ortho=function(t,e,r,n,i,a,o){var s=1/(e-r),l=1/(n-i),u=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*l,t[14]=(o+a)*u,t[15]=1,t},t.parseGlyphPBF=function(t){return new Tl(t).readFields(Hl,[])},t.pbf=Tl,t.performSymbolLayout=function(t,e,r,n,i,a,o){t.createArrays();var s=512*t.overscaling;t.tilePixelRatio=oo/s,t.compareText={},t.iconsNeedLinear=!1;var l=t.layers[0].layout,u=t.layers[0]._unevaluatedLayout._values,c={};if("composite"===t.textSizeData.kind){var f=t.textSizeData,h=f.minZoom,p=f.maxZoom;c.compositeTextSizes=[u["text-size"].possiblyEvaluate(new Si(h),o),u["text-size"].possiblyEvaluate(new Si(p),o)]}if("composite"===t.iconSizeData.kind){var d=t.iconSizeData,v=d.minZoom,g=d.maxZoom;c.compositeIconSizes=[u["icon-size"].possiblyEvaluate(new Si(v),o),u["icon-size"].possiblyEvaluate(new Si(g),o)]}c.layoutTextSize=u["text-size"].possiblyEvaluate(new Si(t.zoom+1),o),c.layoutIconSize=u["icon-size"].possiblyEvaluate(new Si(t.zoom+1),o),c.textMaxSize=u["text-size"].possiblyEvaluate(new Si(18));for(var y=l.get("text-line-height")*bl,m="map"===l.get("text-rotation-alignment")&&"point"!==l.get("symbol-placement"),x=l.get("text-keep-upright"),b=l.get("text-size"),_=function(){var a=k[T],s=l.get("text-font").evaluate(a,{},o).join(","),u=b.evaluate(a,{},o),f=c.layoutTextSize.evaluate(a,{},o),h=c.layoutIconSize.evaluate(a,{},o),p={horizontal:{},vertical:void 0},d=a.text,v=[0,0];if(d){var g=d.toString(),_=l.get("text-letter-spacing").evaluate(a,{},o)*bl,A=function(t){for(var e=0,r=t;e<r.length;e+=1)if(n=r[e].charCodeAt(0),oi.Arabic(n)||oi["Arabic Supplement"](n)||oi["Arabic Extended-A"](n)||oi["Arabic Presentation Forms-A"](n)||oi["Arabic Presentation Forms-B"](n))return!1;var n;return!0}(g)?_:0,M=l.get("text-anchor").evaluate(a,{},o),S=l.get("text-variable-anchor");if(!S){var E=l.get("text-radial-offset").evaluate(a,{},o);v=E?Bu(M,[E*bl,Fu]):l.get("text-offset").evaluate(a,{},o).map((function(t){return t*bl}))}var L=m?"center":l.get("text-justify").evaluate(a,{},o),C=l.get("symbol-placement"),P="point"===C?l.get("text-max-width").evaluate(a,{},o)*bl:0,O=function(){t.allowVerticalPlacement&&si(g)&&(p.vertical=tu(d,e,r,i,s,P,y,M,"left",A,v,Jl.vertical,!0,C,f,u))};if(!m&&S){for(var I="auto"===L?S.map((function(t){return Nu(t)})):[L],D=!1,z=0;z<I.length;z++){var R=I[z];if(!p.horizontal[R])if(D)p.horizontal[R]=p.horizontal[0];else{var F=tu(d,e,r,i,s,P,y,"center",R,A,v,Jl.horizontal,!1,C,f,u);F&&(p.horizontal[R]=F,D=1===F.positionedLines.length)}}O()}else{"auto"===L&&(L=Nu(M));var B=tu(d,e,r,i,s,P,y,M,L,A,v,Jl.horizontal,!1,C,f,u);B&&(p.horizontal[L]=B),O(),si(g)&&m&&x&&(p.vertical=tu(d,e,r,i,s,P,y,M,L,A,v,Jl.vertical,!1,C,f,u))}}var N=void 0,j=!1;if(a.icon&&a.icon.name){var U=n[a.icon.name];U&&(N=function(t,e,r){var n=uu(r),i=n.horizontalAlign,a=n.verticalAlign,o=e[0],s=e[1],l=o-t.displaySize[0]*i,u=l+t.displaySize[0],c=s-t.displaySize[1]*a;return{image:t,top:c,bottom:c+t.displaySize[1],left:l,right:u}}(i[a.icon.name],l.get("icon-offset").evaluate(a,{},o),l.get("icon-anchor").evaluate(a,{},o)),j=U.sdf,void 0===t.sdfIcons?t.sdfIcons=U.sdf:t.sdfIcons!==U.sdf&&w("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(U.pixelRatio!==t.pixelRatio||0!==l.get("icon-rotate").constantOr(1))&&(t.iconsNeedLinear=!0))}var V=Vu(p.horizontal)||p.vertical;t.iconsInText=!!V&&V.iconsInText,(V||N)&&function(t,e,r,n,i,a,o,s,l,u,c){var f=a.textMaxSize.evaluate(e,{});void 0===f&&(f=o);var h,p=t.layers[0].layout,d=p.get("icon-offset").evaluate(e,{},c),v=Vu(r.horizontal),g=24,y=o/g,m=t.tilePixelRatio*y,x=t.tilePixelRatio*f/g,b=t.tilePixelRatio*s,_=t.tilePixelRatio*p.get("symbol-spacing"),T=p.get("text-padding")*t.tilePixelRatio,k=p.get("icon-padding")*t.tilePixelRatio,A=p.get("text-max-angle")/180*Math.PI,M="map"===p.get("text-rotation-alignment")&&"point"!==p.get("symbol-placement"),S="map"===p.get("icon-rotation-alignment")&&"point"!==p.get("symbol-placement"),E=p.get("symbol-placement"),L=_/2,C=p.get("icon-text-fit");n&&"none"!==C&&(t.allowVerticalPlacement&&r.vertical&&(h=fu(n,r.vertical,C,p.get("icon-text-fit-padding"),d,y)),v&&(n=fu(n,v,C,p.get("icon-text-fit-padding"),d,y)));var P=function(s,f){f.x<0||f.x>=oo||f.y<0||f.y>=oo||function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,T,k,A){var M,S,E,L,C,P=t.addToLineVertexArray(e,r),O=0,I=0,D=0,z=0,R=-1,F=-1,B={},N=Ia(""),j=0,U=0;if(void 0===s._unevaluatedLayout.getValue("text-radial-offset")?(j=(M=s.layout.get("text-offset").evaluate(b,{},k).map((function(t){return t*bl})))[0],U=M[1]):(j=s.layout.get("text-radial-offset").evaluate(b,{},k)*bl,U=Fu),t.allowVerticalPlacement&&n.vertical){var V=s.layout.get("text-rotate").evaluate(b,{},k)+90,H=n.vertical;L=new Pu(l,e,u,c,f,H,h,p,d,V),o&&(C=new Pu(l,e,u,c,f,o,g,y,d,V))}if(i){var q=s.layout.get("icon-rotate").evaluate(b,{}),G="none"!==s.layout.get("icon-text-fit"),Z=Mu(i,q,T,G),Y=o?Mu(o,q,T,G):void 0;E=new Pu(l,e,u,c,f,i,g,y,!1,q),O=4*Z.length;var W=t.iconSizeData,X=null;"source"===W.kind?(X=[pu*s.layout.get("icon-size").evaluate(b,{})])[0]>ju&&w(t.layerIds[0]+': Value for "icon-size" is >= '+'255. Reduce your "icon-size".'):"composite"===W.kind&&((X=[pu*_.compositeIconSizes[0].evaluate(b,{},k),pu*_.compositeIconSizes[1].evaluate(b,{},k)])[0]>ju||X[1]>ju)&&w(t.layerIds[0]+': Value for "icon-size" is >= '+'255. Reduce your "icon-size".'),t.addSymbols(t.icon,Z,X,x,m,b,!1,e,P.lineStartIndex,P.lineLength,-1,k),R=t.icon.placedSymbolArray.length-1,Y&&(I=4*Y.length,t.addSymbols(t.icon,Y,X,x,m,b,Jl.vertical,e,P.lineStartIndex,P.lineLength,-1,k),F=t.icon.placedSymbolArray.length-1)}for(var J in n.horizontal){var K=n.horizontal[J];if(!S){N=Ia(K.text);var $=s.layout.get("text-rotate").evaluate(b,{},k);S=new Pu(l,e,u,c,f,K,h,p,d,$)}var Q=1===K.positionedLines.length;if(D+=Uu(t,e,K,a,s,d,b,v,P,n.vertical?Jl.horizontal:Jl.horizontalOnly,Q?Object.keys(n.horizontal):[J],B,R,_,k),Q)break}n.vertical&&(z+=Uu(t,e,n.vertical,a,s,d,b,v,P,Jl.vertical,["vertical"],B,F,_,k));var tt=S?S.boxStartIndex:t.collisionBoxArray.length,et=S?S.boxEndIndex:t.collisionBoxArray.length,rt=L?L.boxStartIndex:t.collisionBoxArray.length,nt=L?L.boxEndIndex:t.collisionBoxArray.length,it=E?E.boxStartIndex:t.collisionBoxArray.length,at=E?E.boxEndIndex:t.collisionBoxArray.length,ot=C?C.boxStartIndex:t.collisionBoxArray.length,st=C?C.boxEndIndex:t.collisionBoxArray.length,lt=-1,ut=function(t,e){return t&&t.circleDiameter?Math.max(t.circleDiameter,e):e};lt=ut(S,lt),lt=ut(L,lt),lt=ut(E,lt);var ct=(lt=ut(C,lt))>-1?1:0;ct&&(lt*=A/bl),t.glyphOffsetArray.length>=Ku.MAX_GLYPHS&&w("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==b.sortKey&&t.addToSortKeyRanges(t.symbolInstances.length,b.sortKey),t.symbolInstances.emplaceBack(e.x,e.y,B.right>=0?B.right:-1,B.center>=0?B.center:-1,B.left>=0?B.left:-1,B.vertical||-1,R,F,N,tt,et,rt,nt,it,at,ot,st,u,D,z,O,I,ct,0,h,j,U,lt)}(t,f,s,r,n,i,h,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,m,T,M,l,b,k,S,d,e,a,u,c,o)};if("line"===E)for(var O=0,I=Au(e.geometry,0,0,oo,oo);O<I.length;O+=1)for(var D=I[O],z=0,R=Tu(D,_,A,r.vertical||v,n,g,x,t.overscaling,oo);z<R.length;z+=1){var F=R[z];v&&Hu(t,v.text,L,F)||P(D,F)}else if("line-center"===E)for(var B=0,N=e.geometry;B<N.length;B+=1){var j=N[B];if(j.length>1){var U=wu(j,A,r.vertical||v,n,g,x);U&&P(j,U)}}else if("Polygon"===e.type)for(var V=0,H=Ls(e.geometry,0);V<H.length;V+=1){var q=H[V],G=Du(q,16);P(q[0],new hu(G.x,G.y,0))}else if("LineString"===e.type)for(var Z=0,Y=e.geometry;Z<Y.length;Z+=1){var W=Y[Z];P(W,new hu(W[0].x,W[0].y,0))}else if("Point"===e.type)for(var X=0,J=e.geometry;X<J.length;X+=1)for(var K=0,$=J[X];K<$.length;K+=1){var Q=$[K];P([Q],new hu(Q.x,Q.y,0))}}(t,a,p,N,n,c,f,h,v,j,o)},T=0,k=t.features;T<k.length;T+=1)_();a&&t.generateCollisionDebugBuffers()},t.perspective=function(t,e,r,n,i){var a,o=1/Math.tan(e/2);return t[0]=o/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=o,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=i&&i!==1/0?(a=1/(n-i),t[10]=(i+n)*a,t[14]=2*i*n*a):(t[10]=-1,t[14]=-2*n),t},t.pick=function(t,e){for(var r={},n=0;n<e.length;n++){var i=e[n];i in t&&(r[i]=t[i])}return r},t.plugin=Mi,t.polygonIntersectsPolygon=ho,t.postMapLoadEvent=st,t.postTurnstileEvent=at,t.potpack=Zl,t.refProperties=["type","source","source-layer","minzoom","maxzoom","filter","layout"],t.register=Qn,t.registerForPluginStateChange=function(t){return t({pluginStatus:xi,pluginURL:bi}),Ti.on("pluginStateChange",t),t},t.rotate=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=Math.sin(r),l=Math.cos(r);return t[0]=n*l+a*s,t[1]=i*l+o*s,t[2]=n*-s+a*l,t[3]=i*-s+o*l,t},t.rotateX=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[4],o=e[5],s=e[6],l=e[7],u=e[8],c=e[9],f=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=a*i+u*n,t[5]=o*i+c*n,t[6]=s*i+f*n,t[7]=l*i+h*n,t[8]=u*i-a*n,t[9]=c*i-o*n,t[10]=f*i-s*n,t[11]=h*i-l*n,t},t.rotateZ=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],u=e[4],c=e[5],f=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i+u*n,t[1]=o*i+c*n,t[2]=s*i+f*n,t[3]=l*i+h*n,t[4]=u*i-a*n,t[5]=c*i-o*n,t[6]=f*i-s*n,t[7]=h*i-l*n,t},t.scale=function(t,e,r){var n=r[0],i=r[1],a=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},t.scale$1=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t},t.scale$2=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t},t.setCacheLimits=function(t,e){ut=t,ct=e},t.setRTLTextPlugin=function(t,e,r){if(void 0===r&&(r=!1),xi===di||xi===vi||xi===gi)throw new Error("setRTLTextPlugin cannot be called multiple times.");bi=F.resolveURL(t),xi=di,mi=e,wi(),r||Ai()},t.sphericalToCartesian=function(t){var e=t[0],r=t[1],n=t[2];return r+=90,r*=Math.PI/180,n*=Math.PI/180,{x:e*Math.cos(r)*Math.sin(n),y:e*Math.sin(r)*Math.sin(n),z:e*Math.cos(n)}},t.sqrLen=Ro,t.styleSpec=It,t.sub=Do,t.symbolSize=yu,t.transformMat3=function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t},t.transformMat4=zo,t.translate=function(t,e,r){var n,i,a,o,s,l,u,c,f,h,p,d,v=r[0],g=r[1],y=r[2];return e===t?(t[12]=e[0]*v+e[4]*g+e[8]*y+e[12],t[13]=e[1]*v+e[5]*g+e[9]*y+e[13],t[14]=e[2]*v+e[6]*g+e[10]*y+e[14],t[15]=e[3]*v+e[7]*g+e[11]*y+e[15]):(n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],f=e[8],h=e[9],p=e[10],d=e[11],t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t[6]=u,t[7]=c,t[8]=f,t[9]=h,t[10]=p,t[11]=d,t[12]=n*v+s*g+f*y+e[12],t[13]=i*v+l*g+h*y+e[13],t[14]=a*v+u*g+p*y+e[14],t[15]=o*v+c*g+d*y+e[15]),t},t.triggerPluginCompletionEvent=_i,t.uniqueId=p,t.validateCustomStyleLayer=function(t){var e=[],r=t.id;return void 0===r&&e.push({message:"layers."+r+': missing required property "id"'}),void 0===t.render&&e.push({message:"layers."+r+': missing required method "render"'}),t.renderingMode&&"2d"!==t.renderingMode&&"3d"!==t.renderingMode&&e.push({message:"layers."+r+': property "renderingMode" must be either "2d" or "3d"'}),e},t.validateLight=qn,t.validateStyle=Hn,t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.vectorTile=Zs,t.version=r,t.warnOnce=w,t.webpSupported=N,t.window=self,t.wrap=c})),n(0,(function(t){function e(t){var r=typeof t;if("number"===r||"boolean"===r||"string"===r||null==t)return JSON.stringify(t);if(Array.isArray(t)){for(var n="[",i=0,a=t;i<a.length;i+=1)n+=e(a[i])+",";return n+"]"}for(var o=Object.keys(t).sort(),s="{",l=0;l<o.length;l++)s+=JSON.stringify(o[l])+":"+e(t[o[l]])+",";return s+"}"}function r(r){for(var n="",i=0,a=t.refProperties;i<a.length;i+=1)n+="/"+e(r[a[i]]);return n}var n=function(t){this.keyCache={},t&&this.replace(t)};n.prototype.replace=function(t){this._layerConfigs={},this._layers={},this.update(t,[])},n.prototype.update=function(e,n){for(var i=this,a=0,o=e;a<o.length;a+=1){var s=o[a];this._layerConfigs[s.id]=s;var l=this._layers[s.id]=t.createStyleLayer(s);l._featureFilter=t.featureFilter(l.filter),this.keyCache[s.id]&&delete this.keyCache[s.id]}for(var u=0,c=n;u<c.length;u+=1){var f=c[u];delete this.keyCache[f],delete this._layerConfigs[f],delete this._layers[f]}this.familiesBySource={};for(var h=0,p=function(t,e){for(var n={},i=0;i<t.length;i++){var a=e&&e[t[i].id]||r(t[i]);e&&(e[t[i].id]=a);var o=n[a];o||(o=n[a]=[]),o.push(t[i])}var s=[];for(var l in n)s.push(n[l]);return s}(t.values(this._layerConfigs),this.keyCache);h<p.length;h+=1){var d=p[h].map((function(t){return i._layers[t.id]})),v=d[0];if("none"!==v.visibility){var g=v.source||"",y=this.familiesBySource[g];y||(y=this.familiesBySource[g]={});var m=v.sourceLayer||"_geojsonTileLayer",x=y[m];x||(x=y[m]=[]),x.push(d)}}};var i=function(e){var r={},n=[];for(var i in e){var a=e[i],o=r[i]={};for(var s in a){var l=a[+s];if(l&&0!==l.bitmap.width&&0!==l.bitmap.height){var u={x:0,y:0,w:l.bitmap.width+2,h:l.bitmap.height+2};n.push(u),o[s]={rect:u,metrics:l.metrics}}}}var c=t.potpack(n),f=c.w,h=c.h,p=new t.AlphaImage({width:f||1,height:h||1});for(var d in e){var v=e[d];for(var g in v){var y=v[+g];if(y&&0!==y.bitmap.width&&0!==y.bitmap.height){var m=r[d][g].rect;t.AlphaImage.copy(y.bitmap,p,{x:0,y:0},{x:m.x+1,y:m.y+1},y.bitmap)}}}this.image=p,this.positions=r};t.register("GlyphAtlas",i);var a=function(e){this.tileID=new t.OverscaledTileID(e.tileID.overscaledZ,e.tileID.wrap,e.tileID.canonical.z,e.tileID.canonical.x,e.tileID.canonical.y),this.uid=e.uid,this.zoom=e.zoom,this.pixelRatio=e.pixelRatio,this.tileSize=e.tileSize,this.source=e.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=e.showCollisionBoxes,this.collectResourceTiming=!!e.collectResourceTiming,this.returnDependencies=!!e.returnDependencies,this.promoteId=e.promoteId};function o(e,r,n){for(var i=new t.EvaluationParameters(r),a=0,o=e;a<o.length;a+=1)o[a].recalculate(i,n)}function s(e,r){var n=t.getArrayBuffer(e.request,(function(e,n,i,a){e?r(e):n&&r(null,{vectorTile:new t.vectorTile.VectorTile(new t.pbf(n)),rawData:n,cacheControl:i,expires:a})}));return function(){n.cancel(),r()}}a.prototype.parse=function(e,r,n,a,s){var l=this;this.status="parsing",this.data=e,this.collisionBoxArray=new t.CollisionBoxArray;var u=new t.DictionaryCoder(Object.keys(e.layers).sort()),c=new t.FeatureIndex(this.tileID,this.promoteId);c.bucketLayerIDs=[];var f,h,p,d,v={},g={featureIndex:c,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:n},y=r.familiesBySource[this.source];for(var m in y){var x=e.layers[m];if(x){1===x.version&&t.warnOnce('Vector tile source "'+this.source+'" layer "'+m+'" does not use vector tile spec v2 and therefore may have some rendering errors.');for(var b=u.encode(m),_=[],w=0;w<x.length;w++){var T=x.feature(w),k=c.getId(T,m);_.push({feature:T,id:k,index:w,sourceLayerIndex:b})}for(var A=0,M=y[m];A<M.length;A+=1){var S=M[A],E=S[0];E.minzoom&&this.zoom<Math.floor(E.minzoom)||E.maxzoom&&this.zoom>=E.maxzoom||"none"!==E.visibility&&(o(S,this.zoom,n),(v[E.id]=E.createBucket({index:c.bucketLayerIDs.length,layers:S,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:b,sourceID:this.source})).populate(_,g,this.tileID.canonical),c.bucketLayerIDs.push(S.map((function(t){return t.id}))))}}}var L=t.mapObject(g.glyphDependencies,(function(t){return Object.keys(t).map(Number)}));Object.keys(L).length?a.send("getGlyphs",{uid:this.uid,stacks:L},(function(t,e){f||(f=t,h=e,O.call(l))})):h={};var C=Object.keys(g.iconDependencies);C.length?a.send("getImages",{icons:C,source:this.source,tileID:this.tileID,type:"icons"},(function(t,e){f||(f=t,p=e,O.call(l))})):p={};var P=Object.keys(g.patternDependencies);function O(){if(f)return s(f);if(h&&p&&d){var e=new i(h),r=new t.ImageAtlas(p,d);for(var a in v){var l=v[a];l instanceof t.SymbolBucket?(o(l.layers,this.zoom,n),t.performSymbolLayout(l,h,e.positions,p,r.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):l.hasPattern&&(l instanceof t.LineBucket||l instanceof t.FillBucket||l instanceof t.FillExtrusionBucket)&&(o(l.layers,this.zoom,n),l.addFeatures(g,this.tileID.canonical,r.patternPositions))}this.status="done",s(null,{buckets:t.values(v).filter((function(t){return!t.isEmpty()})),featureIndex:c,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:e.image,imageAtlas:r,glyphMap:this.returnDependencies?h:null,iconMap:this.returnDependencies?p:null,glyphPositions:this.returnDependencies?e.positions:null})}}P.length?a.send("getImages",{icons:P,source:this.source,tileID:this.tileID,type:"patterns"},(function(t,e){f||(f=t,d=e,O.call(l))})):d={},O.call(this)};var l=function(t,e,r,n){this.actor=t,this.layerIndex=e,this.availableImages=r,this.loadVectorData=n||s,this.loading={},this.loaded={}};l.prototype.loadTile=function(e,r){var n=this,i=e.uid;this.loading||(this.loading={});var o=!!(e&&e.request&&e.request.collectResourceTiming)&&new t.RequestPerformance(e.request),s=this.loading[i]=new a(e);s.abort=this.loadVectorData(e,(function(e,a){if(delete n.loading[i],e||!a)return s.status="done",n.loaded[i]=s,r(e);var l=a.rawData,u={};a.expires&&(u.expires=a.expires),a.cacheControl&&(u.cacheControl=a.cacheControl);var c={};if(o){var f=o.finish();f&&(c.resourceTiming=JSON.parse(JSON.stringify(f)))}s.vectorTile=a.vectorTile,s.parse(a.vectorTile,n.layerIndex,n.availableImages,n.actor,(function(e,n){if(e||!n)return r(e);r(null,t.extend({rawTileData:l.slice(0)},n,u,c))})),n.loaded=n.loaded||{},n.loaded[i]=s}))},l.prototype.reloadTile=function(t,e){var r=this,n=this.loaded,i=t.uid,a=this;if(n&&n[i]){var o=n[i];o.showCollisionBoxes=t.showCollisionBoxes;var s=function(t,n){var i=o.reloadCallback;i&&(delete o.reloadCallback,o.parse(o.vectorTile,a.layerIndex,r.availableImages,a.actor,i)),e(t,n)};"parsing"===o.status?o.reloadCallback=s:"done"===o.status&&(o.vectorTile?o.parse(o.vectorTile,this.layerIndex,this.availableImages,this.actor,s):s())}},l.prototype.abortTile=function(t,e){var r=this.loading,n=t.uid;r&&r[n]&&r[n].abort&&(r[n].abort(),delete r[n]),e()},l.prototype.removeTile=function(t,e){var r=this.loaded,n=t.uid;r&&r[n]&&delete r[n],e()};var u=t.window.ImageBitmap,c=function(){this.loaded={}};c.prototype.loadTile=function(e,r){var n=e.uid,i=e.encoding,a=e.rawImageData,o=u&&a instanceof u?this.getImageData(a):a,s=new t.DEMData(n,o,i);this.loaded=this.loaded||{},this.loaded[n]=s,r(null,s)},c.prototype.getImageData=function(e){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(e.width,e.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=e.width,this.offscreenCanvas.height=e.height,this.offscreenCanvasContext.drawImage(e,0,0,e.width,e.height);var r=this.offscreenCanvasContext.getImageData(-1,-1,e.width+2,e.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new t.RGBAImage({width:r.width,height:r.height},r.data)},c.prototype.removeTile=function(t){var e=this.loaded,r=t.uid;e&&e[r]&&delete e[r]};var f=function t(e,r){var n,i=e&&e.type;if("FeatureCollection"===i)for(n=0;n<e.features.length;n++)t(e.features[n],r);else if("GeometryCollection"===i)for(n=0;n<e.geometries.length;n++)t(e.geometries[n],r);else if("Feature"===i)t(e.geometry,r);else if("Polygon"===i)h(e.coordinates,r);else if("MultiPolygon"===i)for(n=0;n<e.coordinates.length;n++)h(e.coordinates[n],r);return e};function h(t,e){if(0!==t.length){p(t[0],e);for(var r=1;r<t.length;r++)p(t[r],!e)}}function p(t,e){for(var r=0,n=0,i=t.length,a=i-1;n<i;a=n++)r+=(t[n][0]-t[a][0])*(t[a][1]+t[n][1]);r>=0!=!!e&&t.reverse()}var d=t.vectorTile.VectorTileFeature.prototype.toGeoJSON,v=function(e){this._feature=e,this.extent=t.EXTENT,this.type=e.type,this.properties=e.tags,"id"in e&&!isNaN(e.id)&&(this.id=parseInt(e.id,10))};v.prototype.loadGeometry=function(){if(1===this._feature.type){for(var e=[],r=0,n=this._feature.geometry;r<n.length;r+=1){var i=n[r];e.push([new t.Point$1(i[0],i[1])])}return e}for(var a=[],o=0,s=this._feature.geometry;o<s.length;o+=1){for(var l=[],u=0,c=s[o];u<c.length;u+=1){var f=c[u];l.push(new t.Point$1(f[0],f[1]))}a.push(l)}return a},v.prototype.toGeoJSON=function(t,e,r){return d.call(this,t,e,r)};var g=function(e){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=t.EXTENT,this.length=e.length,this._features=e};g.prototype.feature=function(t){return new v(this._features[t])};var y=t.vectorTile.VectorTileFeature,m=x;function x(t,e){this.options=e||{},this.features=t,this.length=t.length}function b(t,e){this.id="number"==typeof t.id?t.id:void 0,this.type=t.type,this.rawGeometry=1===t.type?[t.geometry]:t.geometry,this.properties=t.tags,this.extent=e||4096}x.prototype.feature=function(t){return new b(this.features[t],this.options.extent)},b.prototype.loadGeometry=function(){var e=this.rawGeometry;this.geometry=[];for(var r=0;r<e.length;r++){for(var n=e[r],i=[],a=0;a<n.length;a++)i.push(new t.Point$1(n[a][0],n[a][1]));this.geometry.push(i)}return this.geometry},b.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var t=this.geometry,e=1/0,r=-1/0,n=1/0,i=-1/0,a=0;a<t.length;a++)for(var o=t[a],s=0;s<o.length;s++){var l=o[s];e=Math.min(e,l.x),r=Math.max(r,l.x),n=Math.min(n,l.y),i=Math.max(i,l.y)}return[e,n,r,i]},b.prototype.toGeoJSON=y.prototype.toGeoJSON;var _=A,w=A,T=function(t,e){e=e||{};var r={};for(var n in t)r[n]=new m(t[n].features,e),r[n].name=n,r[n].version=e.version,r[n].extent=e.extent;return A({layers:r})},k=m;function A(e){var r=new t.pbf;return function(t,e){for(var r in t.layers)e.writeMessage(3,M,t.layers[r])}(e,r),r.finish()}function M(t,e){var r;e.writeVarintField(15,t.version||1),e.writeStringField(1,t.name||""),e.writeVarintField(5,t.extent||4096);var n={keys:[],values:[],keycache:{},valuecache:{}};for(r=0;r<t.length;r++)n.feature=t.feature(r),e.writeMessage(2,S,n);var i=n.keys;for(r=0;r<i.length;r++)e.writeStringField(3,i[r]);var a=n.values;for(r=0;r<a.length;r++)e.writeMessage(4,O,a[r])}function S(t,e){var r=t.feature;void 0!==r.id&&e.writeVarintField(1,r.id),e.writeMessage(2,E,t),e.writeVarintField(3,r.type),e.writeMessage(4,P,r)}function E(t,e){var r=t.feature,n=t.keys,i=t.values,a=t.keycache,o=t.valuecache;for(var s in r.properties){var l=a[s];void 0===l&&(n.push(s),l=n.length-1,a[s]=l),e.writeVarint(l);var u=r.properties[s],c=typeof u;"string"!==c&&"boolean"!==c&&"number"!==c&&(u=JSON.stringify(u));var f=c+":"+u,h=o[f];void 0===h&&(i.push(u),h=i.length-1,o[f]=h),e.writeVarint(h)}}function L(t,e){return(e<<3)+(7&t)}function C(t){return t<<1^t>>31}function P(t,e){for(var r=t.loadGeometry(),n=t.type,i=0,a=0,o=r.length,s=0;s<o;s++){var l=r[s],u=1;1===n&&(u=l.length),e.writeVarint(L(1,u));for(var c=3===n?l.length-1:l.length,f=0;f<c;f++){1===f&&1!==n&&e.writeVarint(L(2,c-1));var h=l[f].x-i,p=l[f].y-a;e.writeVarint(C(h)),e.writeVarint(C(p)),i+=h,a+=p}3===n&&e.writeVarint(L(7,1))}}function O(t,e){var r=typeof t;"string"===r?e.writeStringField(1,t):"boolean"===r?e.writeBooleanField(7,t):"number"===r&&(t%1!=0?e.writeDoubleField(3,t):t<0?e.writeSVarintField(6,t):e.writeVarintField(5,t))}function I(t,e,r,n,i,a){if(!(i-n<=r)){var o=n+i>>1;D(t,e,o,n,i,a%2),I(t,e,r,n,o-1,a+1),I(t,e,r,o+1,i,a+1)}}function D(t,e,r,n,i,a){for(;i>n;){if(i-n>600){var o=i-n+1,s=r-n+1,l=Math.log(o),u=.5*Math.exp(2*l/3),c=.5*Math.sqrt(l*u*(o-u)/o)*(s-o/2<0?-1:1);D(t,e,r,Math.max(n,Math.floor(r-s*u/o+c)),Math.min(i,Math.floor(r+(o-s)*u/o+c)),a)}var f=e[2*r+a],h=n,p=i;for(z(t,e,n,r),e[2*i+a]>f&&z(t,e,n,i);h<p;){for(z(t,e,h,p),h++,p--;e[2*h+a]<f;)h++;for(;e[2*p+a]>f;)p--}e[2*n+a]===f?z(t,e,n,p):z(t,e,++p,i),p<=r&&(n=p+1),r<=p&&(i=p-1)}}function z(t,e,r,n){R(t,r,n),R(e,2*r,2*n),R(e,2*r+1,2*n+1)}function R(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function F(t,e,r,n){var i=t-r,a=e-n;return i*i+a*a}_.fromVectorTileJs=w,_.fromGeojsonVt=T,_.GeoJSONWrapper=k;var B=function(t){return t[0]},N=function(t){return t[1]},j=function(t,e,r,n,i){void 0===e&&(e=B),void 0===r&&(r=N),void 0===n&&(n=64),void 0===i&&(i=Float64Array),this.nodeSize=n,this.points=t;for(var a=t.length<65536?Uint16Array:Uint32Array,o=this.ids=new a(t.length),s=this.coords=new i(2*t.length),l=0;l<t.length;l++)o[l]=l,s[2*l]=e(t[l]),s[2*l+1]=r(t[l]);I(o,s,n,0,o.length-1,0)};j.prototype.range=function(t,e,r,n){return function(t,e,r,n,i,a,o){for(var s,l,u=[0,t.length-1,0],c=[];u.length;){var f=u.pop(),h=u.pop(),p=u.pop();if(h-p<=o)for(var d=p;d<=h;d++)s=e[2*d],l=e[2*d+1],s>=r&&s<=i&&l>=n&&l<=a&&c.push(t[d]);else{var v=Math.floor((p+h)/2);s=e[2*v],l=e[2*v+1],s>=r&&s<=i&&l>=n&&l<=a&&c.push(t[v]);var g=(f+1)%2;(0===f?r<=s:n<=l)&&(u.push(p),u.push(v-1),u.push(g)),(0===f?i>=s:a>=l)&&(u.push(v+1),u.push(h),u.push(g))}}return c}(this.ids,this.coords,t,e,r,n,this.nodeSize)},j.prototype.within=function(t,e,r){return function(t,e,r,n,i,a){for(var o=[0,t.length-1,0],s=[],l=i*i;o.length;){var u=o.pop(),c=o.pop(),f=o.pop();if(c-f<=a)for(var h=f;h<=c;h++)F(e[2*h],e[2*h+1],r,n)<=l&&s.push(t[h]);else{var p=Math.floor((f+c)/2),d=e[2*p],v=e[2*p+1];F(d,v,r,n)<=l&&s.push(t[p]);var g=(u+1)%2;(0===u?r-i<=d:n-i<=v)&&(o.push(f),o.push(p-1),o.push(g)),(0===u?r+i>=d:n+i>=v)&&(o.push(p+1),o.push(c),o.push(g))}}return s}(this.ids,this.coords,t,e,r,this.nodeSize)};var U={minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(t){return t}},V=function(t){this.options=X(Object.create(U),t),this.trees=new Array(this.options.maxZoom+1)};function H(t,e,r,n,i){return{x:t,y:e,zoom:1/0,id:r,parentId:-1,numPoints:n,properties:i}}function q(t,e){var r=t.geometry.coordinates,n=r[0],i=r[1];return{x:Y(n),y:W(i),zoom:1/0,index:e,parentId:-1}}function G(t){return{type:"Feature",id:t.id,properties:Z(t),geometry:{type:"Point",coordinates:[(n=t.x,360*(n-.5)),(e=t.y,r=(180-360*e)*Math.PI/180,360*Math.atan(Math.exp(r))/Math.PI-90)]}};var e,r,n}function Z(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return X(X({},t.properties),{cluster:!0,cluster_id:t.id,point_count:e,point_count_abbreviated:r})}function Y(t){return t/360+.5}function W(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function X(t,e){for(var r in e)t[r]=e[r];return t}function J(t){return t.x}function K(t){return t.y}function $(t,e,r,n){for(var i,a=n,o=r-e>>1,s=r-e,l=t[e],u=t[e+1],c=t[r],f=t[r+1],h=e+3;h<r;h+=3){var p=Q(t[h],t[h+1],l,u,c,f);if(p>a)i=h,a=p;else if(p===a){var d=Math.abs(h-o);d<s&&(i=h,s=d)}}a>n&&(i-e>3&&$(t,e,i,n),t[i+2]=a,r-i>3&&$(t,i,r,n))}function Q(t,e,r,n,i,a){var o=i-r,s=a-n;if(0!==o||0!==s){var l=((t-r)*o+(e-n)*s)/(o*o+s*s);l>1?(r=i,n=a):l>0&&(r+=o*l,n+=s*l)}return(o=t-r)*o+(s=e-n)*s}function tt(t,e,r,n){var i={id:void 0===t?null:t,type:e,geometry:r,tags:n,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(t){var e=t.geometry,r=t.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)et(t,e);else if("Polygon"===r||"MultiLineString"===r)for(var n=0;n<e.length;n++)et(t,e[n]);else if("MultiPolygon"===r)for(n=0;n<e.length;n++)for(var i=0;i<e[n].length;i++)et(t,e[n][i])}(i),i}function et(t,e){for(var r=0;r<e.length;r+=3)t.minX=Math.min(t.minX,e[r]),t.minY=Math.min(t.minY,e[r+1]),t.maxX=Math.max(t.maxX,e[r]),t.maxY=Math.max(t.maxY,e[r+1])}function rt(t,e,r,n){if(e.geometry){var i=e.geometry.coordinates,a=e.geometry.type,o=Math.pow(r.tolerance/((1<<r.maxZoom)*r.extent),2),s=[],l=e.id;if(r.promoteId?l=e.properties[r.promoteId]:r.generateId&&(l=n||0),"Point"===a)nt(i,s);else if("MultiPoint"===a)for(var u=0;u<i.length;u++)nt(i[u],s);else if("LineString"===a)it(i,s,o,!1);else if("MultiLineString"===a){if(r.lineMetrics){for(u=0;u<i.length;u++)s=[],it(i[u],s,o,!1),t.push(tt(l,"LineString",s,e.properties));return}at(i,s,o,!1)}else if("Polygon"===a)at(i,s,o,!0);else{if("MultiPolygon"!==a){if("GeometryCollection"===a){for(u=0;u<e.geometry.geometries.length;u++)rt(t,{id:l,geometry:e.geometry.geometries[u],properties:e.properties},r,n);return}throw new Error("Input data is not a valid GeoJSON object.")}for(u=0;u<i.length;u++){var c=[];at(i[u],c,o,!0),s.push(c)}}t.push(tt(l,a,s,e.properties))}}function nt(t,e){e.push(ot(t[0])),e.push(st(t[1])),e.push(0)}function it(t,e,r,n){for(var i,a,o=0,s=0;s<t.length;s++){var l=ot(t[s][0]),u=st(t[s][1]);e.push(l),e.push(u),e.push(0),s>0&&(o+=n?(i*u-l*a)/2:Math.sqrt(Math.pow(l-i,2)+Math.pow(u-a,2))),i=l,a=u}var c=e.length-3;e[2]=1,$(e,0,c,r),e[c+2]=1,e.size=Math.abs(o),e.start=0,e.end=e.size}function at(t,e,r,n){for(var i=0;i<t.length;i++){var a=[];it(t[i],a,r,n),e.push(a)}}function ot(t){return t/360+.5}function st(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function lt(t,e,r,n,i,a,o,s){if(n/=e,a>=(r/=e)&&o<n)return t;if(o<r||a>=n)return null;for(var l=[],u=0;u<t.length;u++){var c=t[u],f=c.geometry,h=c.type,p=0===i?c.minX:c.minY,d=0===i?c.maxX:c.maxY;if(p>=r&&d<n)l.push(c);else if(!(d<r||p>=n)){var v=[];if("Point"===h||"MultiPoint"===h)ut(f,v,r,n,i);else if("LineString"===h)ct(f,v,r,n,i,!1,s.lineMetrics);else if("MultiLineString"===h)ht(f,v,r,n,i,!1);else if("Polygon"===h)ht(f,v,r,n,i,!0);else if("MultiPolygon"===h)for(var g=0;g<f.length;g++){var y=[];ht(f[g],y,r,n,i,!0),y.length&&v.push(y)}if(v.length){if(s.lineMetrics&&"LineString"===h){for(g=0;g<v.length;g++)l.push(tt(c.id,h,v[g],c.tags));continue}"LineString"!==h&&"MultiLineString"!==h||(1===v.length?(h="LineString",v=v[0]):h="MultiLineString"),"Point"!==h&&"MultiPoint"!==h||(h=3===v.length?"Point":"MultiPoint"),l.push(tt(c.id,h,v,c.tags))}}}return l.length?l:null}function ut(t,e,r,n,i){for(var a=0;a<t.length;a+=3){var o=t[a+i];o>=r&&o<=n&&(e.push(t[a]),e.push(t[a+1]),e.push(t[a+2]))}}function ct(t,e,r,n,i,a,o){for(var s,l,u=ft(t),c=0===i?dt:vt,f=t.start,h=0;h<t.length-3;h+=3){var p=t[h],d=t[h+1],v=t[h+2],g=t[h+3],y=t[h+4],m=0===i?p:d,x=0===i?g:y,b=!1;o&&(s=Math.sqrt(Math.pow(p-g,2)+Math.pow(d-y,2))),m<r?x>r&&(l=c(u,p,d,g,y,r),o&&(u.start=f+s*l)):m>n?x<n&&(l=c(u,p,d,g,y,n),o&&(u.start=f+s*l)):pt(u,p,d,v),x<r&&m>=r&&(l=c(u,p,d,g,y,r),b=!0),x>n&&m<=n&&(l=c(u,p,d,g,y,n),b=!0),!a&&b&&(o&&(u.end=f+s*l),e.push(u),u=ft(t)),o&&(f+=s)}var _=t.length-3;p=t[_],d=t[_+1],v=t[_+2],(m=0===i?p:d)>=r&&m<=n&&pt(u,p,d,v),_=u.length-3,a&&_>=3&&(u[_]!==u[0]||u[_+1]!==u[1])&&pt(u,u[0],u[1],u[2]),u.length&&e.push(u)}function ft(t){var e=[];return e.size=t.size,e.start=t.start,e.end=t.end,e}function ht(t,e,r,n,i,a){for(var o=0;o<t.length;o++)ct(t[o],e,r,n,i,a,!1)}function pt(t,e,r,n){t.push(e),t.push(r),t.push(n)}function dt(t,e,r,n,i,a){var o=(a-e)/(n-e);return t.push(a),t.push(r+(i-r)*o),t.push(1),o}function vt(t,e,r,n,i,a){var o=(a-r)/(i-r);return t.push(e+(n-e)*o),t.push(a),t.push(1),o}function gt(t,e){for(var r=[],n=0;n<t.length;n++){var i,a=t[n],o=a.type;if("Point"===o||"MultiPoint"===o||"LineString"===o)i=yt(a.geometry,e);else if("MultiLineString"===o||"Polygon"===o){i=[];for(var s=0;s<a.geometry.length;s++)i.push(yt(a.geometry[s],e))}else if("MultiPolygon"===o)for(i=[],s=0;s<a.geometry.length;s++){for(var l=[],u=0;u<a.geometry[s].length;u++)l.push(yt(a.geometry[s][u],e));i.push(l)}r.push(tt(a.id,o,i,a.tags))}return r}function yt(t,e){var r=[];r.size=t.size,void 0!==t.start&&(r.start=t.start,r.end=t.end);for(var n=0;n<t.length;n+=3)r.push(t[n]+e,t[n+1],t[n+2]);return r}function mt(t,e){if(t.transformed)return t;var r,n,i,a=1<<t.z,o=t.x,s=t.y;for(r=0;r<t.features.length;r++){var l=t.features[r],u=l.geometry,c=l.type;if(l.geometry=[],1===c)for(n=0;n<u.length;n+=2)l.geometry.push(xt(u[n],u[n+1],e,a,o,s));else for(n=0;n<u.length;n++){var f=[];for(i=0;i<u[n].length;i+=2)f.push(xt(u[n][i],u[n][i+1],e,a,o,s));l.geometry.push(f)}}return t.transformed=!0,t}function xt(t,e,r,n,i,a){return[Math.round(r*(t*n-i)),Math.round(r*(e*n-a))]}function bt(t,e,r,n,i){for(var a=e===i.maxZoom?0:i.tolerance/((1<<e)*i.extent),o={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:n,z:e,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0},s=0;s<t.length;s++){o.numFeatures++,_t(o,t[s],a,i);var l=t[s].minX,u=t[s].minY,c=t[s].maxX,f=t[s].maxY;l<o.minX&&(o.minX=l),u<o.minY&&(o.minY=u),c>o.maxX&&(o.maxX=c),f>o.maxY&&(o.maxY=f)}return o}function _t(t,e,r,n){var i=e.geometry,a=e.type,o=[];if("Point"===a||"MultiPoint"===a)for(var s=0;s<i.length;s+=3)o.push(i[s]),o.push(i[s+1]),t.numPoints++,t.numSimplified++;else if("LineString"===a)wt(o,i,t,r,!1,!1);else if("MultiLineString"===a||"Polygon"===a)for(s=0;s<i.length;s++)wt(o,i[s],t,r,"Polygon"===a,0===s);else if("MultiPolygon"===a)for(var l=0;l<i.length;l++){var u=i[l];for(s=0;s<u.length;s++)wt(o,u[s],t,r,!0,0===s)}if(o.length){var c=e.tags||null;if("LineString"===a&&n.lineMetrics){for(var f in c={},e.tags)c[f]=e.tags[f];c.mapbox_clip_start=i.start/i.size,c.mapbox_clip_end=i.end/i.size}var h={geometry:o,type:"Polygon"===a||"MultiPolygon"===a?3:"LineString"===a||"MultiLineString"===a?2:1,tags:c};null!==e.id&&(h.id=e.id),t.features.push(h)}}function wt(t,e,r,n,i,a){var o=n*n;if(n>0&&e.size<(i?o:n))r.numPoints+=e.length/3;else{for(var s=[],l=0;l<e.length;l+=3)(0===n||e[l+2]>o)&&(r.numSimplified++,s.push(e[l]),s.push(e[l+1])),r.numPoints++;i&&function(t,e){for(var r=0,n=0,i=t.length,a=i-2;n<i;a=n,n+=2)r+=(t[n]-t[a])*(t[n+1]+t[a+1]);if(r>0===e)for(n=0,i=t.length;n<i/2;n+=2){var o=t[n],s=t[n+1];t[n]=t[i-2-n],t[n+1]=t[i-1-n],t[i-2-n]=o,t[i-1-n]=s}}(s,a),t.push(s)}}function Tt(t,e){var r=(e=this.options=function(t,e){for(var r in e)t[r]=e[r];return t}(Object.create(this.options),e)).debug;if(r&&console.time("preprocess data"),e.maxZoom<0||e.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(e.promoteId&&e.generateId)throw new Error("promoteId and generateId cannot be used together.");var n=function(t,e){var r=[];if("FeatureCollection"===t.type)for(var n=0;n<t.features.length;n++)rt(r,t.features[n],e,n);else"Feature"===t.type?rt(r,t,e):rt(r,{geometry:t},e);return r}(t,e);this.tiles={},this.tileCoords=[],r&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",e.indexMaxZoom,e.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),(n=function(t,e){var r=e.buffer/e.extent,n=t,i=lt(t,1,-1-r,r,0,-1,2,e),a=lt(t,1,1-r,2+r,0,-1,2,e);return(i||a)&&(n=lt(t,1,-r,1+r,0,-1,2,e)||[],i&&(n=gt(i,1).concat(n)),a&&(n=n.concat(gt(a,-1)))),n}(n,e)).length&&this.splitTile(n,0,0,0),r&&(n.length&&console.log("features: %d, points: %d",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd("generate tiles"),console.log("tiles generated:",this.total,JSON.stringify(this.stats)))}function kt(t,e,r){return 32*((1<<t)*r+e)+t}function At(t,e){var r=t.tileID.canonical;if(!this._geoJSONIndex)return e(null,null);var n=this._geoJSONIndex.getTile(r.z,r.x,r.y);if(!n)return e(null,null);var i=new g(n.features),a=_(i);0===a.byteOffset&&a.byteLength===a.buffer.byteLength||(a=new Uint8Array(a)),e(null,{vectorTile:i,rawData:a.buffer})}V.prototype.load=function(t){var e=this.options,r=e.log,n=e.minZoom,i=e.maxZoom,a=e.nodeSize;r&&console.time("total time");var o="prepare "+t.length+" points";r&&console.time(o),this.points=t;for(var s=[],l=0;l<t.length;l++)t[l].geometry&&s.push(q(t[l],l));this.trees[i+1]=new j(s,J,K,a,Float32Array),r&&console.timeEnd(o);for(var u=i;u>=n;u--){var c=+Date.now();s=this._cluster(s,u),this.trees[u]=new j(s,J,K,a,Float32Array),r&&console.log("z%d: %d clusters in %dms",u,s.length,+Date.now()-c)}return r&&console.timeEnd("total time"),this},V.prototype.getClusters=function(t,e){var r=((t[0]+180)%360+360)%360-180,n=Math.max(-90,Math.min(90,t[1])),i=180===t[2]?180:((t[2]+180)%360+360)%360-180,a=Math.max(-90,Math.min(90,t[3]));if(t[2]-t[0]>=360)r=-180,i=180;else if(r>i){var o=this.getClusters([r,n,180,a],e),s=this.getClusters([-180,n,i,a],e);return o.concat(s)}for(var l=this.trees[this._limitZoom(e)],u=[],c=0,f=l.range(Y(r),W(a),Y(i),W(n));c<f.length;c+=1){var h=f[c],p=l.points[h];u.push(p.numPoints?G(p):this.points[p.index])}return u},V.prototype.getChildren=function(t){var e=this._getOriginId(t),r=this._getOriginZoom(t),n="No cluster with the specified id.",i=this.trees[r];if(!i)throw new Error(n);var a=i.points[e];if(!a)throw new Error(n);for(var o=this.options.radius/(this.options.extent*Math.pow(2,r-1)),s=[],l=0,u=i.within(a.x,a.y,o);l<u.length;l+=1){var c=u[l],f=i.points[c];f.parentId===t&&s.push(f.numPoints?G(f):this.points[f.index])}if(0===s.length)throw new Error(n);return s},V.prototype.getLeaves=function(t,e,r){e=e||10,r=r||0;var n=[];return this._appendLeaves(n,t,e,r,0),n},V.prototype.getTile=function(t,e,r){var n=this.trees[this._limitZoom(t)],i=Math.pow(2,t),a=this.options,o=a.extent,s=a.radius/o,l=(r-s)/i,u=(r+1+s)/i,c={features:[]};return this._addTileFeatures(n.range((e-s)/i,l,(e+1+s)/i,u),n.points,e,r,i,c),0===e&&this._addTileFeatures(n.range(1-s/i,l,1,u),n.points,i,r,i,c),e===i-1&&this._addTileFeatures(n.range(0,l,s/i,u),n.points,-1,r,i,c),c.features.length?c:null},V.prototype.getClusterExpansionZoom=function(t){for(var e=this._getOriginZoom(t)-1;e<=this.options.maxZoom;){var r=this.getChildren(t);if(e++,1!==r.length)break;t=r[0].properties.cluster_id}return e},V.prototype._appendLeaves=function(t,e,r,n,i){for(var a=0,o=this.getChildren(e);a<o.length;a+=1){var s=o[a],l=s.properties;if(l&&l.cluster?i+l.point_count<=n?i+=l.point_count:i=this._appendLeaves(t,l.cluster_id,r,n,i):i<n?i++:t.push(s),t.length===r)break}return i},V.prototype._addTileFeatures=function(t,e,r,n,i,a){for(var o=0,s=t;o<s.length;o+=1){var l=e[s[o]],u=l.numPoints,c={type:1,geometry:[[Math.round(this.options.extent*(l.x*i-r)),Math.round(this.options.extent*(l.y*i-n))]],tags:u?Z(l):this.points[l.index].properties},f=void 0;u?f=l.id:this.options.generateId?f=l.index:this.points[l.index].id&&(f=this.points[l.index].id),void 0!==f&&(c.id=f),a.features.push(c)}},V.prototype._limitZoom=function(t){return Math.max(this.options.minZoom,Math.min(t,this.options.maxZoom+1))},V.prototype._cluster=function(t,e){for(var r=[],n=this.options,i=n.radius,a=n.extent,o=n.reduce,s=i/(a*Math.pow(2,e)),l=0;l<t.length;l++){var u=t[l];if(!(u.zoom<=e)){u.zoom=e;for(var c=this.trees[e+1],f=c.within(u.x,u.y,s),h=u.numPoints||1,p=u.x*h,d=u.y*h,v=o&&h>1?this._map(u,!0):null,g=(l<<5)+(e+1)+this.points.length,y=0,m=f;y<m.length;y+=1){var x=m[y],b=c.points[x];if(!(b.zoom<=e)){b.zoom=e;var _=b.numPoints||1;p+=b.x*_,d+=b.y*_,h+=_,b.parentId=g,o&&(v||(v=this._map(u,!0)),o(v,this._map(b)))}}1===h?r.push(u):(u.parentId=g,r.push(H(p/h,d/h,g,h,v)))}}return r},V.prototype._getOriginId=function(t){return t-this.points.length>>5},V.prototype._getOriginZoom=function(t){return(t-this.points.length)%32},V.prototype._map=function(t,e){if(t.numPoints)return e?X({},t.properties):t.properties;var r=this.points[t.index].properties,n=this.options.map(r);return e&&n===r?X({},n):n},Tt.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},Tt.prototype.splitTile=function(t,e,r,n,i,a,o){for(var s=[t,e,r,n],l=this.options,u=l.debug;s.length;){n=s.pop(),r=s.pop(),e=s.pop(),t=s.pop();var c=1<<e,f=kt(e,r,n),h=this.tiles[f];if(!h&&(u>1&&console.time("creation"),h=this.tiles[f]=bt(t,e,r,n,l),this.tileCoords.push({z:e,x:r,y:n}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,n,h.numFeatures,h.numPoints,h.numSimplified),console.timeEnd("creation"));var p="z"+e;this.stats[p]=(this.stats[p]||0)+1,this.total++}if(h.source=t,i){if(e===l.maxZoom||e===i)continue;var d=1<<i-e;if(r!==Math.floor(a/d)||n!==Math.floor(o/d))continue}else if(e===l.indexMaxZoom||h.numPoints<=l.indexMaxPoints)continue;if(h.source=null,0!==t.length){u>1&&console.time("clipping");var v,g,y,m,x,b,_=.5*l.buffer/l.extent,w=.5-_,T=.5+_,k=1+_;v=g=y=m=null,x=lt(t,c,r-_,r+T,0,h.minX,h.maxX,l),b=lt(t,c,r+w,r+k,0,h.minX,h.maxX,l),t=null,x&&(v=lt(x,c,n-_,n+T,1,h.minY,h.maxY,l),g=lt(x,c,n+w,n+k,1,h.minY,h.maxY,l),x=null),b&&(y=lt(b,c,n-_,n+T,1,h.minY,h.maxY,l),m=lt(b,c,n+w,n+k,1,h.minY,h.maxY,l),b=null),u>1&&console.timeEnd("clipping"),s.push(v||[],e+1,2*r,2*n),s.push(g||[],e+1,2*r,2*n+1),s.push(y||[],e+1,2*r+1,2*n),s.push(m||[],e+1,2*r+1,2*n+1)}}},Tt.prototype.getTile=function(t,e,r){var n=this.options,i=n.extent,a=n.debug;if(t<0||t>24)return null;var o=1<<t,s=kt(t,e=(e%o+o)%o,r);if(this.tiles[s])return mt(this.tiles[s],i);a>1&&console.log("drilling down to z%d-%d-%d",t,e,r);for(var l,u=t,c=e,f=r;!l&&u>0;)u--,c=Math.floor(c/2),f=Math.floor(f/2),l=this.tiles[kt(u,c,f)];return l&&l.source?(a>1&&console.log("found parent tile z%d-%d-%d",u,c,f),a>1&&console.time("drilling down"),this.splitTile(l.source,u,c,f,t,e,r),a>1&&console.timeEnd("drilling down"),this.tiles[s]?mt(this.tiles[s],i):null):null};var Mt=function(e){function r(t,r,n,i){e.call(this,t,r,n,At),i&&(this.loadGeoJSON=i)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadData=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=e,this._pendingLoadDataParams=t,this._state&&"Idle"!==this._state?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData())},r.prototype._loadData=function(){var e=this;if(this._pendingCallback&&this._pendingLoadDataParams){var r=this._pendingCallback,n=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var i=!!(n&&n.request&&n.request.collectResourceTiming)&&new t.RequestPerformance(n.request);this.loadGeoJSON(n,(function(a,o){if(a||!o)return r(a);if("object"!=typeof o)return r(new Error("Input data given to '"+n.source+"' is not a valid GeoJSON object."));f(o,!0);try{e._geoJSONIndex=n.cluster?new V(function(e){var r=e.superclusterOptions,n=e.clusterProperties;if(!n||!r)return r;for(var i={},a={},o={accumulated:null,zoom:0},s={properties:null},l=Object.keys(n),u=0,c=l;u<c.length;u+=1){var f=c[u],h=n[f],p=h[0],d=h[1],v=t.createExpression(d),g=t.createExpression("string"==typeof p?[p,["accumulated"],["get",f]]:p);i[f]=v.value,a[f]=g.value}return r.map=function(t){s.properties=t;for(var e={},r=0,n=l;r<n.length;r+=1){var a=n[r];e[a]=i[a].evaluate(o,s)}return e},r.reduce=function(t,e){s.properties=e;for(var r=0,n=l;r<n.length;r+=1){var i=n[r];o.accumulated=t[i],t[i]=a[i].evaluate(o,s)}},r}(n)).load(o.features):function(t,e){return new Tt(t,e)}(o,n.geojsonVtOptions)}catch(a){return r(a)}e.loaded={};var s={};if(i){var l=i.finish();l&&(s.resourceTiming={},s.resourceTiming[n.source]=JSON.parse(JSON.stringify(l)))}r(null,s)}))}},r.prototype.coalesce=function(){"Coalescing"===this._state?this._state="Idle":"NeedsLoadData"===this._state&&(this._state="Coalescing",this._loadData())},r.prototype.reloadTile=function(t,r){var n=this.loaded,i=t.uid;return n&&n[i]?e.prototype.reloadTile.call(this,t,r):this.loadTile(t,r)},r.prototype.loadGeoJSON=function(e,r){if(e.request)t.getJSON(e.request,r);else{if("string"!=typeof e.data)return r(new Error("Input data given to '"+e.source+"' is not a valid GeoJSON object."));try{return r(null,JSON.parse(e.data))}catch(t){return r(new Error("Input data given to '"+e.source+"' is not a valid GeoJSON object."))}}},r.prototype.removeSource=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),e()},r.prototype.getClusterExpansionZoom=function(t,e){try{e(null,this._geoJSONIndex.getClusterExpansionZoom(t.clusterId))}catch(t){e(t)}},r.prototype.getClusterChildren=function(t,e){try{e(null,this._geoJSONIndex.getChildren(t.clusterId))}catch(t){e(t)}},r.prototype.getClusterLeaves=function(t,e){try{e(null,this._geoJSONIndex.getLeaves(t.clusterId,t.limit,t.offset))}catch(t){e(t)}},r}(l);var St=function(e){var r=this;this.self=e,this.actor=new t.Actor(e,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:l,geojson:Mt},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=function(t,e){if(r.workerSourceTypes[t])throw new Error('Worker source with name "'+t+'" already registered.');r.workerSourceTypes[t]=e},this.self.registerRTLTextPlugin=function(e){if(t.plugin.isParsed())throw new Error("RTL text plugin already registered.");t.plugin.applyArabicShaping=e.applyArabicShaping,t.plugin.processBidirectionalText=e.processBidirectionalText,t.plugin.processStyledBidirectionalText=e.processStyledBidirectionalText}};return St.prototype.setReferrer=function(t,e){this.referrer=e},St.prototype.setImages=function(t,e,r){for(var n in this.availableImages[t]=e,this.workerSources[t]){var i=this.workerSources[t][n];for(var a in i)i[a].availableImages=e}r()},St.prototype.setLayers=function(t,e,r){this.getLayerIndex(t).replace(e),r()},St.prototype.updateLayers=function(t,e,r){this.getLayerIndex(t).update(e.layers,e.removedIds),r()},St.prototype.loadTile=function(t,e,r){this.getWorkerSource(t,e.type,e.source).loadTile(e,r)},St.prototype.loadDEMTile=function(t,e,r){this.getDEMWorkerSource(t,e.source).loadTile(e,r)},St.prototype.reloadTile=function(t,e,r){this.getWorkerSource(t,e.type,e.source).reloadTile(e,r)},St.prototype.abortTile=function(t,e,r){this.getWorkerSource(t,e.type,e.source).abortTile(e,r)},St.prototype.removeTile=function(t,e,r){this.getWorkerSource(t,e.type,e.source).removeTile(e,r)},St.prototype.removeDEMTile=function(t,e){this.getDEMWorkerSource(t,e.source).removeTile(e)},St.prototype.removeSource=function(t,e,r){if(this.workerSources[t]&&this.workerSources[t][e.type]&&this.workerSources[t][e.type][e.source]){var n=this.workerSources[t][e.type][e.source];delete this.workerSources[t][e.type][e.source],void 0!==n.removeSource?n.removeSource(e,r):r()}},St.prototype.loadWorkerSource=function(t,e,r){try{this.self.importScripts(e.url),r()}catch(t){r(t.toString())}},St.prototype.syncRTLPluginState=function(e,r,n){try{t.plugin.setState(r);var i=t.plugin.getPluginURL();if(t.plugin.isLoaded()&&!t.plugin.isParsed()&&null!=i){this.self.importScripts(i);var a=t.plugin.isParsed();n(a?void 0:new Error("RTL Text Plugin failed to import scripts from "+i),a)}}catch(t){n(t.toString())}},St.prototype.getAvailableImages=function(t){var e=this.availableImages[t];return e||(e=[]),e},St.prototype.getLayerIndex=function(t){var e=this.layerIndexes[t];return e||(e=this.layerIndexes[t]=new n),e},St.prototype.getWorkerSource=function(t,e,r){var n=this;if(this.workerSources[t]||(this.workerSources[t]={}),this.workerSources[t][e]||(this.workerSources[t][e]={}),!this.workerSources[t][e][r]){var i={send:function(e,r,i){n.actor.send(e,r,i,t)}};this.workerSources[t][e][r]=new this.workerSourceTypes[e](i,this.getLayerIndex(t),this.getAvailableImages(t))}return this.workerSources[t][e][r]},St.prototype.getDEMWorkerSource=function(t,e){return this.demWorkerSources[t]||(this.demWorkerSources[t]={}),this.demWorkerSources[t][e]||(this.demWorkerSources[t][e]=new c),this.demWorkerSources[t][e]},St.prototype.enforceCacheSizeLimit=function(e,r){t.enforceCacheSizeLimit(r)},"undefined"!=typeof WorkerGlobalScope&&void 0!==t.window&&t.window instanceof WorkerGlobalScope&&(t.window.worker=new St(t.window)),St})),n(0,(function(t){var e=t.createCommonjsModule((function(t){function e(t){return!r(t)}function r(t){return"undefined"!=typeof window&&"undefined"!=typeof document?Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray?Function.prototype&&Function.prototype.bind?Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions?"JSON"in window&&"parse"in JSON&&"stringify"in JSON?function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var t,e,r=new Blob([""],{type:"text/javascript"}),n=URL.createObjectURL(r);try{e=new Worker(n),t=!0}catch(e){t=!1}return e&&e.terminate(),URL.revokeObjectURL(n),t}()?"Uint8ClampedArray"in window?ArrayBuffer.isView?function(){var t=document.createElement("canvas");t.width=t.height=1;var e=t.getContext("2d");if(!e)return!1;var r=e.getImageData(0,0,1,1);return r&&r.width===t.width}()?(r=t&&t.failIfMajorPerformanceCaveat,void 0===n[r]&&(n[r]=function(t){var r=function(t){var r=document.createElement("canvas"),n=Object.create(e.webGLContextAttributes);return n.failIfMajorPerformanceCaveat=t,r.probablySupportsContext?r.probablySupportsContext("webgl",n)||r.probablySupportsContext("experimental-webgl",n):r.supportsContext?r.supportsContext("webgl",n)||r.supportsContext("experimental-webgl",n):r.getContext("webgl",n)||r.getContext("experimental-webgl",n)}(t);if(!r)return!1;var n=r.createShader(r.VERTEX_SHADER);return!(!n||r.isContextLost())&&(r.shaderSource(n,"void main() {}"),r.compileShader(n),!0===r.getShaderParameter(n,r.COMPILE_STATUS))}(r)),n[r]?void 0:"insufficient WebGL support"):"insufficient Canvas/getImageData support":"insufficient ArrayBuffer support":"insufficient Uint8ClampedArray support":"insufficient worker support":"insufficient JSON support":"insufficient Object support":"insufficient Function support":"insufficent Array support":"not a browser";var r}t.exports?t.exports=e:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=e,window.mapboxgl.notSupportedReason=r);var n={};e.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}})),r={create:function(e,r,n){var i=t.window.document.createElement(e);return void 0!==r&&(i.className=r),n&&n.appendChild(i),i},createNS:function(e,r){return t.window.document.createElementNS(e,r)}},n=t.window.document.documentElement.style;function i(t){if(!n)return t[0];for(var e=0;e<t.length;e++)if(t[e]in n)return t[e];return t[0]}var a,o=i(["userSelect","MozUserSelect","WebkitUserSelect","msUserSelect"]);r.disableDrag=function(){n&&o&&(a=n[o],n[o]="none")},r.enableDrag=function(){n&&o&&(n[o]=a)};var s=i(["transform","WebkitTransform"]);r.setTransform=function(t,e){t.style[s]=e};var l=!1;try{var u=Object.defineProperty({},"passive",{get:function(){l=!0}});t.window.addEventListener("test",u,u),t.window.removeEventListener("test",u,u)}catch(t){l=!1}r.addEventListener=function(t,e,r,n){void 0===n&&(n={}),"passive"in n&&l?t.addEventListener(e,r,n):t.addEventListener(e,r,n.capture)},r.removeEventListener=function(t,e,r,n){void 0===n&&(n={}),"passive"in n&&l?t.removeEventListener(e,r,n):t.removeEventListener(e,r,n.capture)};var c=function(e){e.preventDefault(),e.stopPropagation(),t.window.removeEventListener("click",c,!0)};function f(t){var e=t.userImage;return!!(e&&e.render&&e.render())&&(t.data.replace(new Uint8Array(e.data.buffer)),!0)}r.suppressClick=function(){t.window.addEventListener("click",c,!0),t.window.setTimeout((function(){t.window.removeEventListener("click",c,!0)}),0)},r.mousePos=function(e,r){var n=e.getBoundingClientRect();return new t.Point(r.clientX-n.left-e.clientLeft,r.clientY-n.top-e.clientTop)},r.touchPos=function(e,r){for(var n=e.getBoundingClientRect(),i=[],a=0;a<r.length;a++)i.push(new t.Point(r[a].clientX-n.left-e.clientLeft,r[a].clientY-n.top-e.clientTop));return i},r.mouseButton=function(e){return void 0!==t.window.InstallTrigger&&2===e.button&&e.ctrlKey&&t.window.navigator.platform.toUpperCase().indexOf("MAC")>=0?0:e.button},r.remove=function(t){t.parentNode&&t.parentNode.removeChild(t)};var h=function(e){function r(){e.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new t.RGBAImage({width:1,height:1}),this.dirty=!0}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.isLoaded=function(){return this.loaded},r.prototype.setLoaded=function(t){if(this.loaded!==t&&(this.loaded=t,t)){for(var e=0,r=this.requestors;e<r.length;e+=1){var n=r[e],i=n.ids,a=n.callback;this._notify(i,a)}this.requestors=[]}},r.prototype.getImage=function(t){return this.images[t]},r.prototype.addImage=function(t,e){this._validate(t,e)&&(this.images[t]=e)},r.prototype._validate=function(e,r){var n=!0;return this._validateStretch(r.stretchX,r.data&&r.data.width)||(this.fire(new t.ErrorEvent(new Error('Image "'+e+'" has invalid "stretchX" value'))),n=!1),this._validateStretch(r.stretchY,r.data&&r.data.height)||(this.fire(new t.ErrorEvent(new Error('Image "'+e+'" has invalid "stretchY" value'))),n=!1),this._validateContent(r.content,r)||(this.fire(new t.ErrorEvent(new Error('Image "'+e+'" has invalid "content" value'))),n=!1),n},r.prototype._validateStretch=function(t,e){if(!t)return!0;for(var r=0,n=0,i=t;n<i.length;n+=1){var a=i[n];if(a[0]<r||a[1]<a[0]||e<a[1])return!1;r=a[1]}return!0},r.prototype._validateContent=function(t,e){return!(t&&(4!==t.length||t[0]<0||e.data.width<t[0]||t[1]<0||e.data.height<t[1]||t[2]<0||e.data.width<t[2]||t[3]<0||e.data.height<t[3]||t[2]<t[0]||t[3]<t[1]))},r.prototype.updateImage=function(t,e){var r=this.images[t];e.version=r.version+1,this.images[t]=e,this.updatedImages[t]=!0},r.prototype.removeImage=function(t){var e=this.images[t];delete this.images[t],delete this.patterns[t],e.userImage&&e.userImage.onRemove&&e.userImage.onRemove()},r.prototype.listImages=function(){return Object.keys(this.images)},r.prototype.getImages=function(t,e){var r=!0;if(!this.isLoaded())for(var n=0,i=t;n<i.length;n+=1){var a=i[n];this.images[a]||(r=!1)}this.isLoaded()||r?this._notify(t,e):this.requestors.push({ids:t,callback:e})},r.prototype._notify=function(e,r){for(var n={},i=0,a=e;i<a.length;i+=1){var o=a[i];this.images[o]||this.fire(new t.Event("styleimagemissing",{id:o}));var s=this.images[o];s?n[o]={data:s.data.clone(),pixelRatio:s.pixelRatio,sdf:s.sdf,version:s.version,stretchX:s.stretchX,stretchY:s.stretchY,content:s.content,hasRenderCallback:Boolean(s.userImage&&s.userImage.render)}:t.warnOnce('Image "'+o+'" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.')}r(null,n)},r.prototype.getPixelSize=function(){var t=this.atlasImage;return{width:t.width,height:t.height}},r.prototype.getPattern=function(e){var r=this.patterns[e],n=this.getImage(e);if(!n)return null;if(r&&r.position.version===n.version)return r.position;if(r)r.position.version=n.version;else{var i={w:n.data.width+2,h:n.data.height+2,x:0,y:0},a=new t.ImagePosition(i,n);this.patterns[e]={bin:i,position:a}}return this._updatePatternAtlas(),this.patterns[e].position},r.prototype.bind=function(e){var r=e.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new t.Texture(e,this.atlasImage,r.RGBA),this.atlasTexture.bind(r.LINEAR,r.CLAMP_TO_EDGE)},r.prototype._updatePatternAtlas=function(){var e=[];for(var r in this.patterns)e.push(this.patterns[r].bin);var n=t.potpack(e),i=n.w,a=n.h,o=this.atlasImage;for(var s in o.resize({width:i||1,height:a||1}),this.patterns){var l=this.patterns[s].bin,u=l.x+1,c=l.y+1,f=this.images[s].data,h=f.width,p=f.height;t.RGBAImage.copy(f,o,{x:0,y:0},{x:u,y:c},{width:h,height:p}),t.RGBAImage.copy(f,o,{x:0,y:p-1},{x:u,y:c-1},{width:h,height:1}),t.RGBAImage.copy(f,o,{x:0,y:0},{x:u,y:c+p},{width:h,height:1}),t.RGBAImage.copy(f,o,{x:h-1,y:0},{x:u-1,y:c},{width:1,height:p}),t.RGBAImage.copy(f,o,{x:0,y:0},{x:u+h,y:c},{width:1,height:p})}this.dirty=!0},r.prototype.beginFrame=function(){this.callbackDispatchedThisFrame={}},r.prototype.dispatchRenderCallbacks=function(t){for(var e=0,r=t;e<r.length;e+=1){var n=r[e];if(!this.callbackDispatchedThisFrame[n]){this.callbackDispatchedThisFrame[n]=!0;var i=this.images[n];f(i)&&this.updateImage(n,i)}}},r}(t.Evented);var p=g,d=g,v=1e20;function g(t,e,r,n,i,a){this.fontSize=t||24,this.buffer=void 0===e?3:e,this.cutoff=n||.25,this.fontFamily=i||"sans-serif",this.fontWeight=a||"normal",this.radius=r||8;var o=this.size=this.fontSize+2*this.buffer;this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=o,this.ctx=this.canvas.getContext("2d"),this.ctx.font=this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textBaseline="middle",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(o*o),this.gridInner=new Float64Array(o*o),this.f=new Float64Array(o),this.d=new Float64Array(o),this.z=new Float64Array(o+1),this.v=new Int16Array(o),this.middle=Math.round(o/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function y(t,e,r,n,i,a,o){for(var s=0;s<e;s++){for(var l=0;l<r;l++)n[l]=t[l*e+s];for(m(n,i,a,o,r),l=0;l<r;l++)t[l*e+s]=i[l]}for(l=0;l<r;l++){for(s=0;s<e;s++)n[s]=t[l*e+s];for(m(n,i,a,o,e),s=0;s<e;s++)t[l*e+s]=Math.sqrt(i[s])}}function m(t,e,r,n,i){r[0]=0,n[0]=-v,n[1]=+v;for(var a=1,o=0;a<i;a++){for(var s=(t[a]+a*a-(t[r[o]]+r[o]*r[o]))/(2*a-2*r[o]);s<=n[o];)o--,s=(t[a]+a*a-(t[r[o]]+r[o]*r[o]))/(2*a-2*r[o]);r[++o]=a,n[o]=s,n[o+1]=+v}for(a=0,o=0;a<i;a++){for(;n[o+1]<a;)o++;e[a]=(a-r[o])*(a-r[o])+t[r[o]]}}g.prototype.draw=function(t){this.ctx.clearRect(0,0,this.size,this.size),this.ctx.fillText(t,this.buffer,this.middle);for(var e=this.ctx.getImageData(0,0,this.size,this.size),r=new Uint8ClampedArray(this.size*this.size),n=0;n<this.size*this.size;n++){var i=e.data[4*n+3]/255;this.gridOuter[n]=1===i?0:0===i?v:Math.pow(Math.max(0,.5-i),2),this.gridInner[n]=1===i?v:0===i?0:Math.pow(Math.max(0,i-.5),2)}for(y(this.gridOuter,this.size,this.size,this.f,this.d,this.v,this.z),y(this.gridInner,this.size,this.size,this.f,this.d,this.v,this.z),n=0;n<this.size*this.size;n++){var a=this.gridOuter[n]-this.gridInner[n];r[n]=Math.max(0,Math.min(255,Math.round(255-255*(a/this.radius+this.cutoff))))}return r},p.default=d;var x=function(t,e){this.requestManager=t,this.localIdeographFontFamily=e,this.entries={}};x.prototype.setURL=function(t){this.url=t},x.prototype.getGlyphs=function(e,r){var n=this,i=[];for(var a in e)for(var o=0,s=e[a];o<s.length;o+=1){var l=s[o];i.push({stack:a,id:l})}t.asyncAll(i,(function(t,e){var r=t.stack,i=t.id,a=n.entries[r];a||(a=n.entries[r]={glyphs:{},requests:{},ranges:{}});var o=a.glyphs[i];if(void 0===o){if(o=n._tinySDF(a,r,i))return a.glyphs[i]=o,void e(null,{stack:r,id:i,glyph:o});var s=Math.floor(i/256);if(256*s>65535)e(new Error("glyphs > 65535 not supported"));else if(a.ranges[s])e(null,{stack:r,id:i,glyph:o});else{var l=a.requests[s];l||(l=a.requests[s]=[],x.loadGlyphRange(r,s,n.url,n.requestManager,(function(t,e){if(e){for(var r in e)n._doesCharSupportLocalGlyph(+r)||(a.glyphs[+r]=e[+r]);a.ranges[s]=!0}for(var i=0,o=l;i<o.length;i+=1)(0,o[i])(t,e);delete a.requests[s]}))),l.push((function(t,n){t?e(t):n&&e(null,{stack:r,id:i,glyph:n[i]||null})}))}}else e(null,{stack:r,id:i,glyph:o})}),(function(t,e){if(t)r(t);else if(e){for(var n={},i=0,a=e;i<a.length;i+=1){var o=a[i],s=o.stack,l=o.id,u=o.glyph;(n[s]||(n[s]={}))[l]=u&&{id:u.id,bitmap:u.bitmap.clone(),metrics:u.metrics}}r(null,n)}}))},x.prototype._doesCharSupportLocalGlyph=function(e){return!!this.localIdeographFontFamily&&(t.isChar["CJK Unified Ideographs"](e)||t.isChar["Hangul Syllables"](e)||t.isChar.Hiragana(e)||t.isChar.Katakana(e))},x.prototype._tinySDF=function(e,r,n){var i=this.localIdeographFontFamily;if(i&&this._doesCharSupportLocalGlyph(n)){var a=e.tinySDF;if(!a){var o="400";/bold/i.test(r)?o="900":/medium/i.test(r)?o="500":/light/i.test(r)&&(o="200"),a=e.tinySDF=new x.TinySDF(24,3,8,.25,i,o)}return{id:n,bitmap:new t.AlphaImage({width:30,height:30},a.draw(String.fromCharCode(n))),metrics:{width:24,height:24,left:0,top:-8,advance:24}}}},x.loadGlyphRange=function(e,r,n,i,a){var o=256*r,s=o+255,l=i.transformRequest(i.normalizeGlyphsURL(n).replace("{fontstack}",e).replace("{range}",o+"-"+s),t.ResourceType.Glyphs);t.getArrayBuffer(l,(function(e,r){if(e)a(e);else if(r){for(var n={},i=0,o=t.parseGlyphPBF(r);i<o.length;i+=1){var s=o[i];n[s.id]=s}a(null,n)}}))},x.TinySDF=p;var b=function(){this.specification=t.styleSpec.light.position};b.prototype.possiblyEvaluate=function(e,r){return t.sphericalToCartesian(e.expression.evaluate(r))},b.prototype.interpolate=function(e,r,n){return{x:t.number(e.x,r.x,n),y:t.number(e.y,r.y,n),z:t.number(e.z,r.z,n)}};var _=new t.Properties({anchor:new t.DataConstantProperty(t.styleSpec.light.anchor),position:new b,color:new t.DataConstantProperty(t.styleSpec.light.color),intensity:new t.DataConstantProperty(t.styleSpec.light.intensity)}),w="-transition",T=function(e){function r(r){e.call(this),this._transitionable=new t.Transitionable(_),this.setLight(r),this._transitioning=this._transitionable.untransitioned()}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.getLight=function(){return this._transitionable.serialize()},r.prototype.setLight=function(e,r){if(void 0===r&&(r={}),!this._validate(t.validateLight,e,r))for(var n in e){var i=e[n];t.endsWith(n,w)?this._transitionable.setTransition(n.slice(0,-w.length),i):this._transitionable.setValue(n,i)}},r.prototype.updateTransitions=function(t){this._transitioning=this._transitionable.transitioned(t,this._transitioning)},r.prototype.hasTransition=function(){return this._transitioning.hasTransition()},r.prototype.recalculate=function(t){this.properties=this._transitioning.possiblyEvaluate(t)},r.prototype._validate=function(e,r,n){return(!n||!1!==n.validate)&&t.emitValidationErrors(this,e.call(t.validateStyle,t.extend({value:r,style:{glyphs:!0,sprite:!0},styleSpec:t.styleSpec})))},r}(t.Evented),k=function(t,e){this.width=t,this.height=e,this.nextRow=0,this.data=new Uint8Array(this.width*this.height),this.dashEntry={}};k.prototype.getDash=function(t,e){var r=t.join(",")+String(e);return this.dashEntry[r]||(this.dashEntry[r]=this.addDash(t,e)),this.dashEntry[r]},k.prototype.getDashRanges=function(t,e,r){var n=[],i=t.length%2==1?-t[t.length-1]*r:0,a=t[0]*r,o=!0;n.push({left:i,right:a,isDash:o,zeroLength:0===t[0]});for(var s=t[0],l=1;l<t.length;l++){o=!o;var u=t[l];i=s*r,a=(s+=u)*r,n.push({left:i,right:a,isDash:o,zeroLength:0===u})}return n},k.prototype.addRoundDash=function(t,e,r){for(var n=e/2,i=-r;i<=r;i++)for(var a=this.nextRow+r+i,o=this.width*a,s=0,l=t[s],u=0;u<this.width;u++){u/l.right>1&&(l=t[++s]);var c=Math.abs(u-l.left),f=Math.abs(u-l.right),h=Math.min(c,f),p=void 0,d=i/r*(n+1);if(l.isDash){var v=n-Math.abs(d);p=Math.sqrt(h*h+v*v)}else p=n-Math.sqrt(h*h+d*d);this.data[o+u]=Math.max(0,Math.min(255,p+128))}},k.prototype.addRegularDash=function(t){for(var e=t.length-1;e>=0;--e){var r=t[e],n=t[e+1];r.zeroLength?t.splice(e,1):n&&n.isDash===r.isDash&&(n.left=r.left,t.splice(e,1))}var i=t[0],a=t[t.length-1];i.isDash===a.isDash&&(i.left=a.left-this.width,a.right=i.right+this.width);for(var o=this.width*this.nextRow,s=0,l=t[s],u=0;u<this.width;u++){u/l.right>1&&(l=t[++s]);var c=Math.abs(u-l.left),f=Math.abs(u-l.right),h=Math.min(c,f),p=l.isDash?h:-h;this.data[o+u]=Math.max(0,Math.min(255,p+128))}},k.prototype.addDash=function(e,r){var n=r?7:0,i=2*n+1;if(this.nextRow+i>this.height)return t.warnOnce("LineAtlas out of space"),null;for(var a=0,o=0;o<e.length;o++)a+=e[o];if(0!==a){var s=this.width/a,l=this.getDashRanges(e,this.width,s);r?this.addRoundDash(l,s,n):this.addRegularDash(l)}var u={y:(this.nextRow+n+.5)/this.height,height:2*n/this.height,width:a};return this.nextRow+=i,this.dirty=!0,u},k.prototype.bind=function(t){var e=t.gl;this.texture?(e.bindTexture(e.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=!1,e.texSubImage2D(e.TEXTURE_2D,0,0,0,this.width,this.height,e.ALPHA,e.UNSIGNED_BYTE,this.data))):(this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texImage2D(e.TEXTURE_2D,0,e.ALPHA,this.width,this.height,0,e.ALPHA,e.UNSIGNED_BYTE,this.data))};var A=function e(r,n){this.workerPool=r,this.actors=[],this.currentActor=0,this.id=t.uniqueId();for(var i=this.workerPool.acquire(this.id),a=0;a<i.length;a++){var o=i[a],s=new e.Actor(o,n,this.id);s.name="Worker "+a,this.actors.push(s)}};function M(e,r,n){var i=function(i,a){if(i)return n(i);if(a){var o=t.pick(t.extend(a,e),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);a.vector_layers&&(o.vectorLayers=a.vector_layers,o.vectorLayerIds=o.vectorLayers.map((function(t){return t.id}))),o.tiles=r.canonicalizeTileset(o,e.url),n(null,o)}};return e.url?t.getJSON(r.transformRequest(r.normalizeSourceURL(e.url),t.ResourceType.Source),i):t.browser.frame((function(){return i(null,e)}))}A.prototype.broadcast=function(e,r,n){n=n||function(){},t.asyncAll(this.actors,(function(t,n){t.send(e,r,n)}),n)},A.prototype.getActor=function(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]},A.prototype.remove=function(){this.actors.forEach((function(t){t.remove()})),this.actors=[],this.workerPool.release(this.id)},A.Actor=t.Actor;var S=function(e,r,n){this.bounds=t.LngLatBounds.convert(this.validateBounds(e)),this.minzoom=r||0,this.maxzoom=n||24};S.prototype.validateBounds=function(t){return Array.isArray(t)&&4===t.length?[Math.max(-180,t[0]),Math.max(-90,t[1]),Math.min(180,t[2]),Math.min(90,t[3])]:[-180,-90,180,90]},S.prototype.contains=function(e){var r=Math.pow(2,e.z),n=Math.floor(t.mercatorXfromLng(this.bounds.getWest())*r),i=Math.floor(t.mercatorYfromLat(this.bounds.getNorth())*r),a=Math.ceil(t.mercatorXfromLng(this.bounds.getEast())*r),o=Math.ceil(t.mercatorYfromLat(this.bounds.getSouth())*r);return e.x>=n&&e.x<a&&e.y>=i&&e.y<o};var E=function(e){function r(r,n,i,a){if(e.call(this),this.id=r,this.dispatcher=i,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,t.extend(this,t.pick(n,["url","scheme","tileSize","promoteId"])),this._options=t.extend({type:"vector"},n),this._collectResourceTiming=n.collectResourceTiming,512!==this.tileSize)throw new Error("vector tile sources must have a tileSize of 512");this.setEventedParent(a)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this;this._loaded=!1,this.fire(new t.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=M(this._options,this.map._requestManager,(function(r,n){e._tileJSONRequest=null,e._loaded=!0,r?e.fire(new t.ErrorEvent(r)):n&&(t.extend(e,n),n.bounds&&(e.tileBounds=new S(n.bounds,e.minzoom,e.maxzoom)),t.postTurnstileEvent(n.tiles,e.map._requestManager._customAccessToken),t.postMapLoadEvent(n.tiles,e.map._getMapId(),e.map._requestManager._skuToken,e.map._requestManager._customAccessToken),e.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})),e.fire(new t.Event("data",{dataType:"source",sourceDataType:"content"})))}))},r.prototype.loaded=function(){return this._loaded},r.prototype.hasTile=function(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.onRemove=function(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)},r.prototype.serialize=function(){return t.extend({},this._options)},r.prototype.loadTile=function(e,r){var n=this.map._requestManager.normalizeTileURL(e.tileID.canonical.url(this.tiles,this.scheme)),i={request:this.map._requestManager.transformRequest(n,t.ResourceType.Tile),uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,tileSize:this.tileSize*e.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:t.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};function a(n,i){return delete e.request,e.aborted?r(null):n&&404!==n.status?r(n):(i&&i.resourceTiming&&(e.resourceTiming=i.resourceTiming),this.map._refreshExpiredTiles&&i&&e.setExpiryData(i),e.loadVectorData(i,this.map.painter),t.cacheEntryPossiblyAdded(this.dispatcher),r(null),void(e.reloadCallback&&(this.loadTile(e,e.reloadCallback),e.reloadCallback=null)))}i.request.collectResourceTiming=this._collectResourceTiming,e.actor&&"expired"!==e.state?"loading"===e.state?e.reloadCallback=r:e.request=e.actor.send("reloadTile",i,a.bind(this)):(e.actor=this.dispatcher.getActor(),e.request=e.actor.send("loadTile",i,a.bind(this)))},r.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.actor&&t.actor.send("abortTile",{uid:t.uid,type:this.type,source:this.id},void 0)},r.prototype.unloadTile=function(t){t.unloadVectorData(),t.actor&&t.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id},void 0)},r.prototype.hasTransition=function(){return!1},r}(t.Evented),L=function(e){function r(r,n,i,a){e.call(this),this.id=r,this.dispatcher=i,this.setEventedParent(a),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=t.extend({type:"raster"},n),t.extend(this,t.pick(n,["url","scheme","tileSize"]))}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this;this._loaded=!1,this.fire(new t.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=M(this._options,this.map._requestManager,(function(r,n){e._tileJSONRequest=null,e._loaded=!0,r?e.fire(new t.ErrorEvent(r)):n&&(t.extend(e,n),n.bounds&&(e.tileBounds=new S(n.bounds,e.minzoom,e.maxzoom)),t.postTurnstileEvent(n.tiles),t.postMapLoadEvent(n.tiles,e.map._getMapId(),e.map._requestManager._skuToken),e.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})),e.fire(new t.Event("data",{dataType:"source",sourceDataType:"content"})))}))},r.prototype.loaded=function(){return this._loaded},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.onRemove=function(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)},r.prototype.serialize=function(){return t.extend({},this._options)},r.prototype.hasTile=function(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)},r.prototype.loadTile=function(e,r){var n=this,i=this.map._requestManager.normalizeTileURL(e.tileID.canonical.url(this.tiles,this.scheme),this.tileSize);e.request=t.getImage(this.map._requestManager.transformRequest(i,t.ResourceType.Tile),(function(i,a){if(delete e.request,e.aborted)e.state="unloaded",r(null);else if(i)e.state="errored",r(i);else if(a){n.map._refreshExpiredTiles&&e.setExpiryData(a),delete a.cacheControl,delete a.expires;var o=n.map.painter.context,s=o.gl;e.texture=n.map.painter.getTileTexture(a.width),e.texture?e.texture.update(a,{useMipmap:!0}):(e.texture=new t.Texture(o,a,s.RGBA,{useMipmap:!0}),e.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE,s.LINEAR_MIPMAP_NEAREST),o.extTextureFilterAnisotropic&&s.texParameterf(s.TEXTURE_2D,o.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,o.extTextureFilterAnisotropicMax)),e.state="loaded",t.cacheEntryPossiblyAdded(n.dispatcher),r(null)}}))},r.prototype.abortTile=function(t,e){t.request&&(t.request.cancel(),delete t.request),e()},r.prototype.unloadTile=function(t,e){t.texture&&this.map.painter.saveTileTexture(t.texture),e()},r.prototype.hasTransition=function(){return!1},r}(t.Evented),C=function(e){function r(r,n,i,a){e.call(this,r,n,i,a),this.type="raster-dem",this.maxzoom=22,this._options=t.extend({type:"raster-dem"},n),this.encoding=n.encoding||"mapbox"}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.serialize=function(){return{type:"raster-dem",url:this.url,tileSize:this.tileSize,tiles:this.tiles,bounds:this.bounds,encoding:this.encoding}},r.prototype.loadTile=function(e,r){var n=this.map._requestManager.normalizeTileURL(e.tileID.canonical.url(this.tiles,this.scheme),this.tileSize);function i(t,n){t&&(e.state="errored",r(t)),n&&(e.dem=n,e.needsHillshadePrepare=!0,e.state="loaded",r(null))}e.request=t.getImage(this.map._requestManager.transformRequest(n,t.ResourceType.Tile),function(n,a){if(delete e.request,e.aborted)e.state="unloaded",r(null);else if(n)e.state="errored",r(n);else if(a){this.map._refreshExpiredTiles&&e.setExpiryData(a),delete a.cacheControl,delete a.expires;var o=t.window.ImageBitmap&&a instanceof t.window.ImageBitmap&&t.offscreenCanvasSupported()?a:t.browser.getImageData(a,1),s={uid:e.uid,coord:e.tileID,source:this.id,rawImageData:o,encoding:this.encoding};e.actor&&"expired"!==e.state||(e.actor=this.dispatcher.getActor(),e.actor.send("loadDEMTile",s,i.bind(this)))}}.bind(this)),e.neighboringTiles=this._getNeighboringTiles(e.tileID)},r.prototype._getNeighboringTiles=function(e){var r=e.canonical,n=Math.pow(2,r.z),i=(r.x-1+n)%n,a=0===r.x?e.wrap-1:e.wrap,o=(r.x+1+n)%n,s=r.x+1===n?e.wrap+1:e.wrap,l={};return l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y).key]={backfilled:!1},r.y>0&&(l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,r.z,r.x,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y-1).key]={backfilled:!1}),r.y+1<n&&(l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y+1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,r.z,r.x,r.y+1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y+1).key]={backfilled:!1}),l},r.prototype.unloadTile=function(t){t.demTexture&&this.map.painter.saveTileTexture(t.demTexture),t.fbo&&(t.fbo.destroy(),delete t.fbo),t.dem&&delete t.dem,delete t.neighboringTiles,t.state="unloaded",t.actor&&t.actor.send("removeDEMTile",{uid:t.uid,source:this.id})},r}(L),P=function(e){function r(r,n,i,a){e.call(this),this.id=r,this.type="geojson",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._loaded=!1,this.actor=i.getActor(),this.setEventedParent(a),this._data=n.data,this._options=t.extend({},n),this._collectResourceTiming=n.collectResourceTiming,this._resourceTiming=[],void 0!==n.maxzoom&&(this.maxzoom=n.maxzoom),n.type&&(this.type=n.type),n.attribution&&(this.attribution=n.attribution),this.promoteId=n.promoteId;var o=t.EXTENT/this.tileSize;this.workerOptions=t.extend({source:this.id,cluster:n.cluster||!1,geojsonVtOptions:{buffer:(void 0!==n.buffer?n.buffer:128)*o,tolerance:(void 0!==n.tolerance?n.tolerance:.375)*o,extent:t.EXTENT,maxZoom:this.maxzoom,lineMetrics:n.lineMetrics||!1,generateId:n.generateId||!1},superclusterOptions:{maxZoom:void 0!==n.clusterMaxZoom?Math.min(n.clusterMaxZoom,this.maxzoom-1):this.maxzoom-1,extent:t.EXTENT,radius:(n.clusterRadius||50)*o,log:!1,generateId:n.generateId||!1},clusterProperties:n.clusterProperties},n.workerOptions)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this;this.fire(new t.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(r){if(r)e.fire(new t.ErrorEvent(r));else{var n={dataType:"source",sourceDataType:"metadata"};e._collectResourceTiming&&e._resourceTiming&&e._resourceTiming.length>0&&(n.resourceTiming=e._resourceTiming,e._resourceTiming=[]),e.fire(new t.Event("data",n))}}))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setData=function(e){var r=this;return this._data=e,this.fire(new t.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(e){if(e)r.fire(new t.ErrorEvent(e));else{var n={dataType:"source",sourceDataType:"content"};r._collectResourceTiming&&r._resourceTiming&&r._resourceTiming.length>0&&(n.resourceTiming=r._resourceTiming,r._resourceTiming=[]),r.fire(new t.Event("data",n))}})),this},r.prototype.getClusterExpansionZoom=function(t,e){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:t,source:this.id},e),this},r.prototype.getClusterChildren=function(t,e){return this.actor.send("geojson.getClusterChildren",{clusterId:t,source:this.id},e),this},r.prototype.getClusterLeaves=function(t,e,r,n){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:t,limit:e,offset:r},n),this},r.prototype._updateWorkerData=function(e){var r=this;this._loaded=!1;var n=t.extend({},this.workerOptions),i=this._data;"string"==typeof i?(n.request=this.map._requestManager.transformRequest(t.browser.resolveURL(i),t.ResourceType.Source),n.request.collectResourceTiming=this._collectResourceTiming):n.data=JSON.stringify(i),this.actor.send(this.type+".loadData",n,(function(t,i){r._removed||i&&i.abandoned||(r._loaded=!0,i&&i.resourceTiming&&i.resourceTiming[r.id]&&(r._resourceTiming=i.resourceTiming[r.id].slice(0)),r.actor.send(r.type+".coalesce",{source:n.source},null),e(t))}))},r.prototype.loaded=function(){return this._loaded},r.prototype.loadTile=function(e,r){var n=this,i=e.actor?"reloadTile":"loadTile";e.actor=this.actor;var a={type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:t.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};e.request=this.actor.send(i,a,(function(t,a){return delete e.request,e.unloadVectorData(),e.aborted?r(null):t?r(t):(e.loadVectorData(a,n.map.painter,"reloadTile"===i),r(null))}))},r.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0},r.prototype.unloadTile=function(t){t.unloadVectorData(),this.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id})},r.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id})},r.prototype.serialize=function(){return t.extend({},this._options,{type:this.type,data:this._data})},r.prototype.hasTransition=function(){return!1},r}(t.Evented),O=t.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),I=function(e){function r(t,r,n,i){e.call(this),this.id=t,this.dispatcher=n,this.coordinates=r.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(i),this.options=r}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(e,r){var n=this;this._loaded=!1,this.fire(new t.Event("dataloading",{dataType:"source"})),this.url=this.options.url,t.getImage(this.map._requestManager.transformRequest(this.url,t.ResourceType.Image),(function(i,a){n._loaded=!0,i?n.fire(new t.ErrorEvent(i)):a&&(n.image=a,e&&(n.coordinates=e),r&&r(),n._finishLoading())}))},r.prototype.loaded=function(){return this._loaded},r.prototype.updateImage=function(t){var e=this;return this.image&&t.url?(this.options.url=t.url,this.load(t.coordinates,(function(){e.texture=null})),this):this},r.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setCoordinates=function(e){var r=this;this.coordinates=e;var n=e.map(t.MercatorCoordinate.fromLngLat);this.tileID=function(e){for(var r=1/0,n=1/0,i=-1/0,a=-1/0,o=0,s=e;o<s.length;o+=1){var l=s[o];r=Math.min(r,l.x),n=Math.min(n,l.y),i=Math.max(i,l.x),a=Math.max(a,l.y)}var u=i-r,c=a-n,f=Math.max(u,c),h=Math.max(0,Math.floor(-Math.log(f)/Math.LN2)),p=Math.pow(2,h);return new t.CanonicalTileID(h,Math.floor((r+i)/2*p),Math.floor((n+a)/2*p))}(n),this.minzoom=this.maxzoom=this.tileID.z;var i=n.map((function(t){return r.tileID.getTilePoint(t)._round()}));return this._boundsArray=new t.StructArrayLayout4i8,this._boundsArray.emplaceBack(i[0].x,i[0].y,0,0),this._boundsArray.emplaceBack(i[1].x,i[1].y,t.EXTENT,0),this._boundsArray.emplaceBack(i[3].x,i[3].y,0,t.EXTENT),this._boundsArray.emplaceBack(i[2].x,i[2].y,t.EXTENT,t.EXTENT),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new t.Event("data",{dataType:"source",sourceDataType:"content"})),this},r.prototype.prepare=function(){if(0!==Object.keys(this.tiles).length&&this.image){var e=this.map.painter.context,r=e.gl;for(var n in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,O.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new t.Texture(e,this.image,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE)),this.tiles){var i=this.tiles[n];"loaded"!==i.state&&(i.state="loaded",i.texture=this.texture)}}},r.prototype.loadTile=function(t,e){this.tileID&&this.tileID.equals(t.tileID.canonical)?(this.tiles[String(t.tileID.wrap)]=t,t.buckets={},e(null)):(t.state="errored",e(null))},r.prototype.serialize=function(){return{type:"image",url:this.options.url,coordinates:this.coordinates}},r.prototype.hasTransition=function(){return!1},r}(t.Evented);var D=function(e){function r(t,r,n,i){e.call(this,t,r,n,i),this.roundZoom=!0,this.type="video",this.options=r}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){var e=this;this._loaded=!1;var r=this.options;this.urls=[];for(var n=0,i=r.urls;n<i.length;n+=1){var a=i[n];this.urls.push(this.map._requestManager.transformRequest(a,t.ResourceType.Source).url)}t.getVideo(this.urls,(function(r,n){e._loaded=!0,r?e.fire(new t.ErrorEvent(r)):n&&(e.video=n,e.video.loop=!0,e.video.addEventListener("playing",(function(){e.map.triggerRepaint()})),e.map&&e.video.play(),e._finishLoading())}))},r.prototype.pause=function(){this.video&&this.video.pause()},r.prototype.play=function(){this.video&&this.video.play()},r.prototype.seek=function(e){if(this.video){var r=this.video.seekable;e<r.start(0)||e>r.end(0)?this.fire(new t.ErrorEvent(new t.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+r.start(0)+" and "+r.end(0)+"-second mark."))):this.video.currentTime=e}},r.prototype.getVideo=function(){return this.video},r.prototype.onAdd=function(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},r.prototype.prepare=function(){if(!(0===Object.keys(this.tiles).length||this.video.readyState<2)){var e=this.map.painter.context,r=e.gl;for(var n in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,O.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE),r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,this.video)):(this.texture=new t.Texture(e,this.video,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE)),this.tiles){var i=this.tiles[n];"loaded"!==i.state&&(i.state="loaded",i.texture=this.texture)}}},r.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this.video&&!this.video.paused},r}(I),z=function(e){function r(r,n,i,a){e.call(this,r,n,i,a),n.coordinates?Array.isArray(n.coordinates)&&4===n.coordinates.length&&!n.coordinates.some((function(t){return!Array.isArray(t)||2!==t.length||t.some((function(t){return"number"!=typeof t}))}))||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'missing required property "coordinates"'))),n.animate&&"boolean"!=typeof n.animate&&this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'optional "animate" property must be a boolean value'))),n.canvas?"string"==typeof n.canvas||n.canvas instanceof t.window.HTMLCanvasElement||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'missing required property "canvas"'))),this.options=n,this.animate=void 0===n.animate||n.animate}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof t.window.HTMLCanvasElement?this.options.canvas:t.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new t.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},r.prototype.getCanvas=function(){return this.canvas},r.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()},r.prototype.onRemove=function(){this.pause()},r.prototype.prepare=function(){var e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),!this._hasInvalidDimensions()&&0!==Object.keys(this.tiles).length){var r=this.map.painter.context,n=r.gl;for(var i in this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,O.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new t.Texture(r,this.canvas,n.RGBA,{premultiply:!0}),this.tiles){var a=this.tiles[i];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture)}}},r.prototype.serialize=function(){return{type:"canvas",coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this._playing},r.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];t<e.length;t+=1){var r=e[t];if(isNaN(r)||r<=0)return!0}return!1},r}(I),R={vector:E,raster:L,"raster-dem":C,geojson:P,video:D,image:I,canvas:z};function F(e,r){var n=t.identity([]);return t.translate(n,n,[1,1,0]),t.scale(n,n,[.5*e.width,.5*e.height,1]),t.multiply(n,n,e.calculatePosMatrix(r.toUnwrapped()))}function B(t,e,r,n,i,a){var o=function(t,e,r){if(t)for(var n=0,i=t;n<i.length;n+=1){var a=e[i[n]];if(a&&a.source===r&&"fill-extrusion"===a.type)return!0}else for(var o in e){var s=e[o];if(s.source===r&&"fill-extrusion"===s.type)return!0}return!1}(i&&i.layers,e,t.id),s=a.maxPitchScaleFactor(),l=t.tilesIn(n,s,o);l.sort(N);for(var u=[],c=0,f=l;c<f.length;c+=1){var h=f[c];u.push({wrappedTileID:h.tileID.wrapped().key,queryResults:h.tile.queryRenderedFeatures(e,r,t._state,h.queryGeometry,h.cameraQueryGeometry,h.scale,i,a,s,F(t.transform,h.tileID))})}var p=function(t){for(var e={},r={},n=0,i=t;n<i.length;n+=1){var a=i[n],o=a.queryResults,s=a.wrappedTileID,l=r[s]=r[s]||{};for(var u in o)for(var c=o[u],f=l[u]=l[u]||{},h=e[u]=e[u]||[],p=0,d=c;p<d.length;p+=1){var v=d[p];f[v.featureIndex]||(f[v.featureIndex]=!0,h.push(v))}}return e}(u);for(var d in p)p[d].forEach((function(e){var r=e.feature,n=t.getFeatureState(r.layer["source-layer"],r.id);r.source=r.layer.source,r.layer["source-layer"]&&(r.sourceLayer=r.layer["source-layer"]),r.state=n}));return p}function N(t,e){var r=t.tileID,n=e.tileID;return r.overscaledZ-n.overscaledZ||r.canonical.y-n.canonical.y||r.wrap-n.wrap||r.canonical.x-n.canonical.x}var j=function(t,e){this.max=t,this.onRemove=e,this.reset()};j.prototype.reset=function(){for(var t in this.data)for(var e=0,r=this.data[t];e<r.length;e+=1){var n=r[e];n.timeout&&clearTimeout(n.timeout),this.onRemove(n.value)}return this.data={},this.order=[],this},j.prototype.add=function(t,e,r){var n=this,i=t.wrapped().key;void 0===this.data[i]&&(this.data[i]=[]);var a={value:e,timeout:void 0};if(void 0!==r&&(a.timeout=setTimeout((function(){n.remove(t,a)}),r)),this.data[i].push(a),this.order.push(i),this.order.length>this.max){var o=this._getAndRemoveByKey(this.order[0]);o&&this.onRemove(o)}return this},j.prototype.has=function(t){return t.wrapped().key in this.data},j.prototype.getAndRemove=function(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null},j.prototype._getAndRemoveByKey=function(t){var e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value},j.prototype.getByKey=function(t){var e=this.data[t];return e?e[0].value:null},j.prototype.get=function(t){return this.has(t)?this.data[t.wrapped().key][0].value:null},j.prototype.remove=function(t,e){if(!this.has(t))return this;var r=t.wrapped().key,n=void 0===e?0:this.data[r].indexOf(e),i=this.data[r][n];return this.data[r].splice(n,1),i.timeout&&clearTimeout(i.timeout),0===this.data[r].length&&delete this.data[r],this.onRemove(i.value),this.order.splice(this.order.indexOf(r),1),this},j.prototype.setMaxSize=function(t){for(this.max=t;this.order.length>this.max;){var e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this},j.prototype.filter=function(t){var e=[];for(var r in this.data)for(var n=0,i=this.data[r];n<i.length;n+=1){var a=i[n];t(a.value)||e.push(a)}for(var o=0,s=e;o<s.length;o+=1){var l=s[o];this.remove(l.value.tileID,l)}};var U=function(t,e,r){this.context=t;var n=t.gl;this.buffer=n.createBuffer(),this.dynamicDraw=Boolean(r),this.context.unbindVAO(),t.bindElementBuffer.set(this.buffer),n.bufferData(n.ELEMENT_ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?n.DYNAMIC_DRAW:n.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer};U.prototype.bind=function(){this.context.bindElementBuffer.set(this.buffer)},U.prototype.updateData=function(t){var e=this.context.gl;this.context.unbindVAO(),this.bind(),e.bufferSubData(e.ELEMENT_ARRAY_BUFFER,0,t.arrayBuffer)},U.prototype.destroy=function(){var t=this.context.gl;this.buffer&&(t.deleteBuffer(this.buffer),delete this.buffer)};var V={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"},H=function(t,e,r,n){this.length=e.length,this.attributes=r,this.itemSize=e.bytesPerElement,this.dynamicDraw=n,this.context=t;var i=t.gl;this.buffer=i.createBuffer(),t.bindVertexBuffer.set(this.buffer),i.bufferData(i.ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?i.DYNAMIC_DRAW:i.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer};H.prototype.bind=function(){this.context.bindVertexBuffer.set(this.buffer)},H.prototype.updateData=function(t){var e=this.context.gl;this.bind(),e.bufferSubData(e.ARRAY_BUFFER,0,t.arrayBuffer)},H.prototype.enableAttributes=function(t,e){for(var r=0;r<this.attributes.length;r++){var n=this.attributes[r],i=e.attributes[n.name];void 0!==i&&t.enableVertexAttribArray(i)}},H.prototype.setVertexAttribPointers=function(t,e,r){for(var n=0;n<this.attributes.length;n++){var i=this.attributes[n],a=e.attributes[i.name];void 0!==a&&t.vertexAttribPointer(a,i.components,t[V[i.type]],!1,this.itemSize,i.offset+this.itemSize*(r||0))}},H.prototype.destroy=function(){var t=this.context.gl;this.buffer&&(t.deleteBuffer(this.buffer),delete this.buffer)};var q=function(t){this.gl=t.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1};q.prototype.get=function(){return this.current},q.prototype.set=function(t){},q.prototype.getDefault=function(){return this.default},q.prototype.setDefault=function(){this.set(this.default)};var G=function(e){function r(){e.apply(this,arguments)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.getDefault=function(){return t.Color.transparent},r.prototype.set=function(t){var e=this.current;(t.r!==e.r||t.g!==e.g||t.b!==e.b||t.a!==e.a||this.dirty)&&(this.gl.clearColor(t.r,t.g,t.b,t.a),this.current=t,this.dirty=!1)},r}(q),Z=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return 1},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.clearDepth(t),this.current=t,this.dirty=!1)},e}(q),Y=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return 0},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.clearStencil(t),this.current=t,this.dirty=!1)},e}(q),W=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return[!0,!0,!0,!0]},e.prototype.set=function(t){var e=this.current;(t[0]!==e[0]||t[1]!==e[1]||t[2]!==e[2]||t[3]!==e[3]||this.dirty)&&(this.gl.colorMask(t[0],t[1],t[2],t[3]),this.current=t,this.dirty=!1)},e}(q),X=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return!0},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.depthMask(t),this.current=t,this.dirty=!1)},e}(q),J=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return 255},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.stencilMask(t),this.current=t,this.dirty=!1)},e}(q),K=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return{func:this.gl.ALWAYS,ref:0,mask:255}},e.prototype.set=function(t){var e=this.current;(t.func!==e.func||t.ref!==e.ref||t.mask!==e.mask||this.dirty)&&(this.gl.stencilFunc(t.func,t.ref,t.mask),this.current=t,this.dirty=!1)},e}(q),$=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){var t=this.gl;return[t.KEEP,t.KEEP,t.KEEP]},e.prototype.set=function(t){var e=this.current;(t[0]!==e[0]||t[1]!==e[1]||t[2]!==e[2]||this.dirty)&&(this.gl.stencilOp(t[0],t[1],t[2]),this.current=t,this.dirty=!1)},e}(q),Q=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return!1},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;t?e.enable(e.STENCIL_TEST):e.disable(e.STENCIL_TEST),this.current=t,this.dirty=!1}},e}(q),tt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return[0,1]},e.prototype.set=function(t){var e=this.current;(t[0]!==e[0]||t[1]!==e[1]||this.dirty)&&(this.gl.depthRange(t[0],t[1]),this.current=t,this.dirty=!1)},e}(q),et=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return!1},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;t?e.enable(e.DEPTH_TEST):e.disable(e.DEPTH_TEST),this.current=t,this.dirty=!1}},e}(q),rt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return this.gl.LESS},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.depthFunc(t),this.current=t,this.dirty=!1)},e}(q),nt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return!1},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;t?e.enable(e.BLEND):e.disable(e.BLEND),this.current=t,this.dirty=!1}},e}(q),it=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){var t=this.gl;return[t.ONE,t.ZERO]},e.prototype.set=function(t){var e=this.current;(t[0]!==e[0]||t[1]!==e[1]||this.dirty)&&(this.gl.blendFunc(t[0],t[1]),this.current=t,this.dirty=!1)},e}(q),at=function(e){function r(){e.apply(this,arguments)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.getDefault=function(){return t.Color.transparent},r.prototype.set=function(t){var e=this.current;(t.r!==e.r||t.g!==e.g||t.b!==e.b||t.a!==e.a||this.dirty)&&(this.gl.blendColor(t.r,t.g,t.b,t.a),this.current=t,this.dirty=!1)},r}(q),ot=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return this.gl.FUNC_ADD},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.blendEquation(t),this.current=t,this.dirty=!1)},e}(q),st=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return!1},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;t?e.enable(e.CULL_FACE):e.disable(e.CULL_FACE),this.current=t,this.dirty=!1}},e}(q),lt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return this.gl.BACK},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.cullFace(t),this.current=t,this.dirty=!1)},e}(q),ut=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return this.gl.CCW},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.frontFace(t),this.current=t,this.dirty=!1)},e}(q),ct=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.useProgram(t),this.current=t,this.dirty=!1)},e}(q),ft=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return this.gl.TEXTURE0},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.activeTexture(t),this.current=t,this.dirty=!1)},e}(q),ht=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){var t=this.gl;return[0,0,t.drawingBufferWidth,t.drawingBufferHeight]},e.prototype.set=function(t){var e=this.current;(t[0]!==e[0]||t[1]!==e[1]||t[2]!==e[2]||t[3]!==e[3]||this.dirty)&&(this.gl.viewport(t[0],t[1],t[2],t[3]),this.current=t,this.dirty=!1)},e}(q),pt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.bindFramebuffer(e.FRAMEBUFFER,t),this.current=t,this.dirty=!1}},e}(q),dt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.bindRenderbuffer(e.RENDERBUFFER,t),this.current=t,this.dirty=!1}},e}(q),vt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.bindTexture(e.TEXTURE_2D,t),this.current=t,this.dirty=!1}},e}(q),gt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.bindBuffer(e.ARRAY_BUFFER,t),this.current=t,this.dirty=!1}},e}(q),yt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){var e=this.gl;e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),this.current=t,this.dirty=!1},e}(q),mt=function(t){function e(e){t.call(this,e),this.vao=e.extVertexArrayObject}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){this.vao&&(t!==this.current||this.dirty)&&(this.vao.bindVertexArrayOES(t),this.current=t,this.dirty=!1)},e}(q),xt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return 4},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.pixelStorei(e.UNPACK_ALIGNMENT,t),this.current=t,this.dirty=!1}},e}(q),bt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return!1},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t),this.current=t,this.dirty=!1}},e}(q),_t=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return!1},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,t),this.current=t,this.dirty=!1}},e}(q),wt=function(t){function e(e,r){t.call(this,e),this.context=e,this.parent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDefault=function(){return null},e}(q),Tt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setDirty=function(){this.dirty=!0},e.prototype.set=function(t){if(t!==this.current||this.dirty){this.context.bindFramebuffer.set(this.parent);var e=this.gl;e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0),this.current=t,this.dirty=!1}},e}(wt),kt=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){if(t!==this.current||this.dirty){this.context.bindFramebuffer.set(this.parent);var e=this.gl;e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t),this.current=t,this.dirty=!1}},e}(wt),At=function(t,e,r,n){this.context=t,this.width=e,this.height=r;var i=t.gl,a=this.framebuffer=i.createFramebuffer();this.colorAttachment=new Tt(t,a),n&&(this.depthAttachment=new kt(t,a))};At.prototype.destroy=function(){var t=this.context.gl,e=this.colorAttachment.get();if(e&&t.deleteTexture(e),this.depthAttachment){var r=this.depthAttachment.get();r&&t.deleteRenderbuffer(r)}t.deleteFramebuffer(this.framebuffer)};var Mt=function(t,e,r){this.func=t,this.mask=e,this.range=r};Mt.ReadOnly=!1,Mt.ReadWrite=!0,Mt.disabled=new Mt(519,Mt.ReadOnly,[0,1]);var St=7680,Et=function(t,e,r,n,i,a){this.test=t,this.ref=e,this.mask=r,this.fail=n,this.depthFail=i,this.pass=a};Et.disabled=new Et({func:519,mask:0},0,0,St,St,St);var Lt=function(t,e,r){this.blendFunction=t,this.blendColor=e,this.mask=r};Lt.disabled=new Lt(Lt.Replace=[1,0],t.Color.transparent,[!1,!1,!1,!1]),Lt.unblended=new Lt(Lt.Replace,t.Color.transparent,[!0,!0,!0,!0]),Lt.alphaBlended=new Lt([1,771],t.Color.transparent,[!0,!0,!0,!0]);var Ct=function(t,e,r){this.enable=t,this.mode=e,this.frontFace=r};Ct.disabled=new Ct(!1,1029,2305),Ct.backCCW=new Ct(!0,1029,2305);var Pt=function(t){this.gl=t,this.extVertexArrayObject=this.gl.getExtension("OES_vertex_array_object"),this.clearColor=new G(this),this.clearDepth=new Z(this),this.clearStencil=new Y(this),this.colorMask=new W(this),this.depthMask=new X(this),this.stencilMask=new J(this),this.stencilFunc=new K(this),this.stencilOp=new $(this),this.stencilTest=new Q(this),this.depthRange=new tt(this),this.depthTest=new et(this),this.depthFunc=new rt(this),this.blend=new nt(this),this.blendFunc=new it(this),this.blendColor=new at(this),this.blendEquation=new ot(this),this.cullFace=new st(this),this.cullFaceSide=new lt(this),this.frontFace=new ut(this),this.program=new ct(this),this.activeTexture=new ft(this),this.viewport=new ht(this),this.bindFramebuffer=new pt(this),this.bindRenderbuffer=new dt(this),this.bindTexture=new vt(this),this.bindVertexBuffer=new gt(this),this.bindElementBuffer=new yt(this),this.bindVertexArrayOES=this.extVertexArrayObject&&new mt(this),this.pixelStoreUnpack=new xt(this),this.pixelStoreUnpackPremultiplyAlpha=new bt(this),this.pixelStoreUnpackFlipY=new _t(this),this.extTextureFilterAnisotropic=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=t.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.extTextureHalfFloat=t.getExtension("OES_texture_half_float"),this.extTextureHalfFloat&&(t.getExtension("OES_texture_half_float_linear"),this.extRenderToTextureHalfFloat=t.getExtension("EXT_color_buffer_half_float")),this.extTimerQuery=t.getExtension("EXT_disjoint_timer_query")};Pt.prototype.setDefault=function(){this.unbindVAO(),this.clearColor.setDefault(),this.clearDepth.setDefault(),this.clearStencil.setDefault(),this.colorMask.setDefault(),this.depthMask.setDefault(),this.stencilMask.setDefault(),this.stencilFunc.setDefault(),this.stencilOp.setDefault(),this.stencilTest.setDefault(),this.depthRange.setDefault(),this.depthTest.setDefault(),this.depthFunc.setDefault(),this.blend.setDefault(),this.blendFunc.setDefault(),this.blendColor.setDefault(),this.blendEquation.setDefault(),this.cullFace.setDefault(),this.cullFaceSide.setDefault(),this.frontFace.setDefault(),this.program.setDefault(),this.activeTexture.setDefault(),this.bindFramebuffer.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault()},Pt.prototype.setDirty=function(){this.clearColor.dirty=!0,this.clearDepth.dirty=!0,this.clearStencil.dirty=!0,this.colorMask.dirty=!0,this.depthMask.dirty=!0,this.stencilMask.dirty=!0,this.stencilFunc.dirty=!0,this.stencilOp.dirty=!0,this.stencilTest.dirty=!0,this.depthRange.dirty=!0,this.depthTest.dirty=!0,this.depthFunc.dirty=!0,this.blend.dirty=!0,this.blendFunc.dirty=!0,this.blendColor.dirty=!0,this.blendEquation.dirty=!0,this.cullFace.dirty=!0,this.cullFaceSide.dirty=!0,this.frontFace.dirty=!0,this.program.dirty=!0,this.activeTexture.dirty=!0,this.viewport.dirty=!0,this.bindFramebuffer.dirty=!0,this.bindRenderbuffer.dirty=!0,this.bindTexture.dirty=!0,this.bindVertexBuffer.dirty=!0,this.bindElementBuffer.dirty=!0,this.extVertexArrayObject&&(this.bindVertexArrayOES.dirty=!0),this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0},Pt.prototype.createIndexBuffer=function(t,e){return new U(this,t,e)},Pt.prototype.createVertexBuffer=function(t,e,r){return new H(this,t,e,r)},Pt.prototype.createRenderbuffer=function(t,e,r){var n=this.gl,i=n.createRenderbuffer();return this.bindRenderbuffer.set(i),n.renderbufferStorage(n.RENDERBUFFER,t,e,r),this.bindRenderbuffer.set(null),i},Pt.prototype.createFramebuffer=function(t,e,r){return new At(this,t,e,r)},Pt.prototype.clear=function(t){var e=t.color,r=t.depth,n=this.gl,i=0;e&&(i|=n.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set([!0,!0,!0,!0])),void 0!==r&&(i|=n.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(r),this.depthMask.set(!0)),n.clear(i)},Pt.prototype.setCullFace=function(t){!1===t.enable?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(t.mode),this.frontFace.set(t.frontFace))},Pt.prototype.setDepthMode=function(t){t.func!==this.gl.ALWAYS||t.mask?(this.depthTest.set(!0),this.depthFunc.set(t.func),this.depthMask.set(t.mask),this.depthRange.set(t.range)):this.depthTest.set(!1)},Pt.prototype.setStencilMode=function(t){t.test.func!==this.gl.ALWAYS||t.mask?(this.stencilTest.set(!0),this.stencilMask.set(t.mask),this.stencilOp.set([t.fail,t.depthFail,t.pass]),this.stencilFunc.set({func:t.test.func,ref:t.ref,mask:t.test.mask})):this.stencilTest.set(!1)},Pt.prototype.setColorMode=function(e){t.deepEqual(e.blendFunction,Lt.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(e.blendFunction),this.blendColor.set(e.blendColor)),this.colorMask.set(e.mask)},Pt.prototype.unbindVAO=function(){this.extVertexArrayObject&&this.bindVertexArrayOES.set(null)};var Ot=function(e){function r(r,n,i){var a=this;e.call(this),this.id=r,this.dispatcher=i,this.on("data",(function(t){"source"===t.dataType&&"metadata"===t.sourceDataType&&(a._sourceLoaded=!0),a._sourceLoaded&&!a._paused&&"source"===t.dataType&&"content"===t.sourceDataType&&(a.reload(),a.transform&&a.update(a.transform))})),this.on("error",(function(){a._sourceErrored=!0})),this._source=function(e,r,n,i){var a=new R[r.type](e,r,n,i);if(a.id!==e)throw new Error("Expected Source id to be "+e+" instead of "+a.id);return t.bindAll(["load","abort","unload","serialize","prepare"],a),a}(r,n,i,this),this._tiles={},this._cache=new j(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new t.SourceFeatureState}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.onAdd=function(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._source&&this._source.onAdd&&this._source.onAdd(t)},r.prototype.onRemove=function(t){this._source&&this._source.onRemove&&this._source.onRemove(t)},r.prototype.loaded=function(){if(this._sourceErrored)return!0;if(!this._sourceLoaded)return!1;if(!this._source.loaded())return!1;for(var t in this._tiles){var e=this._tiles[t];if("loaded"!==e.state&&"errored"!==e.state)return!1}return!0},r.prototype.getSource=function(){return this._source},r.prototype.pause=function(){this._paused=!0},r.prototype.resume=function(){if(this._paused){var t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform)}},r.prototype._loadTile=function(t,e){return this._source.loadTile(t,e)},r.prototype._unloadTile=function(t){if(this._source.unloadTile)return this._source.unloadTile(t,(function(){}))},r.prototype._abortTile=function(t){if(this._source.abortTile)return this._source.abortTile(t,(function(){}))},r.prototype.serialize=function(){return this._source.serialize()},r.prototype.prepare=function(t){for(var e in this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null),this._tiles){var r=this._tiles[e];r.upload(t),r.prepare(this.map.style.imageManager)}},r.prototype.getIds=function(){return t.values(this._tiles).map((function(t){return t.tileID})).sort(It).map((function(t){return t.key}))},r.prototype.getRenderableIds=function(e){var r=this,n=[];for(var i in this._tiles)this._isIdRenderable(i,e)&&n.push(this._tiles[i]);return e?n.sort((function(e,n){var i=e.tileID,a=n.tileID,o=new t.Point(i.canonical.x,i.canonical.y)._rotate(r.transform.angle),s=new t.Point(a.canonical.x,a.canonical.y)._rotate(r.transform.angle);return i.overscaledZ-a.overscaledZ||s.y-o.y||s.x-o.x})).map((function(t){return t.tileID.key})):n.map((function(t){return t.tileID})).sort(It).map((function(t){return t.key}))},r.prototype.hasRenderableParent=function(t){var e=this.findLoadedParent(t,0);return!!e&&this._isIdRenderable(e.tileID.key)},r.prototype._isIdRenderable=function(t,e){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]&&(e||!this._tiles[t].holdingForFade())},r.prototype.reload=function(){if(this._paused)this._shouldReloadOnResume=!0;else for(var t in this._cache.reset(),this._tiles)"errored"!==this._tiles[t].state&&this._reloadTile(t,"reloading")},r.prototype._reloadTile=function(t,e){var r=this._tiles[t];r&&("loading"!==r.state&&(r.state=e),this._loadTile(r,this._tileLoaded.bind(this,r,t,e)))},r.prototype._tileLoaded=function(e,r,n,i){if(i)return e.state="errored",void(404!==i.status?this._source.fire(new t.ErrorEvent(i,{tile:e})):this.update(this.transform));e.timeAdded=t.browser.now(),"expired"===n&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(r,e),"raster-dem"===this.getSource().type&&e.dem&&this._backfillDEM(e),this._state.initializeTileState(e,this.map?this.map.painter:null),this._source.fire(new t.Event("data",{dataType:"source",tile:e,coord:e.tileID}))},r.prototype._backfillDEM=function(t){for(var e=this.getRenderableIds(),r=0;r<e.length;r++){var n=e[r];if(t.neighboringTiles&&t.neighboringTiles[n]){var i=this.getTileByID(n);a(t,i),a(i,t)}}function a(t,e){t.needsHillshadePrepare=!0;var r=e.tileID.canonical.x-t.tileID.canonical.x,n=e.tileID.canonical.y-t.tileID.canonical.y,i=Math.pow(2,t.tileID.canonical.z),a=e.tileID.key;0===r&&0===n||Math.abs(n)>1||(Math.abs(r)>1&&(1===Math.abs(r+i)?r+=i:1===Math.abs(r-i)&&(r-=i)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,r,n),t.neighboringTiles&&t.neighboringTiles[a]&&(t.neighboringTiles[a].backfilled=!0)))}},r.prototype.getTile=function(t){return this.getTileByID(t.key)},r.prototype.getTileByID=function(t){return this._tiles[t]},r.prototype._retainLoadedChildren=function(t,e,r,n){for(var i in this._tiles){var a=this._tiles[i];if(!(n[i]||!a.hasData()||a.tileID.overscaledZ<=e||a.tileID.overscaledZ>r)){for(var o=a.tileID;a&&a.tileID.overscaledZ>e+1;){var s=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[s.key])&&a.hasData()&&(o=s)}for(var l=o;l.overscaledZ>e;)if(t[(l=l.scaledTo(l.overscaledZ-1)).key]){n[o.key]=o;break}}}},r.prototype.findLoadedParent=function(t,e){if(t.key in this._loadedParentTiles){var r=this._loadedParentTiles[t.key];return r&&r.tileID.overscaledZ>=e?r:null}for(var n=t.overscaledZ-1;n>=e;n--){var i=t.scaledTo(n),a=this._getLoadedTile(i);if(a)return a}},r.prototype._getLoadedTile=function(t){var e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)},r.prototype.updateCacheSize=function(t){var e=(Math.ceil(t.width/this._source.tileSize)+1)*(Math.ceil(t.height/this._source.tileSize)+1),r=Math.floor(5*e),n="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,r):r;this._cache.setMaxSize(n)},r.prototype.handleWrapJump=function(t){var e=(t-(void 0===this._prevLng?t:this._prevLng))/360,r=Math.round(e);if(this._prevLng=t,r){var n={};for(var i in this._tiles){var a=this._tiles[i];a.tileID=a.tileID.unwrapTo(a.tileID.wrap+r),n[a.tileID.key]=a}for(var o in this._tiles=n,this._timers)clearTimeout(this._timers[o]),delete this._timers[o];for(var s in this._tiles){var l=this._tiles[s];this._setTileReloadTimer(s,l)}}},r.prototype.update=function(e){var n=this;if(this.transform=e,this._sourceLoaded&&!this._paused){var i;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?i=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((function(e){return new t.OverscaledTileID(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y)})):(i=e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(i=i.filter((function(t){return n._source.hasTile(t)})))):i=[];var a=e.coveringZoomLevel(this._source),o=Math.max(a-r.maxOverzooming,this._source.minzoom),s=Math.max(a+r.maxUnderzooming,this._source.minzoom),l=this._updateRetainedTiles(i,a);if(Dt(this._source.type)){for(var u={},c={},f=0,h=Object.keys(l);f<h.length;f+=1){var p=h[f],d=l[p],v=this._tiles[p];if(v&&!(v.fadeEndTime&&v.fadeEndTime<=t.browser.now())){var g=this.findLoadedParent(d,o);g&&(this._addTile(g.tileID),u[g.tileID.key]=g.tileID),c[p]=d}}for(var y in this._retainLoadedChildren(c,a,s,l),u)l[y]||(this._coveredTiles[y]=!0,l[y]=u[y])}for(var m in l)this._tiles[m].clearFadeHold();for(var x=0,b=t.keysDifference(this._tiles,l);x<b.length;x+=1){var _=b[x],w=this._tiles[_];w.hasSymbolBuckets&&!w.holdingForFade()?w.setHoldDuration(this.map._fadeDuration):w.hasSymbolBuckets&&!w.symbolFadeFinished()||this._removeTile(_)}this._updateLoadedParentTileCache()}},r.prototype.releaseSymbolFadeTiles=function(){for(var t in this._tiles)this._tiles[t].holdingForFade()&&this._removeTile(t)},r.prototype._updateRetainedTiles=function(t,e){for(var n={},i={},a=Math.max(e-r.maxOverzooming,this._source.minzoom),o=Math.max(e+r.maxUnderzooming,this._source.minzoom),s={},l=0,u=t;l<u.length;l+=1){var c=u[l],f=this._addTile(c);n[c.key]=c,f.hasData()||e<this._source.maxzoom&&(s[c.key]=c)}this._retainLoadedChildren(s,e,o,n);for(var h=0,p=t;h<p.length;h+=1){var d=p[h],v=this._tiles[d.key];if(!v.hasData()){if(e+1>this._source.maxzoom){var g=d.children(this._source.maxzoom)[0],y=this.getTile(g);if(y&&y.hasData()){n[g.key]=g;continue}}else{var m=d.children(this._source.maxzoom);if(n[m[0].key]&&n[m[1].key]&&n[m[2].key]&&n[m[3].key])continue}for(var x=v.wasRequested(),b=d.overscaledZ-1;b>=a;--b){var _=d.scaledTo(b);if(i[_.key])break;if(i[_.key]=!0,!(v=this.getTile(_))&&x&&(v=this._addTile(_)),v&&(n[_.key]=_,x=v.wasRequested(),v.hasData()))break}}}return n},r.prototype._updateLoadedParentTileCache=function(){for(var t in this._loadedParentTiles={},this._tiles){for(var e=[],r=void 0,n=this._tiles[t].tileID;n.overscaledZ>0;){if(n.key in this._loadedParentTiles){r=this._loadedParentTiles[n.key];break}e.push(n.key);var i=n.scaledTo(n.overscaledZ-1);if(r=this._getLoadedTile(i))break;n=i}for(var a=0,o=e;a<o.length;a+=1){var s=o[a];this._loadedParentTiles[s]=r}}},r.prototype._addTile=function(e){var r=this._tiles[e.key];if(r)return r;(r=this._cache.getAndRemove(e))&&(this._setTileReloadTimer(e.key,r),r.tileID=e,this._state.initializeTileState(r,this.map?this.map.painter:null),this._cacheTimers[e.key]&&(clearTimeout(this._cacheTimers[e.key]),delete this._cacheTimers[e.key],this._setTileReloadTimer(e.key,r)));var n=Boolean(r);return n||(r=new t.Tile(e,this._source.tileSize*e.overscaleFactor()),this._loadTile(r,this._tileLoaded.bind(this,r,e.key,r.state))),r?(r.uses++,this._tiles[e.key]=r,n||this._source.fire(new t.Event("dataloading",{tile:r,coord:r.tileID,dataType:"source"})),r):null},r.prototype._setTileReloadTimer=function(t,e){var r=this;t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);var n=e.getExpiryTimeout();n&&(this._timers[t]=setTimeout((function(){r._reloadTile(t,"expired"),delete r._timers[t]}),n))},r.prototype._removeTile=function(t){var e=this._tiles[t];e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),e.uses>0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))))},r.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._cache.reset()},r.prototype.tilesIn=function(e,r,n){var i=this,a=[],o=this.transform;if(!o)return a;for(var s=n?o.getCameraQueryGeometry(e):e,l=e.map((function(t){return o.pointCoordinate(t)})),u=s.map((function(t){return o.pointCoordinate(t)})),c=this.getIds(),f=1/0,h=1/0,p=-1/0,d=-1/0,v=0,g=u;v<g.length;v+=1){var y=g[v];f=Math.min(f,y.x),h=Math.min(h,y.y),p=Math.max(p,y.x),d=Math.max(d,y.y)}for(var m=function(e){var n=i._tiles[c[e]];if(!n.holdingForFade()){var s=n.tileID,v=Math.pow(2,o.zoom-n.tileID.overscaledZ),g=r*n.queryPadding*t.EXTENT/n.tileSize/v,y=[s.getTilePoint(new t.MercatorCoordinate(f,h)),s.getTilePoint(new t.MercatorCoordinate(p,d))];if(y[0].x-g<t.EXTENT&&y[0].y-g<t.EXTENT&&y[1].x+g>=0&&y[1].y+g>=0){var m=l.map((function(t){return s.getTilePoint(t)})),x=u.map((function(t){return s.getTilePoint(t)}));a.push({tile:n,tileID:s,queryGeometry:m,cameraQueryGeometry:x,scale:v})}}},x=0;x<c.length;x++)m(x);return a},r.prototype.getVisibleCoordinates=function(t){for(var e=this,r=this.getRenderableIds(t).map((function(t){return e._tiles[t].tileID})),n=0,i=r;n<i.length;n+=1){var a=i[n];a.posMatrix=this.transform.calculatePosMatrix(a.toUnwrapped())}return r},r.prototype.hasTransition=function(){if(this._source.hasTransition())return!0;if(Dt(this._source.type))for(var e in this._tiles){var r=this._tiles[e];if(void 0!==r.fadeEndTime&&r.fadeEndTime>=t.browser.now())return!0}return!1},r.prototype.setFeatureState=function(t,e,r){t=t||"_geojsonTileLayer",this._state.updateState(t,e,r)},r.prototype.removeFeatureState=function(t,e,r){t=t||"_geojsonTileLayer",this._state.removeFeatureState(t,e,r)},r.prototype.getFeatureState=function(t,e){return t=t||"_geojsonTileLayer",this._state.getState(t,e)},r.prototype.setDependencies=function(t,e,r){var n=this._tiles[t];n&&n.setDependencies(e,r)},r.prototype.reloadTilesForDependencies=function(t,e){for(var r in this._tiles)this._tiles[r].hasDependency(t,e)&&this._reloadTile(r,"reloading");this._cache.filter((function(r){return!r.hasDependency(t,e)}))},r}(t.Evented);function It(t,e){var r=Math.abs(2*t.wrap)-+(t.wrap<0),n=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||n-r||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function Dt(t){return"raster"===t||"image"===t||"video"===t}function zt(){return new t.window.Worker(ta.workerUrl)}Ot.maxOverzooming=10,Ot.maxUnderzooming=3;var Rt="mapboxgl_preloaded_worker_pool",Ft=function(){this.active={}};Ft.prototype.acquire=function(t){if(!this.workers)for(this.workers=[];this.workers.length<Ft.workerCount;)this.workers.push(new zt);return this.active[t]=!0,this.workers.slice()},Ft.prototype.release=function(t){delete this.active[t],0===this.numActive()&&(this.workers.forEach((function(t){t.terminate()})),this.workers=null)},Ft.prototype.isPreloaded=function(){return!!this.active[Rt]},Ft.prototype.numActive=function(){return Object.keys(this.active).length};var Bt,Nt=Math.floor(t.browser.hardwareConcurrency/2);function jt(){return Bt||(Bt=new Ft),Bt}function Ut(e,r){var n={};for(var i in e)"ref"!==i&&(n[i]=e[i]);return t.refProperties.forEach((function(t){t in r&&(n[t]=r[t])})),n}function Vt(t){t=t.slice();for(var e=Object.create(null),r=0;r<t.length;r++)e[t[r].id]=t[r];for(var n=0;n<t.length;n++)"ref"in t[n]&&(t[n]=Ut(t[n],e[t[n].ref]));return t}Ft.workerCount=Math.max(Math.min(Nt,6),1);var Ht={setStyle:"setStyle",addLayer:"addLayer",removeLayer:"removeLayer",setPaintProperty:"setPaintProperty",setLayoutProperty:"setLayoutProperty",setFilter:"setFilter",addSource:"addSource",removeSource:"removeSource",setGeoJSONSourceData:"setGeoJSONSourceData",setLayerZoomRange:"setLayerZoomRange",setLayerProperty:"setLayerProperty",setCenter:"setCenter",setZoom:"setZoom",setBearing:"setBearing",setPitch:"setPitch",setSprite:"setSprite",setGlyphs:"setGlyphs",setTransition:"setTransition",setLight:"setLight"};function qt(t,e,r){r.push({command:Ht.addSource,args:[t,e[t]]})}function Gt(t,e,r){e.push({command:Ht.removeSource,args:[t]}),r[t]=!0}function Zt(t,e,r,n){Gt(t,r,n),qt(t,e,r)}function Yt(e,r,n){var i;for(i in e[n])if(e[n].hasOwnProperty(i)&&"data"!==i&&!t.deepEqual(e[n][i],r[n][i]))return!1;for(i in r[n])if(r[n].hasOwnProperty(i)&&"data"!==i&&!t.deepEqual(e[n][i],r[n][i]))return!1;return!0}function Wt(e,r,n,i,a,o){var s;for(s in r=r||{},e=e||{})e.hasOwnProperty(s)&&(t.deepEqual(e[s],r[s])||n.push({command:o,args:[i,s,r[s],a]}));for(s in r)r.hasOwnProperty(s)&&!e.hasOwnProperty(s)&&(t.deepEqual(e[s],r[s])||n.push({command:o,args:[i,s,r[s],a]}))}function Xt(t){return t.id}function Jt(t,e){return t[e.id]=e,t}function Kt(e,r){if(!e)return[{command:Ht.setStyle,args:[r]}];var n=[];try{if(!t.deepEqual(e.version,r.version))return[{command:Ht.setStyle,args:[r]}];t.deepEqual(e.center,r.center)||n.push({command:Ht.setCenter,args:[r.center]}),t.deepEqual(e.zoom,r.zoom)||n.push({command:Ht.setZoom,args:[r.zoom]}),t.deepEqual(e.bearing,r.bearing)||n.push({command:Ht.setBearing,args:[r.bearing]}),t.deepEqual(e.pitch,r.pitch)||n.push({command:Ht.setPitch,args:[r.pitch]}),t.deepEqual(e.sprite,r.sprite)||n.push({command:Ht.setSprite,args:[r.sprite]}),t.deepEqual(e.glyphs,r.glyphs)||n.push({command:Ht.setGlyphs,args:[r.glyphs]}),t.deepEqual(e.transition,r.transition)||n.push({command:Ht.setTransition,args:[r.transition]}),t.deepEqual(e.light,r.light)||n.push({command:Ht.setLight,args:[r.light]});var i={},a=[];!function(e,r,n,i){var a;for(a in r=r||{},e=e||{})e.hasOwnProperty(a)&&(r.hasOwnProperty(a)||Gt(a,n,i));for(a in r)r.hasOwnProperty(a)&&(e.hasOwnProperty(a)?t.deepEqual(e[a],r[a])||("geojson"===e[a].type&&"geojson"===r[a].type&&Yt(e,r,a)?n.push({command:Ht.setGeoJSONSourceData,args:[a,r[a].data]}):Zt(a,r,n,i)):qt(a,r,n))}(e.sources,r.sources,a,i);var o=[];e.layers&&e.layers.forEach((function(t){i[t.source]?n.push({command:Ht.removeLayer,args:[t.id]}):o.push(t)})),n=n.concat(a),function(e,r,n){r=r||[];var i,a,o,s,l,u,c,f=(e=e||[]).map(Xt),h=r.map(Xt),p=e.reduce(Jt,{}),d=r.reduce(Jt,{}),v=f.slice(),g=Object.create(null);for(i=0,a=0;i<f.length;i++)o=f[i],d.hasOwnProperty(o)?a++:(n.push({command:Ht.removeLayer,args:[o]}),v.splice(v.indexOf(o,a),1));for(i=0,a=0;i<h.length;i++)o=h[h.length-1-i],v[v.length-1-i]!==o&&(p.hasOwnProperty(o)?(n.push({command:Ht.removeLayer,args:[o]}),v.splice(v.lastIndexOf(o,v.length-a),1)):a++,u=v[v.length-i],n.push({command:Ht.addLayer,args:[d[o],u]}),v.splice(v.length-i,0,o),g[o]=!0);for(i=0;i<h.length;i++)if(s=p[o=h[i]],l=d[o],!g[o]&&!t.deepEqual(s,l))if(t.deepEqual(s.source,l.source)&&t.deepEqual(s["source-layer"],l["source-layer"])&&t.deepEqual(s.type,l.type)){for(c in Wt(s.layout,l.layout,n,o,null,Ht.setLayoutProperty),Wt(s.paint,l.paint,n,o,null,Ht.setPaintProperty),t.deepEqual(s.filter,l.filter)||n.push({command:Ht.setFilter,args:[o,l.filter]}),t.deepEqual(s.minzoom,l.minzoom)&&t.deepEqual(s.maxzoom,l.maxzoom)||n.push({command:Ht.setLayerZoomRange,args:[o,l.minzoom,l.maxzoom]}),s)s.hasOwnProperty(c)&&"layout"!==c&&"paint"!==c&&"filter"!==c&&"metadata"!==c&&"minzoom"!==c&&"maxzoom"!==c&&(0===c.indexOf("paint.")?Wt(s[c],l[c],n,o,c.slice(6),Ht.setPaintProperty):t.deepEqual(s[c],l[c])||n.push({command:Ht.setLayerProperty,args:[o,c,l[c]]}));for(c in l)l.hasOwnProperty(c)&&!s.hasOwnProperty(c)&&"layout"!==c&&"paint"!==c&&"filter"!==c&&"metadata"!==c&&"minzoom"!==c&&"maxzoom"!==c&&(0===c.indexOf("paint.")?Wt(s[c],l[c],n,o,c.slice(6),Ht.setPaintProperty):t.deepEqual(s[c],l[c])||n.push({command:Ht.setLayerProperty,args:[o,c,l[c]]}))}else n.push({command:Ht.removeLayer,args:[o]}),u=v[v.lastIndexOf(o)+1],n.push({command:Ht.addLayer,args:[l,u]})}(o,r.layers,n)}catch(t){console.warn("Unable to compute style diff:",t),n=[{command:Ht.setStyle,args:[r]}]}return n}var $t=function(t,e){this.reset(t,e)};$t.prototype.reset=function(t,e){this.points=t||[],this._distances=[0];for(var r=1;r<this.points.length;r++)this._distances[r]=this._distances[r-1]+this.points[r].dist(this.points[r-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(e||0,.5*this.length),this.paddedLength=this.length-2*this.padding},$t.prototype.lerp=function(e){if(1===this.points.length)return this.points[0];e=t.clamp(e,0,1);for(var r=1,n=this._distances[r],i=e*this.paddedLength+this.padding;n<i&&r<this._distances.length;)n=this._distances[++r];var a=r-1,o=this._distances[a],s=n-o,l=s>0?(i-o)/s:0;return this.points[a].mult(1-l).add(this.points[r].mult(l))};var Qt=function(t,e,r){var n=this.boxCells=[],i=this.circleCells=[];this.xCellCount=Math.ceil(t/r),this.yCellCount=Math.ceil(e/r);for(var a=0;a<this.xCellCount*this.yCellCount;a++)n.push([]),i.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=t,this.height=e,this.xScale=this.xCellCount/t,this.yScale=this.yCellCount/e,this.boxUid=0,this.circleUid=0};function te(e,r,n,i,a){var o=t.create();return r?(t.scale(o,o,[1/a,1/a,1]),n||t.rotateZ(o,o,i.angle)):t.multiply(o,i.labelPlaneMatrix,e),o}function ee(e,r,n,i,a){if(r){var o=t.clone(e);return t.scale(o,o,[a,a,1]),n||t.rotateZ(o,o,-i.angle),o}return i.glCoordMatrix}function re(e,r){var n=[e.x,e.y,0,1];pe(n,n,r);var i=n[3];return{point:new t.Point(n[0]/i,n[1]/i),signedDistanceFromCamera:i}}function ne(t,e){return.5+t/e*.5}function ie(t,e){var r=t[0]/t[3],n=t[1]/t[3];return r>=-e[0]&&r<=e[0]&&n>=-e[1]&&n<=e[1]}function ae(e,r,n,i,a,o,s,l){var u=i?e.textSizeData:e.iconSizeData,c=t.evaluateSizeForZoom(u,n.transform.zoom),f=[256/n.width*2+1,256/n.height*2+1],h=i?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;h.clear();for(var p=e.lineVertexArray,d=i?e.text.placedSymbolArray:e.icon.placedSymbolArray,v=n.transform.width/n.transform.height,g=!1,y=0;y<d.length;y++){var m=d.get(y);if(m.hidden||m.writingMode===t.WritingMode.vertical&&!g)he(m.numGlyphs,h);else{g=!1;var x=[m.anchorX,m.anchorY,0,1];if(t.transformMat4(x,x,r),ie(x,f)){var b=x[3],_=ne(n.transform.cameraToCenterDistance,b),w=t.evaluateSizeForFeature(u,c,m),T=s?w/_:w*_,k=new t.Point(m.anchorX,m.anchorY),A=re(k,a).point,M={},S=le(m,T,!1,l,r,a,o,e.glyphOffsetArray,p,h,A,k,M,v);g=S.useVertical,(S.notEnoughRoom||g||S.needsFlipping&&le(m,T,!0,l,r,a,o,e.glyphOffsetArray,p,h,A,k,M,v).notEnoughRoom)&&he(m.numGlyphs,h)}else he(m.numGlyphs,h)}}i?e.text.dynamicLayoutVertexBuffer.updateData(h):e.icon.dynamicLayoutVertexBuffer.updateData(h)}function oe(t,e,r,n,i,a,o,s,l,u,c){var f=s.glyphStartIndex+s.numGlyphs,h=s.lineStartIndex,p=s.lineStartIndex+s.lineLength,d=e.getoffsetX(s.glyphStartIndex),v=e.getoffsetX(f-1),g=ce(t*d,r,n,i,a,o,s.segment,h,p,l,u,c);if(!g)return null;var y=ce(t*v,r,n,i,a,o,s.segment,h,p,l,u,c);return y?{first:g,last:y}:null}function se(e,r,n,i){return e===t.WritingMode.horizontal&&Math.abs(n.y-r.y)>Math.abs(n.x-r.x)*i?{useVertical:!0}:(e===t.WritingMode.vertical?r.y<n.y:r.x>n.x)?{needsFlipping:!0}:null}function le(e,r,n,i,a,o,s,l,u,c,f,h,p,d){var v,g=r/24,y=e.lineOffsetX*g,m=e.lineOffsetY*g;if(e.numGlyphs>1){var x=e.glyphStartIndex+e.numGlyphs,b=e.lineStartIndex,_=e.lineStartIndex+e.lineLength,w=oe(g,l,y,m,n,f,h,e,u,o,p);if(!w)return{notEnoughRoom:!0};var T=re(w.first.point,s).point,k=re(w.last.point,s).point;if(i&&!n){var A=se(e.writingMode,T,k,d);if(A)return A}v=[w.first];for(var M=e.glyphStartIndex+1;M<x-1;M++)v.push(ce(g*l.getoffsetX(M),y,m,n,f,h,e.segment,b,_,u,o,p));v.push(w.last)}else{if(i&&!n){var S=re(h,a).point,E=e.lineStartIndex+e.segment+1,L=new t.Point(u.getx(E),u.gety(E)),C=re(L,a),P=C.signedDistanceFromCamera>0?C.point:ue(h,L,S,1,a),O=se(e.writingMode,S,P,d);if(O)return O}var I=ce(g*l.getoffsetX(e.glyphStartIndex),y,m,n,f,h,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,u,o,p);if(!I)return{notEnoughRoom:!0};v=[I]}for(var D=0,z=v;D<z.length;D+=1){var R=z[D];t.addDynamicAttributes(c,R.point,R.angle)}return{}}function ue(t,e,r,n,i){var a=re(t.add(t.sub(e)._unit()),i).point,o=r.sub(a);return r.add(o._mult(n/o.mag()))}function ce(e,r,n,i,a,o,s,l,u,c,f,h){var p=i?e-r:e+r,d=p>0?1:-1,v=0;i&&(d*=-1,v=Math.PI),d<0&&(v+=Math.PI);for(var g=d>0?l+s:l+s+1,y=a,m=a,x=0,b=0,_=Math.abs(p),w=[];x+b<=_;){if((g+=d)<l||g>=u)return null;if(m=y,w.push(y),void 0===(y=h[g])){var T=new t.Point(c.getx(g),c.gety(g)),k=re(T,f);if(k.signedDistanceFromCamera>0)y=h[g]=k.point;else{var A=g-d;y=ue(0===x?o:new t.Point(c.getx(A),c.gety(A)),T,m,_-x+1,f)}}x+=b,b=m.dist(y)}var M=(_-x)/b,S=y.sub(m),E=S.mult(M)._add(m);E._add(S._unit()._perp()._mult(n*d));var L=v+Math.atan2(y.y-m.y,y.x-m.x);return w.push(E),{point:E,angle:L,path:w}}Qt.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},Qt.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i)},Qt.prototype.insertCircle=function(t,e,r,n){this._forEachCell(e-n,r-n,e+n,r+n,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(e),this.circles.push(r),this.circles.push(n)},Qt.prototype._insertBoxCell=function(t,e,r,n,i,a){this.boxCells[i].push(a)},Qt.prototype._insertCircleCell=function(t,e,r,n,i,a){this.circleCells[i].push(a)},Qt.prototype._query=function(t,e,r,n,i,a){if(r<0||t>this.width||n<0||e>this.height)return!i&&[];var o=[];if(t<=0&&e<=0&&this.width<=r&&this.height<=n){if(i)return!0;for(var s=0;s<this.boxKeys.length;s++)o.push({key:this.boxKeys[s],x1:this.bboxes[4*s],y1:this.bboxes[4*s+1],x2:this.bboxes[4*s+2],y2:this.bboxes[4*s+3]});for(var l=0;l<this.circleKeys.length;l++){var u=this.circles[3*l],c=this.circles[3*l+1],f=this.circles[3*l+2];o.push({key:this.circleKeys[l],x1:u-f,y1:c-f,x2:u+f,y2:c+f})}return a?o.filter(a):o}var h={hitTest:i,seenUids:{box:{},circle:{}}};return this._forEachCell(t,e,r,n,this._queryCell,o,h,a),i?o.length>0:o},Qt.prototype._queryCircle=function(t,e,r,n,i){var a=t-r,o=t+r,s=e-r,l=e+r;if(o<0||a>this.width||l<0||s>this.height)return!n&&[];var u=[],c={hitTest:n,circle:{x:t,y:e,radius:r},seenUids:{box:{},circle:{}}};return this._forEachCell(a,s,o,l,this._queryCellCircle,u,c,i),n?u.length>0:u},Qt.prototype.query=function(t,e,r,n,i){return this._query(t,e,r,n,!1,i)},Qt.prototype.hitTest=function(t,e,r,n,i){return this._query(t,e,r,n,!0,i)},Qt.prototype.hitTestCircle=function(t,e,r,n){return this._queryCircle(t,e,r,!0,n)},Qt.prototype._queryCell=function(t,e,r,n,i,a,o,s){var l=o.seenUids,u=this.boxCells[i];if(null!==u)for(var c=this.bboxes,f=0,h=u;f<h.length;f+=1){var p=h[f];if(!l.box[p]){l.box[p]=!0;var d=4*p;if(t<=c[d+2]&&e<=c[d+3]&&r>=c[d+0]&&n>=c[d+1]&&(!s||s(this.boxKeys[p]))){if(o.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[p],x1:c[d],y1:c[d+1],x2:c[d+2],y2:c[d+3]})}}}var v=this.circleCells[i];if(null!==v)for(var g=this.circles,y=0,m=v;y<m.length;y+=1){var x=m[y];if(!l.circle[x]){l.circle[x]=!0;var b=3*x;if(this._circleAndRectCollide(g[b],g[b+1],g[b+2],t,e,r,n)&&(!s||s(this.circleKeys[x]))){if(o.hitTest)return a.push(!0),!0;var _=g[b],w=g[b+1],T=g[b+2];a.push({key:this.circleKeys[x],x1:_-T,y1:w-T,x2:_+T,y2:w+T})}}}},Qt.prototype._queryCellCircle=function(t,e,r,n,i,a,o,s){var l=o.circle,u=o.seenUids,c=this.boxCells[i];if(null!==c)for(var f=this.bboxes,h=0,p=c;h<p.length;h+=1){var d=p[h];if(!u.box[d]){u.box[d]=!0;var v=4*d;if(this._circleAndRectCollide(l.x,l.y,l.radius,f[v+0],f[v+1],f[v+2],f[v+3])&&(!s||s(this.boxKeys[d])))return a.push(!0),!0}}var g=this.circleCells[i];if(null!==g)for(var y=this.circles,m=0,x=g;m<x.length;m+=1){var b=x[m];if(!u.circle[b]){u.circle[b]=!0;var _=3*b;if(this._circlesCollide(y[_],y[_+1],y[_+2],l.x,l.y,l.radius)&&(!s||s(this.circleKeys[b])))return a.push(!0),!0}}},Qt.prototype._forEachCell=function(t,e,r,n,i,a,o,s){for(var l=this._convertToXCellCoord(t),u=this._convertToYCellCoord(e),c=this._convertToXCellCoord(r),f=this._convertToYCellCoord(n),h=l;h<=c;h++)for(var p=u;p<=f;p++){var d=this.xCellCount*p+h;if(i.call(this,t,e,r,n,d,a,o,s))return}},Qt.prototype._convertToXCellCoord=function(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))},Qt.prototype._convertToYCellCoord=function(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))},Qt.prototype._circlesCollide=function(t,e,r,n,i,a){var o=n-t,s=i-e,l=r+a;return l*l>o*o+s*s},Qt.prototype._circleAndRectCollide=function(t,e,r,n,i,a,o){var s=(a-n)/2,l=Math.abs(t-(n+s));if(l>s+r)return!1;var u=(o-i)/2,c=Math.abs(e-(i+u));if(c>u+r)return!1;if(l<=s||c<=u)return!0;var f=l-s,h=c-u;return f*f+h*h<=r*r};var fe=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function he(t,e){for(var r=0;r<t;r++){var n=e.length;e.resize(n+4),e.float32.set(fe,3*n)}}function pe(t,e,r){var n=e[0],i=e[1];return t[0]=r[0]*n+r[4]*i+r[12],t[1]=r[1]*n+r[5]*i+r[13],t[3]=r[3]*n+r[7]*i+r[15],t}var de=100,ve=function(t,e,r){void 0===e&&(e=new Qt(t.width+200,t.height+200,25)),void 0===r&&(r=new Qt(t.width+200,t.height+200,25)),this.transform=t,this.grid=e,this.ignoredGrid=r,this.pitchfactor=Math.cos(t._pitch)*t.cameraToCenterDistance,this.screenRightBoundary=t.width+de,this.screenBottomBoundary=t.height+de,this.gridRightBoundary=t.width+200,this.gridBottomBoundary=t.height+200};function ge(e,r,n){return r*(t.EXTENT/(e.tileSize*Math.pow(2,n-e.tileID.overscaledZ)))}ve.prototype.placeCollisionBox=function(t,e,r,n,i){var a=this.projectAndGetPerspectiveRatio(n,t.anchorPointX,t.anchorPointY),o=r*a.perspectiveRatio,s=t.x1*o+a.point.x,l=t.y1*o+a.point.y,u=t.x2*o+a.point.x,c=t.y2*o+a.point.y;return!this.isInsideGrid(s,l,u,c)||!e&&this.grid.hitTest(s,l,u,c,i)?{box:[],offscreen:!1}:{box:[s,l,u,c],offscreen:this.isOffscreen(s,l,u,c)}},ve.prototype.placeCollisionCircles=function(e,r,n,i,a,o,s,l,u,c,f,h,p){var d=[],v=new t.Point(r.anchorX,r.anchorY),g=re(v,o),y=ne(this.transform.cameraToCenterDistance,g.signedDistanceFromCamera),m=(c?a/y:a*y)/t.ONE_EM,x=re(v,s).point,b=oe(m,i,r.lineOffsetX*m,r.lineOffsetY*m,!1,x,v,r,n,s,{}),_=!1,w=!1,T=!0;if(b){for(var k=.5*h*y+p,A=new t.Point(-100,-100),M=new t.Point(this.screenRightBoundary,this.screenBottomBoundary),S=new $t,E=b.first,L=b.last,C=[],P=E.path.length-1;P>=1;P--)C.push(E.path[P]);for(var O=1;O<L.path.length;O++)C.push(L.path[O]);var I=2.5*k;if(l){var D=C.map((function(t){return re(t,l)}));C=D.some((function(t){return t.signedDistanceFromCamera<=0}))?[]:D.map((function(t){return t.point}))}var z=[];if(C.length>0){for(var R=C[0].clone(),F=C[0].clone(),B=1;B<C.length;B++)R.x=Math.min(R.x,C[B].x),R.y=Math.min(R.y,C[B].y),F.x=Math.max(F.x,C[B].x),F.y=Math.max(F.y,C[B].y);z=R.x>=A.x&&F.x<=M.x&&R.y>=A.y&&F.y<=M.y?[C]:F.x<A.x||R.x>M.x||F.y<A.y||R.y>M.y?[]:t.clipLine([C],A.x,A.y,M.x,M.y)}for(var N=0,j=z;N<j.length;N+=1){var U=j[N];S.reset(U,.25*k);var V;V=S.length<=.5*k?1:Math.ceil(S.paddedLength/I)+1;for(var H=0;H<V;H++){var q=H/Math.max(V-1,1),G=S.lerp(q),Z=G.x+de,Y=G.y+de;d.push(Z,Y,k,0);var W=Z-k,X=Y-k,J=Z+k,K=Y+k;if(T=T&&this.isOffscreen(W,X,J,K),w=w||this.isInsideGrid(W,X,J,K),!e&&this.grid.hitTestCircle(Z,Y,k,f)&&(_=!0,!u))return{circles:[],offscreen:!1,collisionDetected:_}}}}return{circles:!u&&_||!w?[]:d,offscreen:T,collisionDetected:_}},ve.prototype.queryRenderedSymbols=function(e){if(0===e.length||0===this.grid.keysLength()&&0===this.ignoredGrid.keysLength())return{};for(var r=[],n=1/0,i=1/0,a=-1/0,o=-1/0,s=0,l=e;s<l.length;s+=1){var u=l[s],c=new t.Point(u.x+de,u.y+de);n=Math.min(n,c.x),i=Math.min(i,c.y),a=Math.max(a,c.x),o=Math.max(o,c.y),r.push(c)}for(var f={},h={},p=0,d=this.grid.query(n,i,a,o).concat(this.ignoredGrid.query(n,i,a,o));p<d.length;p+=1){var v=d[p],g=v.key;if(void 0===f[g.bucketInstanceId]&&(f[g.bucketInstanceId]={}),!f[g.bucketInstanceId][g.featureIndex]){var y=[new t.Point(v.x1,v.y1),new t.Point(v.x2,v.y1),new t.Point(v.x2,v.y2),new t.Point(v.x1,v.y2)];t.polygonIntersectsPolygon(r,y)&&(f[g.bucketInstanceId][g.featureIndex]=!0,void 0===h[g.bucketInstanceId]&&(h[g.bucketInstanceId]=[]),h[g.bucketInstanceId].push(g.featureIndex))}}return h},ve.prototype.insertCollisionBox=function(t,e,r,n,i){var a={bucketInstanceId:r,featureIndex:n,collisionGroupID:i};(e?this.ignoredGrid:this.grid).insert(a,t[0],t[1],t[2],t[3])},ve.prototype.insertCollisionCircles=function(t,e,r,n,i){for(var a=e?this.ignoredGrid:this.grid,o={bucketInstanceId:r,featureIndex:n,collisionGroupID:i},s=0;s<t.length;s+=4)a.insertCircle(o,t[s],t[s+1],t[s+2])},ve.prototype.projectAndGetPerspectiveRatio=function(e,r,n){var i=[r,n,0,1];return pe(i,i,e),{point:new t.Point((i[0]/i[3]+1)/2*this.transform.width+de,(-i[1]/i[3]+1)/2*this.transform.height+de),perspectiveRatio:.5+this.transform.cameraToCenterDistance/i[3]*.5}},ve.prototype.isOffscreen=function(t,e,r,n){return r<de||t>=this.screenRightBoundary||n<de||e>this.screenBottomBoundary},ve.prototype.isInsideGrid=function(t,e,r,n){return r>=0&&t<this.gridRightBoundary&&n>=0&&e<this.gridBottomBoundary},ve.prototype.getViewportMatrix=function(){var e=t.identity([]);return t.translate(e,e,[-100,-100,0]),e};var ye=function(t,e,r,n){this.opacity=t?Math.max(0,Math.min(1,t.opacity+(t.placed?e:-e))):n&&r?1:0,this.placed=r};ye.prototype.isHidden=function(){return 0===this.opacity&&!this.placed};var me=function(t,e,r,n,i){this.text=new ye(t?t.text:null,e,r,i),this.icon=new ye(t?t.icon:null,e,n,i)};me.prototype.isHidden=function(){return this.text.isHidden()&&this.icon.isHidden()};var xe=function(t,e,r){this.text=t,this.icon=e,this.skipFade=r},be=function(){this.invProjMatrix=t.create(),this.viewportMatrix=t.create(),this.circles=[]},_e=function(t,e,r,n,i){this.bucketInstanceId=t,this.featureIndex=e,this.sourceLayerIndex=r,this.bucketIndex=n,this.tileID=i},we=function(t){this.crossSourceCollisions=t,this.maxGroupID=0,this.collisionGroups={}};function Te(e,r,n,i,a){var o=t.getAnchorAlignment(e),s=-(o.horizontalAlign-.5)*r,l=-(o.verticalAlign-.5)*n,u=t.evaluateVariableOffset(e,i);return new t.Point(s+u[0]*a,l+u[1]*a)}function ke(e,r,n,i,a,o){var s=e.x1,l=e.x2,u=e.y1,c=e.y2,f=e.anchorPointX,h=e.anchorPointY,p=new t.Point(r,n);return i&&p._rotate(a?o:-o),{x1:s+p.x,y1:u+p.y,x2:l+p.x,y2:c+p.y,anchorPointX:f,anchorPointY:h}}we.prototype.get=function(t){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[t]){var e=++this.maxGroupID;this.collisionGroups[t]={ID:e,predicate:function(t){return t.collisionGroupID===e}}}return this.collisionGroups[t]};var Ae=function(t,e,r,n){this.transform=t.clone(),this.collisionIndex=new ve(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=e,this.retainedQueryData={},this.collisionGroups=new we(r),this.collisionCircleArrays={},this.prevPlacement=n,n&&(n.prevPlacement=void 0),this.placedOrientations={}};function Me(t,e,r,n,i){t.emplaceBack(e?1:0,r?1:0,n||0,i||0),t.emplaceBack(e?1:0,r?1:0,n||0,i||0),t.emplaceBack(e?1:0,r?1:0,n||0,i||0),t.emplaceBack(e?1:0,r?1:0,n||0,i||0)}Ae.prototype.getBucketParts=function(e,r,n,i){var a=n.getBucket(r),o=n.latestFeatureIndex;if(a&&o&&r.id===a.layerIds[0]){var s=n.collisionBoxArray,l=a.layers[0].layout,u=Math.pow(2,this.transform.zoom-n.tileID.overscaledZ),c=n.tileSize/t.EXTENT,f=this.transform.calculatePosMatrix(n.tileID.toUnwrapped()),h="map"===l.get("text-pitch-alignment"),p="map"===l.get("text-rotation-alignment"),d=ge(n,1,this.transform.zoom),v=te(f,h,p,this.transform,d),g=null;if(h){var y=ee(f,h,p,this.transform,d);g=t.multiply([],this.transform.labelPlaneMatrix,y)}this.retainedQueryData[a.bucketInstanceId]=new _e(a.bucketInstanceId,o,a.sourceLayerIndex,a.index,n.tileID);var m={bucket:a,layout:l,posMatrix:f,textLabelPlaneMatrix:v,labelToScreenMatrix:g,scale:u,textPixelRatio:c,holdingForFade:n.holdingForFade(),collisionBoxArray:s,partiallyEvaluatedTextSize:t.evaluateSizeForZoom(a.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(a.sourceID)};if(i)for(var x=0,b=a.sortKeyRanges;x<b.length;x+=1){var _=b[x],w=_.sortKey,T=_.symbolInstanceStart,k=_.symbolInstanceEnd;e.push({sortKey:w,symbolInstanceStart:T,symbolInstanceEnd:k,parameters:m})}else e.push({symbolInstanceStart:0,symbolInstanceEnd:a.symbolInstances.length,parameters:m})}},Ae.prototype.attemptAnchorPlacement=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d){var v,g=[f.textOffset0,f.textOffset1],y=Te(t,r,n,g,i),m=this.collisionIndex.placeCollisionBox(ke(e,y.x,y.y,a,o,this.transform.angle),c,s,l,u.predicate);if(!d||0!==this.collisionIndex.placeCollisionBox(ke(d,y.x,y.y,a,o,this.transform.angle),c,s,l,u.predicate).box.length)return m.box.length>0?(this.prevPlacement&&this.prevPlacement.variableOffsets[f.crossTileID]&&this.prevPlacement.placements[f.crossTileID]&&this.prevPlacement.placements[f.crossTileID].text&&(v=this.prevPlacement.variableOffsets[f.crossTileID].anchor),this.variableOffsets[f.crossTileID]={textOffset:g,width:r,height:n,anchor:t,textBoxScale:i,prevAnchor:v},this.markUsedJustification(h,t,f,p),h.allowVerticalPlacement&&(this.markUsedOrientation(h,p,f),this.placedOrientations[f.crossTileID]=p),{shift:y,placedGlyphBoxes:m}):void 0},Ae.prototype.placeLayerBucketPart=function(e,r,n){var i=this,a=e.parameters,o=a.bucket,s=a.layout,l=a.posMatrix,u=a.textLabelPlaneMatrix,c=a.labelToScreenMatrix,f=a.textPixelRatio,h=a.holdingForFade,p=a.collisionBoxArray,d=a.partiallyEvaluatedTextSize,v=a.collisionGroup,g=s.get("text-optional"),y=s.get("icon-optional"),m=s.get("text-allow-overlap"),x=s.get("icon-allow-overlap"),b="map"===s.get("text-rotation-alignment"),_="map"===s.get("text-pitch-alignment"),w="none"!==s.get("icon-text-fit"),T="viewport-y"===s.get("symbol-z-order"),k=m&&(x||!o.hasIconData()||y),A=x&&(m||!o.hasTextData()||g);!o.collisionArrays&&p&&o.deserializeCollisionBoxes(p);var M=function(e,a){if(!r[e.crossTileID])if(h)i.placements[e.crossTileID]=new xe(!1,!1,!1);else{var p,T=!1,M=!1,S=!0,E=null,L={box:null,offscreen:null},C={box:null,offscreen:null},P=null,O=null,I=0,D=0,z=0;a.textFeatureIndex?I=a.textFeatureIndex:e.useRuntimeCollisionCircles&&(I=e.featureIndex),a.verticalTextFeatureIndex&&(D=a.verticalTextFeatureIndex);var R=a.textBox;if(R){var F=function(r){var n=t.WritingMode.horizontal;if(o.allowVerticalPlacement&&!r&&i.prevPlacement){var a=i.prevPlacement.placedOrientations[e.crossTileID];a&&(i.placedOrientations[e.crossTileID]=a,n=a,i.markUsedOrientation(o,n,e))}return n},B=function(r,n){if(o.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&a.verticalTextBox)for(var i=0,s=o.writingModes;i<s.length&&(s[i]===t.WritingMode.vertical?(L=n(),C=L):L=r(),!(L&&L.box&&L.box.length));i+=1);else L=r()};if(s.get("text-variable-anchor")){var N=s.get("text-variable-anchor");if(i.prevPlacement&&i.prevPlacement.variableOffsets[e.crossTileID]){var j=i.prevPlacement.variableOffsets[e.crossTileID];N.indexOf(j.anchor)>0&&(N=N.filter((function(t){return t!==j.anchor}))).unshift(j.anchor)}var U=function(t,r,n){for(var a=t.x2-t.x1,s=t.y2-t.y1,u=e.textBoxScale,c=w&&!x?r:null,h={box:[],offscreen:!1},p=m?2*N.length:N.length,d=0;d<p;++d){var g=N[d%N.length],y=d>=N.length,k=i.attemptAnchorPlacement(g,t,a,s,u,b,_,f,l,v,y,e,o,n,c);if(k&&(h=k.placedGlyphBoxes)&&h.box&&h.box.length){T=!0,E=k.shift;break}}return h};B((function(){return U(R,a.iconBox,t.WritingMode.horizontal)}),(function(){var r=a.verticalTextBox,n=L&&L.box&&L.box.length;return o.allowVerticalPlacement&&!n&&e.numVerticalGlyphVertices>0&&r?U(r,a.verticalIconBox,t.WritingMode.vertical):{box:null,offscreen:null}})),L&&(T=L.box,S=L.offscreen);var V=F(L&&L.box);if(!T&&i.prevPlacement){var H=i.prevPlacement.variableOffsets[e.crossTileID];H&&(i.variableOffsets[e.crossTileID]=H,i.markUsedJustification(o,H.anchor,e,V))}}else{var q=function(t,r){var n=i.collisionIndex.placeCollisionBox(t,m,f,l,v.predicate);return n&&n.box&&n.box.length&&(i.markUsedOrientation(o,r,e),i.placedOrientations[e.crossTileID]=r),n};B((function(){return q(R,t.WritingMode.horizontal)}),(function(){var r=a.verticalTextBox;return o.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&r?q(r,t.WritingMode.vertical):{box:null,offscreen:null}})),F(L&&L.box&&L.box.length)}}if(T=(p=L)&&p.box&&p.box.length>0,S=p&&p.offscreen,e.useRuntimeCollisionCircles){var G=o.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),Z=t.evaluateSizeForFeature(o.textSizeData,d,G),Y=s.get("text-padding"),W=e.collisionCircleDiameter;P=i.collisionIndex.placeCollisionCircles(m,G,o.lineVertexArray,o.glyphOffsetArray,Z,l,u,c,n,_,v.predicate,W,Y),T=m||P.circles.length>0&&!P.collisionDetected,S=S&&P.offscreen}if(a.iconFeatureIndex&&(z=a.iconFeatureIndex),a.iconBox){var X=function(t){var e=w&&E?ke(t,E.x,E.y,b,_,i.transform.angle):t;return i.collisionIndex.placeCollisionBox(e,x,f,l,v.predicate)};M=C&&C.box&&C.box.length&&a.verticalIconBox?(O=X(a.verticalIconBox)).box.length>0:(O=X(a.iconBox)).box.length>0,S=S&&O.offscreen}var J=g||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,K=y||0===e.numIconVertices;if(J||K?K?J||(M=M&&T):T=M&&T:M=T=M&&T,T&&p&&p.box&&(C&&C.box&&D?i.collisionIndex.insertCollisionBox(p.box,s.get("text-ignore-placement"),o.bucketInstanceId,D,v.ID):i.collisionIndex.insertCollisionBox(p.box,s.get("text-ignore-placement"),o.bucketInstanceId,I,v.ID)),M&&O&&i.collisionIndex.insertCollisionBox(O.box,s.get("icon-ignore-placement"),o.bucketInstanceId,z,v.ID),P&&(T&&i.collisionIndex.insertCollisionCircles(P.circles,s.get("text-ignore-placement"),o.bucketInstanceId,I,v.ID),n)){var $=o.bucketInstanceId,Q=i.collisionCircleArrays[$];void 0===Q&&(Q=i.collisionCircleArrays[$]=new be);for(var tt=0;tt<P.circles.length;tt+=4)Q.circles.push(P.circles[tt+0]),Q.circles.push(P.circles[tt+1]),Q.circles.push(P.circles[tt+2]),Q.circles.push(P.collisionDetected?1:0)}i.placements[e.crossTileID]=new xe(T||k,M||A,S||o.justReloaded),r[e.crossTileID]=!0}};if(T)for(var S=o.getSortedSymbolIndexes(this.transform.angle),E=S.length-1;E>=0;--E){var L=S[E];M(o.symbolInstances.get(L),o.collisionArrays[L])}else for(var C=e.symbolInstanceStart;C<e.symbolInstanceEnd;C++)M(o.symbolInstances.get(C),o.collisionArrays[C]);if(n&&o.bucketInstanceId in this.collisionCircleArrays){var P=this.collisionCircleArrays[o.bucketInstanceId];t.invert(P.invProjMatrix,l),P.viewportMatrix=this.collisionIndex.getViewportMatrix()}o.justReloaded=!1},Ae.prototype.markUsedJustification=function(e,r,n,i){var a,o={left:n.leftJustifiedTextSymbolIndex,center:n.centerJustifiedTextSymbolIndex,right:n.rightJustifiedTextSymbolIndex};a=i===t.WritingMode.vertical?n.verticalPlacedTextSymbolIndex:o[t.getAnchorJustification(r)];for(var s=0,l=[n.leftJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.rightJustifiedTextSymbolIndex,n.verticalPlacedTextSymbolIndex];s<l.length;s+=1){var u=l[s];u>=0&&(e.text.placedSymbolArray.get(u).crossTileID=a>=0&&u!==a?0:n.crossTileID)}},Ae.prototype.markUsedOrientation=function(e,r,n){for(var i=r===t.WritingMode.horizontal||r===t.WritingMode.horizontalOnly?r:0,a=r===t.WritingMode.vertical?r:0,o=0,s=[n.leftJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.rightJustifiedTextSymbolIndex];o<s.length;o+=1){var l=s[o];e.text.placedSymbolArray.get(l).placedOrientation=i}n.verticalPlacedTextSymbolIndex&&(e.text.placedSymbolArray.get(n.verticalPlacedTextSymbolIndex).placedOrientation=a)},Ae.prototype.commit=function(t){this.commitTime=t,this.zoomAtLastRecencyCheck=this.transform.zoom;var e=this.prevPlacement,r=!1;this.prevZoomAdjustment=e?e.zoomAdjustment(this.transform.zoom):0;var n=e?e.symbolFadeChange(t):1,i=e?e.opacities:{},a=e?e.variableOffsets:{},o=e?e.placedOrientations:{};for(var s in this.placements){var l=this.placements[s],u=i[s];u?(this.opacities[s]=new me(u,n,l.text,l.icon),r=r||l.text!==u.text.placed||l.icon!==u.icon.placed):(this.opacities[s]=new me(null,n,l.text,l.icon,l.skipFade),r=r||l.text||l.icon)}for(var c in i){var f=i[c];if(!this.opacities[c]){var h=new me(f,n,!1,!1);h.isHidden()||(this.opacities[c]=h,r=r||f.text.placed||f.icon.placed)}}for(var p in a)this.variableOffsets[p]||!this.opacities[p]||this.opacities[p].isHidden()||(this.variableOffsets[p]=a[p]);for(var d in o)this.placedOrientations[d]||!this.opacities[d]||this.opacities[d].isHidden()||(this.placedOrientations[d]=o[d]);r?this.lastPlacementChangeTime=t:"number"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=e?e.lastPlacementChangeTime:t)},Ae.prototype.updateLayerOpacities=function(t,e){for(var r={},n=0,i=e;n<i.length;n+=1){var a=i[n],o=a.getBucket(t);o&&a.latestFeatureIndex&&t.id===o.layerIds[0]&&this.updateBucketOpacities(o,r,a.collisionBoxArray)}},Ae.prototype.updateBucketOpacities=function(e,r,n){var i=this;e.hasTextData()&&e.text.opacityVertexArray.clear(),e.hasIconData()&&e.icon.opacityVertexArray.clear(),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexArray.clear(),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexArray.clear();var a=e.layers[0].layout,o=new me(null,0,!1,!1,!0),s=a.get("text-allow-overlap"),l=a.get("icon-allow-overlap"),u=a.get("text-variable-anchor"),c="map"===a.get("text-rotation-alignment"),f="map"===a.get("text-pitch-alignment"),h="none"!==a.get("icon-text-fit"),p=new me(null,0,s&&(l||!e.hasIconData()||a.get("icon-optional")),l&&(s||!e.hasTextData()||a.get("text-optional")),!0);!e.collisionArrays&&n&&(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData())&&e.deserializeCollisionBoxes(n);for(var d=function(t,e,r){for(var n=0;n<e/4;n++)t.opacityVertexArray.emplaceBack(r)},v=function(n){var a=e.symbolInstances.get(n),s=a.numHorizontalGlyphVertices,l=a.numVerticalGlyphVertices,v=a.crossTileID,g=r[v],y=i.opacities[v];g?y=o:y||(y=p,i.opacities[v]=y),r[v]=!0;var m=s>0||l>0,x=a.numIconVertices>0,b=i.placedOrientations[a.crossTileID],_=b===t.WritingMode.vertical,w=b===t.WritingMode.horizontal||b===t.WritingMode.horizontalOnly;if(m){var T=De(y.text),k=_?ze:T;d(e.text,s,k);var A=w?ze:T;d(e.text,l,A);var M=y.text.isHidden();[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((function(t){t>=0&&(e.text.placedSymbolArray.get(t).hidden=M||_?1:0)})),a.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).hidden=M||w?1:0);var S=i.variableOffsets[a.crossTileID];S&&i.markUsedJustification(e,S.anchor,a,b);var E=i.placedOrientations[a.crossTileID];E&&(i.markUsedJustification(e,"left",a,E),i.markUsedOrientation(e,E,a))}if(x){var L=De(y.icon),C=!(h&&a.verticalPlacedIconSymbolIndex&&_);if(a.placedIconSymbolIndex>=0){var P=C?L:ze;d(e.icon,a.numIconVertices,P),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=y.icon.isHidden()}if(a.verticalPlacedIconSymbolIndex>=0){var O=C?ze:L;d(e.icon,a.numVerticalIconVertices,O),e.icon.placedSymbolArray.get(a.verticalPlacedIconSymbolIndex).hidden=y.icon.isHidden()}}if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){var I=e.collisionArrays[n];if(I){var D=new t.Point(0,0);if(I.textBox||I.verticalTextBox){var z=!0;if(u){var R=i.variableOffsets[v];R?(D=Te(R.anchor,R.width,R.height,R.textOffset,R.textBoxScale),c&&D._rotate(f?i.transform.angle:-i.transform.angle)):z=!1}I.textBox&&Me(e.textCollisionBox.collisionVertexArray,y.text.placed,!z||_,D.x,D.y),I.verticalTextBox&&Me(e.textCollisionBox.collisionVertexArray,y.text.placed,!z||w,D.x,D.y)}var F=Boolean(!w&&I.verticalIconBox);I.iconBox&&Me(e.iconCollisionBox.collisionVertexArray,y.icon.placed,F,h?D.x:0,h?D.y:0),I.verticalIconBox&&Me(e.iconCollisionBox.collisionVertexArray,y.icon.placed,!F,h?D.x:0,h?D.y:0)}}},g=0;g<e.symbolInstances.length;g++)v(g);if(e.sortFeatures(this.transform.angle),this.retainedQueryData[e.bucketInstanceId]&&(this.retainedQueryData[e.bucketInstanceId].featureSortOrder=e.featureSortOrder),e.hasTextData()&&e.text.opacityVertexBuffer&&e.text.opacityVertexBuffer.updateData(e.text.opacityVertexArray),e.hasIconData()&&e.icon.opacityVertexBuffer&&e.icon.opacityVertexBuffer.updateData(e.icon.opacityVertexArray),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexBuffer&&e.iconCollisionBox.collisionVertexBuffer.updateData(e.iconCollisionBox.collisionVertexArray),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexBuffer&&e.textCollisionBox.collisionVertexBuffer.updateData(e.textCollisionBox.collisionVertexArray),e.bucketInstanceId in this.collisionCircleArrays){var y=this.collisionCircleArrays[e.bucketInstanceId];e.placementInvProjMatrix=y.invProjMatrix,e.placementViewportMatrix=y.viewportMatrix,e.collisionCircleArray=y.circles,delete this.collisionCircleArrays[e.bucketInstanceId]}},Ae.prototype.symbolFadeChange=function(t){return 0===this.fadeDuration?1:(t-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment},Ae.prototype.zoomAdjustment=function(t){return Math.max(0,(this.transform.zoom-t)/1.5)},Ae.prototype.hasTransitions=function(t){return this.stale||t-this.lastPlacementChangeTime<this.fadeDuration},Ae.prototype.stillRecent=function(t,e){var r=this.zoomAtLastRecencyCheck===e?1-this.zoomAdjustment(e):1;return this.zoomAtLastRecencyCheck=e,this.commitTime+this.fadeDuration*r>t},Ae.prototype.setStale=function(){this.stale=!0};var Se=Math.pow(2,25),Ee=Math.pow(2,24),Le=Math.pow(2,17),Ce=Math.pow(2,16),Pe=Math.pow(2,9),Oe=Math.pow(2,8),Ie=Math.pow(2,1);function De(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;var e=t.placed?1:0,r=Math.floor(127*t.opacity);return r*Se+e*Ee+r*Le+e*Ce+r*Pe+e*Oe+r*Ie+e}var ze=0,Re=function(t){this._sortAcrossTiles="viewport-y"!==t.layout.get("symbol-z-order")&&void 0!==t.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]};Re.prototype.continuePlacement=function(t,e,r,n,i){for(var a=this._bucketParts;this._currentTileIndex<t.length;){var o=t[this._currentTileIndex];if(e.getBucketParts(a,n,o,this._sortAcrossTiles),this._currentTileIndex++,i())return!0}for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,a.sort((function(t,e){return t.sortKey-e.sortKey})));this._currentPartIndex<a.length;){var s=a[this._currentPartIndex];if(e.placeLayerBucketPart(s,this._seenCrossTileIDs,r),this._currentPartIndex++,i())return!0}return!1};var Fe=function(t,e,r,n,i,a,o){this.placement=new Ae(t,i,a,o),this._currentPlacementIndex=e.length-1,this._forceFullPlacement=r,this._showCollisionBoxes=n,this._done=!1};Fe.prototype.isDone=function(){return this._done},Fe.prototype.continuePlacement=function(e,r,n){for(var i=this,a=t.browser.now(),o=function(){var e=t.browser.now()-a;return!i._forceFullPlacement&&e>2};this._currentPlacementIndex>=0;){var s=r[e[this._currentPlacementIndex]],l=this.placement.collisionIndex.transform.zoom;if("symbol"===s.type&&(!s.minzoom||s.minzoom<=l)&&(!s.maxzoom||s.maxzoom>l)){if(this._inProgressLayer||(this._inProgressLayer=new Re(s)),this._inProgressLayer.continuePlacement(n[s.source],this.placement,this._showCollisionBoxes,s,o))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},Fe.prototype.commit=function(t){return this.placement.commit(t),this.placement};var Be=512/t.EXTENT/2,Ne=function(t,e,r){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=r;for(var n=0;n<e.length;n++){var i=e.get(n),a=i.key;this.indexedSymbolInstances[a]||(this.indexedSymbolInstances[a]=[]),this.indexedSymbolInstances[a].push({crossTileID:i.crossTileID,coord:this.getScaledCoordinates(i,t)})}};Ne.prototype.getScaledCoordinates=function(e,r){var n=r.canonical.z-this.tileID.canonical.z,i=Be/Math.pow(2,n);return{x:Math.floor((r.canonical.x*t.EXTENT+e.anchorX)*i),y:Math.floor((r.canonical.y*t.EXTENT+e.anchorY)*i)}},Ne.prototype.findMatches=function(t,e,r){for(var n=this.tileID.canonical.z<e.canonical.z?1:Math.pow(2,this.tileID.canonical.z-e.canonical.z),i=0;i<t.length;i++){var a=t.get(i);if(!a.crossTileID){var o=this.indexedSymbolInstances[a.key];if(o)for(var s=this.getScaledCoordinates(a,e),l=0,u=o;l<u.length;l+=1){var c=u[l];if(Math.abs(c.coord.x-s.x)<=n&&Math.abs(c.coord.y-s.y)<=n&&!r[c.crossTileID]){r[c.crossTileID]=!0,a.crossTileID=c.crossTileID;break}}}}};var je=function(){this.maxCrossTileID=0};je.prototype.generate=function(){return++this.maxCrossTileID};var Ue=function(){this.indexes={},this.usedCrossTileIDs={},this.lng=0};Ue.prototype.handleWrapJump=function(t){var e=Math.round((t-this.lng)/360);if(0!==e)for(var r in this.indexes){var n=this.indexes[r],i={};for(var a in n){var o=n[a];o.tileID=o.tileID.unwrapTo(o.tileID.wrap+e),i[o.tileID.key]=o}this.indexes[r]=i}this.lng=t},Ue.prototype.addBucket=function(t,e,r){if(this.indexes[t.overscaledZ]&&this.indexes[t.overscaledZ][t.key]){if(this.indexes[t.overscaledZ][t.key].bucketInstanceId===e.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(t.overscaledZ,this.indexes[t.overscaledZ][t.key])}for(var n=0;n<e.symbolInstances.length;n++)e.symbolInstances.get(n).crossTileID=0;this.usedCrossTileIDs[t.overscaledZ]||(this.usedCrossTileIDs[t.overscaledZ]={});var i=this.usedCrossTileIDs[t.overscaledZ];for(var a in this.indexes){var o=this.indexes[a];if(Number(a)>t.overscaledZ)for(var s in o){var l=o[s];l.tileID.isChildOf(t)&&l.findMatches(e.symbolInstances,t,i)}else{var u=o[t.scaledTo(Number(a)).key];u&&u.findMatches(e.symbolInstances,t,i)}}for(var c=0;c<e.symbolInstances.length;c++){var f=e.symbolInstances.get(c);f.crossTileID||(f.crossTileID=r.generate(),i[f.crossTileID]=!0)}return void 0===this.indexes[t.overscaledZ]&&(this.indexes[t.overscaledZ]={}),this.indexes[t.overscaledZ][t.key]=new Ne(t,e.symbolInstances,e.bucketInstanceId),!0},Ue.prototype.removeBucketCrossTileIDs=function(t,e){for(var r in e.indexedSymbolInstances)for(var n=0,i=e.indexedSymbolInstances[r];n<i.length;n+=1){var a=i[n];delete this.usedCrossTileIDs[t][a.crossTileID]}},Ue.prototype.removeStaleBuckets=function(t){var e=!1;for(var r in this.indexes){var n=this.indexes[r];for(var i in n)t[n[i].bucketInstanceId]||(this.removeBucketCrossTileIDs(r,n[i]),delete n[i],e=!0)}return e};var Ve=function(){this.layerIndexes={},this.crossTileIDs=new je,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}};Ve.prototype.addLayer=function(t,e,r){var n=this.layerIndexes[t.id];void 0===n&&(n=this.layerIndexes[t.id]=new Ue);var i=!1,a={};n.handleWrapJump(r);for(var o=0,s=e;o<s.length;o+=1){var l=s[o],u=l.getBucket(t);u&&t.id===u.layerIds[0]&&(u.bucketInstanceId||(u.bucketInstanceId=++this.maxBucketInstanceId),n.addBucket(l.tileID,u,this.crossTileIDs)&&(i=!0),a[u.bucketInstanceId]=!0)}return n.removeStaleBuckets(a)&&(i=!0),i},Ve.prototype.pruneUnusedLayers=function(t){var e={};for(var r in t.forEach((function(t){e[t]=!0})),this.layerIndexes)e[r]||delete this.layerIndexes[r]};var He=function(e,r){return t.emitValidationErrors(e,r&&r.filter((function(t){return"source.canvas"!==t.identifier})))},qe=t.pick(Ht,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData"]),Ge=t.pick(Ht,["setCenter","setZoom","setBearing","setPitch"]),Ze=function(){var e={},r=t.styleSpec.$version;for(var n in t.styleSpec.$root){var i=t.styleSpec.$root[n];if(i.required){var a;null!=(a="version"===n?r:"array"===i.type?[]:{})&&(e[n]=a)}}return e}(),Ye=function(e){function r(n,i){var a=this;void 0===i&&(i={}),e.call(this),this.map=n,this.dispatcher=new A(jt(),this),this.imageManager=new h,this.imageManager.setEventedParent(this),this.glyphManager=new x(n._requestManager,i.localIdeographFontFamily),this.lineAtlas=new k(256,512),this.crossTileSymbolIndex=new Ve,this._layers={},this._serializedLayers={},this._order=[],this.sourceCaches={},this.zoomHistory=new t.ZoomHistory,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("setReferrer",t.getReferrer());var o=this;this._rtlTextPluginCallback=r.registerForPluginStateChange((function(e){var r={pluginStatus:e.pluginStatus,pluginURL:e.pluginURL};o.dispatcher.broadcast("syncRTLPluginState",r,(function(e,r){if(t.triggerPluginCompletionEvent(e),r&&r.every((function(t){return t})))for(var n in o.sourceCaches)o.sourceCaches[n].reload()}))})),this.on("data",(function(t){if("source"===t.dataType&&"metadata"===t.sourceDataType){var e=a.sourceCaches[t.sourceId];if(e){var r=e.getSource();if(r&&r.vectorLayerIds)for(var n in a._layers){var i=a._layers[n];i.source===r.id&&a._validateLayer(i)}}}}))}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadURL=function(e,r){var n=this;void 0===r&&(r={}),this.fire(new t.Event("dataloading",{dataType:"style"}));var i="boolean"==typeof r.validate?r.validate:!t.isMapboxURL(e);e=this.map._requestManager.normalizeStyleURL(e,r.accessToken);var a=this.map._requestManager.transformRequest(e,t.ResourceType.Style);this._request=t.getJSON(a,(function(e,r){n._request=null,e?n.fire(new t.ErrorEvent(e)):r&&n._load(r,i)}))},r.prototype.loadJSON=function(e,r){var n=this;void 0===r&&(r={}),this.fire(new t.Event("dataloading",{dataType:"style"})),this._request=t.browser.frame((function(){n._request=null,n._load(e,!1!==r.validate)}))},r.prototype.loadEmpty=function(){this.fire(new t.Event("dataloading",{dataType:"style"})),this._load(Ze,!1)},r.prototype._load=function(e,r){if(!r||!He(this,t.validateStyle(e))){for(var n in this._loaded=!0,this.stylesheet=e,e.sources)this.addSource(n,e.sources[n],{validate:!1});e.sprite?this._loadSprite(e.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(e.glyphs);var i=Vt(this.stylesheet.layers);this._order=i.map((function(t){return t.id})),this._layers={},this._serializedLayers={};for(var a=0,o=i;a<o.length;a+=1){var s=o[a];(s=t.createStyleLayer(s)).setEventedParent(this,{layer:{id:s.id}}),this._layers[s.id]=s,this._serializedLayers[s.id]=s.serialize()}this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new T(this.stylesheet.light),this.fire(new t.Event("data",{dataType:"style"})),this.fire(new t.Event("style.load"))}},r.prototype._loadSprite=function(e){var r=this;this._spriteRequest=function(e,r,n){var i,a,o,s=t.browser.devicePixelRatio>1?"@2x":"",l=t.getJSON(r.transformRequest(r.normalizeSpriteURL(e,s,".json"),t.ResourceType.SpriteJSON),(function(t,e){l=null,o||(o=t,i=e,c())})),u=t.getImage(r.transformRequest(r.normalizeSpriteURL(e,s,".png"),t.ResourceType.SpriteImage),(function(t,e){u=null,o||(o=t,a=e,c())}));function c(){if(o)n(o);else if(i&&a){var e=t.browser.getImageData(a),r={};for(var s in i){var l=i[s],u=l.width,c=l.height,f=l.x,h=l.y,p=l.sdf,d=l.pixelRatio,v=l.stretchX,g=l.stretchY,y=l.content,m=new t.RGBAImage({width:u,height:c});t.RGBAImage.copy(e,m,{x:f,y:h},{x:0,y:0},{width:u,height:c}),r[s]={data:m,pixelRatio:d,sdf:p,stretchX:v,stretchY:g,content:y}}n(null,r)}}return{cancel:function(){l&&(l.cancel(),l=null),u&&(u.cancel(),u=null)}}}(e,this.map._requestManager,(function(e,n){if(r._spriteRequest=null,e)r.fire(new t.ErrorEvent(e));else if(n)for(var i in n)r.imageManager.addImage(i,n[i]);r.imageManager.setLoaded(!0),r._availableImages=r.imageManager.listImages(),r.dispatcher.broadcast("setImages",r._availableImages),r.fire(new t.Event("data",{dataType:"style"}))}))},r.prototype._validateLayer=function(e){var r=this.sourceCaches[e.source];if(r){var n=e.sourceLayer;if(n){var i=r.getSource();("geojson"===i.type||i.vectorLayerIds&&-1===i.vectorLayerIds.indexOf(n))&&this.fire(new t.ErrorEvent(new Error('Source layer "'+n+'" does not exist on source "'+i.id+'" as specified by style layer "'+e.id+'"')))}}},r.prototype.loaded=function(){if(!this._loaded)return!1;if(Object.keys(this._updatedSources).length)return!1;for(var t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return!1;return!!this.imageManager.isLoaded()},r.prototype._serializeLayers=function(t){for(var e=[],r=0,n=t;r<n.length;r+=1){var i=n[r],a=this._layers[i];"custom"!==a.type&&e.push(a.serialize())}return e},r.prototype.hasTransitions=function(){if(this.light&&this.light.hasTransition())return!0;for(var t in this.sourceCaches)if(this.sourceCaches[t].hasTransition())return!0;for(var e in this._layers)if(this._layers[e].hasTransition())return!0;return!1},r.prototype._checkLoaded=function(){if(!this._loaded)throw new Error("Style is not done loading")},r.prototype.update=function(e){if(this._loaded){var r=this._changed;if(this._changed){var n=Object.keys(this._updatedLayers),i=Object.keys(this._removedLayers);for(var a in(n.length||i.length)&&this._updateWorkerLayers(n,i),this._updatedSources){var o=this._updatedSources[a];"reload"===o?this._reloadSource(a):"clear"===o&&this._clearSource(a)}for(var s in this._updateTilesForChangedImages(),this._updatedPaintProps)this._layers[s].updateTransitions(e);this.light.updateTransitions(e),this._resetUpdates()}for(var l in this.sourceCaches)this.sourceCaches[l].used=!1;for(var u=0,c=this._order;u<c.length;u+=1){var f=c[u],h=this._layers[f];h.recalculate(e,this._availableImages),!h.isHidden(e.zoom)&&h.source&&(this.sourceCaches[h.source].used=!0)}this.light.recalculate(e),this.z=e.zoom,r&&this.fire(new t.Event("data",{dataType:"style"}))}},r.prototype._updateTilesForChangedImages=function(){var t=Object.keys(this._changedImages);if(t.length){for(var e in this.sourceCaches)this.sourceCaches[e].reloadTilesForDependencies(["icons","patterns"],t);this._changedImages={}}},r.prototype._updateWorkerLayers=function(t,e){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(t),removedIds:e})},r.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}},r.prototype.setState=function(e){var r=this;if(this._checkLoaded(),He(this,t.validateStyle(e)))return!1;(e=t.clone$1(e)).layers=Vt(e.layers);var n=Kt(this.serialize(),e).filter((function(t){return!(t.command in Ge)}));if(0===n.length)return!1;var i=n.filter((function(t){return!(t.command in qe)}));if(i.length>0)throw new Error("Unimplemented: "+i.map((function(t){return t.command})).join(", ")+".");return n.forEach((function(t){"setTransition"!==t.command&&r[t.command].apply(r,t.args)})),this.stylesheet=e,!0},r.prototype.addImage=function(e,r){if(this.getImage(e))return this.fire(new t.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(e,r),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}))},r.prototype.updateImage=function(t,e){this.imageManager.updateImage(t,e)},r.prototype.getImage=function(t){return this.imageManager.getImage(t)},r.prototype.removeImage=function(e){if(!this.getImage(e))return this.fire(new t.ErrorEvent(new Error("No image with this name exists.")));this.imageManager.removeImage(e),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}))},r.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},r.prototype.addSource=function(e,r,n){var i=this;if(void 0===n&&(n={}),this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!r.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(r).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(r.type)>=0&&this._validate(t.validateStyle.source,"sources."+e,r,null,n))){this.map&&this.map._collectResourceTiming&&(r.collectResourceTiming=!0);var a=this.sourceCaches[e]=new Ot(e,r,this.dispatcher);a.style=this,a.setEventedParent(this,(function(){return{isSourceLoaded:i.loaded(),source:a.serialize(),sourceId:e}})),a.onAdd(this.map),this._changed=!0}},r.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");for(var r in this._layers)if(this._layers[r].source===e)return this.fire(new t.ErrorEvent(new Error('Source "'+e+'" cannot be removed while layer "'+r+'" is using it.')));var n=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],n.fire(new t.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),n.setEventedParent(null),n.clearTiles(),n.onRemove&&n.onRemove(this.map),this._changed=!0},r.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0},r.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},r.prototype.addLayer=function(e,r,n){void 0===n&&(n={}),this._checkLoaded();var i=e.id;if(this.getLayer(i))this.fire(new t.ErrorEvent(new Error('Layer with id "'+i+'" already exists on this map')));else{var a;if("custom"===e.type){if(He(this,t.validateCustomStyleLayer(e)))return;a=t.createStyleLayer(e)}else{if("object"==typeof e.source&&(this.addSource(i,e.source),e=t.clone$1(e),e=t.extend(e,{source:i})),this._validate(t.validateStyle.layer,"layers."+i,e,{arrayIndex:-1},n))return;a=t.createStyleLayer(e),this._validateLayer(a),a.setEventedParent(this,{layer:{id:i}}),this._serializedLayers[a.id]=a.serialize()}var o=r?this._order.indexOf(r):this._order.length;if(r&&-1===o)this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" does not exist on this map.')));else{if(this._order.splice(o,0,i),this._layerOrderChanged=!0,this._layers[i]=a,this._removedLayers[i]&&a.source&&"custom"!==a.type){var s=this._removedLayers[i];delete this._removedLayers[i],s.type!==a.type?this._updatedSources[a.source]="clear":(this._updatedSources[a.source]="reload",this.sourceCaches[a.source].pause())}this._updateLayer(a),a.onAdd&&a.onAdd(this.map)}}},r.prototype.moveLayer=function(e,r){if(this._checkLoaded(),this._changed=!0,this._layers[e]){if(e!==r){var n=this._order.indexOf(e);this._order.splice(n,1);var i=r?this._order.indexOf(r):this._order.length;r&&-1===i?this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" does not exist on this map.'))):(this._order.splice(i,0,e),this._layerOrderChanged=!0)}}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")))},r.prototype.removeLayer=function(e){this._checkLoaded();var r=this._layers[e];if(r){r.setEventedParent(null);var n=this._order.indexOf(e);this._order.splice(n,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=r,delete this._layers[e],delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],r.onRemove&&r.onRemove(this.map)}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")))},r.prototype.getLayer=function(t){return this._layers[t]},r.prototype.hasLayer=function(t){return t in this._layers},r.prototype.setLayerZoomRange=function(e,r,n){this._checkLoaded();var i=this.getLayer(e);i?i.minzoom===r&&i.maxzoom===n||(null!=r&&(i.minzoom=r),null!=n&&(i.maxzoom=n),this._updateLayer(i)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")))},r.prototype.setFilter=function(e,r,n){void 0===n&&(n={}),this._checkLoaded();var i=this.getLayer(e);if(i){if(!t.deepEqual(i.filter,r))return null==r?(i.filter=void 0,void this._updateLayer(i)):void(this._validate(t.validateStyle.filter,"layers."+i.id+".filter",r,null,n)||(i.filter=t.clone$1(r),this._updateLayer(i)))}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")))},r.prototype.getFilter=function(e){return t.clone$1(this.getLayer(e).filter)},r.prototype.setLayoutProperty=function(e,r,n,i){void 0===i&&(i={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getLayoutProperty(r),n)||(a.setLayoutProperty(r,n,i),this._updateLayer(a)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")))},r.prototype.getLayoutProperty=function(e,r){var n=this.getLayer(e);if(n)return n.getLayoutProperty(r);this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style.")))},r.prototype.setPaintProperty=function(e,r,n,i){void 0===i&&(i={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getPaintProperty(r),n)||(a.setPaintProperty(r,n,i)&&this._updateLayer(a),this._changed=!0,this._updatedPaintProps[e]=!0):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")))},r.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},r.prototype.setFeatureState=function(e,r){this._checkLoaded();var n=e.source,i=e.sourceLayer,a=this.sourceCaches[n];if(void 0!==a){var o=a.getSource().type;"geojson"===o&&i?this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):"vector"!==o||i?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),a.setFeatureState(i,e.id,r)):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+n+"' does not exist in the map's style.")))},r.prototype.removeFeatureState=function(e,r){this._checkLoaded();var n=e.source,i=this.sourceCaches[n];if(void 0!==i){var a=i.getSource().type,o="vector"===a?e.sourceLayer:void 0;"vector"!==a||o?r&&"string"!=typeof e.id&&"number"!=typeof e.id?this.fire(new t.ErrorEvent(new Error("A feature id is requred to remove its specific state property."))):i.removeFeatureState(o,e.id,r):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+n+"' does not exist in the map's style.")))},r.prototype.getFeatureState=function(e){this._checkLoaded();var r=e.source,n=e.sourceLayer,i=this.sourceCaches[r];if(void 0!==i){if("vector"!==i.getSource().type||n)return void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),i.getFeatureState(n,e.id);this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+r+"' does not exist in the map's style.")))},r.prototype.getTransition=function(){return t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},r.prototype.serialize=function(){return t.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:t.mapObject(this.sourceCaches,(function(t){return t.serialize()})),layers:this._serializeLayers(this._order)},(function(t){return void 0!==t}))},r.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&"raster"!==this.sourceCaches[t.source].getSource().type&&(this._updatedSources[t.source]="reload",this.sourceCaches[t.source].pause()),this._changed=!0},r.prototype._flattenAndSortRenderedFeatures=function(t){for(var e=this,r=function(t){return"fill-extrusion"===e._layers[t].type},n={},i=[],a=this._order.length-1;a>=0;a--){var o=this._order[a];if(r(o)){n[o]=a;for(var s=0,l=t;s<l.length;s+=1){var u=l[s][o];if(u)for(var c=0,f=u;c<f.length;c+=1){var h=f[c];i.push(h)}}}}i.sort((function(t,e){return e.intersectionZ-t.intersectionZ}));for(var p=[],d=this._order.length-1;d>=0;d--){var v=this._order[d];if(r(v))for(var g=i.length-1;g>=0;g--){var y=i[g].feature;if(n[y.layer.id]<d)break;p.push(y),i.pop()}else for(var m=0,x=t;m<x.length;m+=1){var b=x[m][v];if(b)for(var _=0,w=b;_<w.length;_+=1){var T=w[_];p.push(T.feature)}}}return p},r.prototype.queryRenderedFeatures=function(e,r,n){r&&r.filter&&this._validate(t.validateStyle.filter,"queryRenderedFeatures.filter",r.filter,null,r);var i={};if(r&&r.layers){if(!Array.isArray(r.layers))return this.fire(new t.ErrorEvent(new Error("parameters.layers must be an Array."))),[];for(var a=0,o=r.layers;a<o.length;a+=1){var s=o[a],l=this._layers[s];if(!l)return this.fire(new t.ErrorEvent(new Error("The layer '"+s+"' does not exist in the map's style and cannot be queried for features."))),[];i[l.source]=!0}}var u=[];for(var c in r.availableImages=this._availableImages,this.sourceCaches)r.layers&&!i[c]||u.push(B(this.sourceCaches[c],this._layers,this._serializedLayers,e,r,n));return this.placement&&u.push(function(t,e,r,n,i,a,o){for(var s={},l=a.queryRenderedSymbols(n),u=[],c=0,f=Object.keys(l).map(Number);c<f.length;c+=1){var h=f[c];u.push(o[h])}u.sort(N);for(var p=function(){var r=v[d],n=r.featureIndex.lookupSymbolFeatures(l[r.bucketInstanceId],e,r.bucketIndex,r.sourceLayerIndex,i.filter,i.layers,i.availableImages,t);for(var a in n){var o=s[a]=s[a]||[],u=n[a];u.sort((function(t,e){var n=r.featureSortOrder;if(n){var i=n.indexOf(t.featureIndex);return n.indexOf(e.featureIndex)-i}return e.featureIndex-t.featureIndex}));for(var c=0,f=u;c<f.length;c+=1){var h=f[c];o.push(h)}}},d=0,v=u;d<v.length;d+=1)p();var g=function(e){s[e].forEach((function(n){var i=n.feature,a=t[e],o=r[a.source].getFeatureState(i.layer["source-layer"],i.id);i.source=i.layer.source,i.layer["source-layer"]&&(i.sourceLayer=i.layer["source-layer"]),i.state=o}))};for(var y in s)g(y);return s}(this._layers,this._serializedLayers,this.sourceCaches,e,r,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(u)},r.prototype.querySourceFeatures=function(e,r){r&&r.filter&&this._validate(t.validateStyle.filter,"querySourceFeatures.filter",r.filter,null,r);var n=this.sourceCaches[e];return n?function(t,e){for(var r=t.getRenderableIds().map((function(e){return t.getTileByID(e)})),n=[],i={},a=0;a<r.length;a++){var o=r[a],s=o.tileID.canonical.key;i[s]||(i[s]=!0,o.querySourceFeatures(n,e))}return n}(n,r):[]},r.prototype.addSourceType=function(t,e,n){return r.getSourceType(t)?n(new Error('A source type called "'+t+'" already exists.')):(r.setSourceType(t,e),e.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:t,url:e.workerSourceURL},n):n(null,null))},r.prototype.getLight=function(){return this.light.getLight()},r.prototype.setLight=function(e,r){void 0===r&&(r={}),this._checkLoaded();var n=this.light.getLight(),i=!1;for(var a in e)if(!t.deepEqual(e[a],n[a])){i=!0;break}if(i){var o={now:t.browser.now(),transition:t.extend({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(e,r),this.light.updateTransitions(o)}},r.prototype._validate=function(e,r,n,i,a){return void 0===a&&(a={}),(!a||!1!==a.validate)&&He(this,e.call(t.validateStyle,t.extend({key:r,style:this.serialize(),value:n,styleSpec:t.styleSpec},i)))},r.prototype._remove=function(){for(var e in this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),t.evented.off("pluginStateChange",this._rtlTextPluginCallback),this._layers)this._layers[e].setEventedParent(null);for(var r in this.sourceCaches)this.sourceCaches[r].clearTiles(),this.sourceCaches[r].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()},r.prototype._clearSource=function(t){this.sourceCaches[t].clearTiles()},r.prototype._reloadSource=function(t){this.sourceCaches[t].resume(),this.sourceCaches[t].reload()},r.prototype._updateSources=function(t){for(var e in this.sourceCaches)this.sourceCaches[e].update(t)},r.prototype._generateCollisionBoxes=function(){for(var t in this.sourceCaches)this._reloadSource(t)},r.prototype._updatePlacement=function(e,r,n,i,a){void 0===a&&(a=!1);for(var o=!1,s=!1,l={},u=0,c=this._order;u<c.length;u+=1){var f=c[u],h=this._layers[f];if("symbol"===h.type){if(!l[h.source]){var p=this.sourceCaches[h.source];l[h.source]=p.getRenderableIds(!0).map((function(t){return p.getTileByID(t)})).sort((function(t,e){return e.tileID.overscaledZ-t.tileID.overscaledZ||(t.tileID.isLessThan(e.tileID)?-1:1)}))}var d=this.crossTileSymbolIndex.addLayer(h,l[h.source],e.center.lng);o=o||d}}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((a=a||this._layerOrderChanged||0===n)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(t.browser.now(),e.zoom))&&(this.pauseablePlacement=new Fe(e,this._order,a,r,n,i,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,l),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(t.browser.now()),s=!0),o&&this.pauseablePlacement.placement.setStale()),s||o)for(var v=0,g=this._order;v<g.length;v+=1){var y=g[v],m=this._layers[y];"symbol"===m.type&&this.placement.updateLayerOpacities(m,l[m.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(t.browser.now())},r.prototype._releaseSymbolFadeTiles=function(){for(var t in this.sourceCaches)this.sourceCaches[t].releaseSymbolFadeTiles()},r.prototype.getImages=function(t,e,r){this.imageManager.getImages(e.icons,r),this._updateTilesForChangedImages();var n=this.sourceCaches[e.source];n&&n.setDependencies(e.tileID.key,e.type,e.icons)},r.prototype.getGlyphs=function(t,e,r){this.glyphManager.getGlyphs(e.stacks,r)},r.prototype.getResource=function(e,r,n){return t.makeRequest(r,n)},r}(t.Evented);Ye.getSourceType=function(t){return R[t]},Ye.setSourceType=function(t,e){R[t]=e},Ye.registerForPluginStateChange=t.registerForPluginStateChange;var We=t.createLayout([{name:"a_pos",type:"Int16",components:2}]),Xe=_r("#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif","#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}"),Je=_r("uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),Ke=_r("uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"),$e=_r("varying vec3 v_data;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,0,1);} else {gl_Position=u_matrix*vec4(circle_center,0,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}"),Qe=_r("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),tr=_r("uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}"),er=_r("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"),rr=_r("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),nr=_r("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd  =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz  /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),ir=_r("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"),ar=_r("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}"),or=_r("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),sr=_r("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),lr=_r("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"),ur=_r("varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"),cr=_r("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"),fr=_r("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform float u_maxzoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggeration=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/ pow(2.0,(u_zoom-u_maxzoom)*exaggeration+19.2562-u_zoom);gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hr=_r("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),pr=_r("uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),dr=_r("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp float v_lineprogress;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,vec2(v_lineprogress,0.5));gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define MAX_LINE_DISTANCE 32767.0\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_lineprogress;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_lineprogress=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0/MAX_LINE_DISTANCE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),vr=_r("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"),gr=_r("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"),yr=_r("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),mr=_r("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}"),xr=_r("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"),br=_r("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}");function _r(t,e){var r=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,n={};return{fragmentSource:t=t.replace(r,(function(t,e,r,i,a){return n[a]=!0,"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nvarying "+r+" "+i+" "+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"\n#ifdef HAS_UNIFORM_u_"+a+"\n    "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n"})),vertexSource:e=e.replace(r,(function(t,e,r,i,a){var o="float"===i?"vec2":"vec4",s=a.match(/color/)?"color":o;return n[a]?"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+r+" "+o+" a_"+a+";\nvarying "+r+" "+i+" "+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n    "+a+" = a_"+a+";\n#else\n    "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n    "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n    "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+r+" "+o+" a_"+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n    "+r+" "+i+" "+a+" = a_"+a+";\n#else\n    "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n    "+r+" "+i+" "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n    "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n"}))}}var wr=Object.freeze({__proto__:null,prelude:Xe,background:Je,backgroundPattern:Ke,circle:$e,clippingMask:Qe,heatmap:tr,heatmapTexture:er,collisionBox:rr,collisionCircle:nr,debug:ir,fill:ar,fillOutline:or,fillOutlinePattern:sr,fillPattern:lr,fillExtrusion:ur,fillExtrusionPattern:cr,hillshadePrepare:fr,hillshade:hr,line:pr,lineGradient:dr,linePattern:vr,lineSDF:gr,raster:yr,symbolIcon:mr,symbolSDF:xr,symbolTextAndIcon:br}),Tr=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};Tr.prototype.bind=function(t,e,r,n,i,a,o,s){this.context=t;for(var l=this.boundPaintVertexBuffers.length!==n.length,u=0;!l&&u<n.length;u++)this.boundPaintVertexBuffers[u]!==n[u]&&(l=!0);var c=!this.vao||this.boundProgram!==e||this.boundLayoutVertexBuffer!==r||l||this.boundIndexBuffer!==i||this.boundVertexOffset!==a||this.boundDynamicVertexBuffer!==o||this.boundDynamicVertexBuffer2!==s;!t.extVertexArrayObject||c?this.freshBind(e,r,n,i,a,o,s):(t.bindVertexArrayOES.set(this.vao),o&&o.bind(),i&&i.dynamicDraw&&i.bind(),s&&s.bind())},Tr.prototype.freshBind=function(t,e,r,n,i,a,o){var s,l=t.numAttributes,u=this.context,c=u.gl;if(u.extVertexArrayObject)this.vao&&this.destroy(),this.vao=u.extVertexArrayObject.createVertexArrayOES(),u.bindVertexArrayOES.set(this.vao),s=0,this.boundProgram=t,this.boundLayoutVertexBuffer=e,this.boundPaintVertexBuffers=r,this.boundIndexBuffer=n,this.boundVertexOffset=i,this.boundDynamicVertexBuffer=a,this.boundDynamicVertexBuffer2=o;else{s=u.currentNumAttributes||0;for(var f=l;f<s;f++)c.disableVertexAttribArray(f)}e.enableAttributes(c,t);for(var h=0,p=r;h<p.length;h+=1)p[h].enableAttributes(c,t);a&&a.enableAttributes(c,t),o&&o.enableAttributes(c,t),e.bind(),e.setVertexAttribPointers(c,t,i);for(var d=0,v=r;d<v.length;d+=1){var g=v[d];g.bind(),g.setVertexAttribPointers(c,t,i)}a&&(a.bind(),a.setVertexAttribPointers(c,t,i)),n&&n.bind(),o&&(o.bind(),o.setVertexAttribPointers(c,t,i)),u.currentNumAttributes=l},Tr.prototype.destroy=function(){this.vao&&(this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao),this.vao=null)};var kr=function(t,e,r,n,i){var a=t.gl;this.program=a.createProgram();var o=r?r.defines():[];i&&o.push("#define OVERDRAW_INSPECTOR;");var s=o.concat(Xe.fragmentSource,e.fragmentSource).join("\n"),l=o.concat(Xe.vertexSource,e.vertexSource).join("\n"),u=a.createShader(a.FRAGMENT_SHADER);if(a.isContextLost())this.failedToCreate=!0;else{a.shaderSource(u,s),a.compileShader(u),a.attachShader(this.program,u);var c=a.createShader(a.VERTEX_SHADER);if(a.isContextLost())this.failedToCreate=!0;else{a.shaderSource(c,l),a.compileShader(c),a.attachShader(this.program,c);for(var f=r?r.layoutAttributes:[],h=0;h<f.length;h++)a.bindAttribLocation(this.program,h,f[h].name);a.linkProgram(this.program),a.deleteShader(c),a.deleteShader(u),this.numAttributes=a.getProgramParameter(this.program,a.ACTIVE_ATTRIBUTES),this.attributes={};for(var p={},d=0;d<this.numAttributes;d++){var v=a.getActiveAttrib(this.program,d);v&&(this.attributes[v.name]=a.getAttribLocation(this.program,v.name))}for(var g=a.getProgramParameter(this.program,a.ACTIVE_UNIFORMS),y=0;y<g;y++){var m=a.getActiveUniform(this.program,y);m&&(p[m.name]=a.getUniformLocation(this.program,m.name))}this.fixedUniforms=n(t,p),this.binderUniforms=r?r.getUniforms(t,p):[]}}};function Ar(t,e,r){var n=1/ge(r,1,e.transform.tileZoom),i=Math.pow(2,r.tileID.overscaledZ),a=r.tileSize*Math.pow(2,e.transform.tileZoom)/i,o=a*(r.tileID.canonical.x+r.tileID.wrap*i),s=a*r.tileID.canonical.y;return{u_image:0,u_texsize:r.imageAtlasTexture.size,u_scale:[n,t.fromScale,t.toScale],u_fade:t.t,u_pixel_coord_upper:[o>>16,s>>16],u_pixel_coord_lower:[65535&o,65535&s]}}kr.prototype.draw=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v){var g,y=t.gl;if(!this.failedToCreate){for(var m in t.program.set(this.program),t.setDepthMode(r),t.setStencilMode(n),t.setColorMode(i),t.setCullFace(a),this.fixedUniforms)this.fixedUniforms[m].set(o[m]);p&&p.setUniforms(t,this.binderUniforms,f,{zoom:h});for(var x=(g={},g[y.LINES]=2,g[y.TRIANGLES]=3,g[y.LINE_STRIP]=1,g)[e],b=0,_=c.get();b<_.length;b+=1){var w=_[b],T=w.vaos||(w.vaos={});(T[s]||(T[s]=new Tr)).bind(t,this,l,p?p.getPaintVertexBuffers():[],u,w.vertexOffset,d,v),y.drawElements(e,w.primitiveLength*x,y.UNSIGNED_SHORT,w.primitiveOffset*x*2)}}};var Mr=function(e,r,n,i){var a=r.style.light,o=a.properties.get("position"),s=[o.x,o.y,o.z],l=t.create$1();"viewport"===a.properties.get("anchor")&&t.fromRotation(l,-r.transform.angle),t.transformMat3(s,s,l);var u=a.properties.get("color");return{u_matrix:e,u_lightpos:s,u_lightintensity:a.properties.get("intensity"),u_lightcolor:[u.r,u.g,u.b],u_vertical_gradient:+n,u_opacity:i}},Sr=function(e,r,n,i,a,o,s){return t.extend(Mr(e,r,n,i),Ar(o,r,s),{u_height_factor:-Math.pow(2,a.overscaledZ)/s.tileSize/8})},Er=function(t){return{u_matrix:t}},Lr=function(e,r,n,i){return t.extend(Er(e),Ar(n,r,i))},Cr=function(t,e){return{u_matrix:t,u_world:e}},Pr=function(e,r,n,i,a){return t.extend(Lr(e,r,n,i),{u_world:a})},Or=function(e,r,n,i){var a,o,s=e.transform;if("map"===i.paint.get("circle-pitch-alignment")){var l=ge(n,1,s.zoom);a=!0,o=[l,l]}else a=!1,o=s.pixelsToGLUnits;return{u_camera_to_center_distance:s.cameraToCenterDistance,u_scale_with_map:+("map"===i.paint.get("circle-pitch-scale")),u_matrix:e.translatePosMatrix(r.posMatrix,n,i.paint.get("circle-translate"),i.paint.get("circle-translate-anchor")),u_pitch_with_map:+a,u_device_pixel_ratio:t.browser.devicePixelRatio,u_extrude_scale:o}},Ir=function(t,e,r){var n=ge(r,1,e.zoom),i=Math.pow(2,e.zoom-r.tileID.overscaledZ),a=r.tileID.overscaleFactor();return{u_matrix:t,u_camera_to_center_distance:e.cameraToCenterDistance,u_pixels_to_tile_units:n,u_extrude_scale:[e.pixelsToGLUnits[0]/(n*i),e.pixelsToGLUnits[1]/(n*i)],u_overscale_factor:a}},Dr=function(t,e,r){return{u_matrix:t,u_inv_matrix:e,u_camera_to_center_distance:r.cameraToCenterDistance,u_viewport_size:[r.width,r.height]}},zr=function(t,e,r){return void 0===r&&(r=1),{u_matrix:t,u_color:e,u_overlay:0,u_overlay_scale:r}},Rr=function(t){return{u_matrix:t}},Fr=function(t,e,r,n){return{u_matrix:t,u_extrude_scale:ge(e,1,r),u_intensity:n}};var Br=function(e,r,n){var i=e.transform;return{u_matrix:Hr(e,r,n),u_ratio:1/ge(r,1,i.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_units_to_pixels:[1/i.pixelsToGLUnits[0],1/i.pixelsToGLUnits[1]]}},Nr=function(e,r,n){return t.extend(Br(e,r,n),{u_image:0})},jr=function(e,r,n,i){var a=e.transform,o=Vr(r,a);return{u_matrix:Hr(e,r,n),u_texsize:r.imageAtlasTexture.size,u_ratio:1/ge(r,1,a.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_image:0,u_scale:[o,i.fromScale,i.toScale],u_fade:i.t,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]]}},Ur=function(e,r,n,i,a){var o=e.transform,s=e.lineAtlas,l=Vr(r,o),u="round"===n.layout.get("line-cap"),c=s.getDash(i.from,u),f=s.getDash(i.to,u),h=c.width*a.fromScale,p=f.width*a.toScale;return t.extend(Br(e,r,n),{u_patternscale_a:[l/h,-c.height/2],u_patternscale_b:[l/p,-f.height/2],u_sdfgamma:s.width/(256*Math.min(h,p)*t.browser.devicePixelRatio)/2,u_image:0,u_tex_y_a:c.y,u_tex_y_b:f.y,u_mix:a.t})};function Vr(t,e){return 1/ge(t,1,e.tileZoom)}function Hr(t,e,r){return t.translatePosMatrix(e.tileID.posMatrix,e,r.paint.get("line-translate"),r.paint.get("line-translate-anchor"))}var qr=function(t,e,r,n,i){return{u_matrix:t,u_tl_parent:e,u_scale_parent:r,u_buffer_scale:1,u_fade_t:n.mix,u_opacity:n.opacity*i.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:i.paint.get("raster-brightness-min"),u_brightness_high:i.paint.get("raster-brightness-max"),u_saturation_factor:(o=i.paint.get("raster-saturation"),o>0?1-1/(1.001-o):-o),u_contrast_factor:(a=i.paint.get("raster-contrast"),a>0?1/(1-a):1+a),u_spin_weights:Gr(i.paint.get("raster-hue-rotate"))};var a,o};function Gr(t){t*=Math.PI/180;var e=Math.sin(t),r=Math.cos(t);return[(2*r+1)/3,(-Math.sqrt(3)*e-r+1)/3,(Math.sqrt(3)*e-r+1)/3]}var Zr,Yr=function(t,e,r,n,i,a,o,s,l,u){var c=i.transform;return{u_is_size_zoom_constant:+("constant"===t||"source"===t),u_is_size_feature_constant:+("constant"===t||"camera"===t),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:c.cameraToCenterDistance,u_pitch:c.pitch/360*2*Math.PI,u_rotate_symbol:+r,u_aspect_ratio:c.width/c.height,u_fade_change:i.options.fadeDuration?i.symbolFadeChange:1,u_matrix:a,u_label_plane_matrix:o,u_coord_matrix:s,u_is_text:+l,u_pitch_with_map:+n,u_texsize:u,u_texture:0}},Wr=function(e,r,n,i,a,o,s,l,u,c,f){var h=a.transform;return t.extend(Yr(e,r,n,i,a,o,s,l,u,c),{u_gamma_scale:i?Math.cos(h._pitch)*h.cameraToCenterDistance:1,u_device_pixel_ratio:t.browser.devicePixelRatio,u_is_halo:+f})},Xr=function(e,r,n,i,a,o,s,l,u,c){return t.extend(Wr(e,r,n,i,a,o,s,l,!0,u,!0),{u_texsize_icon:c,u_texture_icon:1})},Jr=function(t,e,r){return{u_matrix:t,u_opacity:e,u_color:r}},Kr=function(e,r,n,i,a,o){return t.extend(function(t,e,r,n){var i=r.imageManager.getPattern(t.from.toString()),a=r.imageManager.getPattern(t.to.toString()),o=r.imageManager.getPixelSize(),s=o.width,l=o.height,u=Math.pow(2,n.tileID.overscaledZ),c=n.tileSize*Math.pow(2,r.transform.tileZoom)/u,f=c*(n.tileID.canonical.x+n.tileID.wrap*u),h=c*n.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:i.tl,u_pattern_br_a:i.br,u_pattern_tl_b:a.tl,u_pattern_br_b:a.br,u_texsize:[s,l],u_mix:e.t,u_pattern_size_a:i.displaySize,u_pattern_size_b:a.displaySize,u_scale_a:e.fromScale,u_scale_b:e.toScale,u_tile_units_to_pixels:1/ge(n,1,r.transform.tileZoom),u_pixel_coord_upper:[f>>16,h>>16],u_pixel_coord_lower:[65535&f,65535&h]}}(i,o,n,a),{u_matrix:e,u_opacity:r})},$r={fillExtrusion:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_lightpos:new t.Uniform3f(e,r.u_lightpos),u_lightintensity:new t.Uniform1f(e,r.u_lightintensity),u_lightcolor:new t.Uniform3f(e,r.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,r.u_vertical_gradient),u_opacity:new t.Uniform1f(e,r.u_opacity)}},fillExtrusionPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_lightpos:new t.Uniform3f(e,r.u_lightpos),u_lightintensity:new t.Uniform1f(e,r.u_lightintensity),u_lightcolor:new t.Uniform3f(e,r.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,r.u_vertical_gradient),u_height_factor:new t.Uniform1f(e,r.u_height_factor),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade),u_opacity:new t.Uniform1f(e,r.u_opacity)}},fill:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},fillPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},fillOutline:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world)}},fillOutlinePattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},circle:function(e,r){return{u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_scale_with_map:new t.Uniform1i(e,r.u_scale_with_map),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_extrude_scale:new t.Uniform2f(e,r.u_extrude_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},collisionBox:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pixels_to_tile_units:new t.Uniform1f(e,r.u_pixels_to_tile_units),u_extrude_scale:new t.Uniform2f(e,r.u_extrude_scale),u_overscale_factor:new t.Uniform1f(e,r.u_overscale_factor)}},collisionCircle:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_inv_matrix:new t.UniformMatrix4f(e,r.u_inv_matrix),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_viewport_size:new t.Uniform2f(e,r.u_viewport_size)}},debug:function(e,r){return{u_color:new t.UniformColor(e,r.u_color),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_overlay:new t.Uniform1i(e,r.u_overlay),u_overlay_scale:new t.Uniform1f(e,r.u_overlay_scale)}},clippingMask:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},heatmap:function(e,r){return{u_extrude_scale:new t.Uniform1f(e,r.u_extrude_scale),u_intensity:new t.Uniform1f(e,r.u_intensity),u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},heatmapTexture:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world),u_image:new t.Uniform1i(e,r.u_image),u_color_ramp:new t.Uniform1i(e,r.u_color_ramp),u_opacity:new t.Uniform1f(e,r.u_opacity)}},hillshade:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_latrange:new t.Uniform2f(e,r.u_latrange),u_light:new t.Uniform2f(e,r.u_light),u_shadow:new t.UniformColor(e,r.u_shadow),u_highlight:new t.UniformColor(e,r.u_highlight),u_accent:new t.UniformColor(e,r.u_accent)}},hillshadePrepare:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_dimension:new t.Uniform2f(e,r.u_dimension),u_zoom:new t.Uniform1f(e,r.u_zoom),u_maxzoom:new t.Uniform1f(e,r.u_maxzoom),u_unpack:new t.Uniform4f(e,r.u_unpack)}},line:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels)}},lineGradient:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_image:new t.Uniform1i(e,r.u_image)}},linePattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_texsize:new t.Uniform2f(e,r.u_texsize),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_image:new t.Uniform1i(e,r.u_image),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},lineSDF:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_patternscale_a:new t.Uniform2f(e,r.u_patternscale_a),u_patternscale_b:new t.Uniform2f(e,r.u_patternscale_b),u_sdfgamma:new t.Uniform1f(e,r.u_sdfgamma),u_image:new t.Uniform1i(e,r.u_image),u_tex_y_a:new t.Uniform1f(e,r.u_tex_y_a),u_tex_y_b:new t.Uniform1f(e,r.u_tex_y_b),u_mix:new t.Uniform1f(e,r.u_mix)}},raster:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_tl_parent:new t.Uniform2f(e,r.u_tl_parent),u_scale_parent:new t.Uniform1f(e,r.u_scale_parent),u_buffer_scale:new t.Uniform1f(e,r.u_buffer_scale),u_fade_t:new t.Uniform1f(e,r.u_fade_t),u_opacity:new t.Uniform1f(e,r.u_opacity),u_image0:new t.Uniform1i(e,r.u_image0),u_image1:new t.Uniform1i(e,r.u_image1),u_brightness_low:new t.Uniform1f(e,r.u_brightness_low),u_brightness_high:new t.Uniform1f(e,r.u_brightness_high),u_saturation_factor:new t.Uniform1f(e,r.u_saturation_factor),u_contrast_factor:new t.Uniform1f(e,r.u_contrast_factor),u_spin_weights:new t.Uniform3f(e,r.u_spin_weights)}},symbolIcon:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texture:new t.Uniform1i(e,r.u_texture)}},symbolSDF:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texture:new t.Uniform1i(e,r.u_texture),u_gamma_scale:new t.Uniform1f(e,r.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,r.u_is_halo)}},symbolTextAndIcon:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texsize_icon:new t.Uniform2f(e,r.u_texsize_icon),u_texture:new t.Uniform1i(e,r.u_texture),u_texture_icon:new t.Uniform1i(e,r.u_texture_icon),u_gamma_scale:new t.Uniform1f(e,r.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,r.u_is_halo)}},background:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_opacity:new t.Uniform1f(e,r.u_opacity),u_color:new t.UniformColor(e,r.u_color)}},backgroundPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_opacity:new t.Uniform1f(e,r.u_opacity),u_image:new t.Uniform1i(e,r.u_image),u_pattern_tl_a:new t.Uniform2f(e,r.u_pattern_tl_a),u_pattern_br_a:new t.Uniform2f(e,r.u_pattern_br_a),u_pattern_tl_b:new t.Uniform2f(e,r.u_pattern_tl_b),u_pattern_br_b:new t.Uniform2f(e,r.u_pattern_br_b),u_texsize:new t.Uniform2f(e,r.u_texsize),u_mix:new t.Uniform1f(e,r.u_mix),u_pattern_size_a:new t.Uniform2f(e,r.u_pattern_size_a),u_pattern_size_b:new t.Uniform2f(e,r.u_pattern_size_b),u_scale_a:new t.Uniform1f(e,r.u_scale_a),u_scale_b:new t.Uniform1f(e,r.u_scale_b),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_tile_units_to_pixels:new t.Uniform1f(e,r.u_tile_units_to_pixels)}}};function Qr(e,r,n,i,a,o,s){for(var l=e.context,u=l.gl,c=e.useProgram("collisionBox"),f=[],h=0,p=0,d=0;d<i.length;d++){var v=i[d],g=r.getTile(v),y=g.getBucket(n);if(y){var m=v.posMatrix;0===a[0]&&0===a[1]||(m=e.translatePosMatrix(v.posMatrix,g,a,o));var x=s?y.textCollisionBox:y.iconCollisionBox,b=y.collisionCircleArray;if(b.length>0){var _=t.create(),w=m;t.mul(_,y.placementInvProjMatrix,e.transform.glCoordMatrix),t.mul(_,_,y.placementViewportMatrix),f.push({circleArray:b,circleOffset:p,transform:w,invTransform:_}),p=h+=b.length/4}x&&c.draw(l,u.LINES,Mt.disabled,Et.disabled,e.colorModeForRenderPass(),Ct.disabled,Ir(m,e.transform,g),n.id,x.layoutVertexBuffer,x.indexBuffer,x.segments,null,e.transform.zoom,null,null,x.collisionVertexBuffer)}}if(s&&f.length){var T=e.useProgram("collisionCircle"),k=new t.StructArrayLayout2f1f2i16;k.resize(4*h),k._trim();for(var A=0,M=0,S=f;M<S.length;M+=1)for(var E=S[M],L=0;L<E.circleArray.length/4;L++){var C=4*L,P=E.circleArray[C+0],O=E.circleArray[C+1],I=E.circleArray[C+2],D=E.circleArray[C+3];k.emplace(A++,P,O,I,D,0),k.emplace(A++,P,O,I,D,1),k.emplace(A++,P,O,I,D,2),k.emplace(A++,P,O,I,D,3)}(!Zr||Zr.length<2*h)&&(Zr=function(e){var r=2*e,n=new t.StructArrayLayout3ui6;n.resize(r),n._trim();for(var i=0;i<r;i++){var a=6*i;n.uint16[a+0]=4*i+0,n.uint16[a+1]=4*i+1,n.uint16[a+2]=4*i+2,n.uint16[a+3]=4*i+2,n.uint16[a+4]=4*i+3,n.uint16[a+5]=4*i+0}return n}(h));for(var z=l.createIndexBuffer(Zr,!0),R=l.createVertexBuffer(k,t.collisionCircleLayout.members,!0),F=0,B=f;F<B.length;F+=1){var N=B[F],j=Dr(N.transform,N.invTransform,e.transform);T.draw(l,u.TRIANGLES,Mt.disabled,Et.disabled,e.colorModeForRenderPass(),Ct.disabled,j,n.id,R,z,t.SegmentVector.simpleSegment(0,2*N.circleOffset,N.circleArray.length,N.circleArray.length/2),null,e.transform.zoom,null,null,null)}R.destroy(),z.destroy()}}var tn=t.identity(new Float32Array(16));function en(e,r,n,i,a,o){var s=t.getAnchorAlignment(e),l=-(s.horizontalAlign-.5)*r,u=-(s.verticalAlign-.5)*n,c=t.evaluateVariableOffset(e,i);return new t.Point((l/a+c[0])*o,(u/a+c[1])*o)}function rn(e,r,n,i,a,o,s,l,u,c,f){var h=e.text.placedSymbolArray,p=e.text.dynamicLayoutVertexArray,d=e.icon.dynamicLayoutVertexArray,v={};p.clear();for(var g=0;g<h.length;g++){var y=h.get(g),m=e.allowVerticalPlacement&&!y.placedOrientation,x=y.hidden||!y.crossTileID||m?null:i[y.crossTileID];if(x){var b=new t.Point(y.anchorX,y.anchorY),_=re(b,n?l:s),w=ne(o.cameraToCenterDistance,_.signedDistanceFromCamera),T=a.evaluateSizeForFeature(e.textSizeData,c,y)*w/t.ONE_EM;n&&(T*=e.tilePixelRatio/u);for(var k=x.width,A=x.height,M=en(x.anchor,k,A,x.textOffset,x.textBoxScale,T),S=n?re(b.add(M),s).point:_.point.add(r?M.rotate(-o.angle):M),E=e.allowVerticalPlacement&&y.placedOrientation===t.WritingMode.vertical?Math.PI/2:0,L=0;L<y.numGlyphs;L++)t.addDynamicAttributes(p,S,E);f&&y.associatedIconIndex>=0&&(v[y.associatedIconIndex]={shiftedAnchor:S,angle:E})}else he(y.numGlyphs,p)}if(f){d.clear();for(var C=e.icon.placedSymbolArray,P=0;P<C.length;P++){var O=C.get(P);if(O.hidden)he(O.numGlyphs,d);else{var I=v[P];if(I)for(var D=0;D<O.numGlyphs;D++)t.addDynamicAttributes(d,I.shiftedAnchor,I.angle);else he(O.numGlyphs,d)}}e.icon.dynamicLayoutVertexBuffer.updateData(d)}e.text.dynamicLayoutVertexBuffer.updateData(p)}function nn(t,e,r){return r.iconsInText&&e?"symbolTextAndIcon":t?"symbolSDF":"symbolIcon"}function an(e,r,n,i,a,o,s,l,u,c,f,h){for(var p=e.context,d=p.gl,v=e.transform,g="map"===l,y="map"===u,m=g&&"point"!==n.layout.get("symbol-placement"),x=g&&!y&&!m,b=void 0!==n.layout.get("symbol-sort-key").constantOr(1),_=e.depthModeForSublayer(0,Mt.ReadOnly),w=n.layout.get("text-variable-anchor"),T=[],k=0,A=i;k<A.length;k+=1){var M=A[k],S=r.getTile(M),E=S.getBucket(n);if(E){var L=a?E.text:E.icon;if(L&&L.segments.get().length){var C=L.programConfigurations.get(n.id),P=a||E.sdfIcons,O=a?E.textSizeData:E.iconSizeData,I=y||0!==v.pitch,D=e.useProgram(nn(P,a,E),C),z=t.evaluateSizeForZoom(O,v.zoom),R=void 0,F=[0,0],B=void 0,N=void 0,j=null,U=void 0;if(a){if(B=S.glyphAtlasTexture,N=d.LINEAR,R=S.glyphAtlasTexture.size,E.iconsInText){F=S.imageAtlasTexture.size,j=S.imageAtlasTexture;var V="composite"===O.kind||"camera"===O.kind;U=I||e.options.rotating||e.options.zooming||V?d.LINEAR:d.NEAREST}}else{var H=1!==n.layout.get("icon-size").constantOr(0)||E.iconsNeedLinear;B=S.imageAtlasTexture,N=P||e.options.rotating||e.options.zooming||H||I?d.LINEAR:d.NEAREST,R=S.imageAtlasTexture.size}var q=ge(S,1,e.transform.zoom),G=te(M.posMatrix,y,g,e.transform,q),Z=ee(M.posMatrix,y,g,e.transform,q),Y=w&&E.hasTextData(),W="none"!==n.layout.get("icon-text-fit")&&Y&&E.hasIconData();m&&ae(E,M.posMatrix,e,a,G,Z,y,c);var X=e.translatePosMatrix(M.posMatrix,S,o,s),J=m||a&&w||W?tn:G,K=e.translatePosMatrix(Z,S,o,s,!0),$=P&&0!==n.paint.get(a?"text-halo-width":"icon-halo-width").constantOr(1),Q={program:D,buffers:L,uniformValues:P?E.iconsInText?Xr(O.kind,z,x,y,e,X,J,K,R,F):Wr(O.kind,z,x,y,e,X,J,K,a,R,!0):Yr(O.kind,z,x,y,e,X,J,K,a,R),atlasTexture:B,atlasTextureIcon:j,atlasInterpolation:N,atlasInterpolationIcon:U,isSDF:P,hasHalo:$};if(b)for(var tt=0,et=L.segments.get();tt<et.length;tt+=1){var rt=et[tt];T.push({segments:new t.SegmentVector([rt]),sortKey:rt.sortKey,state:Q})}else T.push({segments:L.segments,sortKey:0,state:Q})}}}b&&T.sort((function(t,e){return t.sortKey-e.sortKey}));for(var nt=0,it=T;nt<it.length;nt+=1){var at=it[nt],ot=at.state;if(p.activeTexture.set(d.TEXTURE0),ot.atlasTexture.bind(ot.atlasInterpolation,d.CLAMP_TO_EDGE),ot.atlasTextureIcon&&(p.activeTexture.set(d.TEXTURE1),ot.atlasTextureIcon&&ot.atlasTextureIcon.bind(ot.atlasInterpolationIcon,d.CLAMP_TO_EDGE)),ot.isSDF){var st=ot.uniformValues;ot.hasHalo&&(st.u_is_halo=1,on(ot.buffers,at.segments,n,e,ot.program,_,f,h,st)),st.u_is_halo=0}on(ot.buffers,at.segments,n,e,ot.program,_,f,h,ot.uniformValues)}}function on(t,e,r,n,i,a,o,s,l){var u=n.context,c=u.gl;i.draw(u,c.TRIANGLES,a,o,s,Ct.disabled,l,r.id,t.layoutVertexBuffer,t.indexBuffer,e,r.paint,n.transform.zoom,t.programConfigurations.get(r.id),t.dynamicLayoutVertexBuffer,t.opacityVertexBuffer)}function sn(t,e,r,n,i,a,o){var s,l,u,c,f,h=t.context.gl,p=r.paint.get("fill-pattern"),d=p&&p.constantOr(1),v=r.getCrossfadeParameters();o?(l=d&&!r.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",s=h.LINES):(l=d?"fillPattern":"fill",s=h.TRIANGLES);for(var g=0,y=n;g<y.length;g+=1){var m=y[g],x=e.getTile(m);if(!d||x.patternsLoaded()){var b=x.getBucket(r);if(b){var _=b.programConfigurations.get(r.id),w=t.useProgram(l,_);d&&(t.context.activeTexture.set(h.TEXTURE0),x.imageAtlasTexture.bind(h.LINEAR,h.CLAMP_TO_EDGE),_.updatePaintBuffers(v));var T=p.constantOr(null);if(T&&x.imageAtlas){var k=x.imageAtlas,A=k.patternPositions[T.to.toString()],M=k.patternPositions[T.from.toString()];A&&M&&_.setConstantPatternPositions(A,M)}var S=t.translatePosMatrix(m.posMatrix,x,r.paint.get("fill-translate"),r.paint.get("fill-translate-anchor"));if(o){c=b.indexBuffer2,f=b.segments2;var E=[h.drawingBufferWidth,h.drawingBufferHeight];u="fillOutlinePattern"===l&&d?Pr(S,t,v,x,E):Cr(S,E)}else c=b.indexBuffer,f=b.segments,u=d?Lr(S,t,v,x):Er(S);w.draw(t.context,s,i,t.stencilModeForClipping(m),a,Ct.disabled,u,r.id,b.layoutVertexBuffer,c,f,r.paint,t.transform.zoom,_)}}}}function ln(t,e,r,n,i,a,o){for(var s=t.context,l=s.gl,u=r.paint.get("fill-extrusion-pattern"),c=u.constantOr(1),f=r.getCrossfadeParameters(),h=r.paint.get("fill-extrusion-opacity"),p=0,d=n;p<d.length;p+=1){var v=d[p],g=e.getTile(v),y=g.getBucket(r);if(y){var m=y.programConfigurations.get(r.id),x=t.useProgram(c?"fillExtrusionPattern":"fillExtrusion",m);c&&(t.context.activeTexture.set(l.TEXTURE0),g.imageAtlasTexture.bind(l.LINEAR,l.CLAMP_TO_EDGE),m.updatePaintBuffers(f));var b=u.constantOr(null);if(b&&g.imageAtlas){var _=g.imageAtlas,w=_.patternPositions[b.to.toString()],T=_.patternPositions[b.from.toString()];w&&T&&m.setConstantPatternPositions(w,T)}var k=t.translatePosMatrix(v.posMatrix,g,r.paint.get("fill-extrusion-translate"),r.paint.get("fill-extrusion-translate-anchor")),A=r.paint.get("fill-extrusion-vertical-gradient"),M=c?Sr(k,t,A,h,v,f,g):Mr(k,t,A,h);x.draw(s,s.gl.TRIANGLES,i,a,o,Ct.backCCW,M,r.id,y.layoutVertexBuffer,y.indexBuffer,y.segments,r.paint,t.transform.zoom,m)}}}function un(e,r,n,i,a,o){var s=e.context,l=s.gl,u=r.fbo;if(u){var c=e.useProgram("hillshade");s.activeTexture.set(l.TEXTURE0),l.bindTexture(l.TEXTURE_2D,u.colorAttachment.get());var f=function(e,r,n){var i=n.paint.get("hillshade-shadow-color"),a=n.paint.get("hillshade-highlight-color"),o=n.paint.get("hillshade-accent-color"),s=n.paint.get("hillshade-illumination-direction")*(Math.PI/180);"viewport"===n.paint.get("hillshade-illumination-anchor")&&(s-=e.transform.angle);var l,u,c,f=!e.options.moving;return{u_matrix:e.transform.calculatePosMatrix(r.tileID.toUnwrapped(),f),u_image:0,u_latrange:(l=r.tileID,u=Math.pow(2,l.canonical.z),c=l.canonical.y,[new t.MercatorCoordinate(0,c/u).toLngLat().lat,new t.MercatorCoordinate(0,(c+1)/u).toLngLat().lat]),u_light:[n.paint.get("hillshade-exaggeration"),s],u_shadow:i,u_highlight:a,u_accent:o}}(e,r,n);c.draw(s,l.TRIANGLES,i,a,o,Ct.disabled,f,n.id,e.rasterBoundsBuffer,e.quadTriangleIndexBuffer,e.rasterBoundsSegments)}}function cn(e,r,n,i,a,o,s){var l=e.context,u=l.gl,c=r.dem;if(c&&c.data){var f=c.dim,h=c.stride,p=c.getPixels();if(l.activeTexture.set(u.TEXTURE1),l.pixelStoreUnpackPremultiplyAlpha.set(!1),r.demTexture=r.demTexture||e.getTileTexture(h),r.demTexture){var d=r.demTexture;d.update(p,{premultiply:!1}),d.bind(u.NEAREST,u.CLAMP_TO_EDGE)}else r.demTexture=new t.Texture(l,p,u.RGBA,{premultiply:!1}),r.demTexture.bind(u.NEAREST,u.CLAMP_TO_EDGE);l.activeTexture.set(u.TEXTURE0);var v=r.fbo;if(!v){var g=new t.Texture(l,{width:f,height:f,data:null},u.RGBA);g.bind(u.LINEAR,u.CLAMP_TO_EDGE),(v=r.fbo=l.createFramebuffer(f,f,!0)).colorAttachment.set(g.texture)}l.bindFramebuffer.set(v.framebuffer),l.viewport.set([0,0,f,f]),e.useProgram("hillshadePrepare").draw(l,u.TRIANGLES,a,o,s,Ct.disabled,function(e,r,n){var i=r.stride,a=t.create();return t.ortho(a,0,t.EXTENT,-t.EXTENT,0,0,1),t.translate(a,a,[0,-t.EXTENT,0]),{u_matrix:a,u_image:1,u_dimension:[i,i],u_zoom:e.overscaledZ,u_maxzoom:n,u_unpack:r.getUnpackVector()}}(r.tileID,c,i),n.id,e.rasterBoundsBuffer,e.quadTriangleIndexBuffer,e.rasterBoundsSegments),r.needsHillshadePrepare=!1}}function fn(e,r,n,i,a){var o=i.paint.get("raster-fade-duration");if(o>0){var s=t.browser.now(),l=(s-e.timeAdded)/o,u=r?(s-r.timeAdded)/o:-1,c=n.getSource(),f=a.coveringZoomLevel({tileSize:c.tileSize,roundZoom:c.roundZoom}),h=!r||Math.abs(r.tileID.overscaledZ-f)>Math.abs(e.tileID.overscaledZ-f),p=h&&e.refreshedUponExpiration?1:t.clamp(h?l:1-u,0,1);return e.refreshedUponExpiration&&l>=1&&(e.refreshedUponExpiration=!1),r?{opacity:1,mix:1-p}:{opacity:p,mix:0}}return{opacity:1,mix:0}}var hn=new t.Color(1,0,0,1),pn=new t.Color(0,1,0,1),dn=new t.Color(0,0,1,1),vn=new t.Color(1,0,1,1),gn=new t.Color(0,1,1,1);function yn(t){var e=t.transform.padding;mn(t,t.transform.height-(e.top||0),3,hn),mn(t,e.bottom||0,3,pn),xn(t,e.left||0,3,dn),xn(t,t.transform.width-(e.right||0),3,vn);var r=t.transform.centerPoint;!function(t,e,r,n){var i=20,a=2;bn(t,e-a/2,r-i/2,a,i,n),bn(t,e-i/2,r-a/2,i,a,n)}(t,r.x,t.transform.height-r.y,gn)}function mn(t,e,r,n){bn(t,0,e+r/2,t.transform.width,r,n)}function xn(t,e,r,n){bn(t,e-r/2,0,r,t.transform.height,n)}function bn(e,r,n,i,a,o){var s=e.context,l=s.gl;l.enable(l.SCISSOR_TEST),l.scissor(r*t.browser.devicePixelRatio,n*t.browser.devicePixelRatio,i*t.browser.devicePixelRatio,a*t.browser.devicePixelRatio),s.clear({color:o}),l.disable(l.SCISSOR_TEST)}function _n(e,r,n){var i=e.context,a=i.gl,o=n.posMatrix,s=e.useProgram("debug"),l=Mt.disabled,u=Et.disabled,c=e.colorModeForRenderPass(),f="$debug";i.activeTexture.set(a.TEXTURE0),e.emptyTexture.bind(a.LINEAR,a.CLAMP_TO_EDGE),s.draw(i,a.LINE_STRIP,l,u,c,Ct.disabled,zr(o,t.Color.red),f,e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);var h=r.getTileByID(n.key).latestRawTileData,p=h&&h.byteLength||0,d=Math.floor(p/1024),v=r.getTile(n).tileSize,g=512/Math.min(v,512)*(n.overscaledZ/e.transform.zoom)*.5,y=n.canonical.toString();n.overscaledZ!==n.canonical.z&&(y+=" => "+n.overscaledZ),function(t,e){t.initDebugOverlayCanvas();var r=t.debugOverlayCanvas,n=t.context.gl,i=t.debugOverlayCanvas.getContext("2d");i.clearRect(0,0,r.width,r.height),i.shadowColor="white",i.shadowBlur=2,i.lineWidth=1.5,i.strokeStyle="white",i.textBaseline="top",i.font="bold 36px Open Sans, sans-serif",i.fillText(e,5,5),i.strokeText(e,5,5),t.debugOverlayTexture.update(r),t.debugOverlayTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE)}(e,y+" "+d+"kb"),s.draw(i,a.TRIANGLES,l,u,Lt.alphaBlended,Ct.disabled,zr(o,t.Color.transparent,g),f,e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments)}var wn={symbol:function(e,r,n,i,a){if("translucent"===e.renderPass){var o=Et.disabled,s=e.colorModeForRenderPass();n.layout.get("text-variable-anchor")&&function(e,r,n,i,a,o,s){for(var l=r.transform,u="map"===a,c="map"===o,f=0,h=e;f<h.length;f+=1){var p=h[f],d=i.getTile(p),v=d.getBucket(n);if(v&&v.text&&v.text.segments.get().length){var g=v.textSizeData,y=t.evaluateSizeForZoom(g,l.zoom),m=ge(d,1,r.transform.zoom),x=te(p.posMatrix,c,u,r.transform,m),b="none"!==n.layout.get("icon-text-fit")&&v.hasIconData();if(y){var _=Math.pow(2,l.zoom-d.tileID.overscaledZ);rn(v,u,c,s,t.symbolSize,l,x,p.posMatrix,_,y,b)}}}}(i,e,n,r,n.layout.get("text-rotation-alignment"),n.layout.get("text-pitch-alignment"),a),0!==n.paint.get("icon-opacity").constantOr(1)&&an(e,r,n,i,!1,n.paint.get("icon-translate"),n.paint.get("icon-translate-anchor"),n.layout.get("icon-rotation-alignment"),n.layout.get("icon-pitch-alignment"),n.layout.get("icon-keep-upright"),o,s),0!==n.paint.get("text-opacity").constantOr(1)&&an(e,r,n,i,!0,n.paint.get("text-translate"),n.paint.get("text-translate-anchor"),n.layout.get("text-rotation-alignment"),n.layout.get("text-pitch-alignment"),n.layout.get("text-keep-upright"),o,s),r.map.showCollisionBoxes&&(Qr(e,r,n,i,n.paint.get("text-translate"),n.paint.get("text-translate-anchor"),!0),Qr(e,r,n,i,n.paint.get("icon-translate"),n.paint.get("icon-translate-anchor"),!1))}},circle:function(e,r,n,i){if("translucent"===e.renderPass){var a=n.paint.get("circle-opacity"),o=n.paint.get("circle-stroke-width"),s=n.paint.get("circle-stroke-opacity"),l=void 0!==n.layout.get("circle-sort-key").constantOr(1);if(0!==a.constantOr(1)||0!==o.constantOr(1)&&0!==s.constantOr(1)){for(var u=e.context,c=u.gl,f=e.depthModeForSublayer(0,Mt.ReadOnly),h=Et.disabled,p=e.colorModeForRenderPass(),d=[],v=0;v<i.length;v++){var g=i[v],y=r.getTile(g),m=y.getBucket(n);if(m){var x=m.programConfigurations.get(n.id),b={programConfiguration:x,program:e.useProgram("circle",x),layoutVertexBuffer:m.layoutVertexBuffer,indexBuffer:m.indexBuffer,uniformValues:Or(e,g,y,n)};if(l)for(var _=0,w=m.segments.get();_<w.length;_+=1){var T=w[_];d.push({segments:new t.SegmentVector([T]),sortKey:T.sortKey,state:b})}else d.push({segments:m.segments,sortKey:0,state:b})}}l&&d.sort((function(t,e){return t.sortKey-e.sortKey}));for(var k=0,A=d;k<A.length;k+=1){var M=A[k],S=M.state,E=S.programConfiguration,L=S.program,C=S.layoutVertexBuffer,P=S.indexBuffer,O=S.uniformValues,I=M.segments;L.draw(u,c.TRIANGLES,f,h,p,Ct.disabled,O,n.id,C,P,I,n.paint,e.transform.zoom,E)}}}},heatmap:function(e,r,n,i){if(0!==n.paint.get("heatmap-opacity"))if("offscreen"===e.renderPass){var a=e.context,o=a.gl,s=Et.disabled,l=new Lt([o.ONE,o.ONE],t.Color.transparent,[!0,!0,!0,!0]);(function(t,e,r){var n=t.gl;t.activeTexture.set(n.TEXTURE1),t.viewport.set([0,0,e.width/4,e.height/4]);var i=r.heatmapFbo;if(i)n.bindTexture(n.TEXTURE_2D,i.colorAttachment.get()),t.bindFramebuffer.set(i.framebuffer);else{var a=n.createTexture();n.bindTexture(n.TEXTURE_2D,a),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.LINEAR),i=r.heatmapFbo=t.createFramebuffer(e.width/4,e.height/4,!1),function(t,e,r,n){var i=t.gl,a=t.extRenderToTextureHalfFloat?t.extTextureHalfFloat.HALF_FLOAT_OES:i.UNSIGNED_BYTE;i.texImage2D(i.TEXTURE_2D,0,i.RGBA,e.width/4,e.height/4,0,i.RGBA,a,null),n.colorAttachment.set(r)}(t,e,a,i)}})(a,e,n),a.clear({color:t.Color.transparent});for(var u=0;u<i.length;u++){var c=i[u];if(!r.hasRenderableParent(c)){var f=r.getTile(c),h=f.getBucket(n);if(h){var p=h.programConfigurations.get(n.id),d=e.useProgram("heatmap",p),v=e.transform.zoom;d.draw(a,o.TRIANGLES,Mt.disabled,s,l,Ct.disabled,Fr(c.posMatrix,f,v,n.paint.get("heatmap-intensity")),n.id,h.layoutVertexBuffer,h.indexBuffer,h.segments,n.paint,e.transform.zoom,p)}}}a.viewport.set([0,0,e.width,e.height])}else"translucent"===e.renderPass&&(e.context.setColorMode(e.colorModeForRenderPass()),function(e,r){var n=e.context,i=n.gl,a=r.heatmapFbo;if(a){n.activeTexture.set(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,a.colorAttachment.get()),n.activeTexture.set(i.TEXTURE1);var o=r.colorRampTexture;o||(o=r.colorRampTexture=new t.Texture(n,r.colorRamp,i.RGBA)),o.bind(i.LINEAR,i.CLAMP_TO_EDGE),e.useProgram("heatmapTexture").draw(n,i.TRIANGLES,Mt.disabled,Et.disabled,e.colorModeForRenderPass(),Ct.disabled,function(e,r,n,i){var a=t.create();t.ortho(a,0,e.width,e.height,0,0,1);var o=e.context.gl;return{u_matrix:a,u_world:[o.drawingBufferWidth,o.drawingBufferHeight],u_image:n,u_color_ramp:i,u_opacity:r.paint.get("heatmap-opacity")}}(e,r,0,1),r.id,e.viewportBuffer,e.quadTriangleIndexBuffer,e.viewportSegments,r.paint,e.transform.zoom)}}(e,n))},line:function(e,r,n,i){if("translucent"===e.renderPass){var a=n.paint.get("line-opacity"),o=n.paint.get("line-width");if(0!==a.constantOr(1)&&0!==o.constantOr(1)){var s=e.depthModeForSublayer(0,Mt.ReadOnly),l=e.colorModeForRenderPass(),u=n.paint.get("line-dasharray"),c=n.paint.get("line-pattern"),f=c.constantOr(1),h=n.paint.get("line-gradient"),p=n.getCrossfadeParameters(),d=f?"linePattern":u?"lineSDF":h?"lineGradient":"line",v=e.context,g=v.gl,y=!0;if(h){v.activeTexture.set(g.TEXTURE0);var m=n.gradientTexture;if(!n.gradient)return;m||(m=n.gradientTexture=new t.Texture(v,n.gradient,g.RGBA)),m.bind(g.LINEAR,g.CLAMP_TO_EDGE)}for(var x=0,b=i;x<b.length;x+=1){var _=b[x],w=r.getTile(_);if(!f||w.patternsLoaded()){var T=w.getBucket(n);if(T){var k=T.programConfigurations.get(n.id),A=e.context.program.get(),M=e.useProgram(d,k),S=y||M.program!==A,E=c.constantOr(null);if(E&&w.imageAtlas){var L=w.imageAtlas,C=L.patternPositions[E.to.toString()],P=L.patternPositions[E.from.toString()];C&&P&&k.setConstantPatternPositions(C,P)}var O=f?jr(e,w,n,p):u?Ur(e,w,n,u,p):h?Nr(e,w,n):Br(e,w,n);f?(v.activeTexture.set(g.TEXTURE0),w.imageAtlasTexture.bind(g.LINEAR,g.CLAMP_TO_EDGE),k.updatePaintBuffers(p)):u&&(S||e.lineAtlas.dirty)&&(v.activeTexture.set(g.TEXTURE0),e.lineAtlas.bind(v)),M.draw(v,g.TRIANGLES,s,e.stencilModeForClipping(_),l,Ct.disabled,O,n.id,T.layoutVertexBuffer,T.indexBuffer,T.segments,n.paint,e.transform.zoom,k),y=!1}}}}}},fill:function(e,r,n,i){var a=n.paint.get("fill-color"),o=n.paint.get("fill-opacity");if(0!==o.constantOr(1)){var s=e.colorModeForRenderPass(),l=n.paint.get("fill-pattern"),u=e.opaquePassEnabledForLayer()&&!l.constantOr(1)&&1===a.constantOr(t.Color.transparent).a&&1===o.constantOr(0)?"opaque":"translucent";if(e.renderPass===u){var c=e.depthModeForSublayer(1,"opaque"===e.renderPass?Mt.ReadWrite:Mt.ReadOnly);sn(e,r,n,i,c,s,!1)}if("translucent"===e.renderPass&&n.paint.get("fill-antialias")){var f=e.depthModeForSublayer(n.getPaintProperty("fill-outline-color")?2:0,Mt.ReadOnly);sn(e,r,n,i,f,s,!0)}}},"fill-extrusion":function(t,e,r,n){var i=r.paint.get("fill-extrusion-opacity");if(0!==i&&"translucent"===t.renderPass){var a=new Mt(t.context.gl.LEQUAL,Mt.ReadWrite,t.depthRangeFor3D);if(1!==i||r.paint.get("fill-extrusion-pattern").constantOr(1))ln(t,e,r,n,a,Et.disabled,Lt.disabled),ln(t,e,r,n,a,t.stencilModeFor3D(),t.colorModeForRenderPass());else{var o=t.colorModeForRenderPass();ln(t,e,r,n,a,Et.disabled,o)}}},hillshade:function(t,e,r,n){if("offscreen"===t.renderPass||"translucent"===t.renderPass){for(var i=t.context,a=e.getSource().maxzoom,o=t.depthModeForSublayer(0,Mt.ReadOnly),s=t.colorModeForRenderPass(),l="translucent"===t.renderPass?t.stencilConfigForOverlap(n):[{},n],u=l[0],c=0,f=l[1];c<f.length;c+=1){var h=f[c],p=e.getTile(h);p.needsHillshadePrepare&&"offscreen"===t.renderPass?cn(t,p,r,a,o,Et.disabled,s):"translucent"===t.renderPass&&un(t,p,r,o,u[h.overscaledZ],s)}i.viewport.set([0,0,t.width,t.height])}},raster:function(t,e,r,n){if("translucent"===t.renderPass&&0!==r.paint.get("raster-opacity")&&n.length)for(var i=t.context,a=i.gl,o=e.getSource(),s=t.useProgram("raster"),l=t.colorModeForRenderPass(),u=o instanceof I?[{},n]:t.stencilConfigForOverlap(n),c=u[0],f=u[1],h=f[f.length-1].overscaledZ,p=!t.options.moving,d=0,v=f;d<v.length;d+=1){var g=v[d],y=t.depthModeForSublayer(g.overscaledZ-h,1===r.paint.get("raster-opacity")?Mt.ReadWrite:Mt.ReadOnly,a.LESS),m=e.getTile(g),x=t.transform.calculatePosMatrix(g.toUnwrapped(),p);m.registerFadeDuration(r.paint.get("raster-fade-duration"));var b=e.findLoadedParent(g,0),_=fn(m,b,e,r,t.transform),w=void 0,T=void 0,k="nearest"===r.paint.get("raster-resampling")?a.NEAREST:a.LINEAR;i.activeTexture.set(a.TEXTURE0),m.texture.bind(k,a.CLAMP_TO_EDGE,a.LINEAR_MIPMAP_NEAREST),i.activeTexture.set(a.TEXTURE1),b?(b.texture.bind(k,a.CLAMP_TO_EDGE,a.LINEAR_MIPMAP_NEAREST),w=Math.pow(2,b.tileID.overscaledZ-m.tileID.overscaledZ),T=[m.tileID.canonical.x*w%1,m.tileID.canonical.y*w%1]):m.texture.bind(k,a.CLAMP_TO_EDGE,a.LINEAR_MIPMAP_NEAREST);var A=qr(x,T||[0,0],w||1,_,r);o instanceof I?s.draw(i,a.TRIANGLES,y,Et.disabled,l,Ct.disabled,A,r.id,o.boundsBuffer,t.quadTriangleIndexBuffer,o.boundsSegments):s.draw(i,a.TRIANGLES,y,c[g.overscaledZ],l,Ct.disabled,A,r.id,t.rasterBoundsBuffer,t.quadTriangleIndexBuffer,t.rasterBoundsSegments)}},background:function(t,e,r){var n=r.paint.get("background-color"),i=r.paint.get("background-opacity");if(0!==i){var a=t.context,o=a.gl,s=t.transform,l=s.tileSize,u=r.paint.get("background-pattern");if(!t.isPatternMissing(u)){var c=!u&&1===n.a&&1===i&&t.opaquePassEnabledForLayer()?"opaque":"translucent";if(t.renderPass===c){var f=Et.disabled,h=t.depthModeForSublayer(0,"opaque"===c?Mt.ReadWrite:Mt.ReadOnly),p=t.colorModeForRenderPass(),d=t.useProgram(u?"backgroundPattern":"background"),v=s.coveringTiles({tileSize:l});u&&(a.activeTexture.set(o.TEXTURE0),t.imageManager.bind(t.context));for(var g=r.getCrossfadeParameters(),y=0,m=v;y<m.length;y+=1){var x=m[y],b=t.transform.calculatePosMatrix(x.toUnwrapped()),_=u?Kr(b,i,t,u,{tileID:x,tileSize:l},g):Jr(b,i,n);d.draw(a,o.TRIANGLES,h,f,p,Ct.disabled,_,r.id,t.tileExtentBuffer,t.quadTriangleIndexBuffer,t.tileExtentSegments)}}}}},debug:function(t,e,r){for(var n=0;n<r.length;n++)_n(t,e,r[n])},custom:function(t,e,r){var n=t.context,i=r.implementation;if("offscreen"===t.renderPass){var a=i.prerender;a&&(t.setCustomLayerDefaults(),n.setColorMode(t.colorModeForRenderPass()),a.call(i,n.gl,t.transform.customLayerMatrix()),n.setDirty(),t.setBaseState())}else if("translucent"===t.renderPass){t.setCustomLayerDefaults(),n.setColorMode(t.colorModeForRenderPass()),n.setStencilMode(Et.disabled);var o="3d"===i.renderingMode?new Mt(t.context.gl.LEQUAL,Mt.ReadWrite,t.depthRangeFor3D):t.depthModeForSublayer(0,Mt.ReadOnly);n.setDepthMode(o),i.render(n.gl,t.transform.customLayerMatrix()),n.setDirty(),t.setBaseState(),n.bindFramebuffer.set(null)}}},Tn=function(t,e){this.context=new Pt(t),this.transform=e,this._tileTextures={},this.setup(),this.numSublayers=Ot.maxUnderzooming+Ot.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Ve,this.gpuTimers={}};Tn.prototype.resize=function(e,r){if(this.width=e*t.browser.devicePixelRatio,this.height=r*t.browser.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(var n=0,i=this.style._order;n<i.length;n+=1){var a=i[n];this.style._layers[a].resize()}},Tn.prototype.setup=function(){var e=this.context,r=new t.StructArrayLayout2i4;r.emplaceBack(0,0),r.emplaceBack(t.EXTENT,0),r.emplaceBack(0,t.EXTENT),r.emplaceBack(t.EXTENT,t.EXTENT),this.tileExtentBuffer=e.createVertexBuffer(r,We.members),this.tileExtentSegments=t.SegmentVector.simpleSegment(0,0,4,2);var n=new t.StructArrayLayout2i4;n.emplaceBack(0,0),n.emplaceBack(t.EXTENT,0),n.emplaceBack(0,t.EXTENT),n.emplaceBack(t.EXTENT,t.EXTENT),this.debugBuffer=e.createVertexBuffer(n,We.members),this.debugSegments=t.SegmentVector.simpleSegment(0,0,4,5);var i=new t.StructArrayLayout4i8;i.emplaceBack(0,0,0,0),i.emplaceBack(t.EXTENT,0,t.EXTENT,0),i.emplaceBack(0,t.EXTENT,0,t.EXTENT),i.emplaceBack(t.EXTENT,t.EXTENT,t.EXTENT,t.EXTENT),this.rasterBoundsBuffer=e.createVertexBuffer(i,O.members),this.rasterBoundsSegments=t.SegmentVector.simpleSegment(0,0,4,2);var a=new t.StructArrayLayout2i4;a.emplaceBack(0,0),a.emplaceBack(1,0),a.emplaceBack(0,1),a.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(a,We.members),this.viewportSegments=t.SegmentVector.simpleSegment(0,0,4,2);var o=new t.StructArrayLayout1ui2;o.emplaceBack(0),o.emplaceBack(1),o.emplaceBack(3),o.emplaceBack(2),o.emplaceBack(0),this.tileBorderIndexBuffer=e.createIndexBuffer(o);var s=new t.StructArrayLayout3ui6;s.emplaceBack(0,1,2),s.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=e.createIndexBuffer(s),this.emptyTexture=new t.Texture(e,{width:1,height:1,data:new Uint8Array([0,0,0,0])},e.gl.RGBA);var l=this.context.gl;this.stencilClearMode=new Et({func:l.ALWAYS,mask:0},0,255,l.ZERO,l.ZERO,l.ZERO)},Tn.prototype.clearStencil=function(){var e=this.context,r=e.gl;this.nextStencilID=1,this.currentStencilSource=void 0;var n=t.create();t.ortho(n,0,this.width,this.height,0,0,1),t.scale(n,n,[r.drawingBufferWidth,r.drawingBufferHeight,0]),this.useProgram("clippingMask").draw(e,r.TRIANGLES,Mt.disabled,this.stencilClearMode,Lt.disabled,Ct.disabled,Rr(n),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)},Tn.prototype._renderTileClippingMasks=function(t,e){if(this.currentStencilSource!==t.source&&t.isTileClipped()&&e&&e.length){this.currentStencilSource=t.source;var r=this.context,n=r.gl;this.nextStencilID+e.length>256&&this.clearStencil(),r.setColorMode(Lt.disabled),r.setDepthMode(Mt.disabled);var i=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var a=0,o=e;a<o.length;a+=1){var s=o[a],l=this._tileClippingMaskIDs[s.key]=this.nextStencilID++;i.draw(r,n.TRIANGLES,Mt.disabled,new Et({func:n.ALWAYS,mask:0},l,255,n.KEEP,n.KEEP,n.REPLACE),Lt.disabled,Ct.disabled,Rr(s.posMatrix),"$clipping",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}}},Tn.prototype.stencilModeFor3D=function(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();var t=this.nextStencilID++,e=this.context.gl;return new Et({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)},Tn.prototype.stencilModeForClipping=function(t){var e=this.context.gl;return new Et({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)},Tn.prototype.stencilConfigForOverlap=function(t){var e,r=this.context.gl,n=t.sort((function(t,e){return e.overscaledZ-t.overscaledZ})),i=n[n.length-1].overscaledZ,a=n[0].overscaledZ-i+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();for(var o={},s=0;s<a;s++)o[s+i]=new Et({func:r.GEQUAL,mask:255},s+this.nextStencilID,255,r.KEEP,r.KEEP,r.REPLACE);return this.nextStencilID+=a,[o,n]}return[(e={},e[i]=Et.disabled,e),n]},Tn.prototype.colorModeForRenderPass=function(){var e=this.context.gl;if(this._showOverdrawInspector){var r=1/8;return new Lt([e.CONSTANT_COLOR,e.ONE],new t.Color(r,r,r,0),[!0,!0,!0,!0])}return"opaque"===this.renderPass?Lt.unblended:Lt.alphaBlended},Tn.prototype.depthModeForSublayer=function(t,e,r){if(!this.opaquePassEnabledForLayer())return Mt.disabled;var n=1-((1+this.currentLayer)*this.numSublayers+t)*this.depthEpsilon;return new Mt(r||this.context.gl.LEQUAL,e,[n,n])},Tn.prototype.opaquePassEnabledForLayer=function(){return this.currentLayer<this.opaquePassCutoff},Tn.prototype.render=function(e,r){var n=this;this.style=e,this.options=r,this.lineAtlas=e.lineAtlas,this.imageManager=e.imageManager,this.glyphManager=e.glyphManager,this.symbolFadeChange=e.placement.symbolFadeChange(t.browser.now()),this.imageManager.beginFrame();var i=this.style._order,a=this.style.sourceCaches;for(var o in a){var s=a[o];s.used&&s.prepare(this.context)}var l,u,c={},f={},h={};for(var p in a){var d=a[p];c[p]=d.getVisibleCoordinates(),f[p]=c[p].slice().reverse(),h[p]=d.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(var v=0;v<i.length;v++){var g=i[v];if(this.style._layers[g].is3D()){this.opaquePassCutoff=v;break}}this.renderPass="offscreen";for(var y=0,m=i;y<m.length;y+=1){var x=m[y],b=this.style._layers[x];if(b.hasOffscreenPass()&&!b.isHidden(this.transform.zoom)){var _=f[b.source];("custom"===b.type||_.length)&&this.renderLayer(this,a[b.source],b,_)}}for(this.context.bindFramebuffer.set(null),this.context.clear({color:r.showOverdrawInspector?t.Color.black:t.Color.transparent,depth:1}),this.clearStencil(),this._showOverdrawInspector=r.showOverdrawInspector,this.depthRangeFor3D=[0,1-(e._order.length+2)*this.numSublayers*this.depthEpsilon],this.renderPass="opaque",this.currentLayer=i.length-1;this.currentLayer>=0;this.currentLayer--){var w=this.style._layers[i[this.currentLayer]],T=a[w.source],k=c[w.source];this._renderTileClippingMasks(w,k),this.renderLayer(this,T,w,k)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer<i.length;this.currentLayer++){var A=this.style._layers[i[this.currentLayer]],M=a[A.source],S=("symbol"===A.type?h:f)[A.source];this._renderTileClippingMasks(A,c[A.source]),this.renderLayer(this,M,A,S)}this.options.showTileBoundaries&&(t.values(this.style._layers).forEach((function(t){t.source&&!t.isHidden(n.transform.zoom)&&(t.source!==(u&&u.id)&&(u=n.style.sourceCaches[t.source]),(!l||l.getSource().maxzoom<u.getSource().maxzoom)&&(l=u))})),l&&wn.debug(this,l,l.getVisibleCoordinates())),this.options.showPadding&&yn(this),this.context.setDefault()},Tn.prototype.renderLayer=function(t,e,r,n){r.isHidden(this.transform.zoom)||("background"===r.type||"custom"===r.type||n.length)&&(this.id=r.id,this.gpuTimingStart(r),wn[r.type](t,e,r,n,this.style.placement.variableOffsets),this.gpuTimingEnd())},Tn.prototype.gpuTimingStart=function(t){if(this.options.gpuTiming){var e=this.context.extTimerQuery,r=this.gpuTimers[t.id];r||(r=this.gpuTimers[t.id]={calls:0,cpuTime:0,query:e.createQueryEXT()}),r.calls++,e.beginQueryEXT(e.TIME_ELAPSED_EXT,r.query)}},Tn.prototype.gpuTimingEnd=function(){if(this.options.gpuTiming){var t=this.context.extTimerQuery;t.endQueryEXT(t.TIME_ELAPSED_EXT)}},Tn.prototype.collectGpuTimers=function(){var t=this.gpuTimers;return this.gpuTimers={},t},Tn.prototype.queryGpuTimers=function(t){var e={};for(var r in t){var n=t[r],i=this.context.extTimerQuery,a=i.getQueryObjectEXT(n.query,i.QUERY_RESULT_EXT)/1e6;i.deleteQueryEXT(n.query),e[r]=a}return e},Tn.prototype.translatePosMatrix=function(e,r,n,i,a){if(!n[0]&&!n[1])return e;var o=a?"map"===i?this.transform.angle:0:"viewport"===i?-this.transform.angle:0;if(o){var s=Math.sin(o),l=Math.cos(o);n=[n[0]*l-n[1]*s,n[0]*s+n[1]*l]}var u=[a?n[0]:ge(r,n[0],this.transform.zoom),a?n[1]:ge(r,n[1],this.transform.zoom),0],c=new Float32Array(16);return t.translate(c,e,u),c},Tn.prototype.saveTileTexture=function(t){var e=this._tileTextures[t.size[0]];e?e.push(t):this._tileTextures[t.size[0]]=[t]},Tn.prototype.getTileTexture=function(t){var e=this._tileTextures[t];return e&&e.length>0?e.pop():null},Tn.prototype.isPatternMissing=function(t){if(!t)return!1;if(!t.from||!t.to)return!0;var e=this.imageManager.getPattern(t.from.toString()),r=this.imageManager.getPattern(t.to.toString());return!e||!r},Tn.prototype.useProgram=function(t,e){this.cache=this.cache||{};var r=""+t+(e?e.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[r]||(this.cache[r]=new kr(this.context,wr[t],e,$r[t],this._showOverdrawInspector)),this.cache[r]},Tn.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},Tn.prototype.setBaseState=function(){var t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD)},Tn.prototype.initDebugOverlayCanvas=function(){if(null==this.debugOverlayCanvas){this.debugOverlayCanvas=t.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512;var e=this.context.gl;this.debugOverlayTexture=new t.Texture(this.context,this.debugOverlayCanvas,e.RGBA)}},Tn.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()};var kn=function(t,e){this.points=t,this.planes=e};kn.fromInvProjectionMatrix=function(e,r,n){var i=Math.pow(2,n),a=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((function(r){return t.transformMat4([],r,e)})).map((function(e){return t.scale$1([],e,1/e[3]/r*i)})),o=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((function(e){var r=t.sub([],a[e[0]],a[e[1]]),n=t.sub([],a[e[2]],a[e[1]]),i=t.normalize([],t.cross([],r,n)),o=-t.dot(i,a[e[1]]);return i.concat(o)}));return new kn(a,o)};var An=function(e,r){this.min=e,this.max=r,this.center=t.scale$2([],t.add([],this.min,this.max),.5)};An.prototype.quadrant=function(e){for(var r=[e%2==0,e<2],n=t.clone$2(this.min),i=t.clone$2(this.max),a=0;a<r.length;a++)n[a]=r[a]?this.min[a]:this.center[a],i[a]=r[a]?this.center[a]:this.max[a];return i[2]=this.max[2],new An(n,i)},An.prototype.distanceX=function(t){return Math.max(Math.min(this.max[0],t[0]),this.min[0])-t[0]},An.prototype.distanceY=function(t){return Math.max(Math.min(this.max[1],t[1]),this.min[1])-t[1]},An.prototype.intersects=function(e){for(var r=[[this.min[0],this.min[1],0,1],[this.max[0],this.min[1],0,1],[this.max[0],this.max[1],0,1],[this.min[0],this.max[1],0,1]],n=!0,i=0;i<e.planes.length;i++){for(var a=e.planes[i],o=0,s=0;s<r.length;s++)o+=t.dot$1(a,r[s])>=0;if(0===o)return 0;o!==r.length&&(n=!1)}if(n)return 2;for(var l=0;l<3;l++){for(var u=Number.MAX_VALUE,c=-Number.MAX_VALUE,f=0;f<e.points.length;f++){var h=e.points[f][l]-this.min[l];u=Math.min(u,h),c=Math.max(c,h)}if(c<0||u>this.max[l]-this.min[l])return 0}return 1};var Mn=function(t,e,r,n){if(void 0===t&&(t=0),void 0===e&&(e=0),void 0===r&&(r=0),void 0===n&&(n=0),isNaN(t)||t<0||isNaN(e)||e<0||isNaN(r)||r<0||isNaN(n)||n<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=t,this.bottom=e,this.left=r,this.right=n};Mn.prototype.interpolate=function(e,r,n){return null!=r.top&&null!=e.top&&(this.top=t.number(e.top,r.top,n)),null!=r.bottom&&null!=e.bottom&&(this.bottom=t.number(e.bottom,r.bottom,n)),null!=r.left&&null!=e.left&&(this.left=t.number(e.left,r.left,n)),null!=r.right&&null!=e.right&&(this.right=t.number(e.right,r.right,n)),this},Mn.prototype.getCenter=function(e,r){var n=t.clamp((this.left+e-this.right)/2,0,e),i=t.clamp((this.top+r-this.bottom)/2,0,r);return new t.Point(n,i)},Mn.prototype.equals=function(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right},Mn.prototype.clone=function(){return new Mn(this.top,this.bottom,this.left,this.right)},Mn.prototype.toJSON=function(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var Sn=function(e,r,n,i,a){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=void 0===a||a,this._minZoom=e||0,this._maxZoom=r||22,this._minPitch=null==n?0:n,this._maxPitch=null==i?60:i,this.setMaxBounds(),this.width=0,this.height=0,this._center=new t.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new Mn,this._posMatrixCache={},this._alignedPosMatrixCache={}},En={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};Sn.prototype.clone=function(){var t=new Sn(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return t.tileSize=this.tileSize,t.latRange=this.latRange,t.width=this.width,t.height=this.height,t._center=this._center,t.zoom=this.zoom,t.angle=this.angle,t._fov=this._fov,t._pitch=this._pitch,t._unmodified=this._unmodified,t._edgeInsets=this._edgeInsets.clone(),t._calcMatrices(),t},En.minZoom.get=function(){return this._minZoom},En.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},En.maxZoom.get=function(){return this._maxZoom},En.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},En.minPitch.get=function(){return this._minPitch},En.minPitch.set=function(t){this._minPitch!==t&&(this._minPitch=t,this.pitch=Math.max(this.pitch,t))},En.maxPitch.get=function(){return this._maxPitch},En.maxPitch.set=function(t){this._maxPitch!==t&&(this._maxPitch=t,this.pitch=Math.min(this.pitch,t))},En.renderWorldCopies.get=function(){return this._renderWorldCopies},En.renderWorldCopies.set=function(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t},En.worldSize.get=function(){return this.tileSize*this.scale},En.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},En.size.get=function(){return new t.Point(this.width,this.height)},En.bearing.get=function(){return-this.angle/Math.PI*180},En.bearing.set=function(e){var r=-t.wrap(e,-180,180)*Math.PI/180;this.angle!==r&&(this._unmodified=!1,this.angle=r,this._calcMatrices(),this.rotationMatrix=t.create$2(),t.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},En.pitch.get=function(){return this._pitch/Math.PI*180},En.pitch.set=function(e){var r=t.clamp(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==r&&(this._unmodified=!1,this._pitch=r,this._calcMatrices())},En.fov.get=function(){return this._fov/Math.PI*180},En.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},En.zoom.get=function(){return this._zoom},En.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},En.center.get=function(){return this._center},En.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},En.padding.get=function(){return this._edgeInsets.toJSON()},En.padding.set=function(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices())},En.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},Sn.prototype.isPaddingEqual=function(t){return this._edgeInsets.equals(t)},Sn.prototype.interpolatePadding=function(t,e,r){this._unmodified=!1,this._edgeInsets.interpolate(t,e,r),this._constrain(),this._calcMatrices()},Sn.prototype.coveringZoomLevel=function(t){var e=(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize));return Math.max(0,e)},Sn.prototype.getVisibleUnwrappedCoordinates=function(e){var r=[new t.UnwrappedTileID(0,e)];if(this._renderWorldCopies)for(var n=this.pointCoordinate(new t.Point(0,0)),i=this.pointCoordinate(new t.Point(this.width,0)),a=this.pointCoordinate(new t.Point(this.width,this.height)),o=this.pointCoordinate(new t.Point(0,this.height)),s=Math.floor(Math.min(n.x,i.x,a.x,o.x)),l=Math.floor(Math.max(n.x,i.x,a.x,o.x)),u=s-1;u<=l+1;u++)0!==u&&r.push(new t.UnwrappedTileID(u,e));return r},Sn.prototype.coveringTiles=function(e){var r=this.coveringZoomLevel(e),n=r;if(void 0!==e.minzoom&&r<e.minzoom)return[];void 0!==e.maxzoom&&r>e.maxzoom&&(r=e.maxzoom);var i=t.MercatorCoordinate.fromLngLat(this.center),a=Math.pow(2,r),o=[a*i.x,a*i.y,0],s=kn.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,r),l=e.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(l=r);var u=function(t){return{aabb:new An([t*a,0,0],[(t+1)*a,a,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}},c=[],f=[],h=r,p=e.reparseOverscaled?n:r;if(this._renderWorldCopies)for(var d=1;d<=3;d++)c.push(u(-d)),c.push(u(d));for(c.push(u(0));c.length>0;){var v=c.pop(),g=v.x,y=v.y,m=v.fullyVisible;if(!m){var x=v.aabb.intersects(s);if(0===x)continue;m=2===x}var b=v.aabb.distanceX(o),_=v.aabb.distanceY(o),w=Math.max(Math.abs(b),Math.abs(_)),T=3+(1<<h-v.zoom)-2;if(v.zoom===h||w>T&&v.zoom>=l)f.push({tileID:new t.OverscaledTileID(v.zoom===h?p:v.zoom,v.wrap,v.zoom,g,y),distanceSq:t.sqrLen([o[0]-.5-g,o[1]-.5-y])});else for(var k=0;k<4;k++){var A=(g<<1)+k%2,M=(y<<1)+(k>>1);c.push({aabb:v.aabb.quadrant(k),zoom:v.zoom+1,x:A,y:M,wrap:v.wrap,fullyVisible:m})}}return f.sort((function(t,e){return t.distanceSq-e.distanceSq})).map((function(t){return t.tileID}))},Sn.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},En.unmodified.get=function(){return this._unmodified},Sn.prototype.zoomScale=function(t){return Math.pow(2,t)},Sn.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},Sn.prototype.project=function(e){var r=t.clamp(e.lat,-this.maxValidLatitude,this.maxValidLatitude);return new t.Point(t.mercatorXfromLng(e.lng)*this.worldSize,t.mercatorYfromLat(r)*this.worldSize)},Sn.prototype.unproject=function(e){return new t.MercatorCoordinate(e.x/this.worldSize,e.y/this.worldSize).toLngLat()},En.point.get=function(){return this.project(this.center)},Sn.prototype.setLocationAtPoint=function(e,r){var n=this.pointCoordinate(r),i=this.pointCoordinate(this.centerPoint),a=this.locationCoordinate(e),o=new t.MercatorCoordinate(a.x-(n.x-i.x),a.y-(n.y-i.y));this.center=this.coordinateLocation(o),this._renderWorldCopies&&(this.center=this.center.wrap())},Sn.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},Sn.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},Sn.prototype.locationCoordinate=function(e){return t.MercatorCoordinate.fromLngLat(e)},Sn.prototype.coordinateLocation=function(t){return t.toLngLat()},Sn.prototype.pointCoordinate=function(e){var r=[e.x,e.y,0,1],n=[e.x,e.y,1,1];t.transformMat4(r,r,this.pixelMatrixInverse),t.transformMat4(n,n,this.pixelMatrixInverse);var i=r[3],a=n[3],o=r[0]/i,s=n[0]/a,l=r[1]/i,u=n[1]/a,c=r[2]/i,f=n[2]/a,h=c===f?0:(0-c)/(f-c);return new t.MercatorCoordinate(t.number(o,s,h)/this.worldSize,t.number(l,u,h)/this.worldSize)},Sn.prototype.coordinatePoint=function(e){var r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(r,r,this.pixelMatrix),new t.Point(r[0]/r[3],r[1]/r[3])},Sn.prototype.getBounds=function(){return(new t.LngLatBounds).extend(this.pointLocation(new t.Point(0,0))).extend(this.pointLocation(new t.Point(this.width,0))).extend(this.pointLocation(new t.Point(this.width,this.height))).extend(this.pointLocation(new t.Point(0,this.height)))},Sn.prototype.getMaxBounds=function(){return this.latRange&&2===this.latRange.length&&this.lngRange&&2===this.lngRange.length?new t.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},Sn.prototype.setMaxBounds=function(t){t?(this.lngRange=[t.getWest(),t.getEast()],this.latRange=[t.getSouth(),t.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},Sn.prototype.calculatePosMatrix=function(e,r){void 0===r&&(r=!1);var n=e.key,i=r?this._alignedPosMatrixCache:this._posMatrixCache;if(i[n])return i[n];var a=e.canonical,o=this.worldSize/this.zoomScale(a.z),s=a.x+Math.pow(2,a.z)*e.wrap,l=t.identity(new Float64Array(16));return t.translate(l,l,[s*o,a.y*o,0]),t.scale(l,l,[o/t.EXTENT,o/t.EXTENT,1]),t.multiply(l,r?this.alignedProjMatrix:this.projMatrix,l),i[n]=new Float32Array(l),i[n]},Sn.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},Sn.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var e,r,n,i,a=-90,o=90,s=-180,l=180,u=this.size,c=this._unmodified;if(this.latRange){var f=this.latRange;a=t.mercatorYfromLat(f[1])*this.worldSize,e=(o=t.mercatorYfromLat(f[0])*this.worldSize)-a<u.y?u.y/(o-a):0}if(this.lngRange){var h=this.lngRange;s=t.mercatorXfromLng(h[0])*this.worldSize,r=(l=t.mercatorXfromLng(h[1])*this.worldSize)-s<u.x?u.x/(l-s):0}var p=this.point,d=Math.max(r||0,e||0);if(d)return this.center=this.unproject(new t.Point(r?(l+s)/2:p.x,e?(o+a)/2:p.y)),this.zoom+=this.scaleZoom(d),this._unmodified=c,void(this._constraining=!1);if(this.latRange){var v=p.y,g=u.y/2;v-g<a&&(i=a+g),v+g>o&&(i=o-g)}if(this.lngRange){var y=p.x,m=u.x/2;y-m<s&&(n=s+m),y+m>l&&(n=l-m)}void 0===n&&void 0===i||(this.center=this.unproject(new t.Point(void 0!==n?n:p.x,void 0!==i?i:p.y))),this._unmodified=c,this._constraining=!1}},Sn.prototype._calcMatrices=function(){if(this.height){var e=this._fov/2,r=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(e)*this.height;var n=Math.PI/2+this._pitch,i=this._fov*(.5+r.y/this.height),a=Math.sin(i)*this.cameraToCenterDistance/Math.sin(t.clamp(Math.PI-n-i,.01,Math.PI-.01)),o=this.point,s=o.x,l=o.y,u=1.01*(Math.cos(Math.PI/2-this._pitch)*a+this.cameraToCenterDistance),c=this.height/50,f=new Float64Array(16);t.perspective(f,this._fov,this.width/this.height,c,u),f[8]=2*-r.x/this.width,f[9]=2*r.y/this.height,t.scale(f,f,[1,-1,1]),t.translate(f,f,[0,0,-this.cameraToCenterDistance]),t.rotateX(f,f,this._pitch),t.rotateZ(f,f,this.angle),t.translate(f,f,[-s,-l,0]),this.mercatorMatrix=t.scale([],f,[this.worldSize,this.worldSize,this.worldSize]),t.scale(f,f,[1,1,t.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=f,this.invProjMatrix=t.invert([],this.projMatrix);var h=this.width%2/2,p=this.height%2/2,d=Math.cos(this.angle),v=Math.sin(this.angle),g=s-Math.round(s)+d*h+v*p,y=l-Math.round(l)+d*p+v*h,m=new Float64Array(f);if(t.translate(m,m,[g>.5?g-1:g,y>.5?y-1:y,0]),this.alignedProjMatrix=m,f=t.create(),t.scale(f,f,[this.width/2,-this.height/2,1]),t.translate(f,f,[1,-1,0]),this.labelPlaneMatrix=f,f=t.create(),t.scale(f,f,[1,-1,1]),t.translate(f,f,[-1,-1,0]),t.scale(f,f,[2/this.width,2/this.height,1]),this.glCoordMatrix=f,this.pixelMatrix=t.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(f=t.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=f,this._posMatrixCache={},this._alignedPosMatrixCache={}}},Sn.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var e=this.pointCoordinate(new t.Point(0,0)),r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(r,r,this.pixelMatrix)[3]/this.cameraToCenterDistance},Sn.prototype.getCameraPoint=function(){var e=this._pitch,r=Math.tan(e)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new t.Point(0,r))},Sn.prototype.getCameraQueryGeometry=function(e){var r=this.getCameraPoint();if(1===e.length)return[e[0],r];for(var n=r.x,i=r.y,a=r.x,o=r.y,s=0,l=e;s<l.length;s+=1){var u=l[s];n=Math.min(n,u.x),i=Math.min(i,u.y),a=Math.max(a,u.x),o=Math.max(o,u.y)}return[new t.Point(n,i),new t.Point(a,i),new t.Point(a,o),new t.Point(n,o),new t.Point(n,i)]},Object.defineProperties(Sn.prototype,En);var Ln=function(e){var r,n,i,a,o;this._hashName=e&&encodeURIComponent(e),t.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=(r=this._updateHashUnthrottled.bind(this),n=300,i=!1,a=null,o=function(){a=null,i&&(r(),a=setTimeout(o,n),i=!1)},function(){return i=!0,a||o(),a})};Ln.prototype.addTo=function(e){return this._map=e,t.window.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},Ln.prototype.remove=function(){return t.window.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this},Ln.prototype.getHashString=function(e){var r=this._map.getCenter(),n=Math.round(100*this._map.getZoom())/100,i=Math.ceil((n*Math.LN2+Math.log(512/360/.5))/Math.LN10),a=Math.pow(10,i),o=Math.round(r.lng*a)/a,s=Math.round(r.lat*a)/a,l=this._map.getBearing(),u=this._map.getPitch(),c="";if(c+=e?"/"+o+"/"+s+"/"+n:n+"/"+s+"/"+o,(l||u)&&(c+="/"+Math.round(10*l)/10),u&&(c+="/"+Math.round(u)),this._hashName){var f=this._hashName,h=!1,p=t.window.location.hash.slice(1).split("&").map((function(t){var e=t.split("=")[0];return e===f?(h=!0,e+"="+c):t})).filter((function(t){return t}));return h||p.push(f+"="+c),"#"+p.join("&")}return"#"+c},Ln.prototype._getCurrentHash=function(){var e,r=this,n=t.window.location.hash.replace("#","");return this._hashName?(n.split("&").map((function(t){return t.split("=")})).forEach((function(t){t[0]===r._hashName&&(e=t)})),(e&&e[1]||"").split("/")):n.split("/")},Ln.prototype._onHashChange=function(){var t=this._getCurrentHash();if(t.length>=3&&!t.some((function(t){return isNaN(t)}))){var e=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(t[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:e,pitch:+(t[4]||0)}),!0}return!1},Ln.prototype._updateHashUnthrottled=function(){var e=this.getHashString();try{t.window.history.replaceState(t.window.history.state,"",e)}catch(t){}};var Cn={linearity:.3,easing:t.bezier(0,0,.3,1)},Pn=t.extend({deceleration:2500,maxSpeed:1400},Cn),On=t.extend({deceleration:20,maxSpeed:1400},Cn),In=t.extend({deceleration:1e3,maxSpeed:360},Cn),Dn=t.extend({deceleration:1e3,maxSpeed:90},Cn),zn=function(t){this._map=t,this.clear()};function Rn(t,e){(!t.duration||t.duration<e.duration)&&(t.duration=e.duration,t.easing=e.easing)}function Fn(e,r,n){var i=n.maxSpeed,a=n.linearity,o=n.deceleration,s=t.clamp(e*a/(r/1e3),-i,i),l=Math.abs(s)/(o*a);return{easing:n.easing,duration:1e3*l,amount:s*(l/2)}}zn.prototype.clear=function(){this._inertiaBuffer=[]},zn.prototype.record=function(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:t.browser.now(),settings:e})},zn.prototype._drainInertiaBuffer=function(){for(var e=this._inertiaBuffer,r=t.browser.now();e.length>0&&r-e[0].time>160;)e.shift()},zn.prototype._onMoveEnd=function(e){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var r={zoom:0,bearing:0,pitch:0,pan:new t.Point(0,0),pinchAround:void 0,around:void 0},n=0,i=this._inertiaBuffer;n<i.length;n+=1){var a=i[n].settings;r.zoom+=a.zoomDelta||0,r.bearing+=a.bearingDelta||0,r.pitch+=a.pitchDelta||0,a.panDelta&&r.pan._add(a.panDelta),a.around&&(r.around=a.around),a.pinchAround&&(r.pinchAround=a.pinchAround)}var o=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,s={};if(r.pan.mag()){var l=Fn(r.pan.mag(),o,t.extend({},Pn,e||{}));s.offset=r.pan.mult(l.amount/r.pan.mag()),s.center=this._map.transform.center,Rn(s,l)}if(r.zoom){var u=Fn(r.zoom,o,On);s.zoom=this._map.transform.zoom+u.amount,Rn(s,u)}if(r.bearing){var c=Fn(r.bearing,o,In);s.bearing=this._map.transform.bearing+t.clamp(c.amount,-179,179),Rn(s,c)}if(r.pitch){var f=Fn(r.pitch,o,Dn);s.pitch=this._map.transform.pitch+f.amount,Rn(s,f)}if(s.zoom||s.bearing){var h=void 0===r.pinchAround?r.around:r.pinchAround;s.around=h?this._map.unproject(h):this._map.getCenter()}return this.clear(),t.extend(s,{noMoveStart:!0})}};var Bn=function(e){function n(n,i,a,o){void 0===o&&(o={});var s=r.mousePos(i.getCanvasContainer(),a),l=i.unproject(s);e.call(this,n,t.extend({point:s,lngLat:l,originalEvent:a},o)),this._defaultPrevented=!1,this.target=i}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var i={defaultPrevented:{configurable:!0}};return n.prototype.preventDefault=function(){this._defaultPrevented=!0},i.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(n.prototype,i),n}(t.Event),Nn=function(e){function n(n,i,a){var o="touchend"===n?a.changedTouches:a.touches,s=r.touchPos(i.getCanvasContainer(),o),l=s.map((function(t){return i.unproject(t)})),u=s.reduce((function(t,e,r,n){return t.add(e.div(n.length))}),new t.Point(0,0)),c=i.unproject(u);e.call(this,n,{points:s,point:u,lngLats:l,lngLat:c,originalEvent:a}),this._defaultPrevented=!1}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var i={defaultPrevented:{configurable:!0}};return n.prototype.preventDefault=function(){this._defaultPrevented=!0},i.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(n.prototype,i),n}(t.Event),jn=function(t){function e(e,r,n){t.call(this,e,{originalEvent:n}),this._defaultPrevented=!1}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={defaultPrevented:{configurable:!0}};return e.prototype.preventDefault=function(){this._defaultPrevented=!0},r.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(e.prototype,r),e}(t.Event),Un=function(t,e){this._map=t,this._clickTolerance=e.clickTolerance};Un.prototype.reset=function(){delete this._mousedownPos},Un.prototype.wheel=function(t){return this._firePreventable(new jn(t.type,this._map,t))},Un.prototype.mousedown=function(t,e){return this._mousedownPos=e,this._firePreventable(new Bn(t.type,this._map,t))},Un.prototype.mouseup=function(t){this._map.fire(new Bn(t.type,this._map,t))},Un.prototype.click=function(t,e){this._mousedownPos&&this._mousedownPos.dist(e)>=this._clickTolerance||this._map.fire(new Bn(t.type,this._map,t))},Un.prototype.dblclick=function(t){return this._firePreventable(new Bn(t.type,this._map,t))},Un.prototype.mouseover=function(t){this._map.fire(new Bn(t.type,this._map,t))},Un.prototype.mouseout=function(t){this._map.fire(new Bn(t.type,this._map,t))},Un.prototype.touchstart=function(t){return this._firePreventable(new Nn(t.type,this._map,t))},Un.prototype.touchmove=function(t){this._map.fire(new Nn(t.type,this._map,t))},Un.prototype.touchend=function(t){this._map.fire(new Nn(t.type,this._map,t))},Un.prototype.touchcancel=function(t){this._map.fire(new Nn(t.type,this._map,t))},Un.prototype._firePreventable=function(t){if(this._map.fire(t),t.defaultPrevented)return{}},Un.prototype.isEnabled=function(){return!0},Un.prototype.isActive=function(){return!1},Un.prototype.enable=function(){},Un.prototype.disable=function(){};var Vn=function(t){this._map=t};Vn.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent},Vn.prototype.mousemove=function(t){this._map.fire(new Bn(t.type,this._map,t))},Vn.prototype.mousedown=function(){this._delayContextMenu=!0},Vn.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Bn("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},Vn.prototype.contextmenu=function(t){this._delayContextMenu?this._contextMenuEvent=t:this._map.fire(new Bn(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault()},Vn.prototype.isEnabled=function(){return!0},Vn.prototype.isActive=function(){return!1},Vn.prototype.enable=function(){},Vn.prototype.disable=function(){};var Hn=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1};function qn(t,e){for(var r={},n=0;n<t.length;n++)r[t[n].identifier]=e[n];return r}Hn.prototype.isEnabled=function(){return!!this._enabled},Hn.prototype.isActive=function(){return!!this._active},Hn.prototype.enable=function(){this.isEnabled()||(this._enabled=!0)},Hn.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},Hn.prototype.mousedown=function(t,e){this.isEnabled()&&t.shiftKey&&0===t.button&&(r.disableDrag(),this._startPos=this._lastPos=e,this._active=!0)},Hn.prototype.mousemoveWindow=function(t,e){if(this._active){var n=e;if(!(this._lastPos.equals(n)||!this._box&&n.dist(this._startPos)<this._clickTolerance)){var i=this._startPos;this._lastPos=n,this._box||(this._box=r.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",t));var a=Math.min(i.x,n.x),o=Math.max(i.x,n.x),s=Math.min(i.y,n.y),l=Math.max(i.y,n.y);r.setTransform(this._box,"translate("+a+"px,"+s+"px)"),this._box.style.width=o-a+"px",this._box.style.height=l-s+"px"}}},Hn.prototype.mouseupWindow=function(e,n){var i=this;if(this._active&&0===e.button){var a=this._startPos,o=n;if(this.reset(),r.suppressClick(),a.x!==o.x||a.y!==o.y)return this._map.fire(new t.Event("boxzoomend",{originalEvent:e})),{cameraAnimation:function(t){return t.fitScreenCoordinates(a,o,i._map.getBearing(),{linear:!0})}};this._fireEvent("boxzoomcancel",e)}},Hn.prototype.keydown=function(t){this._active&&27===t.keyCode&&(this.reset(),this._fireEvent("boxzoomcancel",t))},Hn.prototype.reset=function(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(r.remove(this._box),this._box=null),r.enableDrag(),delete this._startPos,delete this._lastPos},Hn.prototype._fireEvent=function(e,r){return this._map.fire(new t.Event(e,{originalEvent:r}))};var Gn=function(t){this.reset(),this.numTouches=t.numTouches};Gn.prototype.reset=function(){delete this.centroid,delete this.startTime,delete this.touches,this.aborted=!1},Gn.prototype.touchstart=function(e,r,n){(this.centroid||n.length>this.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=e.timeStamp),n.length===this.numTouches&&(this.centroid=function(e){for(var r=new t.Point(0,0),n=0,i=e;n<i.length;n+=1){var a=i[n];r._add(a)}return r.div(e.length)}(r),this.touches=qn(n,r)))},Gn.prototype.touchmove=function(t,e,r){if(!this.aborted&&this.centroid){var n=qn(r,e);for(var i in this.touches){var a=this.touches[i],o=n[i];(!o||o.dist(a)>30)&&(this.aborted=!0)}}},Gn.prototype.touchend=function(t,e,r){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),0===r.length){var n=!this.aborted&&this.centroid;if(this.reset(),n)return n}};var Zn=function(t){this.singleTap=new Gn(t),this.numTaps=t.numTaps,this.reset()};Zn.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()},Zn.prototype.touchstart=function(t,e,r){this.singleTap.touchstart(t,e,r)},Zn.prototype.touchmove=function(t,e,r){this.singleTap.touchmove(t,e,r)},Zn.prototype.touchend=function(t,e,r){var n=this.singleTap.touchend(t,e,r);if(n){var i=t.timeStamp-this.lastTime<500,a=!this.lastTap||this.lastTap.dist(n)<30;if(i&&a||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=n,this.count===this.numTaps)return this.reset(),n}};var Yn=function(){this._zoomIn=new Zn({numTouches:1,numTaps:2}),this._zoomOut=new Zn({numTouches:2,numTaps:1}),this.reset()};Yn.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()},Yn.prototype.touchstart=function(t,e,r){this._zoomIn.touchstart(t,e,r),this._zoomOut.touchstart(t,e,r)},Yn.prototype.touchmove=function(t,e,r){this._zoomIn.touchmove(t,e,r),this._zoomOut.touchmove(t,e,r)},Yn.prototype.touchend=function(t,e,r){var n=this,i=this._zoomIn.touchend(t,e,r),a=this._zoomOut.touchend(t,e,r);return i?(this._active=!0,t.preventDefault(),setTimeout((function(){return n.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()+1,around:e.unproject(i)},{originalEvent:t})}}):a?(this._active=!0,t.preventDefault(),setTimeout((function(){return n.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()-1,around:e.unproject(a)},{originalEvent:t})}}):void 0},Yn.prototype.touchcancel=function(){this.reset()},Yn.prototype.enable=function(){this._enabled=!0},Yn.prototype.disable=function(){this._enabled=!1,this.reset()},Yn.prototype.isEnabled=function(){return this._enabled},Yn.prototype.isActive=function(){return this._active};var Wn=function(t){this.reset(),this._clickTolerance=t.clickTolerance||1};Wn.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton},Wn.prototype._correctButton=function(t,e){return!1},Wn.prototype._move=function(t,e){return{}},Wn.prototype.mousedown=function(t,e){if(!this._lastPoint){var n=r.mouseButton(t);this._correctButton(t,n)&&(this._lastPoint=e,this._eventButton=n)}},Wn.prototype.mousemoveWindow=function(t,e){var r=this._lastPoint;if(r&&(t.preventDefault(),this._moved||!(e.dist(r)<this._clickTolerance)))return this._moved=!0,this._lastPoint=e,this._move(r,e)},Wn.prototype.mouseupWindow=function(t){r.mouseButton(t)===this._eventButton&&(this._moved&&r.suppressClick(),this.reset())},Wn.prototype.enable=function(){this._enabled=!0},Wn.prototype.disable=function(){this._enabled=!1,this.reset()},Wn.prototype.isEnabled=function(){return this._enabled},Wn.prototype.isActive=function(){return this._active};var Xn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.mousedown=function(e,r){t.prototype.mousedown.call(this,e,r),this._lastPoint&&(this._active=!0)},e.prototype._correctButton=function(t,e){return 0===e&&!t.ctrlKey},e.prototype._move=function(t,e){return{around:e,panDelta:e.sub(t)}},e}(Wn),Jn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._correctButton=function(t,e){return 0===e&&t.ctrlKey||2===e},e.prototype._move=function(t,e){var r=.8*(e.x-t.x);if(r)return this._active=!0,{bearingDelta:r}},e.prototype.contextmenu=function(t){t.preventDefault()},e}(Wn),Kn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._correctButton=function(t,e){return 0===e&&t.ctrlKey||2===e},e.prototype._move=function(t,e){var r=-.5*(e.y-t.y);if(r)return this._active=!0,{pitchDelta:r}},e.prototype.contextmenu=function(t){t.preventDefault()},e}(Wn),$n=function(t){this._minTouches=1,this._clickTolerance=t.clickTolerance||1,this.reset()};$n.prototype.reset=function(){this._active=!1,this._touches={},this._sum=new t.Point(0,0)},$n.prototype.touchstart=function(t,e,r){return this._calculateTransform(t,e,r)},$n.prototype.touchmove=function(t,e,r){if(this._active)return t.preventDefault(),this._calculateTransform(t,e,r)},$n.prototype.touchend=function(t,e,r){this._calculateTransform(t,e,r),this._active&&r.length<this._minTouches&&this.reset()},$n.prototype.touchcancel=function(){this.reset()},$n.prototype._calculateTransform=function(e,r,n){n.length>0&&(this._active=!0);var i=qn(n,r),a=new t.Point(0,0),o=new t.Point(0,0),s=0;for(var l in i){var u=i[l],c=this._touches[l];c&&(a._add(u),o._add(u.sub(c)),s++,i[l]=u)}if(this._touches=i,!(s<this._minTouches)&&o.mag()){var f=o.div(s);if(this._sum._add(f),!(this._sum.mag()<this._clickTolerance))return{around:a.div(s),panDelta:f}}},$n.prototype.enable=function(){this._enabled=!0},$n.prototype.disable=function(){this._enabled=!1,this.reset()},$n.prototype.isEnabled=function(){return this._enabled},$n.prototype.isActive=function(){return this._active};var Qn=function(){this.reset()};function ti(t,e,r){for(var n=0;n<t.length;n++)if(t[n].identifier===r)return e[n]}Qn.prototype.reset=function(){this._active=!1,delete this._firstTwoTouches},Qn.prototype._start=function(t){},Qn.prototype._move=function(t,e,r){return{}},Qn.prototype.touchstart=function(t,e,r){this._firstTwoTouches||r.length<2||(this._firstTwoTouches=[r[0].identifier,r[1].identifier],this._start([e[0],e[1]]))},Qn.prototype.touchmove=function(t,e,r){if(this._firstTwoTouches){t.preventDefault();var n=this._firstTwoTouches,i=n[0],a=n[1],o=ti(r,e,i),s=ti(r,e,a);if(o&&s){var l=this._aroundCenter?null:o.add(s).div(2);return this._move([o,s],l,t)}}},Qn.prototype.touchend=function(t,e,n){if(this._firstTwoTouches){var i=this._firstTwoTouches,a=i[0],o=i[1],s=ti(n,e,a),l=ti(n,e,o);s&&l||(this._active&&r.suppressClick(),this.reset())}},Qn.prototype.touchcancel=function(){this.reset()},Qn.prototype.enable=function(t){this._enabled=!0,this._aroundCenter=!!t&&"center"===t.around},Qn.prototype.disable=function(){this._enabled=!1,this.reset()},Qn.prototype.isEnabled=function(){return this._enabled},Qn.prototype.isActive=function(){return this._active};function ei(t,e){return Math.log(t/e)/Math.LN2}var ri=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reset=function(){t.prototype.reset.call(this),delete this._distance,delete this._startDistance},e.prototype._start=function(t){this._startDistance=this._distance=t[0].dist(t[1])},e.prototype._move=function(t,e){var r=this._distance;if(this._distance=t[0].dist(t[1]),this._active||!(Math.abs(ei(this._distance,this._startDistance))<.1))return this._active=!0,{zoomDelta:ei(this._distance,r),pinchAround:e}},e}(Qn);function ni(t,e){return 180*t.angleWith(e)/Math.PI}var ii=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reset=function(){t.prototype.reset.call(this),delete this._minDiameter,delete this._startVector,delete this._vector},e.prototype._start=function(t){this._startVector=this._vector=t[0].sub(t[1]),this._minDiameter=t[0].dist(t[1])},e.prototype._move=function(t,e){var r=this._vector;if(this._vector=t[0].sub(t[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:ni(this._vector,r),pinchAround:e}},e.prototype._isBelowThreshold=function(t){this._minDiameter=Math.min(this._minDiameter,t.mag());var e=25/(Math.PI*this._minDiameter)*360,r=ni(t,this._startVector);return Math.abs(r)<e},e}(Qn);function ai(t){return Math.abs(t.y)>Math.abs(t.x)}var oi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reset=function(){t.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints},e.prototype._start=function(t){this._lastPoints=t,ai(t[0].sub(t[1]))&&(this._valid=!1)},e.prototype._move=function(t,e,r){var n=t[0].sub(this._lastPoints[0]),i=t[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(n,i,r.timeStamp),this._valid)return this._lastPoints=t,this._active=!0,{pitchDelta:(n.y+i.y)/2*-.5}},e.prototype.gestureBeginsVertically=function(t,e,r){if(void 0!==this._valid)return this._valid;var n=t.mag()>=2,i=e.mag()>=2;if(n||i){if(!n||!i)return void 0===this._firstMove&&(this._firstMove=r),r-this._firstMove<100&&void 0;var a=t.y>0==e.y>0;return ai(t)&&ai(e)&&a}},e}(Qn),si={panStep:100,bearingStep:15,pitchStep:10},li=function(){var t=si;this._panStep=t.panStep,this._bearingStep=t.bearingStep,this._pitchStep=t.pitchStep};function ui(t){return t*(2-t)}li.prototype.reset=function(){this._active=!1},li.prototype.keydown=function(t){var e=this;if(!(t.altKey||t.ctrlKey||t.metaKey)){var r=0,n=0,i=0,a=0,o=0;switch(t.keyCode){case 61:case 107:case 171:case 187:r=1;break;case 189:case 109:case 173:r=-1;break;case 37:t.shiftKey?n=-1:(t.preventDefault(),a=-1);break;case 39:t.shiftKey?n=1:(t.preventDefault(),a=1);break;case 38:t.shiftKey?i=1:(t.preventDefault(),o=-1);break;case 40:t.shiftKey?i=-1:(t.preventDefault(),o=1);break;default:return}return{cameraAnimation:function(s){var l=s.getZoom();s.easeTo({duration:300,easeId:"keyboardHandler",easing:ui,zoom:r?Math.round(l)+r*(t.shiftKey?2:1):l,bearing:s.getBearing()+n*e._bearingStep,pitch:s.getPitch()+i*e._pitchStep,offset:[-a*e._panStep,-o*e._panStep],center:s.getCenter()},{originalEvent:t})}}}},li.prototype.enable=function(){this._enabled=!0},li.prototype.disable=function(){this._enabled=!1,this.reset()},li.prototype.isEnabled=function(){return this._enabled},li.prototype.isActive=function(){return this._active};var ci=4.000244140625,fi=function(e,r){this._map=e,this._el=e.getCanvasContainer(),this._handler=r,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,t.bindAll(["_onWheel","_onTimeout","_onScrollFrame","_onScrollFinished"],this)};fi.prototype.setZoomRate=function(t){this._defaultZoomRate=t},fi.prototype.setWheelZoomRate=function(t){this._wheelZoomRate=t},fi.prototype.isEnabled=function(){return!!this._enabled},fi.prototype.isActive=function(){return!!this._active||void 0!==this._finishTimeout},fi.prototype.isZooming=function(){return!!this._zooming},fi.prototype.enable=function(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},fi.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},fi.prototype.wheel=function(e){if(this.isEnabled()){var r=e.deltaMode===t.window.WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY,n=t.browser.now(),i=n-(this._lastWheelEventTime||0);this._lastWheelEventTime=n,0!==r&&r%ci==0?this._type="wheel":0!==r&&Math.abs(r)<4?this._type="trackpad":i>400?(this._type=null,this._lastValue=r,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(i*r)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,r+=this._lastValue)),e.shiftKey&&r&&(r/=4),this._type&&(this._lastWheelEvent=e,this._delta-=r,this._active||this._start(e)),e.preventDefault()}},fi.prototype._onTimeout=function(t){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(t)},fi.prototype._start=function(e){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var n=r.mousePos(this._el,e);this._around=t.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(n)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}},fi.prototype.renderFrame=function(){return this._onScrollFrame()},fi.prototype._onScrollFrame=function(){var e=this;if(this._frameId&&(this._frameId=null,this.isActive())){var r=this._map.transform;if(0!==this._delta){var n="wheel"===this._type&&Math.abs(this._delta)>ci?this._wheelZoomRate:this._defaultZoomRate,i=2/(1+Math.exp(-Math.abs(this._delta*n)));this._delta<0&&0!==i&&(i=1/i);var a="number"==typeof this._targetZoom?r.zoomScale(this._targetZoom):r.scale;this._targetZoom=Math.min(r.maxZoom,Math.max(r.minZoom,r.scaleZoom(a*i))),"wheel"===this._type&&(this._startZoom=r.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var o,s="number"==typeof this._targetZoom?this._targetZoom:r.zoom,l=this._startZoom,u=this._easing,c=!1;if("wheel"===this._type&&l&&u){var f=Math.min((t.browser.now()-this._lastWheelEventTime)/200,1),h=u(f);o=t.number(l,s,h),f<1?this._frameId||(this._frameId=!0):c=!0}else o=s,c=!0;return this._active=!0,c&&(this._active=!1,this._finishTimeout=setTimeout((function(){e._zooming=!1,e._handler._triggerRenderFrame(),delete e._targetZoom,delete e._finishTimeout}),200)),{noInertia:!0,needsRenderFrame:!c,zoomDelta:o-r.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},fi.prototype._smoothOutEasing=function(e){var r=t.ease;if(this._prevEase){var n=this._prevEase,i=(t.browser.now()-n.start)/n.duration,a=n.easing(i+.01)-n.easing(i),o=.27/Math.sqrt(a*a+1e-4)*.01,s=Math.sqrt(.0729-o*o);r=t.bezier(o,s,.25,1)}return this._prevEase={start:t.browser.now(),duration:e,easing:r},r},fi.prototype.reset=function(){this._active=!1};var hi=function(t,e){this._clickZoom=t,this._tapZoom=e};hi.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable()},hi.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable()},hi.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},hi.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var pi=function(){this.reset()};pi.prototype.reset=function(){this._active=!1},pi.prototype.dblclick=function(t,e){return t.preventDefault(),{cameraAnimation:function(r){r.easeTo({duration:300,zoom:r.getZoom()+(t.shiftKey?-1:1),around:r.unproject(e)},{originalEvent:t})}}},pi.prototype.enable=function(){this._enabled=!0},pi.prototype.disable=function(){this._enabled=!1,this.reset()},pi.prototype.isEnabled=function(){return this._enabled},pi.prototype.isActive=function(){return this._active};var di=function(){this._tap=new Zn({numTouches:1,numTaps:1}),this.reset()};di.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()},di.prototype.touchstart=function(t,e,r){this._swipePoint||(this._tapTime&&t.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?r.length>0&&(this._swipePoint=e[0],this._swipeTouch=r[0].identifier):this._tap.touchstart(t,e,r))},di.prototype.touchmove=function(t,e,r){if(this._tapTime){if(this._swipePoint){if(r[0].identifier!==this._swipeTouch)return;var n=e[0],i=n.y-this._swipePoint.y;return this._swipePoint=n,t.preventDefault(),this._active=!0,{zoomDelta:i/128}}}else this._tap.touchmove(t,e,r)},di.prototype.touchend=function(t,e,r){this._tapTime?this._swipePoint&&0===r.length&&this.reset():this._tap.touchend(t,e,r)&&(this._tapTime=t.timeStamp)},di.prototype.touchcancel=function(){this.reset()},di.prototype.enable=function(){this._enabled=!0},di.prototype.disable=function(){this._enabled=!1,this.reset()},di.prototype.isEnabled=function(){return this._enabled},di.prototype.isActive=function(){return this._active};var vi=function(t,e,r){this._el=t,this._mousePan=e,this._touchPan=r};vi.prototype.enable=function(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")},vi.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")},vi.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},vi.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var gi=function(t,e,r){this._pitchWithRotate=t.pitchWithRotate,this._mouseRotate=e,this._mousePitch=r};gi.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()},gi.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable()},gi.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},gi.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var yi=function(t,e,r,n){this._el=t,this._touchZoom=e,this._touchRotate=r,this._tapDragZoom=n,this._rotationDisabled=!1,this._enabled=!0};yi.prototype.enable=function(t){this._touchZoom.enable(t),this._rotationDisabled||this._touchRotate.enable(t),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")},yi.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")},yi.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},yi.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},yi.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable()},yi.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()};var mi=function(t){return t.zoom||t.drag||t.pitch||t.rotate},xi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(t.Event);function bi(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta}var _i=function(e,n){this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new zn(e),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(n),t.bindAll(["handleEvent","handleWindowEvent"],this);var i=this._el;this._listeners=[[i,"touchstart",{passive:!1}],[i,"touchmove",{passive:!1}],[i,"touchend",void 0],[i,"touchcancel",void 0],[i,"mousedown",void 0],[i,"mousemove",void 0],[i,"mouseup",void 0],[t.window.document,"mousemove",{capture:!0}],[t.window.document,"mouseup",void 0],[i,"mouseover",void 0],[i,"mouseout",void 0],[i,"dblclick",void 0],[i,"click",void 0],[i,"keydown",{capture:!1}],[i,"keyup",void 0],[i,"wheel",{passive:!1}],[i,"contextmenu",void 0],[t.window,"blur",void 0]];for(var a=0,o=this._listeners;a<o.length;a+=1){var s=o[a],l=s[0],u=s[1],c=s[2];r.addEventListener(l,u,l===t.window.document?this.handleWindowEvent:this.handleEvent,c)}};_i.prototype.destroy=function(){for(var e=0,n=this._listeners;e<n.length;e+=1){var i=n[e],a=i[0],o=i[1],s=i[2];r.removeEventListener(a,o,a===t.window.document?this.handleWindowEvent:this.handleEvent,s)}},_i.prototype._addDefaultHandlers=function(t){var e=this._map,r=e.getCanvasContainer();this._add("mapEvent",new Un(e,t));var n=e.boxZoom=new Hn(e,t);this._add("boxZoom",n);var i=new Yn,a=new pi;e.doubleClickZoom=new hi(a,i),this._add("tapZoom",i),this._add("clickZoom",a);var o=new di;this._add("tapDragZoom",o);var s=e.touchPitch=new oi;this._add("touchPitch",s);var l=new Jn(t),u=new Kn(t);e.dragRotate=new gi(t,l,u),this._add("mouseRotate",l,["mousePitch"]),this._add("mousePitch",u,["mouseRotate"]);var c=new Xn(t),f=new $n(t);e.dragPan=new vi(r,c,f),this._add("mousePan",c),this._add("touchPan",f,["touchZoom","touchRotate"]);var h=new ii,p=new ri;e.touchZoomRotate=new yi(r,p,h,o),this._add("touchRotate",h,["touchPan","touchZoom"]),this._add("touchZoom",p,["touchPan","touchRotate"]);var d=e.scrollZoom=new fi(e,this);this._add("scrollZoom",d,["mousePan"]);var v=e.keyboard=new li;this._add("keyboard",v),this._add("blockableMapEvent",new Vn(e));for(var g=0,y=["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"];g<y.length;g+=1){var m=y[g];t.interactive&&t[m]&&e[m].enable(t[m])}},_i.prototype._add=function(t,e,r){this._handlers.push({handlerName:t,handler:e,allowed:r}),this._handlersById[t]=e},_i.prototype.stop=function(){if(!this._updatingCamera){for(var t=0,e=this._handlers;t<e.length;t+=1)e[t].handler.reset();this._inertia.clear(),this._fireEvents({},{}),this._changes=[]}},_i.prototype.isActive=function(){for(var t=0,e=this._handlers;t<e.length;t+=1)if(e[t].handler.isActive())return!0;return!1},_i.prototype.isZooming=function(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()},_i.prototype.isRotating=function(){return!!this._eventsInProgress.rotate},_i.prototype.isMoving=function(){return Boolean(mi(this._eventsInProgress))||this.isZooming()},_i.prototype._blockedByActive=function(t,e,r){for(var n in t)if(n!==r&&(!e||e.indexOf(n)<0))return!0;return!1},_i.prototype.handleWindowEvent=function(t){this.handleEvent(t,t.type+"Window")},_i.prototype._getMapTouches=function(t){for(var e=[],r=0,n=t;r<n.length;r+=1){var i=n[r],a=i.target;this._el.contains(a)&&e.push(i)}return e},_i.prototype.handleEvent=function(t,e){if("blur"!==t.type){this._updatingCamera=!0;for(var n="renderFrame"===t.type?void 0:t,i={needsRenderFrame:!1},a={},o={},s=t.touches?this._getMapTouches(t.touches):void 0,l=s?r.touchPos(this._el,s):r.mousePos(this._el,t),u=0,c=this._handlers;u<c.length;u+=1){var f=c[u],h=f.handlerName,p=f.handler,d=f.allowed;if(p.isEnabled()){var v=void 0;this._blockedByActive(o,d,h)?p.reset():p[e||t.type]&&(v=p[e||t.type](t,l,s),this.mergeHandlerResult(i,a,v,h,n),v&&v.needsRenderFrame&&this._triggerRenderFrame()),(v||p.isActive())&&(o[h]=p)}}var g={};for(var y in this._previousActiveHandlers)o[y]||(g[y]=n);this._previousActiveHandlers=o,(Object.keys(g).length||bi(i))&&(this._changes.push([i,a,g]),this._triggerRenderFrame()),(Object.keys(o).length||bi(i))&&this._map._stop(!0),this._updatingCamera=!1;var m=i.cameraAnimation;m&&(this._inertia.clear(),this._fireEvents({},{}),this._changes=[],m(this._map))}else this.stop()},_i.prototype.mergeHandlerResult=function(e,r,n,i,a){if(n){t.extend(e,n);var o={handlerName:i,originalEvent:n.originalEvent||a};void 0!==n.zoomDelta&&(r.zoom=o),void 0!==n.panDelta&&(r.drag=o),void 0!==n.pitchDelta&&(r.pitch=o),void 0!==n.bearingDelta&&(r.rotate=o)}},_i.prototype._applyChanges=function(){for(var e={},r={},n={},i=0,a=this._changes;i<a.length;i+=1){var o=a[i],s=o[0],l=o[1],u=o[2];s.panDelta&&(e.panDelta=(e.panDelta||new t.Point(0,0))._add(s.panDelta)),s.zoomDelta&&(e.zoomDelta=(e.zoomDelta||0)+s.zoomDelta),s.bearingDelta&&(e.bearingDelta=(e.bearingDelta||0)+s.bearingDelta),s.pitchDelta&&(e.pitchDelta=(e.pitchDelta||0)+s.pitchDelta),void 0!==s.around&&(e.around=s.around),void 0!==s.pinchAround&&(e.pinchAround=s.pinchAround),s.noInertia&&(e.noInertia=s.noInertia),t.extend(r,l),t.extend(n,u)}this._updateMapTransform(e,r,n),this._changes=[]},_i.prototype._updateMapTransform=function(t,e,r){var n=this._map,i=n.transform;if(!bi(t))return this._fireEvents(e,r);var a=t.panDelta,o=t.zoomDelta,s=t.bearingDelta,l=t.pitchDelta,u=t.around,c=t.pinchAround;void 0!==c&&(u=c),n._stop(!0),u=u||n.transform.centerPoint;var f=i.pointLocation(a?u.sub(a):u);s&&(i.bearing+=s),l&&(i.pitch+=l),o&&(i.zoom+=o),i.setLocationAtPoint(f,u),this._map._update(),t.noInertia||this._inertia.record(t),this._fireEvents(e,r)},_i.prototype._fireEvents=function(e,r){var n=this,i=mi(this._eventsInProgress),a=mi(e),o={};for(var s in e){var l=e[s].originalEvent;this._eventsInProgress[s]||(o[s+"start"]=l),this._eventsInProgress[s]=e[s]}for(var u in!i&&a&&this._fireEvent("movestart",a.originalEvent),o)this._fireEvent(u,o[u]);for(var c in e.rotate&&(this._bearingChanged=!0),a&&this._fireEvent("move",a.originalEvent),e){var f=e[c].originalEvent;this._fireEvent(c,f)}var h,p={};for(var d in this._eventsInProgress){var v=this._eventsInProgress[d],g=v.handlerName,y=v.originalEvent;this._handlersById[g].isActive()||(delete this._eventsInProgress[d],h=r[g]||y,p[d+"end"]=h)}for(var m in p)this._fireEvent(m,p[m]);var x=mi(this._eventsInProgress);if((i||a)&&!x){this._updatingCamera=!0;var b=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),_=function(t){return 0!==t&&-n._bearingSnap<t&&t<n._bearingSnap};b?(_(b.bearing||this._map.getBearing())&&(b.bearing=0),this._map.easeTo(b,{originalEvent:h})):(this._map.fire(new t.Event("moveend",{originalEvent:h})),_(this._map.getBearing())&&this._map.resetNorth()),this._bearingChanged=!1,this._updatingCamera=!1}},_i.prototype._fireEvent=function(e,r){this._map.fire(new t.Event(e,r?{originalEvent:r}:{}))},_i.prototype._triggerRenderFrame=function(){var t=this;void 0===this._frameId&&(this._frameId=this._map._requestRenderFrame((function(e){delete t._frameId,t.handleEvent(new xi("renderFrame",{timeStamp:e})),t._applyChanges()})))};var wi=function(e){function r(r,n){e.call(this),this._moving=!1,this._zooming=!1,this.transform=r,this._bearingSnap=n.bearingSnap,t.bindAll(["_renderFrameCallback"],this)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.getCenter=function(){return new t.LngLat(this.transform.center.lng,this.transform.center.lat)},r.prototype.setCenter=function(t,e){return this.jumpTo({center:t},e)},r.prototype.panBy=function(e,r,n){return e=t.Point.convert(e).mult(-1),this.panTo(this.transform.center,t.extend({offset:e},r),n)},r.prototype.panTo=function(e,r,n){return this.easeTo(t.extend({center:e},r),n)},r.prototype.getZoom=function(){return this.transform.zoom},r.prototype.setZoom=function(t,e){return this.jumpTo({zoom:t},e),this},r.prototype.zoomTo=function(e,r,n){return this.easeTo(t.extend({zoom:e},r),n)},r.prototype.zoomIn=function(t,e){return this.zoomTo(this.getZoom()+1,t,e),this},r.prototype.zoomOut=function(t,e){return this.zoomTo(this.getZoom()-1,t,e),this},r.prototype.getBearing=function(){return this.transform.bearing},r.prototype.setBearing=function(t,e){return this.jumpTo({bearing:t},e),this},r.prototype.getPadding=function(){return this.transform.padding},r.prototype.setPadding=function(t,e){return this.jumpTo({padding:t},e),this},r.prototype.rotateTo=function(e,r,n){return this.easeTo(t.extend({bearing:e},r),n)},r.prototype.resetNorth=function(e,r){return this.rotateTo(0,t.extend({duration:1e3},e),r),this},r.prototype.resetNorthPitch=function(e,r){return this.easeTo(t.extend({bearing:0,pitch:0,duration:1e3},e),r),this},r.prototype.snapToNorth=function(t,e){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(t,e):this},r.prototype.getPitch=function(){return this.transform.pitch},r.prototype.setPitch=function(t,e){return this.jumpTo({pitch:t},e),this},r.prototype.cameraForBounds=function(e,r){return e=t.LngLatBounds.convert(e),this._cameraForBoxAndBearing(e.getNorthWest(),e.getSouthEast(),0,r)},r.prototype._cameraForBoxAndBearing=function(e,r,n,i){var a={top:0,bottom:0,right:0,left:0};if("number"==typeof(i=t.extend({padding:a,offset:[0,0],maxZoom:this.transform.maxZoom},i)).padding){var o=i.padding;i.padding={top:o,bottom:o,right:o,left:o}}i.padding=t.extend(a,i.padding);var s=this.transform,l=s.padding,u=s.project(t.LngLat.convert(e)),c=s.project(t.LngLat.convert(r)),f=u.rotate(-n*Math.PI/180),h=c.rotate(-n*Math.PI/180),p=new t.Point(Math.max(f.x,h.x),Math.max(f.y,h.y)),d=new t.Point(Math.min(f.x,h.x),Math.min(f.y,h.y)),v=p.sub(d),g=(s.width-(l.left+l.right+i.padding.left+i.padding.right))/v.x,y=(s.height-(l.top+l.bottom+i.padding.top+i.padding.bottom))/v.y;if(!(y<0||g<0)){var m=Math.min(s.scaleZoom(s.scale*Math.min(g,y)),i.maxZoom),x=t.Point.convert(i.offset),b=(i.padding.left-i.padding.right)/2,_=(i.padding.top-i.padding.bottom)/2,w=new t.Point(x.x+b,x.y+_).mult(s.scale/s.zoomScale(m));return{center:s.unproject(u.add(c).div(2).sub(w)),zoom:m,bearing:n}}t.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset.")},r.prototype.fitBounds=function(t,e,r){return this._fitInternal(this.cameraForBounds(t,e),e,r)},r.prototype.fitScreenCoordinates=function(e,r,n,i,a){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(t.Point.convert(e)),this.transform.pointLocation(t.Point.convert(r)),n,i),i,a)},r.prototype._fitInternal=function(e,r,n){return e?(delete(r=t.extend(e,r)).padding,r.linear?this.easeTo(r,n):this.flyTo(r,n)):this},r.prototype.jumpTo=function(e,r){this.stop();var n=this.transform,i=!1,a=!1,o=!1;return"zoom"in e&&n.zoom!==+e.zoom&&(i=!0,n.zoom=+e.zoom),void 0!==e.center&&(n.center=t.LngLat.convert(e.center)),"bearing"in e&&n.bearing!==+e.bearing&&(a=!0,n.bearing=+e.bearing),"pitch"in e&&n.pitch!==+e.pitch&&(o=!0,n.pitch=+e.pitch),null==e.padding||n.isPaddingEqual(e.padding)||(n.padding=e.padding),this.fire(new t.Event("movestart",r)).fire(new t.Event("move",r)),i&&this.fire(new t.Event("zoomstart",r)).fire(new t.Event("zoom",r)).fire(new t.Event("zoomend",r)),a&&this.fire(new t.Event("rotatestart",r)).fire(new t.Event("rotate",r)).fire(new t.Event("rotateend",r)),o&&this.fire(new t.Event("pitchstart",r)).fire(new t.Event("pitch",r)).fire(new t.Event("pitchend",r)),this.fire(new t.Event("moveend",r))},r.prototype.easeTo=function(e,r){var n=this;this._stop(!1,e.easeId),(!1===(e=t.extend({offset:[0,0],duration:500,easing:t.ease},e)).animate||!e.essential&&t.browser.prefersReducedMotion)&&(e.duration=0);var i=this.transform,a=this.getZoom(),o=this.getBearing(),s=this.getPitch(),l=this.getPadding(),u="zoom"in e?+e.zoom:a,c="bearing"in e?this._normalizeBearing(e.bearing,o):o,f="pitch"in e?+e.pitch:s,h="padding"in e?e.padding:i.padding,p=t.Point.convert(e.offset),d=i.centerPoint.add(p),v=i.pointLocation(d),g=t.LngLat.convert(e.center||v);this._normalizeCenter(g);var y,m,x=i.project(v),b=i.project(g).sub(x),_=i.zoomScale(u-a);e.around&&(y=t.LngLat.convert(e.around),m=i.locationPoint(y));var w={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=this._zooming||u!==a,this._rotating=this._rotating||o!==c,this._pitching=this._pitching||f!==s,this._padding=!i.isPaddingEqual(h),this._easeId=e.easeId,this._prepareEase(r,e.noMoveStart,w),clearTimeout(this._easeEndTimeoutID),this._ease((function(e){if(n._zooming&&(i.zoom=t.number(a,u,e)),n._rotating&&(i.bearing=t.number(o,c,e)),n._pitching&&(i.pitch=t.number(s,f,e)),n._padding&&(i.interpolatePadding(l,h,e),d=i.centerPoint.add(p)),y)i.setLocationAtPoint(y,m);else{var v=i.zoomScale(i.zoom-a),g=u>a?Math.min(2,_):Math.max(.5,_),w=Math.pow(g,1-e),T=i.unproject(x.add(b.mult(e*w)).mult(v));i.setLocationAtPoint(i.renderWorldCopies?T.wrap():T,d)}n._fireMoveEvents(r)}),(function(t){n._afterEase(r,t)}),e),this},r.prototype._prepareEase=function(e,r,n){void 0===n&&(n={}),this._moving=!0,r||n.moving||this.fire(new t.Event("movestart",e)),this._zooming&&!n.zooming&&this.fire(new t.Event("zoomstart",e)),this._rotating&&!n.rotating&&this.fire(new t.Event("rotatestart",e)),this._pitching&&!n.pitching&&this.fire(new t.Event("pitchstart",e))},r.prototype._fireMoveEvents=function(e){this.fire(new t.Event("move",e)),this._zooming&&this.fire(new t.Event("zoom",e)),this._rotating&&this.fire(new t.Event("rotate",e)),this._pitching&&this.fire(new t.Event("pitch",e))},r.prototype._afterEase=function(e,r){if(!this._easeId||!r||this._easeId!==r){delete this._easeId;var n=this._zooming,i=this._rotating,a=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,n&&this.fire(new t.Event("zoomend",e)),i&&this.fire(new t.Event("rotateend",e)),a&&this.fire(new t.Event("pitchend",e)),this.fire(new t.Event("moveend",e))}},r.prototype.flyTo=function(e,r){var n=this;if(!e.essential&&t.browser.prefersReducedMotion){var i=t.pick(e,["center","zoom","bearing","pitch","around"]);return this.jumpTo(i,r)}this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.ease},e);var a=this.transform,o=this.getZoom(),s=this.getBearing(),l=this.getPitch(),u=this.getPadding(),c="zoom"in e?t.clamp(+e.zoom,a.minZoom,a.maxZoom):o,f="bearing"in e?this._normalizeBearing(e.bearing,s):s,h="pitch"in e?+e.pitch:l,p="padding"in e?e.padding:a.padding,d=a.zoomScale(c-o),v=t.Point.convert(e.offset),g=a.centerPoint.add(v),y=a.pointLocation(g),m=t.LngLat.convert(e.center||y);this._normalizeCenter(m);var x=a.project(y),b=a.project(m).sub(x),_=e.curve,w=Math.max(a.width,a.height),T=w/d,k=b.mag();if("minZoom"in e){var A=t.clamp(Math.min(e.minZoom,o,c),a.minZoom,a.maxZoom),M=w/a.zoomScale(A-o);_=Math.sqrt(M/k*2)}var S=_*_;function E(t){var e=(T*T-w*w+(t?-1:1)*S*S*k*k)/(2*(t?T:w)*S*k);return Math.log(Math.sqrt(e*e+1)-e)}function L(t){return(Math.exp(t)-Math.exp(-t))/2}function C(t){return(Math.exp(t)+Math.exp(-t))/2}var P=E(0),O=function(t){return C(P)/C(P+_*t)},I=function(t){return w*((C(P)*(L(e=P+_*t)/C(e))-L(P))/S)/k;var e},D=(E(1)-P)/_;if(Math.abs(k)<1e-6||!isFinite(D)){if(Math.abs(w-T)<1e-6)return this.easeTo(e,r);var z=T<w?-1:1;D=Math.abs(Math.log(T/w))/_,I=function(){return 0},O=function(t){return Math.exp(z*_*t)}}if("duration"in e)e.duration=+e.duration;else{var R="screenSpeed"in e?+e.screenSpeed/_:+e.speed;e.duration=1e3*D/R}return e.maxDuration&&e.duration>e.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=s!==f,this._pitching=h!==l,this._padding=!a.isPaddingEqual(p),this._prepareEase(r,!1),this._ease((function(e){var i=e*D,d=1/O(i);a.zoom=1===e?c:o+a.scaleZoom(d),n._rotating&&(a.bearing=t.number(s,f,e)),n._pitching&&(a.pitch=t.number(l,h,e)),n._padding&&(a.interpolatePadding(u,p,e),g=a.centerPoint.add(v));var y=1===e?m:a.unproject(x.add(b.mult(I(i))).mult(d));a.setLocationAtPoint(a.renderWorldCopies?y.wrap():y,g),n._fireMoveEvents(r)}),(function(){return n._afterEase(r)}),e),this},r.prototype.isEasing=function(){return!!this._easeFrameId},r.prototype.stop=function(){return this._stop()},r.prototype._stop=function(t,e){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var r=this._onEaseEnd;delete this._onEaseEnd,r.call(this,e)}if(!t){var n=this.handlers;n&&n.stop()}return this},r.prototype._ease=function(e,r,n){!1===n.animate||0===n.duration?(e(1),r()):(this._easeStart=t.browser.now(),this._easeOptions=n,this._onEaseFrame=e,this._onEaseEnd=r,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},r.prototype._renderFrameCallback=function(){var e=Math.min((t.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(e)),e<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},r.prototype._normalizeBearing=function(e,r){e=t.wrap(e,-180,180);var n=Math.abs(e-r);return Math.abs(e-360-r)<n&&(e-=360),Math.abs(e+360-r)<n&&(e+=360),e},r.prototype._normalizeCenter=function(t){var e=this.transform;if(e.renderWorldCopies&&!e.lngRange){var r=t.lng-e.center.lng;t.lng+=r>180?-360:r<-180?360:0}},r}(t.Evented),Ti=function(e){void 0===e&&(e={}),this.options=e,t.bindAll(["_updateEditLink","_updateData","_updateCompact"],this)};Ti.prototype.getDefaultPosition=function(){return"bottom-right"},Ti.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._innerContainer=r.create("div","mapboxgl-ctrl-attrib-inner",this._container),e&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===e&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},Ti.prototype.onRemove=function(){r.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0},Ti.prototype._updateEditLink=function(){var e=this._editLink;e||(e=this._editLink=this._container.querySelector(".mapbox-improve-map"));var r=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||t.config.ACCESS_TOKEN}];if(e){var n=r.reduce((function(t,e,n){return e.value&&(t+=e.key+"="+e.value+(n<r.length-1?"&":"")),t}),"?");e.href=t.config.FEEDBACK_URL+"/"+n+(this._map._hash?this._map._hash.getHashString(!0):""),e.rel="noopener nofollow"}},Ti.prototype._updateData=function(t){!t||"metadata"!==t.sourceDataType&&"style"!==t.dataType||(this._updateAttributions(),this._updateEditLink())},Ti.prototype._updateAttributions=function(){if(this._map.style){var t=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?t=t.concat(this.options.customAttribution.map((function(t){return"string"!=typeof t?"":t}))):"string"==typeof this.options.customAttribution&&t.push(this.options.customAttribution)),this._map.style.stylesheet){var e=this._map.style.stylesheet;this.styleOwner=e.owner,this.styleId=e.id}var r=this._map.style.sourceCaches;for(var n in r){var i=r[n];if(i.used){var a=i.getSource();a.attribution&&t.indexOf(a.attribution)<0&&t.push(a.attribution)}}t.sort((function(t,e){return t.length-e.length}));var o=(t=t.filter((function(e,r){for(var n=r+1;n<t.length;n++)if(t[n].indexOf(e)>=0)return!1;return!0}))).join(" | ");o!==this._attribHTML&&(this._attribHTML=o,t.length?(this._innerContainer.innerHTML=o,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}},Ti.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact")};var ki=function(){t.bindAll(["_updateLogo"],this),t.bindAll(["_updateCompact"],this)};ki.prototype.onAdd=function(t){this._map=t,this._container=r.create("div","mapboxgl-ctrl");var e=r.create("a","mapboxgl-ctrl-logo");return e.target="_blank",e.rel="noopener nofollow",e.href="https://www.mapbox.com/",e.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),e.setAttribute("rel","noopener nofollow"),this._container.appendChild(e),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},ki.prototype.onRemove=function(){r.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)},ki.prototype.getDefaultPosition=function(){return"bottom-left"},ki.prototype._updateLogo=function(t){t&&"metadata"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none")},ki.prototype._logoRequired=function(){if(this._map.style){var t=this._map.style.sourceCaches;for(var e in t)if(t[e].getSource().mapbox_logo)return!0;return!1}},ki.prototype._updateCompact=function(){var t=this._container.children;if(t.length){var e=t[0];this._map.getCanvasContainer().offsetWidth<250?e.classList.add("mapboxgl-compact"):e.classList.remove("mapboxgl-compact")}};var Ai=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};Ai.prototype.add=function(t){var e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e},Ai.prototype.remove=function(t){for(var e=this._currentlyRunning,r=0,n=e?this._queue.concat(e):this._queue;r<n.length;r+=1){var i=n[r];if(i.id===t)return void(i.cancelled=!0)}},Ai.prototype.run=function(t){void 0===t&&(t=0);var e=this._currentlyRunning=this._queue;this._queue=[];for(var r=0,n=e;r<n.length;r+=1){var i=n[r];if(!i.cancelled&&(i.callback(t),this._cleared))break}this._cleared=!1,this._currentlyRunning=!1},Ai.prototype.clear=function(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]};var Mi={"FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScaleControl.Feet":"ft","ScaleControl.Meters":"m","ScaleControl.Kilometers":"km","ScaleControl.Miles":"mi","ScaleControl.NauticalMiles":"nm"},Si=t.window.HTMLImageElement,Ei=t.window.HTMLElement,Li=t.window.ImageBitmap,Ci=60,Pi={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:Ci,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",transformRequest:null,accessToken:null,fadeDuration:300,crossSourceCollisions:!0},Oi=function(n){function i(e){var r=this;if(null!=(e=t.extend({},Pi,e)).minZoom&&null!=e.maxZoom&&e.minZoom>e.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(null!=e.minPitch&&null!=e.maxPitch&&e.minPitch>e.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(null!=e.minPitch&&e.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(null!=e.maxPitch&&e.maxPitch>Ci)throw new Error("maxPitch must be less than or equal to 60");var i=new Sn(e.minZoom,e.maxZoom,e.minPitch,e.maxPitch,e.renderWorldCopies);if(n.call(this,i,e),this._interactive=e.interactive,this._maxTileCacheSize=e.maxTileCacheSize,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._antialias=e.antialias,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,this._fadeDuration=e.fadeDuration,this._crossSourceCollisions=e.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=e.collectResourceTiming,this._renderTaskQueue=new Ai,this._controls=[],this._mapId=t.uniqueId(),this._locale=t.extend({},Mi,e.locale),this._requestManager=new t.RequestManager(e.transformRequest,e.accessToken),"string"==typeof e.container){if(this._container=t.window.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else{if(!(e.container instanceof Ei))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=e.container}if(e.maxBounds&&this.setMaxBounds(e.maxBounds),t.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw new Error("Failed to initialize WebGL.");this.on("move",(function(){return r._update(!1)})),this.on("moveend",(function(){return r._update(!1)})),this.on("zoom",(function(){return r._update(!0)})),void 0!==t.window&&(t.window.addEventListener("online",this._onWindowOnline,!1),t.window.addEventListener("resize",this._onWindowResize,!1)),this.handlers=new _i(this,e);var a="string"==typeof e.hash&&e.hash||void 0;this._hash=e.hash&&new Ln(a).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),e.bounds&&(this.resize(),this.fitBounds(e.bounds,t.extend({},e.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=e.localIdeographFontFamily,e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new Ti({customAttribution:e.customAttribution})),this.addControl(new ki,e.logoPosition),this.on("style.load",(function(){r.transform.unmodified&&r.jumpTo(r.style.stylesheet)})),this.on("data",(function(e){r._update("style"===e.dataType),r.fire(new t.Event(e.dataType+"data",e))})),this.on("dataloading",(function(e){r.fire(new t.Event(e.dataType+"dataloading",e))}))}n&&(i.__proto__=n),i.prototype=Object.create(n&&n.prototype),i.prototype.constructor=i;var a={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return i.prototype._getMapId=function(){return this._mapId},i.prototype.addControl=function(e,r){if(void 0===r&&e.getDefaultPosition&&(r=e.getDefaultPosition()),void 0===r&&(r="top-right"),!e||!e.onAdd)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var n=e.onAdd(this);this._controls.push(e);var i=this._controlPositions[r];return-1!==r.indexOf("bottom")?i.insertBefore(n,i.firstChild):i.appendChild(n),this},i.prototype.removeControl=function(e){if(!e||!e.onRemove)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var r=this._controls.indexOf(e);return r>-1&&this._controls.splice(r,1),e.onRemove(this),this},i.prototype.resize=function(e){var r=this._containerDimensions(),n=r[0],i=r[1];this._resizeCanvas(n,i),this.transform.resize(n,i),this.painter.resize(n,i);var a=!this._moving;return a&&(this.stop(),this.fire(new t.Event("movestart",e)).fire(new t.Event("move",e))),this.fire(new t.Event("resize",e)),a&&this.fire(new t.Event("moveend",e)),this},i.prototype.getBounds=function(){return this.transform.getBounds()},i.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},i.prototype.setMaxBounds=function(e){return this.transform.setMaxBounds(t.LngLatBounds.convert(e)),this._update()},i.prototype.setMinZoom=function(t){if((t=null==t?-2:t)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()<t&&this.setZoom(t),this;throw new Error("minZoom must be between -2 and the current maxZoom, inclusive")},i.prototype.getMinZoom=function(){return this.transform.minZoom},i.prototype.setMaxZoom=function(t){if((t=null==t?22:t)>=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")},i.prototype.getMaxZoom=function(){return this.transform.maxZoom},i.prototype.setMinPitch=function(t){if((t=null==t?0:t)<0)throw new Error("minPitch must be greater than or equal to 0");if(t>=0&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()<t&&this.setPitch(t),this;throw new Error("minPitch must be between 0 and the current maxPitch, inclusive")},i.prototype.getMinPitch=function(){return this.transform.minPitch},i.prototype.setMaxPitch=function(t){if((t=null==t?Ci:t)>Ci)throw new Error("maxPitch must be less than or equal to 60");if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t&&this.setPitch(t),this;throw new Error("maxPitch must be greater than the current minPitch")},i.prototype.getMaxPitch=function(){return this.transform.maxPitch},i.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},i.prototype.setRenderWorldCopies=function(t){return this.transform.renderWorldCopies=t,this._update()},i.prototype.project=function(e){return this.transform.locationPoint(t.LngLat.convert(e))},i.prototype.unproject=function(e){return this.transform.pointLocation(t.Point.convert(e))},i.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},i.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},i.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},i.prototype._createDelegatedListener=function(t,e,r){var n,i=this;if("mouseenter"===t||"mouseover"===t){var a=!1;return{layer:e,listener:r,delegates:{mousemove:function(n){var o=i.getLayer(e)?i.queryRenderedFeatures(n.point,{layers:[e]}):[];o.length?a||(a=!0,r.call(i,new Bn(t,i,n.originalEvent,{features:o}))):a=!1},mouseout:function(){a=!1}}}}if("mouseleave"===t||"mouseout"===t){var o=!1;return{layer:e,listener:r,delegates:{mousemove:function(n){(i.getLayer(e)?i.queryRenderedFeatures(n.point,{layers:[e]}):[]).length?o=!0:o&&(o=!1,r.call(i,new Bn(t,i,n.originalEvent)))},mouseout:function(e){o&&(o=!1,r.call(i,new Bn(t,i,e.originalEvent)))}}}}return{layer:e,listener:r,delegates:(n={},n[t]=function(t){var n=i.getLayer(e)?i.queryRenderedFeatures(t.point,{layers:[e]}):[];n.length&&(t.features=n,r.call(i,t),delete t.features)},n)}},i.prototype.on=function(t,e,r){if(void 0===r)return n.prototype.on.call(this,t,e);var i=this._createDelegatedListener(t,e,r);for(var a in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(i),i.delegates)this.on(a,i.delegates[a]);return this},i.prototype.once=function(t,e,r){if(void 0===r)return n.prototype.once.call(this,t,e);var i=this._createDelegatedListener(t,e,r);for(var a in i.delegates)this.once(a,i.delegates[a]);return this},i.prototype.off=function(t,e,r){var i=this;if(void 0===r)return n.prototype.off.call(this,t,e);return this._delegatedListeners&&this._delegatedListeners[t]&&function(n){for(var a=n[t],o=0;o<a.length;o++){var s=a[o];if(s.layer===e&&s.listener===r){for(var l in s.delegates)i.off(l,s.delegates[l]);return a.splice(o,1),i}}}(this._delegatedListeners),this},i.prototype.queryRenderedFeatures=function(e,r){if(!this.style)return[];var n;if(void 0!==r||void 0===e||e instanceof t.Point||Array.isArray(e)||(r=e,e=void 0),r=r||{},(e=e||[[0,0],[this.transform.width,this.transform.height]])instanceof t.Point||"number"==typeof e[0])n=[t.Point.convert(e)];else{var i=t.Point.convert(e[0]),a=t.Point.convert(e[1]);n=[i,new t.Point(a.x,i.y),a,new t.Point(i.x,a.y),i]}return this.style.queryRenderedFeatures(n,r,this.transform)},i.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},i.prototype.setStyle=function(e,r){return!1!==(r=t.extend({},{localIdeographFontFamily:this._localIdeographFontFamily},r)).diff&&r.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&e?(this._diffStyle(e,r),this):(this._localIdeographFontFamily=r.localIdeographFontFamily,this._updateStyle(e,r))},i.prototype._getUIString=function(t){var e=this._locale[t];if(null==e)throw new Error("Missing UI string '"+t+"'");return e},i.prototype._updateStyle=function(t,e){return this.style&&(this.style.setEventedParent(null),this.style._remove()),t?(this.style=new Ye(this,e||{}),this.style.setEventedParent(this,{style:this.style}),"string"==typeof t?this.style.loadURL(t):this.style.loadJSON(t),this):(delete this.style,this)},i.prototype._lazyInitEmptyStyle=function(){this.style||(this.style=new Ye(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())},i.prototype._diffStyle=function(e,r){var n=this;if("string"==typeof e){var i=this._requestManager.normalizeStyleURL(e),a=this._requestManager.transformRequest(i,t.ResourceType.Style);t.getJSON(a,(function(e,i){e?n.fire(new t.ErrorEvent(e)):i&&n._updateDiff(i,r)}))}else"object"==typeof e&&this._updateDiff(e,r)},i.prototype._updateDiff=function(e,r){try{this.style.setState(e)&&this._update(!0)}catch(n){t.warnOnce("Unable to perform style diff: "+(n.message||n.error||n)+".  Rebuilding the style from scratch."),this._updateStyle(e,r)}},i.prototype.getStyle=function(){if(this.style)return this.style.serialize()},i.prototype.isStyleLoaded=function(){return this.style?this.style.loaded():t.warnOnce("There is no style added to the map.")},i.prototype.addSource=function(t,e){return this._lazyInitEmptyStyle(),this.style.addSource(t,e),this._update(!0)},i.prototype.isSourceLoaded=function(e){var r=this.style&&this.style.sourceCaches[e];if(void 0!==r)return r.loaded();this.fire(new t.ErrorEvent(new Error("There is no source with ID '"+e+"'")))},i.prototype.areTilesLoaded=function(){var t=this.style&&this.style.sourceCaches;for(var e in t){var r=t[e]._tiles;for(var n in r){var i=r[n];if("loaded"!==i.state&&"errored"!==i.state)return!1}}return!0},i.prototype.addSourceType=function(t,e,r){return this._lazyInitEmptyStyle(),this.style.addSourceType(t,e,r)},i.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0)},i.prototype.getSource=function(t){return this.style.getSource(t)},i.prototype.addImage=function(e,r,n){void 0===n&&(n={});var i=n.pixelRatio;void 0===i&&(i=1);var a=n.sdf;void 0===a&&(a=!1);var o=n.stretchX,s=n.stretchY,l=n.content;this._lazyInitEmptyStyle();if(r instanceof Si||Li&&r instanceof Li){var u=t.browser.getImageData(r),c=u.width,f=u.height,h=u.data;this.style.addImage(e,{data:new t.RGBAImage({width:c,height:f},h),pixelRatio:i,stretchX:o,stretchY:s,content:l,sdf:a,version:0})}else{if(void 0===r.width||void 0===r.height)return this.fire(new t.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));var p=r.width,d=r.height,v=r.data,g=r;this.style.addImage(e,{data:new t.RGBAImage({width:p,height:d},new Uint8Array(v)),pixelRatio:i,stretchX:o,stretchY:s,content:l,sdf:a,version:0,userImage:g}),g.onAdd&&g.onAdd(this,e)}},i.prototype.updateImage=function(e,r){var n=this.style.getImage(e);if(!n)return this.fire(new t.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));var i=r instanceof Si||Li&&r instanceof Li?t.browser.getImageData(r):r,a=i.width,o=i.height,s=i.data;if(void 0===a||void 0===o)return this.fire(new t.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(a!==n.data.width||o!==n.data.height)return this.fire(new t.ErrorEvent(new Error("The width and height of the updated image must be that same as the previous version of the image")));var l=!(r instanceof Si||Li&&r instanceof Li);n.data.replace(s,l),this.style.updateImage(e,n)},i.prototype.hasImage=function(e){return e?!!this.style.getImage(e):(this.fire(new t.ErrorEvent(new Error("Missing required image id"))),!1)},i.prototype.removeImage=function(t){this.style.removeImage(t)},i.prototype.loadImage=function(e,r){t.getImage(this._requestManager.transformRequest(e,t.ResourceType.Image),r)},i.prototype.listImages=function(){return this.style.listImages()},i.prototype.addLayer=function(t,e){return this._lazyInitEmptyStyle(),this.style.addLayer(t,e),this._update(!0)},i.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0)},i.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0)},i.prototype.getLayer=function(t){return this.style.getLayer(t)},i.prototype.setLayerZoomRange=function(t,e,r){return this.style.setLayerZoomRange(t,e,r),this._update(!0)},i.prototype.setFilter=function(t,e,r){return void 0===r&&(r={}),this.style.setFilter(t,e,r),this._update(!0)},i.prototype.getFilter=function(t){return this.style.getFilter(t)},i.prototype.setPaintProperty=function(t,e,r,n){return void 0===n&&(n={}),this.style.setPaintProperty(t,e,r,n),this._update(!0)},i.prototype.getPaintProperty=function(t,e){return this.style.getPaintProperty(t,e)},i.prototype.setLayoutProperty=function(t,e,r,n){return void 0===n&&(n={}),this.style.setLayoutProperty(t,e,r,n),this._update(!0)},i.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},i.prototype.setLight=function(t,e){return void 0===e&&(e={}),this._lazyInitEmptyStyle(),this.style.setLight(t,e),this._update(!0)},i.prototype.getLight=function(){return this.style.getLight()},i.prototype.setFeatureState=function(t,e){return this.style.setFeatureState(t,e),this._update()},i.prototype.removeFeatureState=function(t,e){return this.style.removeFeatureState(t,e),this._update()},i.prototype.getFeatureState=function(t){return this.style.getFeatureState(t)},i.prototype.getContainer=function(){return this._container},i.prototype.getCanvasContainer=function(){return this._canvasContainer},i.prototype.getCanvas=function(){return this._canvas},i.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.clientWidth||400,e=this._container.clientHeight||300),[t,e]},i.prototype._detectMissingCSS=function(){"rgb(250, 128, 114)"!==t.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")&&t.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.")},i.prototype._setupContainer=function(){var t=this._container;t.classList.add("mapboxgl-map"),(this._missingCSSCanary=r.create("div","mapboxgl-canary",t)).style.visibility="hidden",this._detectMissingCSS();var e=this._canvasContainer=r.create("div","mapboxgl-canvas-container",t);this._interactive&&e.classList.add("mapboxgl-interactive"),this._canvas=r.create("canvas","mapboxgl-canvas",e),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label","Map");var n=this._containerDimensions();this._resizeCanvas(n[0],n[1]);var i=this._controlContainer=r.create("div","mapboxgl-control-container",t),a=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach((function(t){a[t]=r.create("div","mapboxgl-ctrl-"+t,i)}))},i.prototype._resizeCanvas=function(e,r){var n=t.browser.devicePixelRatio||1;this._canvas.width=n*e,this._canvas.height=n*r,this._canvas.style.width=e+"px",this._canvas.style.height=r+"px"},i.prototype._setupPainter=function(){var r=t.extend({},e.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),n=this._canvas.getContext("webgl",r)||this._canvas.getContext("experimental-webgl",r);n?(this.painter=new Tn(n,this.transform),t.webpSupported.testSupport(n)):this.fire(new t.ErrorEvent(new Error("Failed to initialize WebGL")))},i.prototype._contextLost=function(e){e.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new t.Event("webglcontextlost",{originalEvent:e}))},i.prototype._contextRestored=function(e){this._setupPainter(),this.resize(),this._update(),this.fire(new t.Event("webglcontextrestored",{originalEvent:e}))},i.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()},i.prototype._update=function(t){return this.style?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this.triggerRepaint(),this):this},i.prototype._requestRenderFrame=function(t){return this._update(),this._renderTaskQueue.add(t)},i.prototype._cancelRenderFrame=function(t){this._renderTaskQueue.remove(t)},i.prototype._render=function(e){var r,n=this,i=0,a=this.painter.context.extTimerQuery;if(this.listens("gpu-timing-frame")&&(r=a.createQueryEXT(),a.beginQueryEXT(a.TIME_ELAPSED_EXT,r),i=t.browser.now()),this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(e),!this._removed){var o=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;var s=this.transform.zoom,l=t.browser.now();this.style.zoomHistory.update(s,l);var u=new t.EvaluationParameters(s,{now:l,fadeDuration:this._fadeDuration,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),c=u.crossFadingFactor();1===c&&c===this._crossFadingFactor||(o=!0,this._crossFadingFactor=c),this.style.update(u)}if(this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,this._fadeDuration,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:this._fadeDuration,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer")}),this.fire(new t.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new t.Event("load"))),this.style&&(this.style.hasTransitions()||o)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),this.listens("gpu-timing-frame")){var f=t.browser.now()-i;a.endQueryEXT(a.TIME_ELAPSED_EXT,r),setTimeout((function(){var e=a.getQueryObjectEXT(r,a.QUERY_RESULT_EXT)/1e6;a.deleteQueryEXT(r),n.fire(new t.Event("gpu-timing-frame",{cpuTime:f,gpuTime:e}))}),50)}if(this.listens("gpu-timing-layer")){var h=this.painter.collectGpuTimers();setTimeout((function(){var e=n.painter.queryGpuTimers(h);n.fire(new t.Event("gpu-timing-layer",{layerTimes:e}))}),50)}return this._sourcesDirty||this._styleDirty||this._placementDirty||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&(this._fullyLoaded||(this._fullyLoaded=!0),this.fire(new t.Event("idle"))),this}},i.prototype.remove=function(){this._hash&&this._hash.remove();for(var e=0,r=this._controls;e<r.length;e+=1)r[e].onRemove(this);this._controls=[],this._frame&&(this._frame.cancel(),this._frame=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),void 0!==t.window&&(t.window.removeEventListener("resize",this._onWindowResize,!1),t.window.removeEventListener("online",this._onWindowOnline,!1));var n=this.painter.context.gl.getExtension("WEBGL_lose_context");n&&n.loseContext(),Ii(this._canvasContainer),Ii(this._controlContainer),Ii(this._missingCSSCanary),this._container.classList.remove("mapboxgl-map"),this._removed=!0,this.fire(new t.Event("remove"))},i.prototype.triggerRepaint=function(){var e=this;this.style&&!this._frame&&(this._frame=t.browser.frame((function(t){e._frame=null,e._render(t)})))},i.prototype._onWindowOnline=function(){this._update()},i.prototype._onWindowResize=function(t){this._trackResize&&this.resize({originalEvent:t})._update()},a.showTileBoundaries.get=function(){return!!this._showTileBoundaries},a.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())},a.showPadding.get=function(){return!!this._showPadding},a.showPadding.set=function(t){this._showPadding!==t&&(this._showPadding=t,this._update())},a.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},a.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,t?this.style._generateCollisionBoxes():this._update())},a.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},a.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())},a.repaint.get=function(){return!!this._repaint},a.repaint.set=function(t){this._repaint!==t&&(this._repaint=t,this.triggerRepaint())},a.vertices.get=function(){return!!this._vertices},a.vertices.set=function(t){this._vertices=t,this._update()},i.prototype._setCacheLimits=function(e,r){t.setCacheLimits(e,r)},a.version.get=function(){return t.version},Object.defineProperties(i.prototype,a),i}(wi);function Ii(t){t.parentNode&&t.parentNode.removeChild(t)}var Di={showCompass:!0,showZoom:!0,visualizePitch:!1},zi=function(e){var n=this;this.options=t.extend({},Di,e),this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",(function(t){return t.preventDefault()})),this.options.showZoom&&(t.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",(function(t){return n._map.zoomIn({},{originalEvent:t})})),r.create("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden",!0),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",(function(t){return n._map.zoomOut({},{originalEvent:t})})),r.create("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden",!0)),this.options.showCompass&&(t.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",(function(t){n.options.visualizePitch?n._map.resetNorthPitch({},{originalEvent:t}):n._map.resetNorth({},{originalEvent:t})})),this._compassIcon=r.create("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden",!0))};zi.prototype._updateZoomButtons=function(){var t=this._map.getZoom();this._zoomInButton.disabled=t===this._map.getMaxZoom(),this._zoomOutButton.disabled=t===this._map.getMinZoom()},zi.prototype._rotateCompassArrow=function(){var t=this.options.visualizePitch?"scale("+1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)+") rotateX("+this._map.transform.pitch+"deg) rotateZ("+this._map.transform.angle*(180/Math.PI)+"deg)":"rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassIcon.style.transform=t},zi.prototype.onAdd=function(t){return this._map=t,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Ri(this._map,this._compass,this.options.visualizePitch)),this._container},zi.prototype.onRemove=function(){r.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map},zi.prototype._createButton=function(t,e){var n=r.create("button",t,this._container);return n.type="button",n.addEventListener("click",e),n},zi.prototype._setButtonTitle=function(t,e){var r=this._map._getUIString("NavigationControl."+e);t.title=r,t.setAttribute("aria-label",r)};var Ri=function(e,n,i){void 0===i&&(i=!1),this._clickTolerance=10,this.element=n,this.mouseRotate=new Jn({clickTolerance:e.dragRotate._mouseRotate._clickTolerance}),this.map=e,i&&(this.mousePitch=new Kn({clickTolerance:e.dragRotate._mousePitch._clickTolerance})),t.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),r.addEventListener(n,"mousedown",this.mousedown),r.addEventListener(n,"touchstart",this.touchstart,{passive:!1}),r.addEventListener(n,"touchmove",this.touchmove),r.addEventListener(n,"touchend",this.touchend),r.addEventListener(n,"touchcancel",this.reset)};function Fi(e,r,n){if(e=new t.LngLat(e.lng,e.lat),r){var i=new t.LngLat(e.lng-360,e.lat),a=new t.LngLat(e.lng+360,e.lat),o=n.locationPoint(e).distSqr(r);n.locationPoint(i).distSqr(r)<o?e=i:n.locationPoint(a).distSqr(r)<o&&(e=a)}for(;Math.abs(e.lng-n.center.lng)>180;){var s=n.locationPoint(e);if(s.x>=0&&s.y>=0&&s.x<=n.width&&s.y<=n.height)break;e.lng>n.center.lng?e.lng-=360:e.lng+=360}return e}Ri.prototype.down=function(t,e){this.mouseRotate.mousedown(t,e),this.mousePitch&&this.mousePitch.mousedown(t,e),r.disableDrag()},Ri.prototype.move=function(t,e){var r=this.map,n=this.mouseRotate.mousemoveWindow(t,e);if(n&&n.bearingDelta&&r.setBearing(r.getBearing()+n.bearingDelta),this.mousePitch){var i=this.mousePitch.mousemoveWindow(t,e);i&&i.pitchDelta&&r.setPitch(r.getPitch()+i.pitchDelta)}},Ri.prototype.off=function(){var t=this.element;r.removeEventListener(t,"mousedown",this.mousedown),r.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),r.removeEventListener(t,"touchmove",this.touchmove),r.removeEventListener(t,"touchend",this.touchend),r.removeEventListener(t,"touchcancel",this.reset),this.offTemp()},Ri.prototype.offTemp=function(){r.enableDrag(),r.removeEventListener(t.window,"mousemove",this.mousemove),r.removeEventListener(t.window,"mouseup",this.mouseup)},Ri.prototype.mousedown=function(e){this.down(t.extend({},e,{ctrlKey:!0,preventDefault:function(){return e.preventDefault()}}),r.mousePos(this.element,e)),r.addEventListener(t.window,"mousemove",this.mousemove),r.addEventListener(t.window,"mouseup",this.mouseup)},Ri.prototype.mousemove=function(t){this.move(t,r.mousePos(this.element,t))},Ri.prototype.mouseup=function(t){this.mouseRotate.mouseupWindow(t),this.mousePitch&&this.mousePitch.mouseupWindow(t),this.offTemp()},Ri.prototype.touchstart=function(t){1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return t.preventDefault()}},this._startPos))},Ri.prototype.touchmove=function(t){1!==t.targetTouches.length?this.reset():(this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.move({preventDefault:function(){return t.preventDefault()}},this._lastPos))},Ri.prototype.touchend=function(t){0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),this.reset()},Ri.prototype.reset=function(){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp()};var Bi={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function Ni(t,e,r){var n=t.classList;for(var i in Bi)n.remove("mapboxgl-"+r+"-anchor-"+i);n.add("mapboxgl-"+r+"-anchor-"+e)}var ji,Ui=function(e){function n(n,i){var a=this;if(e.call(this),(n instanceof t.window.HTMLElement||i)&&(n=t.extend({element:n},i)),t.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress"],this),this._anchor=n&&n.anchor||"center",this._color=n&&n.color||"#3FB1CE",this._draggable=n&&n.draggable||!1,this._state="inactive",this._rotation=n&&n.rotation||0,this._rotationAlignment=n&&n.rotationAlignment||"auto",this._pitchAlignment=n&&n.pitchAlignment&&"auto"!==n.pitchAlignment?n.pitchAlignment:this._rotationAlignment,n&&n.element)this._element=n.element,this._offset=t.Point.convert(n&&n.offset||[0,0]);else{this._defaultMarker=!0,this._element=r.create("div"),this._element.setAttribute("aria-label","Map marker");var o=r.createNS("http://www.w3.org/2000/svg","svg");o.setAttributeNS(null,"display","block"),o.setAttributeNS(null,"height","41px"),o.setAttributeNS(null,"width","27px"),o.setAttributeNS(null,"viewBox","0 0 27 41");var s=r.createNS("http://www.w3.org/2000/svg","g");s.setAttributeNS(null,"stroke","none"),s.setAttributeNS(null,"stroke-width","1"),s.setAttributeNS(null,"fill","none"),s.setAttributeNS(null,"fill-rule","evenodd");var l=r.createNS("http://www.w3.org/2000/svg","g");l.setAttributeNS(null,"fill-rule","nonzero");var u=r.createNS("http://www.w3.org/2000/svg","g");u.setAttributeNS(null,"transform","translate(3.0, 29.0)"),u.setAttributeNS(null,"fill","#000000");for(var c=0,f=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];c<f.length;c+=1){var h=f[c],p=r.createNS("http://www.w3.org/2000/svg","ellipse");p.setAttributeNS(null,"opacity","0.04"),p.setAttributeNS(null,"cx","10.5"),p.setAttributeNS(null,"cy","5.80029008"),p.setAttributeNS(null,"rx",h.rx),p.setAttributeNS(null,"ry",h.ry),u.appendChild(p)}var d=r.createNS("http://www.w3.org/2000/svg","g");d.setAttributeNS(null,"fill",this._color);var v=r.createNS("http://www.w3.org/2000/svg","path");v.setAttributeNS(null,"d","M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"),d.appendChild(v);var g=r.createNS("http://www.w3.org/2000/svg","g");g.setAttributeNS(null,"opacity","0.25"),g.setAttributeNS(null,"fill","#000000");var y=r.createNS("http://www.w3.org/2000/svg","path");y.setAttributeNS(null,"d","M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"),g.appendChild(y);var m=r.createNS("http://www.w3.org/2000/svg","g");m.setAttributeNS(null,"transform","translate(6.0, 7.0)"),m.setAttributeNS(null,"fill","#FFFFFF");var x=r.createNS("http://www.w3.org/2000/svg","g");x.setAttributeNS(null,"transform","translate(8.0, 8.0)");var b=r.createNS("http://www.w3.org/2000/svg","circle");b.setAttributeNS(null,"fill","#000000"),b.setAttributeNS(null,"opacity","0.25"),b.setAttributeNS(null,"cx","5.5"),b.setAttributeNS(null,"cy","5.5"),b.setAttributeNS(null,"r","5.4999962");var _=r.createNS("http://www.w3.org/2000/svg","circle");_.setAttributeNS(null,"fill","#FFFFFF"),_.setAttributeNS(null,"cx","5.5"),_.setAttributeNS(null,"cy","5.5"),_.setAttributeNS(null,"r","5.4999962"),x.appendChild(b),x.appendChild(_),l.appendChild(u),l.appendChild(d),l.appendChild(g),l.appendChild(m),l.appendChild(x),o.appendChild(l),this._element.appendChild(o),this._offset=t.Point.convert(n&&n.offset||[0,-14])}this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",(function(t){t.preventDefault()})),this._element.addEventListener("mousedown",(function(t){t.preventDefault()})),this._element.addEventListener("focus",(function(){var t=a._map.getContainer();t.scrollTop=0,t.scrollLeft=0})),Ni(this._element,this._anchor,"marker"),this._popup=null}return e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.addTo=function(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this},n.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),delete this._map),r.remove(this._element),this._popup&&this._popup.remove(),this},n.prototype.getLngLat=function(){return this._lngLat},n.prototype.setLngLat=function(e){return this._lngLat=t.LngLat.convert(e),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},n.prototype.getElement=function(){return this._element},n.prototype.setPopup=function(t){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),t){if(!("offset"in t.options)){var e=13.5,r=Math.sqrt(Math.pow(e,2)/2);t.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[r,-1*(24.6+r)],"bottom-right":[-r,-1*(24.6+r)],left:[e,-24.6],right:[-13.5,-24.6]}:this._offset}this._popup=t,this._lngLat&&this._popup.setLngLat(this._lngLat),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this},n.prototype._onKeyPress=function(t){var e=t.code,r=t.charCode||t.keyCode;"Space"!==e&&"Enter"!==e&&32!==r&&13!==r||this.togglePopup()},n.prototype._onMapClick=function(t){var e=t.originalEvent.target,r=this._element;this._popup&&(e===r||r.contains(e))&&this.togglePopup()},n.prototype.getPopup=function(){return this._popup},n.prototype.togglePopup=function(){var t=this._popup;return t?(t.isOpen()?t.remove():t.addTo(this._map),this):this},n.prototype._update=function(t){if(this._map){this._map.transform.renderWorldCopies&&(this._lngLat=Fi(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset);var e="";"viewport"===this._rotationAlignment||"auto"===this._rotationAlignment?e="rotateZ("+this._rotation+"deg)":"map"===this._rotationAlignment&&(e="rotateZ("+(this._rotation-this._map.getBearing())+"deg)");var n="";"viewport"===this._pitchAlignment||"auto"===this._pitchAlignment?n="rotateX(0deg)":"map"===this._pitchAlignment&&(n="rotateX("+this._map.getPitch()+"deg)"),t&&"moveend"!==t.type||(this._pos=this._pos.round()),r.setTransform(this._element,Bi[this._anchor]+" translate("+this._pos.x+"px, "+this._pos.y+"px) "+n+" "+e)}},n.prototype.getOffset=function(){return this._offset},n.prototype.setOffset=function(e){return this._offset=t.Point.convert(e),this._update(),this},n.prototype._onMove=function(e){this._pos=e.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none","pending"===this._state&&(this._state="active",this.fire(new t.Event("dragstart"))),this.fire(new t.Event("drag"))},n.prototype._onUp=function(){this._element.style.pointerEvents="auto",this._positionDelta=null,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),"active"===this._state&&this.fire(new t.Event("dragend")),this._state="inactive"},n.prototype._addDragHandler=function(t){this._element.contains(t.originalEvent.target)&&(t.preventDefault(),this._positionDelta=t.point.sub(this._pos).add(this._offset),this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},n.prototype.setDraggable=function(t){return this._draggable=!!t,this._map&&(t?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this},n.prototype.isDraggable=function(){return this._draggable},n.prototype.setRotation=function(t){return this._rotation=t||0,this._update(),this},n.prototype.getRotation=function(){return this._rotation},n.prototype.setRotationAlignment=function(t){return this._rotationAlignment=t||"auto",this._update(),this},n.prototype.getRotationAlignment=function(){return this._rotationAlignment},n.prototype.setPitchAlignment=function(t){return this._pitchAlignment=t&&"auto"!==t?t:this._rotationAlignment,this._update(),this},n.prototype.getPitchAlignment=function(){return this._pitchAlignment},n}(t.Evented),Vi={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};var Hi=0,qi=!1,Gi=function(e){function n(r){e.call(this),this.options=t.extend({},Vi,r),t.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker"],this)}return e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.onAdd=function(e){return this._map=e,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),n=this._setupUI,void 0!==ji?n(ji):void 0!==t.window.navigator.permissions?t.window.navigator.permissions.query({name:"geolocation"}).then((function(t){ji="denied"!==t.state,n(ji)})):(ji=!!t.window.navigator.geolocation,n(ji)),this._container;var n},n.prototype.onRemove=function(){void 0!==this._geolocationWatchID&&(t.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),r.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,Hi=0,qi=!1},n.prototype._isOutOfMapMaxBounds=function(t){var e=this._map.getMaxBounds(),r=t.coords;return e&&(r.longitude<e.getWest()||r.longitude>e.getEast()||r.latitude<e.getSouth()||r.latitude>e.getNorth())},n.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}},n.prototype._onSuccess=function(e){if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new t.Event("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(e),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("geolocate",e)),this._finish()}},n.prototype._updateCamera=function(e){var r=new t.LngLat(e.coords.longitude,e.coords.latitude),n=e.coords.accuracy,i=this._map.getBearing(),a=t.extend({bearing:i},this.options.fitBoundsOptions);this._map.fitBounds(r.toBounds(n),a,{geolocateSource:!0})},n.prototype._updateMarker=function(e){if(e){var r=new t.LngLat(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(r).addTo(this._map),this._userLocationDotMarker.setLngLat(r).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},n.prototype._updateCircleRadius=function(){var t=this._map._container.clientHeight/2,e=this._map.unproject([0,t]),r=this._map.unproject([1,t]),n=e.distanceTo(r),i=Math.ceil(2*this._accuracy/n);this._circleElement.style.width=i+"px",this._circleElement.style.height=i+"px"},n.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},n.prototype._onError=function(e){if(this._map){if(this.options.trackUserLocation)if(1===e.code){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r),void 0!==this._geolocationWatchID&&this._clearWatch()}else{if(3===e.code&&qi)return;this._setErrorState()}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("error",e)),this._finish()}},n.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},n.prototype._setupUI=function(e){var n=this;if(this._container.addEventListener("contextmenu",(function(t){return t.preventDefault()})),this._geolocateButton=r.create("button","mapboxgl-ctrl-geolocate",this._container),r.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",!1===e){t.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i)}else{var a=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=a,this._geolocateButton.setAttribute("aria-label",a)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=r.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new Ui(this._dotElement),this._circleElement=r.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Ui({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(function(e){var r=e.originalEvent&&"resize"===e.originalEvent.type;e.geolocateSource||"ACTIVE_LOCK"!==n._watchState||r||(n._watchState="BACKGROUND",n._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),n._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),n.fire(new t.Event("trackuserlocationend")))}))},n.prototype.trigger=function(){if(!this._setup)return t.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new t.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Hi--,qi=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new t.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new t.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if("OFF"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){var e;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++Hi>1?(e={maximumAge:6e5,timeout:0},qi=!0):(e=this.options.positionOptions,qi=!1),this._geolocationWatchID=t.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,e)}}else t.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},n.prototype._clearWatch=function(){t.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},n}(t.Evented),Zi={maxWidth:100,unit:"metric"},Yi=function(e){this.options=t.extend({},Zi,e),t.bindAll(["_onMove","setUnit"],this)};function Wi(t,e,r){var n=r&&r.maxWidth||100,i=t._container.clientHeight/2,a=t.unproject([0,i]),o=t.unproject([n,i]),s=a.distanceTo(o);if(r&&"imperial"===r.unit){var l=3.2808*s;l>5280?Xi(e,n,l/5280,t._getUIString("ScaleControl.Miles")):Xi(e,n,l,t._getUIString("ScaleControl.Feet"))}else r&&"nautical"===r.unit?Xi(e,n,s/1852,t._getUIString("ScaleControl.NauticalMiles")):s>=1e3?Xi(e,n,s/1e3,t._getUIString("ScaleControl.Kilometers")):Xi(e,n,s,t._getUIString("ScaleControl.Meters"))}function Xi(t,e,r,n){var i,a,o,s=(i=r,(a=Math.pow(10,(""+Math.floor(i)).length-1))*((o=i/a)>=10?10:o>=5?5:o>=3?3:o>=2?2:o>=1?1:function(t){var e=Math.pow(10,Math.ceil(-Math.log(t)/Math.LN10));return Math.round(t*e)/e}(o))),l=s/r;t.style.width=e*l+"px",t.innerHTML=s+"&nbsp;"+n}Yi.prototype.getDefaultPosition=function(){return"bottom-left"},Yi.prototype._onMove=function(){Wi(this._map,this._container,this.options)},Yi.prototype.onAdd=function(t){return this._map=t,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},Yi.prototype.onRemove=function(){r.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},Yi.prototype.setUnit=function(t){this.options.unit=t,Wi(this._map,this._container,this.options)};var Ji=function(e){this._fullscreen=!1,e&&e.container&&(e.container instanceof t.window.HTMLElement?this._container=e.container:t.warnOnce("Full screen control 'container' must be a DOM element.")),t.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in t.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in t.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in t.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in t.window.document&&(this._fullscreenchange="MSFullscreenChange")};Ji.prototype.onAdd=function(e){return this._map=e,this._container||(this._container=this._map.getContainer()),this._controlContainer=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",t.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},Ji.prototype.onRemove=function(){r.remove(this._controlContainer),this._map=null,t.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},Ji.prototype._checkFullscreenSupport=function(){return!!(t.window.document.fullscreenEnabled||t.window.document.mozFullScreenEnabled||t.window.document.msFullscreenEnabled||t.window.document.webkitFullscreenEnabled)},Ji.prototype._setupUI=function(){var e=this._fullscreenButton=r.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);r.create("span","mapboxgl-ctrl-icon",e).setAttribute("aria-hidden",!0),e.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),t.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},Ji.prototype._updateTitle=function(){var t=this._getTitle();this._fullscreenButton.setAttribute("aria-label",t),this._fullscreenButton.title=t},Ji.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},Ji.prototype._isFullscreen=function(){return this._fullscreen},Ji.prototype._changeIcon=function(){(t.window.document.fullscreenElement||t.window.document.mozFullScreenElement||t.window.document.webkitFullscreenElement||t.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())},Ji.prototype._onClickFullscreen=function(){this._isFullscreen()?t.window.document.exitFullscreen?t.window.document.exitFullscreen():t.window.document.mozCancelFullScreen?t.window.document.mozCancelFullScreen():t.window.document.msExitFullscreen?t.window.document.msExitFullscreen():t.window.document.webkitCancelFullScreen&&t.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var Ki={closeButton:!0,closeOnClick:!0,className:"",maxWidth:"240px"},$i=function(e){function n(r){e.call(this),this.options=t.extend(Object.create(Ki),r),t.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this)}return e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.addTo=function(e){return this._map&&this.remove(),this._map=e,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new t.Event("open")),this},n.prototype.isOpen=function(){return!!this._map},n.prototype.remove=function(){return this._content&&r.remove(this._content),this._container&&(r.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new t.Event("close")),this},n.prototype.getLngLat=function(){return this._lngLat},n.prototype.setLngLat=function(e){return this._lngLat=t.LngLat.convert(e),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},n.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},n.prototype.getElement=function(){return this._container},n.prototype.setText=function(e){return this.setDOMContent(t.window.document.createTextNode(e))},n.prototype.setHTML=function(e){var r,n=t.window.document.createDocumentFragment(),i=t.window.document.createElement("body");for(i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return this.setDOMContent(n)},n.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},n.prototype.setMaxWidth=function(t){return this.options.maxWidth=t,this._update(),this},n.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},n.prototype.addClassName=function(t){this._container&&this._container.classList.add(t)},n.prototype.removeClassName=function(t){this._container&&this._container.classList.remove(t)},n.prototype.toggleClassName=function(t){if(this._container)return this._container.classList.toggle(t)},n.prototype._createContent=function(){this._content&&r.remove(this._content),this._content=r.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=r.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="&#215;",this._closeButton.addEventListener("click",this._onClose))},n.prototype._onMouseUp=function(t){this._update(t.point)},n.prototype._onMouseMove=function(t){this._update(t.point)},n.prototype._onDrag=function(t){this._update(t.point)},n.prototype._update=function(t){var e=this,n=this._lngLat||this._trackPointer;if(this._map&&n&&this._content&&(this._container||(this._container=r.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=r.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach((function(t){return e._container.classList.add(t)})),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=Fi(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||t)){var i=this._pos=this._trackPointer&&t?t:this._map.project(this._lngLat),a=this.options.anchor,o=Qi(this.options.offset);if(!a){var s,l=this._container.offsetWidth,u=this._container.offsetHeight;s=i.y+o.bottom.y<u?["top"]:i.y>this._map.transform.height-u?["bottom"]:[],i.x<l/2?s.push("left"):i.x>this._map.transform.width-l/2&&s.push("right"),a=0===s.length?"bottom":s.join("-")}var c=i.add(o[a]).round();r.setTransform(this._container,Bi[a]+" translate("+c.x+"px,"+c.y+"px)"),Ni(this._container,a,"popup")}},n.prototype._onClose=function(){this.remove()},n}(t.Evented);function Qi(e){if(e){if("number"==typeof e){var r=Math.round(Math.sqrt(.5*Math.pow(e,2)));return{center:new t.Point(0,0),top:new t.Point(0,e),"top-left":new t.Point(r,r),"top-right":new t.Point(-r,r),bottom:new t.Point(0,-e),"bottom-left":new t.Point(r,-r),"bottom-right":new t.Point(-r,-r),left:new t.Point(e,0),right:new t.Point(-e,0)}}if(e instanceof t.Point||Array.isArray(e)){var n=t.Point.convert(e);return{center:n,top:n,"top-left":n,"top-right":n,bottom:n,"bottom-left":n,"bottom-right":n,left:n,right:n}}return{center:t.Point.convert(e.center||[0,0]),top:t.Point.convert(e.top||[0,0]),"top-left":t.Point.convert(e["top-left"]||[0,0]),"top-right":t.Point.convert(e["top-right"]||[0,0]),bottom:t.Point.convert(e.bottom||[0,0]),"bottom-left":t.Point.convert(e["bottom-left"]||[0,0]),"bottom-right":t.Point.convert(e["bottom-right"]||[0,0]),left:t.Point.convert(e.left||[0,0]),right:t.Point.convert(e.right||[0,0])}}return Qi(new t.Point(0,0))}var ta={version:t.version,supported:e,setRTLTextPlugin:t.setRTLTextPlugin,getRTLTextPluginStatus:t.getRTLTextPluginStatus,Map:Oi,NavigationControl:zi,GeolocateControl:Gi,AttributionControl:Ti,ScaleControl:Yi,FullscreenControl:Ji,Popup:$i,Marker:Ui,Style:Ye,LngLat:t.LngLat,LngLatBounds:t.LngLatBounds,Point:t.Point,MercatorCoordinate:t.MercatorCoordinate,Evented:t.Evented,config:t.config,prewarm:function(){jt().acquire(Rt)},clearPrewarmedResources:function(){var t=Bt;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(Rt),Bt=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return t.config.ACCESS_TOKEN},set accessToken(e){t.config.ACCESS_TOKEN=e},get baseApiUrl(){return t.config.API_URL},set baseApiUrl(e){t.config.API_URL=e},get workerCount(){return Ft.workerCount},set workerCount(t){Ft.workerCount=t},get maxParallelImageRequests(){return t.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(e){t.config.MAX_PARALLEL_IMAGE_REQUESTS=e},clearStorage:function(e){t.clearTileCache(e)},workerUrl:""};return ta})),r}()},27084:function(t){"use strict";t.exports=Math.log2||function(t){return Math.log(t)*Math.LOG2E}},16825:function(t,e,r){"use strict";t.exports=function(t,e){e||(e=t,t=window);var r=0,i=0,a=0,o={shift:!1,alt:!1,control:!1,meta:!1},s=!1;function l(t){var e=!1;return"altKey"in t&&(e=e||t.altKey!==o.alt,o.alt=!!t.altKey),"shiftKey"in t&&(e=e||t.shiftKey!==o.shift,o.shift=!!t.shiftKey),"ctrlKey"in t&&(e=e||t.ctrlKey!==o.control,o.control=!!t.ctrlKey),"metaKey"in t&&(e=e||t.metaKey!==o.meta,o.meta=!!t.metaKey),e}function u(t,s){var u=n.x(s),c=n.y(s);"buttons"in s&&(t=0|s.buttons),(t!==r||u!==i||c!==a||l(s))&&(r=0|t,i=u||0,a=c||0,e&&e(r,i,a,o))}function c(t){u(0,t)}function f(){(r||i||a||o.shift||o.alt||o.meta||o.control)&&(i=a=0,r=0,o.shift=o.alt=o.control=o.meta=!1,e&&e(0,0,0,o))}function h(t){l(t)&&e&&e(r,i,a,o)}function p(t){0===n.buttons(t)?u(0,t):u(r,t)}function d(t){u(r|n.buttons(t),t)}function v(t){u(r&~n.buttons(t),t)}function g(){s||(s=!0,t.addEventListener("mousemove",p),t.addEventListener("mousedown",d),t.addEventListener("mouseup",v),t.addEventListener("mouseleave",c),t.addEventListener("mouseenter",c),t.addEventListener("mouseout",c),t.addEventListener("mouseover",c),t.addEventListener("blur",f),t.addEventListener("keyup",h),t.addEventListener("keydown",h),t.addEventListener("keypress",h),t!==window&&(window.addEventListener("blur",f),window.addEventListener("keyup",h),window.addEventListener("keydown",h),window.addEventListener("keypress",h)))}g();var y={element:t};return Object.defineProperties(y,{enabled:{get:function(){return s},set:function(e){e?g():s&&(s=!1,t.removeEventListener("mousemove",p),t.removeEventListener("mousedown",d),t.removeEventListener("mouseup",v),t.removeEventListener("mouseleave",c),t.removeEventListener("mouseenter",c),t.removeEventListener("mouseout",c),t.removeEventListener("mouseover",c),t.removeEventListener("blur",f),t.removeEventListener("keyup",h),t.removeEventListener("keydown",h),t.removeEventListener("keypress",h),t!==window&&(window.removeEventListener("blur",f),window.removeEventListener("keyup",h),window.removeEventListener("keydown",h),window.removeEventListener("keypress",h)))},enumerable:!0},buttons:{get:function(){return r},enumerable:!0},x:{get:function(){return i},enumerable:!0},y:{get:function(){return a},enumerable:!0},mods:{get:function(){return o},enumerable:!0}}),y};var n=r(74311)},48956:function(t){var e={left:0,top:0};t.exports=function(t,r,n){r=r||t.currentTarget||t.srcElement,Array.isArray(n)||(n=[0,0]);var i,a=t.clientX||0,o=t.clientY||0,s=(i=r)===window||i===document||i===document.body?e:i.getBoundingClientRect();return n[0]=a-s.left,n[1]=o-s.top,n}},74311:function(t,e){"use strict";function r(t){return t.target||t.srcElement||window}e.buttons=function(t){if("object"==typeof t){if("buttons"in t)return t.buttons;if("which"in t){if(2===(e=t.which))return 4;if(3===e)return 2;if(e>0)return 1<<e-1}else if("button"in t){var e;if(1===(e=t.button))return 4;if(2===e)return 2;if(e>=0)return 1<<e}}return 0},e.element=r,e.x=function(t){if("object"==typeof t){if("offsetX"in t)return t.offsetX;var e=r(t).getBoundingClientRect();return t.clientX-e.left}return 0},e.y=function(t){if("object"==typeof t){if("offsetY"in t)return t.offsetY;var e=r(t).getBoundingClientRect();return t.clientY-e.top}return 0}},1195:function(t,e,r){"use strict";var n=r(75686);t.exports=function(t,e,r){"function"==typeof t&&(r=!!e,e=t,t=window);var i=n("ex",t),a=function(t){r&&t.preventDefault();var n=t.deltaX||0,a=t.deltaY||0,o=t.deltaZ||0,s=1;switch(t.deltaMode){case 1:s=i;break;case 2:s=window.innerHeight}if(a*=s,o*=s,(n*=s)||a||o)return e(n,a,o,t)};return t.addEventListener("wheel",a),a}},7417:function(t,e,r){var n;!function(i,a,o){a[i]=a[i]||function(){"use strict";var t,e,r,n=Object.prototype.toString,i="undefined"!=typeof setImmediate?function(t){return setImmediate(t)}:setTimeout;try{Object.defineProperty({},"x",{}),t=function(t,e,r,n){return Object.defineProperty(t,e,{value:r,writable:!0,configurable:!1!==n})}}catch(e){t=function(t,e,r){return t[e]=r,t}}function a(t,n){r.add(t,n),e||(e=i(r.drain))}function o(t){var e,r=typeof t;return null==t||"object"!=r&&"function"!=r||(e=t.then),"function"==typeof e&&e}function s(){for(var t=0;t<this.chain.length;t++)l(this,1===this.state?this.chain[t].success:this.chain[t].failure,this.chain[t]);this.chain.length=0}function l(t,e,r){var n,i;try{!1===e?r.reject(t.msg):(n=!0===e?t.msg:e.call(void 0,t.msg))===r.promise?r.reject(TypeError("Promise-chain cycle")):(i=o(n))?i.call(n,r.resolve,r.reject):r.resolve(n)}catch(t){r.reject(t)}}function u(t){var e,r=this;if(!r.triggered){r.triggered=!0,r.def&&(r=r.def);try{(e=o(t))?a((function(){var n=new h(r);try{e.call(t,(function(){u.apply(n,arguments)}),(function(){c.apply(n,arguments)}))}catch(t){c.call(n,t)}})):(r.msg=t,r.state=1,r.chain.length>0&&a(s,r))}catch(t){c.call(new h(r),t)}}}function c(t){var e=this;e.triggered||(e.triggered=!0,e.def&&(e=e.def),e.msg=t,e.state=2,e.chain.length>0&&a(s,e))}function f(t,e,r,n){for(var i=0;i<e.length;i++)!function(i){t.resolve(e[i]).then((function(t){r(i,t)}),n)}(i)}function h(t){this.def=t,this.triggered=!1}function p(t){this.promise=t,this.state=0,this.triggered=!1,this.chain=[],this.msg=void 0}function d(t){if("function"!=typeof t)throw TypeError("Not a function");if(0!==this.__NPO__)throw TypeError("Not a promise");this.__NPO__=1;var e=new p(this);this.then=function(t,r){var n={success:"function"!=typeof t||t,failure:"function"==typeof r&&r};return n.promise=new this.constructor((function(t,e){if("function"!=typeof t||"function"!=typeof e)throw TypeError("Not a function");n.resolve=t,n.reject=e})),e.chain.push(n),0!==e.state&&a(s,e),n.promise},this.catch=function(t){return this.then(void 0,t)};try{t.call(void 0,(function(t){u.call(e,t)}),(function(t){c.call(e,t)}))}catch(t){c.call(e,t)}}r=function(){var t,r,n;function i(t,e){this.fn=t,this.self=e,this.next=void 0}return{add:function(e,a){n=new i(e,a),r?r.next=n:t=n,r=n,n=void 0},drain:function(){var n=t;for(t=r=e=void 0;n;)n.fn.call(n.self),n=n.next}}}();var v=t({},"constructor",d,!1);return d.prototype=v,t(v,"__NPO__",0,!1),t(d,"resolve",(function(t){return t&&"object"==typeof t&&1===t.__NPO__?t:new this((function(e,r){if("function"!=typeof e||"function"!=typeof r)throw TypeError("Not a function");e(t)}))})),t(d,"reject",(function(t){return new this((function(e,r){if("function"!=typeof e||"function"!=typeof r)throw TypeError("Not a function");r(t)}))})),t(d,"all",(function(t){var e=this;return"[object Array]"!=n.call(t)?e.reject(TypeError("Not an array")):0===t.length?e.resolve([]):new e((function(r,n){if("function"!=typeof r||"function"!=typeof n)throw TypeError("Not a function");var i=t.length,a=Array(i),o=0;f(e,t,(function(t,e){a[t]=e,++o===i&&r(a)}),n)}))})),t(d,"race",(function(t){var e=this;return"[object Array]"!=n.call(t)?e.reject(TypeError("Not an array")):new e((function(r,n){if("function"!=typeof r||"function"!=typeof n)throw TypeError("Not a function");f(e,t,(function(t,e){r(e)}),n)}))})),d}(),t.exports?t.exports=a[i]:void 0===(n=function(){return a[i]}.call(e,r,e,t))||(t.exports=n)}("Promise",void 0!==r.g?r.g:this)},18625:function(t){var e=Math.PI,r=s(120);function n(t,e,r,n){return["C",t,e,r,n,r,n]}function i(t,e,r,n,i,a){return["C",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}function a(t,n,i,s,l,u,c,f,h,p){if(p)T=p[0],k=p[1],_=p[2],w=p[3];else{var d=o(t,n,-l);t=d.x,n=d.y;var v=(t-(f=(d=o(f,h,-l)).x))/2,g=(n-(h=d.y))/2,y=v*v/(i*i)+g*g/(s*s);y>1&&(i*=y=Math.sqrt(y),s*=y);var m=i*i,x=s*s,b=(u==c?-1:1)*Math.sqrt(Math.abs((m*x-m*g*g-x*v*v)/(m*g*g+x*v*v)));b==1/0&&(b=1);var _=b*i*g/s+(t+f)/2,w=b*-s*v/i+(n+h)/2,T=Math.asin(((n-w)/s).toFixed(9)),k=Math.asin(((h-w)/s).toFixed(9));(T=t<_?e-T:T)<0&&(T=2*e+T),(k=f<_?e-k:k)<0&&(k=2*e+k),c&&T>k&&(T-=2*e),!c&&k>T&&(k-=2*e)}if(Math.abs(k-T)>r){var A=k,M=f,S=h;k=T+r*(c&&k>T?1:-1);var E=a(f=_+i*Math.cos(k),h=w+s*Math.sin(k),i,s,l,0,c,M,S,[k,A,_,w])}var L=Math.tan((k-T)/4),C=4/3*i*L,P=4/3*s*L,O=[2*t-(t+C*Math.sin(T)),2*n-(n-P*Math.cos(T)),f+C*Math.sin(k),h-P*Math.cos(k),f,h];if(p)return O;E&&(O=O.concat(E));for(var I=0;I<O.length;){var D=o(O[I],O[I+1],l);O[I++]=D.x,O[I++]=D.y}return O}function o(t,e,r){return{x:t*Math.cos(r)-e*Math.sin(r),y:t*Math.sin(r)+e*Math.cos(r)}}function s(t){return t*(e/180)}t.exports=function(t){for(var e,r=[],o=0,l=0,u=0,c=0,f=null,h=null,p=0,d=0,v=0,g=t.length;v<g;v++){var y=t[v],m=y[0];switch(m){case"M":u=y[1],c=y[2];break;case"A":(y=a(p,d,y[1],y[2],s(y[3]),y[4],y[5],y[6],y[7])).unshift("C"),y.length>7&&(r.push(y.splice(0,7)),y.unshift("C"));break;case"S":var x=p,b=d;"C"!=e&&"S"!=e||(x+=x-o,b+=b-l),y=["C",x,b,y[1],y[2],y[3],y[4]];break;case"T":"Q"==e||"T"==e?(f=2*p-f,h=2*d-h):(f=p,h=d),y=i(p,d,f,h,y[1],y[2]);break;case"Q":f=y[1],h=y[2],y=i(p,d,y[1],y[2],y[3],y[4]);break;case"L":y=n(p,d,y[1],y[2]);break;case"H":y=n(p,d,y[1],d);break;case"V":y=n(p,d,p,y[1]);break;case"Z":y=n(p,d,u,c)}e=m,p=y[y.length-2],d=y[y.length-1],y.length>4?(o=y[y.length-4],l=y[y.length-3]):(o=p,l=d),r.push(y)}return r}},56131:function(t){"use strict";var e=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;function i(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(t){n[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,a){for(var o,s,l=i(t),u=1;u<arguments.length;u++){for(var c in o=Object(arguments[u]))r.call(o,c)&&(l[c]=o[c]);if(e){s=e(o);for(var f=0;f<s.length;f++)n.call(o,s[f])&&(l[s[f]]=o[s[f]])}}return l}},65848:function(t){"use strict";var e=function(t){return t!=t};t.exports=function(t,r){return 0===t&&0===r?1/t==1/r:t===r||!(!e(t)||!e(r))}},64003:function(t,e,r){"use strict";var n=r(17045),i=r(68222),a=r(65848),o=r(27015),s=r(55572),l=i(o(),Object);n(l,{getPolyfill:o,implementation:a,shim:s}),t.exports=l},27015:function(t,e,r){"use strict";var n=r(65848);t.exports=function(){return"function"==typeof Object.is?Object.is:n}},55572:function(t,e,r){"use strict";var n=r(27015),i=r(17045);t.exports=function(){var t=n();return i(Object,{is:t},{is:function(){return Object.is!==t}}),t}},99019:function(t,e,r){"use strict";var n;if(!Object.keys){var i=Object.prototype.hasOwnProperty,a=Object.prototype.toString,o=r(64178),s=Object.prototype.propertyIsEnumerable,l=!s.call({toString:null},"toString"),u=s.call((function(){}),"prototype"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],f=function(t){var e=t.constructor;return e&&e.prototype===t},h={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},p=function(){if("undefined"==typeof window)return!1;for(var t in window)try{if(!h["$"+t]&&i.call(window,t)&&null!==window[t]&&"object"==typeof window[t])try{f(window[t])}catch(t){return!0}}catch(t){return!0}return!1}();n=function(t){var e=null!==t&&"object"==typeof t,r="[object Function]"===a.call(t),n=o(t),s=e&&"[object String]"===a.call(t),h=[];if(!e&&!r&&!n)throw new TypeError("Object.keys called on a non-object");var d=u&&r;if(s&&t.length>0&&!i.call(t,0))for(var v=0;v<t.length;++v)h.push(String(v));if(n&&t.length>0)for(var g=0;g<t.length;++g)h.push(String(g));else for(var y in t)d&&"prototype"===y||!i.call(t,y)||h.push(String(y));if(l)for(var m=function(t){if("undefined"==typeof window||!p)return f(t);try{return f(t)}catch(t){return!1}}(t),x=0;x<c.length;++x)m&&"constructor"===c[x]||!i.call(t,c[x])||h.push(c[x]);return h}}t.exports=n},8709:function(t,e,r){"use strict";var n=Array.prototype.slice,i=r(64178),a=Object.keys,o=a?function(t){return a(t)}:r(99019),s=Object.keys;o.shim=function(){if(Object.keys){var t=function(){var t=Object.keys(arguments);return t&&t.length===arguments.length}(1,2);t||(Object.keys=function(t){return i(t)?s(n.call(t)):s(t)})}else Object.keys=o;return Object.keys||o},t.exports=o},64178:function(t){"use strict";var e=Object.prototype.toString;t.exports=function(t){var r=e.call(t),n="[object Arguments]"===r;return n||(n="[object Array]"!==r&&null!==t&&"object"==typeof t&&"number"==typeof t.length&&t.length>=0&&"[object Function]"===e.call(t.callee)),n}},88641:function(t){"use strict";function e(t,e){if("string"!=typeof t)return[t];var r=[t];"string"==typeof e||Array.isArray(e)?e={brackets:e}:e||(e={});var n=e.brackets?Array.isArray(e.brackets)?e.brackets:[e.brackets]:["{}","[]","()"],i=e.escape||"___",a=!!e.flat;n.forEach((function(t){var e=new RegExp(["\\",t[0],"[^\\",t[0],"\\",t[1],"]*\\",t[1]].join("")),n=[];function a(e,a,o){var s=r.push(e.slice(t[0].length,-t[1].length))-1;return n.push(s),i+s+i}r.forEach((function(t,n){for(var i,o=0;t!=i;)if(i=t,t=t.replace(e,a),o++>1e4)throw Error("References have circular dependency. Please, check them.");r[n]=t})),n=n.reverse(),r=r.map((function(e){return n.forEach((function(r){e=e.replace(new RegExp("(\\"+i+r+"\\"+i+")","g"),t[0]+"$1"+t[1])})),e}))}));var o=new RegExp("\\"+i+"([0-9]+)\\"+i);return a?r:function t(e,r,n){for(var i,a=[],s=0;i=o.exec(e);){if(s++>1e4)throw Error("Circular references in parenthesis");a.push(e.slice(0,i.index)),a.push(t(r[i[1]],r)),e=e.slice(i.index+i[0].length)}return a.push(e),a}(r[0],r)}function r(t,e){if(e&&e.flat){var r,n=e&&e.escape||"___",i=t[0];if(!i)return"";for(var a=new RegExp("\\"+n+"([0-9]+)\\"+n),o=0;i!=r;){if(o++>1e4)throw Error("Circular references in "+t);r=i,i=i.replace(a,s)}return i}return t.reduce((function t(e,r){return Array.isArray(r)&&(r=r.reduce(t,"")),e+r}),"");function s(e,r){if(null==t[r])throw Error("Reference "+r+"is undefined");return t[r]}}function n(t,n){return Array.isArray(t)?r(t,n):e(t,n)}n.parse=e,n.stringify=r,t.exports=n},18863:function(t,e,r){"use strict";var n=r(71299);t.exports=function(t){var e;return arguments.length>1&&(t=arguments),"string"==typeof t?t=t.split(/\s/).map(parseFloat):"number"==typeof t&&(t=[t]),t.length&&"number"==typeof t[0]?e=1===t.length?{width:t[0],height:t[0],x:0,y:0}:2===t.length?{width:t[0],height:t[1],x:0,y:0}:{x:t[0],y:t[1],width:t[2]-t[0]||0,height:t[3]-t[1]||0}:t&&(e={x:(t=n(t,{left:"x l left Left",top:"y t top Top",width:"w width W Width",height:"h height W Width",bottom:"b bottom Bottom",right:"r right Right"})).left||0,y:t.top||0},null==t.width?t.right?e.width=t.right-e.x:e.width=0:e.width=t.width,null==t.height?t.bottom?e.height=t.bottom-e.y:e.height=0:e.height=t.height),e}},95616:function(t){t.exports=function(t){var i=[];return t.replace(r,(function(t,r,a){var o=r.toLowerCase();for(a=function(t){var e=t.match(n);return e?e.map(Number):[]}(a),"m"==o&&a.length>2&&(i.push([r].concat(a.splice(0,2))),o="l",r="m"==r?"l":"L");;){if(a.length==e[o])return a.unshift(r),i.push(a);if(a.length<e[o])throw new Error("malformed path data");i.push([r].concat(a.splice(0,e[o])))}})),i};var e={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},r=/([astvzqmhlc])([^astvzqmhlc]*)/gi,n=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi},25677:function(t){t.exports=function(t,e){e||(e=[0,""]),t=String(t);var r=parseFloat(t,10);return e[0]=r,e[1]=t.match(/[\d.\-\+]*\s*(.*)/)[1]||"",e}},9748:function(t,e,r){var n=r(90386);(function(){var e,r,i,a,o,s;"undefined"!=typeof performance&&null!==performance&&performance.now?t.exports=function(){return performance.now()}:null!=n&&n.hrtime?(t.exports=function(){return(e()-o)/1e6},r=n.hrtime,a=(e=function(){var t;return 1e9*(t=r())[0]+t[1]})(),s=1e9*n.uptime(),o=a-s):Date.now?(t.exports=function(){return Date.now()-i},i=Date.now()):(t.exports=function(){return(new Date).getTime()-i},i=(new Date).getTime())}).call(this)},71299:function(t){"use strict";t.exports=function(t,e,n){var i,a,o={};if("string"==typeof e&&(e=r(e)),Array.isArray(e)){var s={};for(a=0;a<e.length;a++)s[e[a]]=!0;e=s}for(i in e)e[i]=r(e[i]);var l={};for(i in e){var u=e[i];if(Array.isArray(u))for(a=0;a<u.length;a++){var c=u[a];if(n&&(l[c]=!0),c in t){if(o[i]=t[c],n)for(var f=a;f<u.length;f++)l[u[f]]=!0;break}}else i in t&&(e[i]&&(o[i]=t[i]),n&&(l[i]=!0))}if(n)for(i in t)l[i]||(o[i]=t[i]);return o};var e={};function r(t){return e[t]?e[t]:("string"==typeof t&&(t=e[t]=t.split(/\s*,\s*|\s+/)),t)}},38258:function(t){t.exports=function(t,e,r,n){var i=t[0],a=t[1],o=!1;void 0===r&&(r=0),void 0===n&&(n=e.length);for(var s=n-r,l=0,u=s-1;l<s;u=l++){var c=e[l+r][0],f=e[l+r][1],h=e[u+r][0],p=e[u+r][1];f>a!=p>a&&i<(h-c)*(a-f)/(p-f)+c&&(o=!o)}return o}},52142:function(t,e,r){var n,i=r(69444),a=r(29023),o=r(87263),s=r(11328),l=r(55968),u=r(10670),c=!1,f=a();function h(t,e,r){var i=n.segments(t),a=n.segments(e),o=r(n.combine(i,a));return n.polygon(o)}n={buildLog:function(t){return!0===t?c=i():!1===t&&(c=!1),!1!==c&&c.list},epsilon:function(t){return f.epsilon(t)},segments:function(t){var e=o(!0,f,c);return t.regions.forEach(e.addRegion),{segments:e.calculate(t.inverted),inverted:t.inverted}},combine:function(t,e){return{combined:o(!1,f,c).calculate(t.segments,t.inverted,e.segments,e.inverted),inverted1:t.inverted,inverted2:e.inverted}},selectUnion:function(t){return{segments:l.union(t.combined,c),inverted:t.inverted1||t.inverted2}},selectIntersect:function(t){return{segments:l.intersect(t.combined,c),inverted:t.inverted1&&t.inverted2}},selectDifference:function(t){return{segments:l.difference(t.combined,c),inverted:t.inverted1&&!t.inverted2}},selectDifferenceRev:function(t){return{segments:l.differenceRev(t.combined,c),inverted:!t.inverted1&&t.inverted2}},selectXor:function(t){return{segments:l.xor(t.combined,c),inverted:t.inverted1!==t.inverted2}},polygon:function(t){return{regions:s(t.segments,f,c),inverted:t.inverted}},polygonFromGeoJSON:function(t){return u.toPolygon(n,t)},polygonToGeoJSON:function(t){return u.fromPolygon(n,f,t)},union:function(t,e){return h(t,e,n.selectUnion)},intersect:function(t,e){return h(t,e,n.selectIntersect)},difference:function(t,e){return h(t,e,n.selectDifference)},differenceRev:function(t,e){return h(t,e,n.selectDifferenceRev)},xor:function(t,e){return h(t,e,n.selectXor)}},"object"==typeof window&&(window.PolyBool=n),t.exports=n},69444:function(t){t.exports=function(){var t,e=0,r=!1;function n(e,r){return t.list.push({type:e,data:r?JSON.parse(JSON.stringify(r)):void 0}),t}return t={list:[],segmentId:function(){return e++},checkIntersection:function(t,e){return n("check",{seg1:t,seg2:e})},segmentChop:function(t,e){return n("div_seg",{seg:t,pt:e}),n("chop",{seg:t,pt:e})},statusRemove:function(t){return n("pop_seg",{seg:t})},segmentUpdate:function(t){return n("seg_update",{seg:t})},segmentNew:function(t,e){return n("new_seg",{seg:t,primary:e})},segmentRemove:function(t){return n("rem_seg",{seg:t})},tempStatus:function(t,e,r){return n("temp_status",{seg:t,above:e,below:r})},rewind:function(t){return n("rewind",{seg:t})},status:function(t,e,r){return n("status",{seg:t,above:e,below:r})},vert:function(e){return e===r?t:(r=e,n("vert",{x:e}))},log:function(t){return"string"!=typeof t&&(t=JSON.stringify(t,!1,"  ")),n("log",{txt:t})},reset:function(){return n("reset")},selected:function(t){return n("selected",{segs:t})},chainStart:function(t){return n("chain_start",{seg:t})},chainRemoveHead:function(t,e){return n("chain_rem_head",{index:t,pt:e})},chainRemoveTail:function(t,e){return n("chain_rem_tail",{index:t,pt:e})},chainNew:function(t,e){return n("chain_new",{pt1:t,pt2:e})},chainMatch:function(t){return n("chain_match",{index:t})},chainClose:function(t){return n("chain_close",{index:t})},chainAddHead:function(t,e){return n("chain_add_head",{index:t,pt:e})},chainAddTail:function(t,e){return n("chain_add_tail",{index:t,pt:e})},chainConnect:function(t,e){return n("chain_con",{index1:t,index2:e})},chainReverse:function(t){return n("chain_rev",{index:t})},chainJoin:function(t,e){return n("chain_join",{index1:t,index2:e})},done:function(){return n("done")}}}},29023:function(t){t.exports=function(t){"number"!=typeof t&&(t=1e-10);var e={epsilon:function(e){return"number"==typeof e&&(t=e),t},pointAboveOrOnLine:function(e,r,n){var i=r[0],a=r[1],o=n[0],s=n[1],l=e[0];return(o-i)*(e[1]-a)-(s-a)*(l-i)>=-t},pointBetween:function(e,r,n){var i=e[1]-r[1],a=n[0]-r[0],o=e[0]-r[0],s=n[1]-r[1],l=o*a+i*s;return!(l<t||l-(a*a+s*s)>-t)},pointsSameX:function(e,r){return Math.abs(e[0]-r[0])<t},pointsSameY:function(e,r){return Math.abs(e[1]-r[1])<t},pointsSame:function(t,r){return e.pointsSameX(t,r)&&e.pointsSameY(t,r)},pointsCompare:function(t,r){return e.pointsSameX(t,r)?e.pointsSameY(t,r)?0:t[1]<r[1]?-1:1:t[0]<r[0]?-1:1},pointsCollinear:function(e,r,n){var i=e[0]-r[0],a=e[1]-r[1],o=r[0]-n[0],s=r[1]-n[1];return Math.abs(i*s-o*a)<t},linesIntersect:function(e,r,n,i){var a=r[0]-e[0],o=r[1]-e[1],s=i[0]-n[0],l=i[1]-n[1],u=a*l-o*s;if(Math.abs(u)<t)return!1;var c=e[0]-n[0],f=e[1]-n[1],h=(s*f-l*c)/u,p=(a*f-o*c)/u,d={alongA:0,alongB:0,pt:[e[0]+h*a,e[1]+h*o]};return d.alongA=h<=-t?-2:h<t?-1:h-1<=-t?0:h-1<t?1:2,d.alongB=p<=-t?-2:p<t?-1:p-1<=-t?0:p-1<t?1:2,d},pointInsideRegion:function(e,r){for(var n=e[0],i=e[1],a=r[r.length-1][0],o=r[r.length-1][1],s=!1,l=0;l<r.length;l++){var u=r[l][0],c=r[l][1];c-i>t!=o-i>t&&(a-u)*(i-c)/(o-c)+u-n>t&&(s=!s),a=u,o=c}return s}};return e}},10670:function(t){var e={toPolygon:function(t,e){function r(e){if(e.length<=0)return t.segments({inverted:!1,regions:[]});function r(e){var r=e.slice(0,e.length-1);return t.segments({inverted:!1,regions:[r]})}for(var n=r(e[0]),i=1;i<e.length;i++)n=t.selectDifference(t.combine(n,r(e[i])));return n}if("Polygon"===e.type)return t.polygon(r(e.coordinates));if("MultiPolygon"===e.type){for(var n=t.segments({inverted:!1,regions:[]}),i=0;i<e.coordinates.length;i++)n=t.selectUnion(t.combine(n,r(e.coordinates[i])));return t.polygon(n)}throw new Error("PolyBool: Cannot convert GeoJSON object to PolyBool polygon")},fromPolygon:function(t,e,r){function n(t,r){return e.pointInsideRegion([.5*(t[0][0]+t[1][0]),.5*(t[0][1]+t[1][1])],r)}function i(t){return{region:t,children:[]}}r=t.polygon(t.segments(r));var a=i(null);function o(t,e){for(var r=0;r<t.children.length;r++)if(n(e,(s=t.children[r]).region))return void o(s,e);var a=i(e);for(r=0;r<t.children.length;r++){var s;n((s=t.children[r]).region,e)&&(a.children.push(s),t.children.splice(r,1),r--)}t.children.push(a)}for(var s=0;s<r.regions.length;s++){var l=r.regions[s];l.length<3||o(a,l)}function u(t,e){for(var r=0,n=t[t.length-1][0],i=t[t.length-1][1],a=[],o=0;o<t.length;o++){var s=t[o][0],l=t[o][1];a.push([s,l]),r+=l*n-s*i,n=s,i=l}return r<0!==e&&a.reverse(),a.push([a[0][0],a[0][1]]),a}var c=[];function f(t){var e=[u(t.region,!1)];c.push(e);for(var r=0;r<t.children.length;r++)e.push(h(t.children[r]))}function h(t){for(var e=0;e<t.children.length;e++)f(t.children[e]);return u(t.region,!0)}for(s=0;s<a.children.length;s++)f(a.children[s]);return c.length<=0?{type:"Polygon",coordinates:[]}:1==c.length?{type:"Polygon",coordinates:c[0]}:{type:"MultiPolygon",coordinates:c}}};t.exports=e},87263:function(t,e,r){var n=r(26859);t.exports=function(t,e,r){function i(t,e,n){return{id:r?r.segmentId():-1,start:t,end:e,myFill:{above:n.myFill.above,below:n.myFill.below},otherFill:null}}var a=n.create();function o(t,r){a.insertBefore(t,(function(n){return i=t.isStart,a=t.pt,o=r,s=n.isStart,l=n.pt,u=n.other.pt,(0!==(c=e.pointsCompare(a,l))?c:e.pointsSame(o,u)?0:i!==s?i?1:-1:e.pointAboveOrOnLine(o,s?l:u,s?u:l)?1:-1)<0;var i,a,o,s,l,u,c}))}function s(t,e){var r=function(t,e){var r=n.node({isStart:!0,pt:t.start,seg:t,primary:e,other:null,status:null});return o(r,t.end),r}(t,e);return function(t,e,r){var i=n.node({isStart:!1,pt:e.end,seg:e,primary:r,other:t,status:null});t.other=i,o(i,t.pt)}(r,t,e),r}function l(t,e){var n=i(e,t.seg.end,t.seg);return function(t,e){r&&r.segmentChop(t.seg,e),t.other.remove(),t.seg.end=e,t.other.pt=e,o(t.other,t.pt)}(t,e),s(n,t.primary)}function u(i,o){var s=n.create();function u(t){return s.findTransition((function(r){var n,i,a,o,s,l;return n=t,i=r.ev,a=n.seg.start,o=n.seg.end,s=i.seg.start,l=i.seg.end,(e.pointsCollinear(a,s,l)?e.pointsCollinear(o,s,l)||e.pointAboveOrOnLine(o,s,l)?1:-1:e.pointAboveOrOnLine(a,s,l)?1:-1)>0}))}function c(t,n){var i=t.seg,a=n.seg,o=i.start,s=i.end,u=a.start,c=a.end;r&&r.checkIntersection(i,a);var f=e.linesIntersect(o,s,u,c);if(!1===f){if(!e.pointsCollinear(o,s,u))return!1;if(e.pointsSame(o,c)||e.pointsSame(s,u))return!1;var h=e.pointsSame(o,u),p=e.pointsSame(s,c);if(h&&p)return n;var d=!h&&e.pointBetween(o,u,c),v=!p&&e.pointBetween(s,u,c);if(h)return v?l(n,s):l(t,c),n;d&&(p||(v?l(n,s):l(t,c)),l(n,o))}else 0===f.alongA&&(-1===f.alongB?l(t,u):0===f.alongB?l(t,f.pt):1===f.alongB&&l(t,c)),0===f.alongB&&(-1===f.alongA?l(n,o):0===f.alongA?l(n,f.pt):1===f.alongA&&l(n,s));return!1}for(var f=[];!a.isEmpty();){var h=a.getHead();if(r&&r.vert(h.pt[0]),h.isStart){r&&r.segmentNew(h.seg,h.primary);var p=u(h),d=p.before?p.before.ev:null,v=p.after?p.after.ev:null;function g(){if(d){var t=c(h,d);if(t)return t}return!!v&&c(h,v)}r&&r.tempStatus(h.seg,!!d&&d.seg,!!v&&v.seg);var y,m,x=g();if(x)t?(m=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below)&&(x.seg.myFill.above=!x.seg.myFill.above):x.seg.otherFill=h.seg.myFill,r&&r.segmentUpdate(x.seg),h.other.remove(),h.remove();if(a.getHead()!==h){r&&r.rewind(h.seg);continue}t?(m=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below,h.seg.myFill.below=v?v.seg.myFill.above:i,h.seg.myFill.above=m?!h.seg.myFill.below:h.seg.myFill.below):null===h.seg.otherFill&&(y=v?h.primary===v.primary?v.seg.otherFill.above:v.seg.myFill.above:h.primary?o:i,h.seg.otherFill={above:y,below:y}),r&&r.status(h.seg,!!d&&d.seg,!!v&&v.seg),h.other.status=p.insert(n.node({ev:h}))}else{var b=h.status;if(null===b)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(s.exists(b.prev)&&s.exists(b.next)&&c(b.prev.ev,b.next.ev),r&&r.statusRemove(b.ev.seg),b.remove(),!h.primary){var _=h.seg.myFill;h.seg.myFill=h.seg.otherFill,h.seg.otherFill=_}f.push(h.seg)}a.getHead().remove()}return r&&r.done(),f}return t?{addRegion:function(t){for(var n,i,a,o=t[t.length-1],l=0;l<t.length;l++){n=o,o=t[l];var u=e.pointsCompare(n,o);0!==u&&s((i=u<0?n:o,a=u<0?o:n,{id:r?r.segmentId():-1,start:i,end:a,myFill:{above:null,below:null},otherFill:null}),!0)}},calculate:function(t){return u(t,!1)}}:{calculate:function(t,e,r,n){return t.forEach((function(t){s(i(t.start,t.end,t),!0)})),r.forEach((function(t){s(i(t.start,t.end,t),!1)})),u(e,n)}}}},26859:function(t){t.exports={create:function(){var t={root:{root:!0,next:null},exists:function(e){return null!==e&&e!==t.root},isEmpty:function(){return null===t.root.next},getHead:function(){return t.root.next},insertBefore:function(e,r){for(var n=t.root,i=t.root.next;null!==i;){if(r(i))return e.prev=i.prev,e.next=i,i.prev.next=e,void(i.prev=e);n=i,i=i.next}n.next=e,e.prev=n,e.next=null},findTransition:function(e){for(var r=t.root,n=t.root.next;null!==n&&!e(n);)r=n,n=n.next;return{before:r===t.root?null:r,after:n,insert:function(t){return t.prev=r,t.next=n,r.next=t,null!==n&&(n.prev=t),t}}}};return t},node:function(t){return t.prev=null,t.next=null,t.remove=function(){t.prev.next=t.next,t.next&&(t.next.prev=t.prev),t.prev=null,t.next=null},t}}},11328:function(t){t.exports=function(t,e,r){var n=[],i=[];return t.forEach((function(t){var a=t.start,o=t.end;if(e.pointsSame(a,o))console.warn("PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large");else{r&&r.chainStart(t);for(var s={index:0,matches_head:!1,matches_pt1:!1},l={index:0,matches_head:!1,matches_pt1:!1},u=s,c=0;c<n.length;c++){var f=(g=n[c])[0],h=(g[1],g[g.length-1]);if(g[g.length-2],e.pointsSame(f,a)){if(k(c,!0,!0))break}else if(e.pointsSame(f,o)){if(k(c,!0,!1))break}else if(e.pointsSame(h,a)){if(k(c,!1,!0))break}else if(e.pointsSame(h,o)&&k(c,!1,!1))break}if(u===s)return n.push([a,o]),void(r&&r.chainNew(a,o));if(u===l){r&&r.chainMatch(s.index);var p=s.index,d=s.matches_pt1?o:a,v=s.matches_head,g=n[p],y=v?g[0]:g[g.length-1],m=v?g[1]:g[g.length-2],x=v?g[g.length-1]:g[0],b=v?g[g.length-2]:g[1];return e.pointsCollinear(m,y,d)&&(v?(r&&r.chainRemoveHead(s.index,d),g.shift()):(r&&r.chainRemoveTail(s.index,d),g.pop()),y=m),e.pointsSame(x,d)?(n.splice(p,1),e.pointsCollinear(b,x,y)&&(v?(r&&r.chainRemoveTail(s.index,y),g.pop()):(r&&r.chainRemoveHead(s.index,y),g.shift())),r&&r.chainClose(s.index),void i.push(g)):void(v?(r&&r.chainAddHead(s.index,d),g.unshift(d)):(r&&r.chainAddTail(s.index,d),g.push(d)))}var _=s.index,w=l.index;r&&r.chainConnect(_,w);var T=n[_].length<n[w].length;s.matches_head?l.matches_head?T?(A(_),M(_,w)):(A(w),M(w,_)):M(w,_):l.matches_head?M(_,w):T?(A(_),M(w,_)):(A(w),M(_,w))}function k(t,e,r){return u.index=t,u.matches_head=e,u.matches_pt1=r,u===s?(u=l,!1):(u=null,!0)}function A(t){r&&r.chainReverse(t),n[t].reverse()}function M(t,i){var a=n[t],o=n[i],s=a[a.length-1],l=a[a.length-2],u=o[0],c=o[1];e.pointsCollinear(l,s,u)&&(r&&r.chainRemoveTail(t,s),a.pop(),s=l),e.pointsCollinear(s,u,c)&&(r&&r.chainRemoveHead(i,u),o.shift()),r&&r.chainJoin(t,i),n[t]=a.concat(o),n.splice(i,1)}})),i}},55968:function(t){function e(t,e,r){var n=[];return t.forEach((function(t){var i=(t.myFill.above?8:0)+(t.myFill.below?4:0)+(t.otherFill&&t.otherFill.above?2:0)+(t.otherFill&&t.otherFill.below?1:0);0!==e[i]&&n.push({id:r?r.segmentId():-1,start:t.start,end:t.end,myFill:{above:1===e[i],below:2===e[i]},otherFill:null})})),r&&r.selected(n),n}var r={union:function(t,r){return e(t,[0,2,1,0,2,2,0,0,1,0,1,0,0,0,0,0],r)},intersect:function(t,r){return e(t,[0,0,0,0,0,2,0,2,0,0,1,1,0,2,1,0],r)},difference:function(t,r){return e(t,[0,0,0,0,2,0,2,0,1,1,0,0,0,1,2,0],r)},differenceRev:function(t,r){return e(t,[0,2,1,0,0,0,1,1,0,2,0,2,0,0,0,0],r)},xor:function(t,r){return e(t,[0,2,1,0,2,0,0,1,1,0,0,2,0,1,2,0],r)}};t.exports=r},14847:function(t,e,r){"use strict";var n=r(21630).Transform,i=r(90715);function a(){n.call(this,{readableObjectMode:!0})}function o(t,e,r){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||"",this.name=this.constructor.name,this.message=t,e&&(this.code=e),r&&(this.statusCode=r)}a.prototype=Object.create(n.prototype),a.prototype.constructor=a,i(a.prototype),e.OF=function(t,e,r){for(var n=e,i=0;i<r.length;)if(t[n++]!==r[i++])return!1;return!0},e.eG=function(t,e){var r=[],n=0;if(e&&"hex"===e)for(;n<t.length;)r.push(parseInt(t.slice(n,n+2),16)),n+=2;else for(;n<t.length;n++)r.push(255&t.charCodeAt(n));return r},e.mP=function(t,e){return t[e]|t[e+1]<<8},e.n8=function(t,e){return t[e+1]|t[e]<<8},e.nm=function(t,e){return t[e]|t[e+1]<<8|t[e+2]<<16|16777216*t[e+3]},e.Ag=function(t,e){return t[e+3]|t[e+2]<<8|t[e+1]<<16|16777216*t[e]},o.prototype=Object.create(Error.prototype),o.prototype.constructor=o},71371:function(t){"use strict";function e(t,e){var r=new Error(t);return r.code=e,r}function r(t){try{return decodeURIComponent(escape(t))}catch(e){return t}}function n(t,r,n){this.input=t.subarray(r,n),this.start=r;var i=String.fromCharCode.apply(null,this.input.subarray(0,4));if("II*\0"!==i&&"MM\0*"!==i)throw e("invalid TIFF signature","EBADDATA");this.big_endian="M"===i[0]}n.prototype.each=function(t){this.aborted=!1;var e=this.read_uint32(4);for(this.ifds_to_read=[{id:0,offset:e}];this.ifds_to_read.length>0&&!this.aborted;){var r=this.ifds_to_read.shift();r.offset&&this.scan_ifd(r.id,r.offset,t)}},n.prototype.read_uint16=function(t){var r=this.input;if(t+2>r.length)throw e("unexpected EOF","EBADDATA");return this.big_endian?256*r[t]+r[t+1]:r[t]+256*r[t+1]},n.prototype.read_uint32=function(t){var r=this.input;if(t+4>r.length)throw e("unexpected EOF","EBADDATA");return this.big_endian?16777216*r[t]+65536*r[t+1]+256*r[t+2]+r[t+3]:r[t]+256*r[t+1]+65536*r[t+2]+16777216*r[t+3]},n.prototype.is_subifd_link=function(t,e){return 0===t&&34665===e||0===t&&34853===e||34665===t&&40965===e},n.prototype.exif_format_length=function(t){switch(t){case 1:case 2:case 6:case 7:return 1;case 3:case 8:return 2;case 4:case 9:case 11:return 4;case 5:case 10:case 12:return 8;default:return 0}},n.prototype.exif_format_read=function(t,e){var r;switch(t){case 1:case 2:return this.input[e];case 6:return(r=this.input[e])|33554430*(128&r);case 3:return this.read_uint16(e);case 8:return(r=this.read_uint16(e))|131070*(32768&r);case 4:return this.read_uint32(e);case 9:return 0|this.read_uint32(e);default:return null}},n.prototype.scan_ifd=function(t,n,i){var a=this.read_uint16(n);n+=2;for(var o=0;o<a;o++){var s=this.read_uint16(n),l=this.read_uint16(n+2),u=this.read_uint32(n+4),c=this.exif_format_length(l),f=u*c,h=f<=4?n+8:this.read_uint32(n+8),p=!1;if(h+f>this.input.length)throw e("unexpected EOF","EBADDATA");for(var d=[],v=h,g=0;g<u;g++,v+=c){var y=this.exif_format_read(l,v);if(null===y){d=null;break}d.push(y)}if(Array.isArray(d)&&2===l&&(d=r(String.fromCharCode.apply(null,d)))&&"\0"===d[d.length-1]&&(d=d.slice(0,-1)),this.is_subifd_link(t,s)&&Array.isArray(d)&&Number.isInteger(d[0])&&d[0]>0&&(this.ifds_to_read.push({id:s,offset:d[0]}),p=!0),!1===i({is_big_endian:this.big_endian,ifd:t,tag:s,format:l,count:u,entry_offset:n+this.start,data_length:f,data_offset:h+this.start,value:d,is_subifd_link:p}))return void(this.aborted=!0);n+=12}0===t&&this.ifds_to_read.push({id:1,offset:this.read_uint32(n)})},t.exports.ExifParser=n,t.exports.get_orientation=function(t){var e=0;try{return new n(t,0,t.length).each((function(t){if(0===t.ifd&&274===t.tag&&Array.isArray(t.value))return e=t.value[0],!1})),e}catch(t){return-1}}},76767:function(t,e,r){"use strict";var n=r(14847).n8,i=r(14847).Ag;function a(t,e){if(t.length<4+e)return null;var r=i(t,e);return t.length<r+e||r<8?null:{boxtype:String.fromCharCode.apply(null,t.slice(e+4,e+8)),data:t.slice(e+8,e+r),end:e+r}}function o(t,e){for(var r=0;;){var n=a(t,r);if(!n)break;switch(n.boxtype){case"ispe":e.sizes.push({width:i(n.data,4),height:i(n.data,8)});break;case"irot":e.transforms.push({type:"irot",value:3&n.data[0]});break;case"imir":e.transforms.push({type:"imir",value:1&n.data[0]})}r=n.end}}function s(t,e,r){for(var n=0,i=0;i<r;i++)n=256*n+(t[e+i]||0);return n}function l(t,e){for(var r=t[4]>>4&15,i=15&t[4],a=t[5]>>4&15,o=n(t,6),l=8,u=0;u<o;u++){var c=n(t,l),f=n(t,l+=2),h=s(t,l+=2,a),p=n(t,l+=a);if(l+=2,0===f&&1===p){var d=s(t,l,r),v=s(t,l+r,i);e.item_loc[c]={length:v,offset:d+h}}l+=p*(r+i)}}function u(t,e){for(var r=n(t,4),i=6,o=0;o<r;o++){var s=a(t,i);if(!s)break;if("infe"===s.boxtype){for(var l=n(s.data,4),u="",c=8;c<s.data.length&&s.data[c];c++)u+=String.fromCharCode(s.data[c]);e.item_inf[u]=l}i=s.end}}function c(t,e){for(var r=0;;){var n=a(t,r);if(!n)break;"ipco"===n.boxtype&&o(n.data,e),r=n.end}}t.exports.unbox=a,t.exports.readSizeFromMeta=function(t){var e={sizes:[],transforms:[],item_inf:{},item_loc:{}};if(function(t,e){for(var r=4;;){var n=a(t,r);if(!n)break;"iprp"===n.boxtype&&c(n.data,e),"iloc"===n.boxtype&&l(n.data,e),"iinf"===n.boxtype&&u(n.data,e),r=n.end}}(t,e),e.sizes.length){var r,n,i,o=(n=(r=e.sizes).reduce((function(t,e){return t.width>e.width||t.width===e.width&&t.height>e.height?t:e})),i=r.reduce((function(t,e){return t.height>e.height||t.height===e.height&&t.width>e.width?t:e})),n.width>i.height||n.width===i.height&&n.height>i.width?n:i),s=1;e.transforms.forEach((function(t){var e={1:6,2:5,3:8,4:7,5:4,6:3,7:2,8:1},r={1:4,2:3,3:2,4:1,5:6,6:5,7:8,8:7};if("imir"===t.type&&(s=0===t.value?r[s]:e[s=e[s=r[s]]]),"irot"===t.type)for(var n=0;n<t.value;n++)s=e[s]}));var f=null;return e.item_inf.Exif&&(f=e.item_loc[e.item_inf.Exif]),{width:o.width,height:o.height,orientation:e.transforms.length?s:null,variants:e.sizes,exif_location:f}}},t.exports.getMimeType=function(t){var e=String.fromCharCode.apply(null,t.slice(0,4)),r={};r[e]=!0;for(var n=8;n<t.length;n+=4)r[String.fromCharCode.apply(null,t.slice(n,n+4))]=!0;if(r.mif1||r.msf1||r.miaf)return"avif"===e||"avis"===e||"avio"===e?{type:"avif",mime:"image/avif"}:"heic"===e||"heix"===e?{type:"heic",mime:"image/heic"}:"hevc"===e||"hevx"===e?{type:"heic",mime:"image/heic-sequence"}:r.avif||r.avis?{type:"avif",mime:"image/avif"}:r.heic||r.heix||r.hevc||r.hevx||r.heis?r.msf1?{type:"heif",mime:"image/heif-sequence"}:{type:"heif",mime:"image/heif"}:{type:"avif",mime:"image/avif"}}},24461:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).Ag,o=r(76767),s=r(71371),l=n("ftyp");t.exports=function(t){if(i(t,4,l)){var e=o.unbox(t,0);if(e){var r=o.getMimeType(e.data);if(r){for(var n,u=e.end;;){var c=o.unbox(t,u);if(!c)break;if(u=c.end,"mdat"===c.boxtype)return;if("meta"===c.boxtype){n=c.data;break}}if(n){var f=o.readSizeFromMeta(n);if(f){var h={width:f.width,height:f.height,type:r.type,mime:r.mime,wUnits:"px",hUnits:"px"};if(f.variants.length>1&&(h.variants=f.variants),f.orientation&&(h.orientation=f.orientation),f.exif_location&&f.exif_location.offset+f.exif_location.length<=t.length){var p=a(t,f.exif_location.offset),d=t.slice(f.exif_location.offset+p+4,f.exif_location.offset+f.exif_location.length),v=s.get_orientation(d);v>0&&(h.orientation=v)}return h}}}}}}},2504:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).mP,o=n("BM");t.exports=function(t){if(!(t.length<26)&&i(t,0,o))return{width:a(t,18),height:a(t,22),type:"bmp",mime:"image/bmp",wUnits:"px",hUnits:"px"}}},47342:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).mP,o=n("GIF87a"),s=n("GIF89a");t.exports=function(t){if(!(t.length<10)&&(i(t,0,o)||i(t,0,s)))return{width:a(t,6),height:a(t,8),type:"gif",mime:"image/gif",wUnits:"px",hUnits:"px"}}},31355:function(t,e,r){"use strict";var n=r(14847).mP;t.exports=function(t){var e=n(t,0),r=n(t,2),i=n(t,4);if(0===e&&1===r&&i){for(var a=[],o={width:0,height:0},s=0;s<i;s++){var l=t[6+16*s]||256,u=t[6+16*s+1]||256,c={width:l,height:u};a.push(c),(l>o.width||u>o.height)&&(o=c)}return{width:o.width,height:o.height,variants:a,type:"ico",mime:"image/x-icon",wUnits:"px",hUnits:"px"}}}},54261:function(t,e,r){"use strict";var n=r(14847).n8,i=r(14847).eG,a=r(14847).OF,o=r(71371),s=i("Exif\0\0");t.exports=function(t){if(!(t.length<2)&&255===t[0]&&216===t[1]&&255===t[2])for(var e=2;;){for(;;){if(t.length-e<2)return;if(255===t[e++])break}for(var r,i,l=t[e++];255===l;)l=t[e++];if(208<=l&&l<=217||1===l)r=0;else{if(!(192<=l&&l<=254))return;if(t.length-e<2)return;r=n(t,e)-2,e+=2}if(217===l||218===l)return;if(225===l&&r>=10&&a(t,e,s)&&(i=o.get_orientation(t.slice(e+6,e+r))),r>=5&&192<=l&&l<=207&&196!==l&&200!==l&&204!==l){if(t.length-e<r)return;var u={width:n(t,e+3),height:n(t,e+1),type:"jpg",mime:"image/jpeg",wUnits:"px",hUnits:"px"};return i>0&&(u.orientation=i),u}e+=r}}},6303:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).Ag,o=n("‰PNG\r\n\n"),s=n("IHDR");t.exports=function(t){if(!(t.length<24)&&i(t,0,o)&&i(t,12,s))return{width:a(t,16),height:a(t,20),type:"png",mime:"image/png",wUnits:"px",hUnits:"px"}}},38689:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).Ag,o=n("8BPS\0");t.exports=function(t){if(!(t.length<22)&&i(t,0,o))return{width:a(t,18),height:a(t,14),type:"psd",mime:"image/vnd.adobe.photoshop",wUnits:"px",hUnits:"px"}}},6881:function(t){"use strict";function e(t){return"number"==typeof t&&isFinite(t)&&t>0}var r=/<[-_.:a-zA-Z0-9][^>]*>/,n=/^<([-_.:a-zA-Z0-9]+:)?svg\s/,i=/[^-]\bwidth="([^%]+?)"|[^-]\bwidth='([^%]+?)'/,a=/\bheight="([^%]+?)"|\bheight='([^%]+?)'/,o=/\bview[bB]ox="(.+?)"|\bview[bB]ox='(.+?)'/,s=/in$|mm$|cm$|pt$|pc$|px$|em$|ex$/;function l(t){return s.test(t)?t.match(s)[0]:"px"}t.exports=function(t){if(function(t){var e,r=0,n=t.length;for(239===t[0]&&187===t[1]&&191===t[2]&&(r=3);r<n&&(32===(e=t[r])||9===e||13===e||10===e);)r++;return r!==n&&60===t[r]}(t)){for(var s="",u=0;u<t.length;u++)s+=String.fromCharCode(t[u]);var c=(s.match(r)||[""])[0];if(n.test(c)){var f=function(t){var e=t.match(i),r=t.match(a),n=t.match(o);return{width:e&&(e[1]||e[2]),height:r&&(r[1]||r[2]),viewbox:n&&(n[1]||n[2])}}(c),h=parseFloat(f.width),p=parseFloat(f.height);if(f.width&&f.height){if(!e(h)||!e(p))return;return{width:h,height:p,type:"svg",mime:"image/svg+xml",wUnits:l(f.width),hUnits:l(f.height)}}var d=(f.viewbox||"").split(" "),v={width:d[2],height:d[3]},g=parseFloat(v.width),y=parseFloat(v.height);if(e(g)&&e(y)&&l(v.width)===l(v.height)){var m=g/y;if(f.width){if(!e(h))return;return{width:h,height:h/m,type:"svg",mime:"image/svg+xml",wUnits:l(f.width),hUnits:l(f.width)}}if(f.height){if(!e(p))return;return{width:p*m,height:p,type:"svg",mime:"image/svg+xml",wUnits:l(f.height),hUnits:l(f.height)}}return{width:g,height:y,type:"svg",mime:"image/svg+xml",wUnits:l(v.width),hUnits:l(v.height)}}}}}},66278:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).mP,o=r(14847).n8,s=r(14847).nm,l=r(14847).Ag,u=n("II*\0"),c=n("MM\0*");function f(t,e,r){return r?o(t,e):a(t,e)}function h(t,e,r){return r?l(t,e):s(t,e)}function p(t,e,r){var n=f(t,e+2,r);return 1!==h(t,e+4,r)||3!==n&&4!==n?null:3===n?f(t,e+8,r):h(t,e+8,r)}t.exports=function(t){if(!(t.length<8)&&(i(t,0,u)||i(t,0,c))){var e=77===t[0],r=h(t,4,e)-8;if(!(r<0)){var n=r+8;if(!(t.length-n<2)){var a=12*f(t,n+0,e);if(!(a<=0||(n+=2,t.length-n<a))){var o,s,l,d;for(o=0;o<a;o+=12)256===(d=f(t,n+o,e))?s=p(t,n+o,e):257===d&&(l=p(t,n+o,e));return s&&l?{width:s,height:l,type:"tiff",mime:"image/tiff",wUnits:"px",hUnits:"px"}:void 0}}}}}},90784:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).mP,o=r(14847).nm,s=r(71371),l=n("RIFF"),u=n("WEBP");function c(t,e){if(157===t[e+3]&&1===t[e+4]&&42===t[e+5])return{width:16383&a(t,e+6),height:16383&a(t,e+8),type:"webp",mime:"image/webp",wUnits:"px",hUnits:"px"}}function f(t,e){if(47===t[e]){var r=o(t,e+1);return{width:1+(16383&r),height:1+(r>>14&16383),type:"webp",mime:"image/webp",wUnits:"px",hUnits:"px"}}}function h(t,e){return{width:1+(t[e+6]<<16|t[e+5]<<8|t[e+4]),height:1+(t[e+9]<<e|t[e+8]<<8|t[e+7]),type:"webp",mime:"image/webp",wUnits:"px",hUnits:"px"}}t.exports=function(t){if(!(t.length<16)&&(i(t,0,l)||i(t,8,u))){var e=12,r=null,n=0,a=o(t,4)+8;if(!(a>t.length)){for(;e+8<a;)if(0!==t[e]){var p=String.fromCharCode.apply(null,t.slice(e,e+4)),d=o(t,e+4);"VP8 "===p&&d>=10?r=r||c(t,e+8):"VP8L"===p&&d>=9?r=r||f(t,e+8):"VP8X"===p&&d>=10?r=r||h(t,e+8):"EXIF"===p&&(n=s.get_orientation(t.slice(e+8,e+8+d)),e=1/0),e+=8+d}else e++;if(r)return n>0&&(r.orientation=n),r}}}},91497:function(t,e,r){"use strict";t.exports={avif:r(24461),bmp:r(2504),gif:r(47342),ico:r(31355),jpeg:r(54261),png:r(6303),psd:r(38689),svg:r(6881),tiff:r(66278),webp:r(90784)}},33575:function(t,e,r){"use strict";var n=r(91497);t.exports=function(t){return function(t){for(var e=Object.keys(n),r=0;r<e.length;r++){var i=n[e[r]](t);if(i)return i}return null}(t)},t.exports.parsers=n},90386:function(t){var e,r,n=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function o(t){if(e===setTimeout)return setTimeout(t,0);if((e===i||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(r){try{return e.call(null,t,0)}catch(r){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:i}catch(t){e=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(t){r=a}}();var s,l=[],u=!1,c=-1;function f(){u&&s&&(u=!1,s.length?l=s.concat(l):c=-1,l.length&&h())}function h(){if(!u){var t=o(f);u=!0;for(var e=l.length;e;){for(s=l,l=[];++c<e;)s&&s[c].run();c=-1,e=l.length}s=null,u=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function p(t,e){this.fun=t,this.array=e}function d(){}n.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)e[r-1]=arguments[r];l.push(new p(t,e)),1!==l.length||u||o(h)},p.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=d,n.addListener=d,n.once=d,n.off=d,n.removeListener=d,n.removeAllListeners=d,n.emit=d,n.prependListener=d,n.prependOnceListener=d,n.listeners=function(t){return[]},n.binding=function(t){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(t){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},5877:function(t,e,r){for(var n=r(9748),i="undefined"==typeof window?r.g:window,a=["moz","webkit"],o="AnimationFrame",s=i["request"+o],l=i["cancel"+o]||i["cancelRequest"+o],u=0;!s&&u<a.length;u++)s=i[a[u]+"Request"+o],l=i[a[u]+"Cancel"+o]||i[a[u]+"CancelRequest"+o];if(!s||!l){var c=0,f=0,h=[];s=function(t){if(0===h.length){var e=n(),r=Math.max(0,16.666666666666668-(e-c));c=r+e,setTimeout((function(){var t=h.slice(0);h.length=0;for(var e=0;e<t.length;e++)if(!t[e].cancelled)try{t[e].callback(c)}catch(t){setTimeout((function(){throw t}),0)}}),Math.round(r))}return h.push({handle:++f,callback:t,cancelled:!1}),f},l=function(t){for(var e=0;e<h.length;e++)h[e].handle===t&&(h[e].cancelled=!0)}}t.exports=function(t){return s.call(i,t)},t.exports.cancel=function(){l.apply(i,arguments)},t.exports.polyfill=function(t){t||(t=i),t.requestAnimationFrame=s,t.cancelAnimationFrame=l}},3593:function(t,e,r){"use strict";var n=r(21527),i=r(25075),a=r(93447),o=r(71299),s=r(56131),l=r(30120),u=r(57060),c=u.float32,f=u.fract32;t.exports=function(t,e){if("function"==typeof t?(e||(e={}),e.regl=t):e=t,e.length&&(e.positions=e),!(t=e.regl).hasExtension("ANGLE_instanced_arrays"))throw Error("regl-error2d: `ANGLE_instanced_arrays` extension should be enabled");var r,u,p,d,v,g,y=t._gl,m={color:"black",capSize:5,lineWidth:1,opacity:1,viewport:null,range:null,offset:0,count:0,bounds:null,positions:[],errors:[]},x=[];return d=t.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array(0)}),u=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),p=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),v=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),g=t.buffer({usage:"static",type:"float",data:h}),T(e),r=t({vert:"\n\t\tprecision highp float;\n\n\t\tattribute vec2 position, positionFract;\n\t\tattribute vec4 error;\n\t\tattribute vec4 color;\n\n\t\tattribute vec2 direction, lineOffset, capOffset;\n\n\t\tuniform vec4 viewport;\n\t\tuniform float lineWidth, capSize;\n\t\tuniform vec2 scale, scaleFract, translate, translateFract;\n\n\t\tvarying vec4 fragColor;\n\n\t\tvoid main() {\n\t\t\tfragColor = color / 255.;\n\n\t\t\tvec2 pixelOffset = lineWidth * lineOffset + (capSize + lineWidth) * capOffset;\n\n\t\t\tvec2 dxy = -step(.5, direction.xy) * error.xz + step(direction.xy, vec2(-.5)) * error.yw;\n\n\t\t\tvec2 position = position + dxy;\n\n\t\t\tvec2 pos = (position + translate) * scale\n\t\t\t\t+ (positionFract + translateFract) * scale\n\t\t\t\t+ (position + translate) * scaleFract\n\t\t\t\t+ (positionFract + translateFract) * scaleFract;\n\n\t\t\tpos += pixelOffset / viewport.zw;\n\n\t\t\tgl_Position = vec4(pos * 2. - 1., 0, 1);\n\t\t}\n\t\t",frag:"\n\t\tprecision highp float;\n\n\t\tvarying vec4 fragColor;\n\n\t\tuniform float opacity;\n\n\t\tvoid main() {\n\t\t\tgl_FragColor = fragColor;\n\t\t\tgl_FragColor.a *= opacity;\n\t\t}\n\t\t",uniforms:{range:t.prop("range"),lineWidth:t.prop("lineWidth"),capSize:t.prop("capSize"),opacity:t.prop("opacity"),scale:t.prop("scale"),translate:t.prop("translate"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{color:{buffer:d,offset:function(t,e){return 4*e.offset},divisor:1},position:{buffer:u,offset:function(t,e){return 8*e.offset},divisor:1},positionFract:{buffer:p,offset:function(t,e){return 8*e.offset},divisor:1},error:{buffer:v,offset:function(t,e){return 16*e.offset},divisor:1},direction:{buffer:g,stride:24,offset:0},lineOffset:{buffer:g,stride:24,offset:8},capOffset:{buffer:g,stride:24,offset:16}},primitive:"triangles",blend:{enable:!0,color:[0,0,0,0],equation:{rgb:"add",alpha:"add"},func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},depth:{enable:!1},scissor:{enable:!0,box:t.prop("viewport")},viewport:t.prop("viewport"),stencil:!1,instances:t.prop("count"),count:h.length}),s(b,{update:T,draw:_,destroy:k,regl:t,gl:y,canvas:y.canvas,groups:x}),b;function b(t){t?T(t):null===t&&k(),_()}function _(e){if("number"==typeof e)return w(e);e&&!Array.isArray(e)&&(e=[e]),t._refresh(),x.forEach((function(t,r){t&&(e&&(e[r]?t.draw=!0:t.draw=!1),t.draw?w(r):t.draw=!0)}))}function w(t){"number"==typeof t&&(t=x[t]),null!=t&&t&&t.count&&t.color&&t.opacity&&t.positions&&t.positions.length>1&&(t.scaleRatio=[t.scale[0]*t.viewport.width,t.scale[1]*t.viewport.height],r(t),t.after&&t.after(t))}function T(t){if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var e=0,r=0;if(b.groups=x=t.map((function(t,u){var c=x[u];return t?("function"==typeof t?t={after:t}:"number"==typeof t[0]&&(t={positions:t}),t=o(t,{color:"color colors fill",capSize:"capSize cap capsize cap-size",lineWidth:"lineWidth line-width width line thickness",opacity:"opacity alpha",range:"range dataBox",viewport:"viewport viewBox",errors:"errors error",positions:"positions position data points"}),c||(x[u]=c={id:u,scale:null,translate:null,scaleFract:null,translateFract:null,draw:!0},t=s({},m,t)),a(c,t,[{lineWidth:function(t){return.5*+t},capSize:function(t){return.5*+t},opacity:parseFloat,errors:function(t){return t=l(t),r+=t.length,t},positions:function(t,r){return t=l(t,"float64"),r.count=Math.floor(t.length/2),r.bounds=n(t,2),r.offset=e,e+=r.count,t}},{color:function(t,e){var r=e.count;if(t||(t="transparent"),!Array.isArray(t)||"number"==typeof t[0]){var n=t;t=Array(r);for(var a=0;a<r;a++)t[a]=n}if(t.length<r)throw Error("Not enough colors");for(var o=new Uint8Array(4*r),s=0;s<r;s++){var l=i(t[s],"uint8");o.set(l,4*s)}return o},range:function(t,e,r){var n=e.bounds;return t||(t=n),e.scale=[1/(t[2]-t[0]),1/(t[3]-t[1])],e.translate=[-t[0],-t[1]],e.scaleFract=f(e.scale),e.translateFract=f(e.translate),t},viewport:function(t){var e;return Array.isArray(t)?e={x:t[0],y:t[1],width:t[2]-t[0],height:t[3]-t[1]}:t?(e={x:t.x||t.left||0,y:t.y||t.top||0},t.right?e.width=t.right-e.x:e.width=t.w||t.width||0,t.bottom?e.height=t.bottom-e.y:e.height=t.h||t.height||0):e={x:0,y:0,width:y.drawingBufferWidth,height:y.drawingBufferHeight},e}}]),c):c})),e||r){var h=x.reduce((function(t,e,r){return t+(e?e.count:0)}),0),g=new Float64Array(2*h),_=new Uint8Array(4*h),w=new Float32Array(4*h);x.forEach((function(t,e){if(t){var r=t.positions,n=t.count,i=t.offset,a=t.color,o=t.errors;n&&(_.set(a,4*i),w.set(o,4*i),g.set(r,2*i))}}));var T=c(g);u(T);var k=f(g,T);p(k),d(_),v(w)}}}function k(){u.destroy(),p.destroy(),d.destroy(),v.destroy(),g.destroy()}};var h=[[1,0,0,1,0,0],[1,0,0,-1,0,0],[-1,0,0,-1,0,0],[-1,0,0,-1,0,0],[-1,0,0,1,0,0],[1,0,0,1,0,0],[1,0,-1,0,0,1],[1,0,-1,0,0,-1],[1,0,1,0,0,-1],[1,0,1,0,0,-1],[1,0,1,0,0,1],[1,0,-1,0,0,1],[-1,0,-1,0,0,1],[-1,0,-1,0,0,-1],[-1,0,1,0,0,-1],[-1,0,1,0,0,-1],[-1,0,1,0,0,1],[-1,0,-1,0,0,1],[0,1,1,0,0,0],[0,1,-1,0,0,0],[0,-1,-1,0,0,0],[0,-1,-1,0,0,0],[0,1,1,0,0,0],[0,-1,1,0,0,0],[0,1,0,-1,1,0],[0,1,0,-1,-1,0],[0,1,0,1,-1,0],[0,1,0,1,1,0],[0,1,0,-1,1,0],[0,1,0,1,-1,0],[0,-1,0,-1,1,0],[0,-1,0,-1,-1,0],[0,-1,0,1,-1,0],[0,-1,0,1,1,0],[0,-1,0,-1,1,0],[0,-1,0,1,-1,0]]},46075:function(t,e,r){"use strict";var n=r(25075),i=r(21527),a=r(56131),o=r(56068),s=r(71299),l=r(30120),u=r(11474),c=r(54),f=r(57060),h=f.float32,p=f.fract32,d=r(83522),v=r(18863),g=r(6851);function y(t,e){if(!(this instanceof y))return new y(t,e);if("function"==typeof t?(e||(e={}),e.regl=t):e=t,e.length&&(e.positions=e),!(t=e.regl).hasExtension("ANGLE_instanced_arrays"))throw Error("regl-error2d: `ANGLE_instanced_arrays` extension should be enabled");this.gl=t._gl,this.regl=t,this.passes=[],this.shaders=y.shaders.has(t)?y.shaders.get(t):y.shaders.set(t,y.createShaders(t)).get(t),this.update(e)}t.exports=y,y.dashMult=2,y.maxPatternLength=256,y.precisionThreshold=3e6,y.maxPoints=1e4,y.maxLines=2048,y.shaders=new d,y.createShaders=function(t){var e,r=t.buffer({usage:"static",type:"float",data:[0,1,0,0,1,1,1,0]}),n={primitive:"triangle strip",instances:t.prop("count"),count:4,offset:0,uniforms:{miterMode:function(t,e){return"round"===e.join?2:1},miterLimit:t.prop("miterLimit"),scale:t.prop("scale"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),translate:t.prop("translate"),thickness:t.prop("thickness"),dashTexture:t.prop("dashTexture"),opacity:t.prop("opacity"),pixelRatio:t.context("pixelRatio"),id:t.prop("id"),dashLength:t.prop("dashLength"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]},depth:t.prop("depth")},blend:{enable:!0,color:[0,0,0,0],equation:{rgb:"add",alpha:"add"},func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},depth:{enable:function(t,e){return!e.overlay}},stencil:{enable:!1},scissor:{enable:!0,box:t.prop("viewport")},viewport:t.prop("viewport")},i=t(a({vert:o(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 aCoord, bCoord, aCoordFract, bCoordFract;\nattribute vec4 color;\nattribute float lineEnd, lineTop;\n\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float thickness, pixelRatio, id, depth;\nuniform vec4 viewport;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\n\nvec2 project(vec2 position, vec2 positionFract, vec2 scale, vec2 scaleFract, vec2 translate, vec2 translateFract) {\n\t// the order is important\n\treturn position * scale + translate\n       + positionFract * scale + translateFract\n       + position * scaleFract\n       + positionFract * scaleFract;\n}\n\nvoid main() {\n\tfloat lineStart = 1. - lineEnd;\n\tfloat lineOffset = lineTop * 2. - 1.;\n\n\tvec2 diff = (bCoord + bCoordFract - aCoord - aCoordFract);\n\ttangent = normalize(diff * scale * viewport.zw);\n\tvec2 normal = vec2(-tangent.y, tangent.x);\n\n\tvec2 position = project(aCoord, aCoordFract, scale, scaleFract, translate, translateFract) * lineStart\n\t\t+ project(bCoord, bCoordFract, scale, scaleFract, translate, translateFract) * lineEnd\n\n\t\t+ thickness * normal * .5 * lineOffset / viewport.zw;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nuniform float dashLength, pixelRatio, thickness, opacity, id;\nuniform sampler2D dashTexture;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\n\nvoid main() {\n\tfloat alpha = 1.;\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25;\n\tfloat dash = texture2D(dashTexture, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n"]),attributes:{lineEnd:{buffer:r,divisor:0,stride:8,offset:0},lineTop:{buffer:r,divisor:0,stride:8,offset:4},aCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:8,divisor:1},bCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:16,divisor:1},aCoordFract:{buffer:t.prop("positionFractBuffer"),stride:8,offset:8,divisor:1},bCoordFract:{buffer:t.prop("positionFractBuffer"),stride:8,offset:16,divisor:1},color:{buffer:t.prop("colorBuffer"),stride:4,offset:0,divisor:1}}},n));try{e=t(a({cull:{enable:!0,face:"back"},vert:o(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 aCoord, bCoord, nextCoord, prevCoord;\nattribute vec4 aColor, bColor;\nattribute float lineEnd, lineTop;\n\nuniform vec2 scale, translate;\nuniform float thickness, pixelRatio, id, depth;\nuniform vec4 viewport;\nuniform float miterLimit, miterMode;\n\nvarying vec4 fragColor;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 tangent;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nconst float REVERSE_THRESHOLD = -.875;\nconst float MIN_DIFF = 1e-6;\n\n// TODO: possible optimizations: avoid overcalculating all for vertices and calc just one instead\n// TODO: precalculate dot products, normalize things beforehead etc.\n// TODO: refactor to rectangular algorithm\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nbool isNaN( float val ){\n  return ( val < 0.0 || 0.0 < val || val == 0.0 ) ? false : true;\n}\n\nvoid main() {\n\tvec2 aCoord = aCoord, bCoord = bCoord, prevCoord = prevCoord, nextCoord = nextCoord;\n\n  vec2 adjustedScale;\n  adjustedScale.x = (abs(scale.x) < MIN_DIFF) ? MIN_DIFF : scale.x;\n  adjustedScale.y = (abs(scale.y) < MIN_DIFF) ? MIN_DIFF : scale.y;\n\n  vec2 scaleRatio = adjustedScale * viewport.zw;\n\tvec2 normalWidth = thickness / scaleRatio;\n\n\tfloat lineStart = 1. - lineEnd;\n\tfloat lineBot = 1. - lineTop;\n\n\tfragColor = (lineStart * aColor + lineEnd * bColor) / 255.;\n\n\tif (isNaN(aCoord.x) || isNaN(aCoord.y) || isNaN(bCoord.x) || isNaN(bCoord.y)) return;\n\n\tif (aCoord == prevCoord) prevCoord = aCoord + normalize(bCoord - aCoord);\n\tif (bCoord == nextCoord) nextCoord = bCoord - normalize(bCoord - aCoord);\n\n\tvec2 prevDiff = aCoord - prevCoord;\n\tvec2 currDiff = bCoord - aCoord;\n\tvec2 nextDiff = nextCoord - bCoord;\n\n\tvec2 prevTangent = normalize(prevDiff * scaleRatio);\n\tvec2 currTangent = normalize(currDiff * scaleRatio);\n\tvec2 nextTangent = normalize(nextDiff * scaleRatio);\n\n\tvec2 prevNormal = vec2(-prevTangent.y, prevTangent.x);\n\tvec2 currNormal = vec2(-currTangent.y, currTangent.x);\n\tvec2 nextNormal = vec2(-nextTangent.y, nextTangent.x);\n\n\tvec2 startJoinDirection = normalize(prevTangent - currTangent);\n\tvec2 endJoinDirection = normalize(currTangent - nextTangent);\n\n\t// collapsed/unidirectional segment cases\n\t// FIXME: there should be more elegant solution\n\tvec2 prevTanDiff = abs(prevTangent - currTangent);\n\tvec2 nextTanDiff = abs(nextTangent - currTangent);\n\tif (max(prevTanDiff.x, prevTanDiff.y) < MIN_DIFF) {\n\t\tstartJoinDirection = currNormal;\n\t}\n\tif (max(nextTanDiff.x, nextTanDiff.y) < MIN_DIFF) {\n\t\tendJoinDirection = currNormal;\n\t}\n\tif (aCoord == bCoord) {\n\t\tendJoinDirection = startJoinDirection;\n\t\tcurrNormal = prevNormal;\n\t\tcurrTangent = prevTangent;\n\t}\n\n\ttangent = currTangent;\n\n\t//calculate join shifts relative to normals\n\tfloat startJoinShift = dot(currNormal, startJoinDirection);\n\tfloat endJoinShift = dot(currNormal, endJoinDirection);\n\n\tfloat startMiterRatio = abs(1. / startJoinShift);\n\tfloat endMiterRatio = abs(1. / endJoinShift);\n\n\tvec2 startJoin = startJoinDirection * startMiterRatio;\n\tvec2 endJoin = endJoinDirection * endMiterRatio;\n\n\tvec2 startTopJoin, startBotJoin, endTopJoin, endBotJoin;\n\tstartTopJoin = sign(startJoinShift) * startJoin * .5;\n\tstartBotJoin = -startTopJoin;\n\n\tendTopJoin = sign(endJoinShift) * endJoin * .5;\n\tendBotJoin = -endTopJoin;\n\n\tvec2 aTopCoord = aCoord + normalWidth * startTopJoin;\n\tvec2 bTopCoord = bCoord + normalWidth * endTopJoin;\n\tvec2 aBotCoord = aCoord + normalWidth * startBotJoin;\n\tvec2 bBotCoord = bCoord + normalWidth * endBotJoin;\n\n\t//miter anti-clipping\n\tfloat baClipping = distToLine(bCoord, aCoord, aBotCoord) / dot(normalize(normalWidth * endBotJoin), normalize(normalWidth.yx * vec2(-startBotJoin.y, startBotJoin.x)));\n\tfloat abClipping = distToLine(aCoord, bCoord, bTopCoord) / dot(normalize(normalWidth * startBotJoin), normalize(normalWidth.yx * vec2(-endBotJoin.y, endBotJoin.x)));\n\n\t//prevent close to reverse direction switch\n\tbool prevReverse = dot(currTangent, prevTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, prevNormal)) * min(length(prevDiff), length(currDiff)) <  length(normalWidth * currNormal);\n\tbool nextReverse = dot(currTangent, nextTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, nextNormal)) * min(length(nextDiff), length(currDiff)) <  length(normalWidth * currNormal);\n\n\tif (prevReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * startJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / startMiterRatio, 1.);\n\t\taBotCoord = aCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\taTopCoord = aCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!nextReverse && baClipping > 0. && baClipping < length(normalWidth * endBotJoin)) {\n\t\t//handle miter clipping\n\t\tbTopCoord -= normalWidth * endTopJoin;\n\t\tbTopCoord += normalize(endTopJoin * normalWidth) * baClipping;\n\t}\n\n\tif (nextReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);\n\t\tbBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\tbTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {\n\t\t//handle miter clipping\n\t\taBotCoord -= normalWidth * startBotJoin;\n\t\taBotCoord += normalize(startBotJoin * normalWidth) * abClipping;\n\t}\n\n\tvec2 aTopPosition = (aTopCoord) * adjustedScale + translate;\n\tvec2 aBotPosition = (aBotCoord) * adjustedScale + translate;\n\n\tvec2 bTopPosition = (bTopCoord) * adjustedScale + translate;\n\tvec2 bBotPosition = (bBotCoord) * adjustedScale + translate;\n\n\t//position is normalized 0..1 coord on the screen\n\tvec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;\n\n\tstartCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\tendCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\n\tgl_Position = vec4(position  * 2.0 - 1.0, depth, 1);\n\n\tenableStartMiter = step(dot(currTangent, prevTangent), .5);\n\tenableEndMiter = step(dot(currTangent, nextTangent), .5);\n\n\t//bevel miter cutoffs\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x)  / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n\n\t//round miter cutoffs\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x)  / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nuniform float dashLength, pixelRatio, thickness, opacity, id, miterMode;\nuniform sampler2D dashTexture;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nvoid main() {\n\tfloat alpha = 1., distToStart, distToEnd;\n\tfloat cutoff = thickness * .5;\n\n\t//bevel miter\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToStart + 1., 0.), 1.);\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToEnd + 1., 0.), 1.);\n\t\t}\n\t}\n\n\t// round miter\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - startCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - endCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\t}\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25;\n\tfloat dash = texture2D(dashTexture, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n"]),attributes:{lineEnd:{buffer:r,divisor:0,stride:8,offset:0},lineTop:{buffer:r,divisor:0,stride:8,offset:4},aColor:{buffer:t.prop("colorBuffer"),stride:4,offset:0,divisor:1},bColor:{buffer:t.prop("colorBuffer"),stride:4,offset:4,divisor:1},prevCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:0,divisor:1},aCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:8,divisor:1},bCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:16,divisor:1},nextCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:24,divisor:1}}},n))}catch(t){e=i}return{fill:t({primitive:"triangle",elements:function(t,e){return e.triangles},offset:0,vert:o(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 position, positionFract;\n\nuniform vec4 color;\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio, id;\nuniform vec4 viewport;\nuniform float opacity;\n\nvarying vec4 fragColor;\n\nconst float MAX_LINES = 256.;\n\nvoid main() {\n\tfloat depth = (MAX_LINES - 4. - id) / (MAX_LINES);\n\n\tvec2 position = position * scale + translate\n       + positionFract * scale + translateFract\n       + position * scaleFract\n       + positionFract * scaleFract;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n\tfragColor.a *= opacity;\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n\tgl_FragColor = fragColor;\n}\n"]),uniforms:{scale:t.prop("scale"),color:t.prop("fill"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),translate:t.prop("translate"),opacity:t.prop("opacity"),pixelRatio:t.context("pixelRatio"),id:t.prop("id"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{position:{buffer:t.prop("positionBuffer"),stride:8,offset:8},positionFract:{buffer:t.prop("positionFractBuffer"),stride:8,offset:8}},blend:n.blend,depth:{enable:!1},scissor:n.scissor,stencil:n.stencil,viewport:n.viewport}),rect:i,miter:e}},y.defaults={dashes:null,join:"miter",miterLimit:1,thickness:10,cap:"square",color:"black",opacity:1,overlay:!1,viewport:null,range:null,close:!1,fill:null},y.prototype.render=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];e.length&&(t=this).update.apply(t,e),this.draw()},y.prototype.draw=function(){for(var t=this,e=[],r=arguments.length;r--;)e[r]=arguments[r];return(e.length?e:this.passes).forEach((function(e,r){var n;if(e&&Array.isArray(e))return(n=t).draw.apply(n,e);"number"==typeof e&&(e=t.passes[e]),e&&e.count>1&&e.opacity&&(t.regl._refresh(),e.fill&&e.triangles&&e.triangles.length>2&&t.shaders.fill(e),e.thickness&&(e.scale[0]*e.viewport.width>y.precisionThreshold||e.scale[1]*e.viewport.height>y.precisionThreshold||"rect"===e.join||!e.join&&(e.thickness<=2||e.count>=y.maxPoints)?t.shaders.rect(e):t.shaders.miter(e)))})),this},y.prototype.update=function(t){var e=this;if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var r=this.regl,o=this.gl;if(t.forEach((function(t,f){var d=e.passes[f];if(void 0!==t)if(null!==t){if("number"==typeof t[0]&&(t={positions:t}),t=s(t,{positions:"positions points data coords",thickness:"thickness lineWidth lineWidths line-width linewidth width stroke-width strokewidth strokeWidth",join:"lineJoin linejoin join type mode",miterLimit:"miterlimit miterLimit",dashes:"dash dashes dasharray dash-array dashArray",color:"color colour stroke colors colours stroke-color strokeColor",fill:"fill fill-color fillColor",opacity:"alpha opacity",overlay:"overlay crease overlap intersect",close:"closed close closed-path closePath",range:"range dataBox",viewport:"viewport viewBox",hole:"holes hole hollow",splitNull:"splitNull"}),d||(e.passes[f]=d={id:f,scale:null,scaleFract:null,translate:null,translateFract:null,count:0,hole:[],depth:0,dashLength:1,dashTexture:r.texture({channels:1,data:new Uint8Array([255]),width:1,height:1,mag:"linear",min:"linear"}),colorBuffer:r.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array}),positionBuffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array}),positionFractBuffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array})},t=a({},y.defaults,t)),null!=t.thickness&&(d.thickness=parseFloat(t.thickness)),null!=t.opacity&&(d.opacity=parseFloat(t.opacity)),null!=t.miterLimit&&(d.miterLimit=parseFloat(t.miterLimit)),null!=t.overlay&&(d.overlay=!!t.overlay,f<y.maxLines&&(d.depth=2*(y.maxLines-1-f%y.maxLines)/y.maxLines-1)),null!=t.join&&(d.join=t.join),null!=t.hole&&(d.hole=t.hole),null!=t.fill&&(d.fill=t.fill?n(t.fill,"uint8"):null),null!=t.viewport&&(d.viewport=v(t.viewport)),d.viewport||(d.viewport=v([o.drawingBufferWidth,o.drawingBufferHeight])),null!=t.close&&(d.close=t.close),null===t.positions&&(t.positions=[]),t.positions){var m,x;if(t.positions.x&&t.positions.y){var b=t.positions.x,_=t.positions.y;x=d.count=Math.max(b.length,_.length),m=new Float64Array(2*x);for(var w=0;w<x;w++)m[2*w]=b[w],m[2*w+1]=_[w]}else m=l(t.positions,"float64"),x=d.count=Math.floor(m.length/2);var T=d.bounds=i(m,2);if(d.fill){for(var k=[],A={},M=0,S=0,E=0,L=d.count;S<L;S++){var C=m[2*S],P=m[2*S+1];isNaN(C)||isNaN(P)||null==C||null==P?(C=m[2*M],P=m[2*M+1],A[S]=M):M=S,k[E++]=C,k[E++]=P}if(t.splitNull){d.count-1 in A||(A[d.count]=d.count-1);var O=Object.keys(A).map(Number).sort((function(t,e){return t-e})),I=[],D=0,z=null!=d.hole?d.hole[0]:null;if(null!=z){var R=g(O,(function(t){return t>=z}));(O=O.slice(0,R)).push(z)}for(var F=function(t){var e=k.slice(2*D,2*O[t]).concat(z?k.slice(2*z):[]),r=(d.hole||[]).map((function(e){return e-z+(O[t]-D)})),n=u(e,r);n=n.map((function(e){return e+D+(e+D<O[t]?0:z-O[t])})),I.push.apply(I,n),D=O[t]+1},B=0;B<O.length;B++)F(B);for(var N=0,j=I.length;N<j;N++)null!=A[I[N]]&&(I[N]=A[I[N]]);d.triangles=I}else{for(var U=u(k,d.hole||[]),V=0,H=U.length;V<H;V++)null!=A[U[V]]&&(U[V]=A[U[V]]);d.triangles=U}}var q=new Float64Array(m);c(q,2,T);var G=new Float64Array(2*x+6);d.close?m[0]===m[2*x-2]&&m[1]===m[2*x-1]?(G[0]=q[2*x-4],G[1]=q[2*x-3]):(G[0]=q[2*x-2],G[1]=q[2*x-1]):(G[0]=q[0],G[1]=q[1]),G.set(q,2),d.close?m[0]===m[2*x-2]&&m[1]===m[2*x-1]?(G[2*x+2]=q[2],G[2*x+3]=q[3],d.count-=1):(G[2*x+2]=q[0],G[2*x+3]=q[1],G[2*x+4]=q[2],G[2*x+5]=q[3]):(G[2*x+2]=q[2*x-2],G[2*x+3]=q[2*x-1],G[2*x+4]=q[2*x-2],G[2*x+5]=q[2*x-1]);var Z=h(G);d.positionBuffer(Z);var Y=p(G,Z);d.positionFractBuffer(Y)}if(t.range?d.range=t.range:d.range||(d.range=d.bounds),(t.range||t.positions)&&d.count){var W=d.bounds,X=W[2]-W[0],J=W[3]-W[1],K=d.range[2]-d.range[0],$=d.range[3]-d.range[1];d.scale=[X/K,J/$],d.translate=[-d.range[0]/K+W[0]/K||0,-d.range[1]/$+W[1]/$||0],d.scaleFract=p(d.scale),d.translateFract=p(d.translate)}if(t.dashes){var Q,tt=0;if(!t.dashes||t.dashes.length<2)tt=1,Q=new Uint8Array([255,255,255,255,255,255,255,255]);else{tt=0;for(var et=0;et<t.dashes.length;++et)tt+=t.dashes[et];Q=new Uint8Array(tt*y.dashMult);for(var rt=0,nt=255,it=0;it<2;it++)for(var at=0;at<t.dashes.length;++at){for(var ot=0,st=t.dashes[at]*y.dashMult*.5;ot<st;++ot)Q[rt++]=nt;nt^=255}}d.dashLength=tt,d.dashTexture({channels:1,data:Q,width:Q.length,height:1,mag:"linear",min:"linear"},0,0)}if(t.color){var lt=d.count,ut=t.color;ut||(ut="transparent");var ct=new Uint8Array(4*lt+4);if(Array.isArray(ut)&&"number"!=typeof ut[0]){for(var ft=0;ft<lt;ft++){var ht=n(ut[ft],"uint8");ct.set(ht,4*ft)}ct.set(n(ut[0],"uint8"),4*lt)}else for(var pt=n(ut,"uint8"),dt=0;dt<lt+1;dt++)ct.set(pt,4*dt);d.colorBuffer({usage:"dynamic",type:"uint8",data:ct})}}else e.passes[f]=null})),t.length<this.passes.length){for(var f=t.length;f<this.passes.length;f++){var d=this.passes[f];d&&(d.colorBuffer.destroy(),d.positionBuffer.destroy(),d.dashTexture.destroy())}this.passes.length=t.length}for(var m=[],x=0;x<this.passes.length;x++)null!==this.passes[x]&&m.push(this.passes[x]);return this.passes=m,this}},y.prototype.destroy=function(){return this.passes.forEach((function(t){t.colorBuffer.destroy(),t.positionBuffer.destroy(),t.dashTexture.destroy()})),this.passes.length=0,this}},11870:function(t,e,r){"use strict";function n(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a=[],o=!0,s=!1;try{for(r=r.call(t);!(o=(n=r.next()).done)&&(a.push(n.value),!e||a.length!==e);o=!0);}catch(t){s=!0,i=t}finally{try{o||null==r.return||r.return()}finally{if(s)throw i}}return a}}(t,e)||i(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){if(t){if("string"==typeof t)return a(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(t,e):void 0}}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var o=r(25075),s=r(21527),l=r(6475),u=r(88294),c=r(56131),f=r(56068),h=r(71299),p=r(93447),d=r(30120),v=r(62683),g=r(57060),y=r(18863),m=x;function x(t,e){var r=this;if(!(this instanceof x))return new x(t,e);"function"==typeof t?(e||(e={}),e.regl=t):(e=t,t=null),e&&e.length&&(e.positions=e);var n,i=(t=e.regl)._gl,a=[];this.tooManyColors=v,n=t.texture({data:new Uint8Array(1020),width:255,height:1,type:"uint8",format:"rgba",wrapS:"clamp",wrapT:"clamp",mag:"nearest",min:"nearest"}),c(this,{regl:t,gl:i,groups:[],markerCache:[null],markerTextures:[null],palette:a,paletteIds:{},paletteTexture:n,maxColors:255,maxSize:100,canvas:i.canvas}),this.update(e);var o={uniforms:{constPointSize:!!e.constPointSize,opacity:t.prop("opacity"),paletteSize:function(t,e){return[r.tooManyColors?0:255,n.height]},pixelRatio:t.context("pixelRatio"),scale:t.prop("scale"),scaleFract:t.prop("scaleFract"),translate:t.prop("translate"),translateFract:t.prop("translateFract"),markerTexture:t.prop("markerTexture"),paletteTexture:n},attributes:{x:function(t,e){return e.xAttr||{buffer:e.positionBuffer,stride:8,offset:0}},y:function(t,e){return e.yAttr||{buffer:e.positionBuffer,stride:8,offset:4}},xFract:function(t,e){return e.xAttr?{constant:[0,0]}:{buffer:e.positionFractBuffer,stride:8,offset:0}},yFract:function(t,e){return e.yAttr?{constant:[0,0]}:{buffer:e.positionFractBuffer,stride:8,offset:4}},size:function(t,e){return e.size.length?{buffer:e.sizeBuffer,stride:2,offset:0}:{constant:[Math.round(255*e.size/r.maxSize)]}},borderSize:function(t,e){return e.borderSize.length?{buffer:e.sizeBuffer,stride:2,offset:1}:{constant:[Math.round(255*e.borderSize/r.maxSize)]}},colorId:function(t,e){return e.color.length?{buffer:e.colorBuffer,stride:r.tooManyColors?8:4,offset:0}:{constant:r.tooManyColors?a.slice(4*e.color,4*e.color+4):[e.color]}},borderColorId:function(t,e){return e.borderColor.length?{buffer:e.colorBuffer,stride:r.tooManyColors?8:4,offset:r.tooManyColors?4:2}:{constant:r.tooManyColors?a.slice(4*e.borderColor,4*e.borderColor+4):[e.borderColor]}},isActive:function(t,e){return!0===e.activation?{constant:[1]}:e.activation?e.activation:{constant:[0]}}},blend:{enable:!0,color:[0,0,0,1],func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},scissor:{enable:!0,box:t.prop("viewport")},viewport:t.prop("viewport"),stencil:{enable:!1},depth:{enable:!1},elements:t.prop("elements"),count:t.prop("count"),offset:t.prop("offset"),primitive:"points"},s=c({},o);s.frag=f(["precision highp float;\n#define GLSLIFY 1\n\nuniform float opacity;\nuniform sampler2D markerTexture;\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragWidth, fragBorderColorLevel, fragColorLevel;\n\nfloat smoothStep(float x, float y) {\n  return 1.0 / (1.0 + exp(50.0*(x - y)));\n}\n\nvoid main() {\n  float dist = texture2D(markerTexture, gl_PointCoord).r, delta = fragWidth;\n\n  // max-distance alpha\n  if (dist < 0.003) discard;\n\n  // null-border case\n  if (fragBorderColorLevel == fragColorLevel || fragBorderColor.a == 0.) {\n    float colorAmt = smoothstep(.5 - delta, .5 + delta, dist);\n    gl_FragColor = vec4(fragColor.rgb, colorAmt * fragColor.a * opacity);\n  }\n  else {\n    float borderColorAmt = smoothstep(fragBorderColorLevel - delta, fragBorderColorLevel + delta, dist);\n    float colorAmt = smoothstep(fragColorLevel - delta, fragColorLevel + delta, dist);\n\n    vec4 color = fragBorderColor;\n    color.a *= borderColorAmt;\n    color = mix(color, fragColor, colorAmt);\n    color.a *= opacity;\n\n    gl_FragColor = color;\n  }\n\n}\n"]),s.vert=f(["precision highp float;\n#define GLSLIFY 1\n\nattribute float x, y, xFract, yFract;\nattribute float size, borderSize;\nattribute vec4 colorId, borderColorId;\nattribute float isActive;\n\nuniform bool constPointSize;\nuniform float pixelRatio;\nuniform vec2 scale, scaleFract, translate, translateFract, paletteSize;\nuniform sampler2D paletteTexture;\n\nconst float maxSize = 100.;\nconst float borderLevel = .5;\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragPointSize, fragBorderRadius, fragWidth, fragBorderColorLevel, fragColorLevel;\n\nfloat pointSizeScale = (constPointSize) ? 2. : pixelRatio;\n\nbool isDirect = (paletteSize.x < 1.);\n\nvec4 getColor(vec4 id) {\n  return isDirect ? id / 255. : texture2D(paletteTexture,\n    vec2(\n      (id.x + .5) / paletteSize.x,\n      (id.y + .5) / paletteSize.y\n    )\n  );\n}\n\nvoid main() {\n  // ignore inactive points\n  if (isActive == 0.) return;\n\n  vec2 position = vec2(x, y);\n  vec2 positionFract = vec2(xFract, yFract);\n\n  vec4 color = getColor(colorId);\n  vec4 borderColor = getColor(borderColorId);\n\n  float size = size * maxSize / 255.;\n  float borderSize = borderSize * maxSize / 255.;\n\n  gl_PointSize = 2. * size * pointSizeScale;\n  fragPointSize = size * pixelRatio;\n\n  vec2 pos = (position + translate) * scale\n      + (positionFract + translateFract) * scale\n      + (position + translate) * scaleFract\n      + (positionFract + translateFract) * scaleFract;\n\n  gl_Position = vec4(pos * 2. - 1., 0., 1.);\n\n  fragColor = color;\n  fragBorderColor = borderColor;\n  fragWidth = 1. / gl_PointSize;\n\n  fragBorderColorLevel = clamp(borderLevel - borderLevel * borderSize / size, 0., 1.);\n  fragColorLevel = clamp(borderLevel + (1. - borderLevel) * borderSize / size, 0., 1.);\n}"]),this.drawMarker=t(s);var l=c({},o);l.frag=f(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragBorderRadius, fragWidth;\n\nuniform float opacity;\n\nfloat smoothStep(float edge0, float edge1, float x) {\n\tfloat t;\n\tt = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\n\treturn t * t * (3.0 - 2.0 * t);\n}\n\nvoid main() {\n\tfloat radius, alpha = 1.0, delta = fragWidth;\n\n\tradius = length(2.0 * gl_PointCoord.xy - 1.0);\n\n\tif (radius > 1.0 + delta) {\n\t\tdiscard;\n\t}\n\n\talpha -= smoothstep(1.0 - delta, 1.0 + delta, radius);\n\n\tfloat borderRadius = fragBorderRadius;\n\tfloat ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius);\n\tvec4 color = mix(fragColor, fragBorderColor, ratio);\n\tcolor.a *= alpha * opacity;\n\tgl_FragColor = color;\n}\n"]),l.vert=f(["precision highp float;\n#define GLSLIFY 1\n\nattribute float x, y, xFract, yFract;\nattribute float size, borderSize;\nattribute vec4 colorId, borderColorId;\nattribute float isActive;\n\nuniform bool constPointSize;\nuniform float pixelRatio;\nuniform vec2 paletteSize, scale, scaleFract, translate, translateFract;\nuniform sampler2D paletteTexture;\n\nconst float maxSize = 100.;\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragBorderRadius, fragWidth;\n\nfloat pointSizeScale = (constPointSize) ? 2. : pixelRatio;\n\nbool isDirect = (paletteSize.x < 1.);\n\nvec4 getColor(vec4 id) {\n  return isDirect ? id / 255. : texture2D(paletteTexture,\n    vec2(\n      (id.x + .5) / paletteSize.x,\n      (id.y + .5) / paletteSize.y\n    )\n  );\n}\n\nvoid main() {\n  // ignore inactive points\n  if (isActive == 0.) return;\n\n  vec2 position = vec2(x, y);\n  vec2 positionFract = vec2(xFract, yFract);\n\n  vec4 color = getColor(colorId);\n  vec4 borderColor = getColor(borderColorId);\n\n  float size = size * maxSize / 255.;\n  float borderSize = borderSize * maxSize / 255.;\n\n  gl_PointSize = (size + borderSize) * pointSizeScale;\n\n  vec2 pos = (position + translate) * scale\n      + (positionFract + translateFract) * scale\n      + (position + translate) * scaleFract\n      + (positionFract + translateFract) * scaleFract;\n\n  gl_Position = vec4(pos * 2. - 1., 0., 1.);\n\n  fragBorderRadius = 1. - 2. * borderSize / (size + borderSize);\n  fragColor = color;\n  fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor;\n  fragWidth = 1. / gl_PointSize;\n}\n"]),v&&(l.frag=l.frag.replace("smoothstep","smoothStep"),s.frag=s.frag.replace("smoothstep","smoothStep")),this.drawCircle=t(l)}x.defaults={color:"black",borderColor:"transparent",borderSize:0,size:12,opacity:1,marker:void 0,viewport:null,range:null,pixelSize:null,count:0,offset:0,bounds:null,positions:[],snap:1e4},x.prototype.render=function(){return arguments.length&&this.update.apply(this,arguments),this.draw(),this},x.prototype.draw=function(){for(var t=this,e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];var i=this.groups;if(1===r.length&&Array.isArray(r[0])&&(null===r[0][0]||Array.isArray(r[0][0]))&&(r=r[0]),this.regl._refresh(),r.length)for(var a=0;a<r.length;a++)this.drawItem(a,r[a]);else i.forEach((function(e,r){t.drawItem(r)}));return this},x.prototype.drawItem=function(t,e){var r,n=this.groups,o=n[t];if("number"==typeof e&&(t=e,o=n[e],e=null),o&&o.count&&o.opacity){o.activation[0]&&this.drawCircle(this.getMarkerDrawOptions(0,o,e));for(var s=[],l=1;l<o.activation.length;l++)o.activation[l]&&(!0===o.activation[l]||o.activation[l].data.length)&&s.push.apply(s,function(t){if(Array.isArray(t))return a(t)}(r=this.getMarkerDrawOptions(l,o,e))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(r)||i(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());s.length&&this.drawMarker(s)}},x.prototype.getMarkerDrawOptions=function(t,e,r){var i=e.range,a=e.tree,o=e.viewport,s=e.activation,l=e.selectionBuffer,u=e.count;if(this.regl,!a)return r?[c({},e,{markerTexture:this.markerTextures[t],activation:s[t],count:r.length,elements:r,offset:0})]:[c({},e,{markerTexture:this.markerTextures[t],activation:s[t],offset:0})];var f=[],h=a.range(i,{lod:!0,px:[(i[2]-i[0])/o.width,(i[3]-i[1])/o.height]});if(r){for(var p=s[t].data,d=new Uint8Array(u),v=0;v<r.length;v++){var g=r[v];d[g]=p?p[g]:1}l.subdata(d)}for(var y=h.length;y--;){var m=n(h[y],2),x=m[0],b=m[1];f.push(c({},e,{markerTexture:this.markerTextures[t],activation:r?l:s[t],offset:x,count:b-x}))}return f},x.prototype.update=function(){for(var t=this,e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];if(r.length){1===r.length&&Array.isArray(r[0])&&(r=r[0]);var i=this.groups,a=this.gl,o=this.regl,l=this.maxSize,f=this.maxColors,v=this.palette;this.groups=i=r.map((function(e,r){var n=i[r];if(void 0===e)return n;null===e?e={positions:null}:"function"==typeof e?e={ondraw:e}:"number"==typeof e[0]&&(e={positions:e}),null===(e=h(e,{positions:"positions data points",snap:"snap cluster lod tree",size:"sizes size radius",borderSize:"borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline",color:"colors color fill fill-color fillColor",borderColor:"borderColors borderColor stroke stroke-color strokeColor",marker:"markers marker shape",range:"range dataBox databox",viewport:"viewport viewPort viewBox viewbox",opacity:"opacity alpha transparency",bounds:"bound bounds boundaries limits",tooManyColors:"tooManyColors palette paletteMode optimizePalette enablePalette"})).positions&&(e.positions=[]),null!=e.tooManyColors&&(t.tooManyColors=e.tooManyColors),n||(i[r]=n={id:r,scale:null,translate:null,scaleFract:null,translateFract:null,activation:[],selectionBuffer:o.buffer({data:new Uint8Array(0),usage:"stream",type:"uint8"}),sizeBuffer:o.buffer({data:new Uint8Array(0),usage:"dynamic",type:"uint8"}),colorBuffer:o.buffer({data:new Uint8Array(0),usage:"dynamic",type:"uint8"}),positionBuffer:o.buffer({data:new Uint8Array(0),usage:"dynamic",type:"float"}),positionFractBuffer:o.buffer({data:new Uint8Array(0),usage:"dynamic",type:"float"})},e=c({},x.defaults,e)),e.positions&&!("marker"in e)&&(e.marker=n.marker,delete n.marker),e.marker&&!("positions"in e)&&(e.positions=n.positions,delete n.positions);var m=0,b=0;if(p(n,e,[{snap:!0,size:function(t,e){return null==t&&(t=x.defaults.size),m+=t&&t.length?1:0,t},borderSize:function(t,e){return null==t&&(t=x.defaults.borderSize),m+=t&&t.length?1:0,t},opacity:parseFloat,color:function(e,r){return null==e&&(e=x.defaults.color),e=t.updateColor(e),b++,e},borderColor:function(e,r){return null==e&&(e=x.defaults.borderColor),e=t.updateColor(e),b++,e},bounds:function(t,e,r){return"range"in r||(r.range=null),t},positions:function(t,e,r){var n=e.snap,i=e.positionBuffer,a=e.positionFractBuffer,l=e.selectionBuffer;if(t.x||t.y)return t.x.length?e.xAttr={buffer:o.buffer(t.x),offset:0,stride:4,count:t.x.length}:e.xAttr={buffer:t.x.buffer,offset:4*t.x.offset||0,stride:4*(t.x.stride||1),count:t.x.count},t.y.length?e.yAttr={buffer:o.buffer(t.y),offset:0,stride:4,count:t.y.length}:e.yAttr={buffer:t.y.buffer,offset:4*t.y.offset||0,stride:4*(t.y.stride||1),count:t.y.count},e.count=Math.max(e.xAttr.count,e.yAttr.count),t;t=d(t,"float64");var c=e.count=Math.floor(t.length/2),f=e.bounds=c?s(t,2):null;if(r.range||e.range||(delete e.range,r.range=f),r.marker||e.marker||(delete e.marker,r.marker=null),n&&(!0===n||c>n)?e.tree=u(t,{bounds:f}):n&&n.length&&(e.tree=n),e.tree){var h={primitive:"points",usage:"static",data:e.tree,type:"uint32"};e.elements?e.elements(h):e.elements=o.elements(h)}var p=g.float32(t);return i({data:p,usage:"dynamic"}),a({data:g.fract32(t,p),usage:"dynamic"}),l({data:new Uint8Array(c),type:"uint8",usage:"stream"}),t}},{marker:function(e,r,n){var i=r.activation;if(i.forEach((function(t){return t&&t.destroy&&t.destroy()})),i.length=0,e&&"number"!=typeof e[0]){for(var a=[],s=0,l=Math.min(e.length,r.count);s<l;s++){var u=t.addMarker(e[s]);a[u]||(a[u]=new Uint8Array(r.count)),a[u][s]=1}for(var c=0;c<a.length;c++)if(a[c]){var f={data:a[c],type:"uint8",usage:"static"};i[c]?i[c](f):i[c]=o.buffer(f),i[c].data=a[c]}}else i[t.addMarker(e)]=!0;return e},range:function(t,e,r){var n=e.bounds;if(n)return t||(t=n),e.scale=[1/(t[2]-t[0]),1/(t[3]-t[1])],e.translate=[-t[0],-t[1]],e.scaleFract=g.fract(e.scale),e.translateFract=g.fract(e.translate),t},viewport:function(t){return y(t||[a.drawingBufferWidth,a.drawingBufferHeight])}}]),m){var _=n,w=_.count,T=_.size,k=_.borderSize,A=_.sizeBuffer,M=new Uint8Array(2*w);if(T.length||k.length)for(var S=0;S<w;S++)M[2*S]=Math.round(255*(null==T[S]?T:T[S])/l),M[2*S+1]=Math.round(255*(null==k[S]?k:k[S])/l);A({data:M,usage:"dynamic"})}if(b){var E,L=n,C=L.count,P=L.color,O=L.borderColor,I=L.colorBuffer;if(t.tooManyColors){if(P.length||O.length){E=new Uint8Array(8*C);for(var D=0;D<C;D++){var z=P[D];E[8*D]=v[4*z],E[8*D+1]=v[4*z+1],E[8*D+2]=v[4*z+2],E[8*D+3]=v[4*z+3];var R=O[D];E[8*D+4]=v[4*R],E[8*D+5]=v[4*R+1],E[8*D+6]=v[4*R+2],E[8*D+7]=v[4*R+3]}}}else if(P.length||O.length){E=new Uint8Array(4*C+2);for(var F=0;F<C;F++)null!=P[F]&&(E[4*F]=P[F]%f,E[4*F+1]=Math.floor(P[F]/f)),null!=O[F]&&(E[4*F+2]=O[F]%f,E[4*F+3]=Math.floor(O[F]/f))}I({data:E||new Uint8Array(0),type:"uint8",usage:"dynamic"})}return n}))}},x.prototype.addMarker=function(t){var e,r=this.markerTextures,n=this.regl,i=this.markerCache,a=null==t?0:i.indexOf(t);if(a>=0)return a;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)e=t;else{e=new Uint8Array(t.length);for(var o=0,s=t.length;o<s;o++)e[o]=255*t[o]}var l=Math.floor(Math.sqrt(e.length));return a=r.length,i.push(t),r.push(n.texture({channels:1,data:e,radius:l,mag:"linear",min:"linear"})),a},x.prototype.updateColor=function(t){var e=this.paletteIds,r=this.palette,n=this.maxColors;Array.isArray(t)||(t=[t]);var i=[];if("number"==typeof t[0]){var a=[];if(Array.isArray(t))for(var s=0;s<t.length;s+=4)a.push(t.slice(s,s+4));else for(var u=0;u<t.length;u+=4)a.push(t.subarray(u,u+4));t=a}for(var c=0;c<t.length;c++){var f=t[c];f=o(f,"uint8");var h=l(f,!1);if(null==e[h]){var p=r.length;e[h]=Math.floor(p/4),r[p]=f[0],r[p+1]=f[1],r[p+2]=f[2],r[p+3]=f[3]}i[c]=e[h]}return!this.tooManyColors&&r.length>4*n&&(this.tooManyColors=!0),this.updatePalette(r),1===i.length?i[0]:i},x.prototype.updatePalette=function(t){if(!this.tooManyColors){var e=this.maxColors,r=this.paletteTexture,n=Math.ceil(.25*t.length/e);if(n>1)for(var i=.25*(t=t.slice()).length%e;i<n*e;i++)t.push(0,0,0,0);r.height<n&&r.resize(e,n),r.subimage({width:Math.min(.25*t.length,e),height:n,data:t},0,0)}},x.prototype.destroy=function(){return this.groups.forEach((function(t){t.sizeBuffer.destroy(),t.positionBuffer.destroy(),t.positionFractBuffer.destroy(),t.colorBuffer.destroy(),t.activation.forEach((function(t){return t&&t.destroy&&t.destroy()})),t.selectionBuffer.destroy(),t.elements&&t.elements.destroy()})),this.groups.length=0,this.paletteTexture.destroy(),this.markerTextures.forEach((function(t){return t&&t.destroy&&t.destroy()})),this};var b=r(56131);t.exports=function(t,e){var r=new m(t,e),n=r.render.bind(r);return b(n,{render:n,update:r.update.bind(r),draw:r.draw.bind(r),destroy:r.destroy.bind(r),regl:r.regl,gl:r.gl,canvas:r.gl.canvas,groups:r.groups,markers:r.markerCache,palette:r.palette}),n}},60487:function(t,e,r){"use strict";var n=r(11870),i=r(71299),a=r(21527),o=r(5877),s=r(57471),l=r(18863),u=r(30120);function c(t,e){if(!(this instanceof c))return new c(t,e);this.traces=[],this.passes={},this.regl=t,this.scatter=n(t),this.canvas=this.scatter.canvas}function f(t,e,r){return(null!=t.id?t.id:t)<<16|(255&e)<<8|255&r}function h(t,e,r){var n,i,a,o,s=t[e],l=t[r];return s.length>2?(s[0],s[2],n=s[1],i=s[3]):s.length?(n=s[0],i=s[1]):(s.x,n=s.y,s.x,s.width,i=s.y+s.height),l.length>2?(a=l[0],o=l[2],l[1],l[3]):l.length?(a=l[0],o=l[1]):(a=l.x,l.y,o=l.x+l.width,l.y,l.height),[a,n,o,i]}function p(t){if("number"==typeof t)return[t,t,t,t];if(2===t.length)return[t[0],t[1],t[0],t[1]];var e=l(t);return[e.x,e.y,e.x+e.width,e.y+e.height]}t.exports=c,c.prototype.render=function(){for(var t,e=this,r=[],n=arguments.length;n--;)r[n]=arguments[n];return r.length&&(t=this).update.apply(t,r),this.regl.attributes.preserveDrawingBuffer?this.draw():(this.dirty?null==this.planned&&(this.planned=o((function(){e.draw(),e.dirty=!0,e.planned=null}))):(this.draw(),this.dirty=!0,o((function(){e.dirty=!1}))),this)},c.prototype.update=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){for(var n=0;n<e.length;n++)this.updateItem(n,e[n]);this.traces=this.traces.filter(Boolean);for(var i=[],a=0,o=0;o<this.traces.length;o++){for(var s=this.traces[o],l=this.traces[o].passes,u=0;u<l.length;u++)i.push(this.passes[l[u]]);s.passOffset=a,a+=s.passes.length}return(t=this.scatter).update.apply(t,i),this}},c.prototype.updateItem=function(t,e){var r=this.regl;if(null===e)return this.traces[t]=null,this;if(!e)return this;var n,o=i(e,{data:"data items columns rows values dimensions samples x",snap:"snap cluster",size:"sizes size radius",color:"colors color fill fill-color fillColor",opacity:"opacity alpha transparency opaque",borderSize:"borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline",borderColor:"borderColors borderColor bordercolor stroke stroke-color strokeColor",marker:"markers marker shape",range:"range ranges databox dataBox",viewport:"viewport viewBox viewbox",domain:"domain domains area areas",padding:"pad padding paddings pads margin margins",transpose:"transpose transposed",diagonal:"diagonal diag showDiagonal",upper:"upper up top upperhalf upperHalf showupperhalf showUpper showUpperHalf",lower:"lower low bottom lowerhalf lowerHalf showlowerhalf showLowerHalf showLower"}),s=this.traces[t]||(this.traces[t]={id:t,buffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array}),color:"black",marker:null,size:12,borderColor:"transparent",borderSize:1,viewport:l([r._gl.drawingBufferWidth,r._gl.drawingBufferHeight]),padding:[0,0,0,0],opacity:1,diagonal:!0,upper:!0,lower:!0});if(null!=o.color&&(s.color=o.color),null!=o.size&&(s.size=o.size),null!=o.marker&&(s.marker=o.marker),null!=o.borderColor&&(s.borderColor=o.borderColor),null!=o.borderSize&&(s.borderSize=o.borderSize),null!=o.opacity&&(s.opacity=o.opacity),o.viewport&&(s.viewport=l(o.viewport)),null!=o.diagonal&&(s.diagonal=o.diagonal),null!=o.upper&&(s.upper=o.upper),null!=o.lower&&(s.lower=o.lower),o.data){s.buffer(u(o.data)),s.columns=o.data.length,s.count=o.data[0].length,s.bounds=[];for(var c=0;c<s.columns;c++)s.bounds[c]=a(o.data[c],1)}o.range&&(s.range=o.range,n=s.range&&"number"!=typeof s.range[0]),o.domain&&(s.domain=o.domain);var d=!1;null!=o.padding&&(Array.isArray(o.padding)&&o.padding.length===s.columns&&"number"==typeof o.padding[o.padding.length-1]?(s.padding=o.padding.map(p),d=!0):s.padding=p(o.padding));var v=s.columns,g=s.count,y=s.viewport.width,m=s.viewport.height,x=s.viewport.x,b=s.viewport.y,_=y/v,w=m/v;s.passes=[];for(var T=0;T<v;T++)for(var k=0;k<v;k++)if((s.diagonal||k!==T)&&(s.upper||!(T>k))&&(s.lower||!(T<k))){var A=f(s.id,T,k),M=this.passes[A]||(this.passes[A]={});if(o.data&&(o.transpose?M.positions={x:{buffer:s.buffer,offset:k,count:g,stride:v},y:{buffer:s.buffer,offset:T,count:g,stride:v}}:M.positions={x:{buffer:s.buffer,offset:k*g,count:g},y:{buffer:s.buffer,offset:T*g,count:g}},M.bounds=h(s.bounds,T,k)),o.domain||o.viewport||o.data){var S=d?h(s.padding,T,k):s.padding;if(s.domain){var E=h(s.domain,T,k),L=E[0],C=E[1],P=E[2],O=E[3];M.viewport=[x+L*y+S[0],b+C*m+S[1],x+P*y-S[2],b+O*m-S[3]]}else M.viewport=[x+k*_+_*S[0],b+T*w+w*S[1],x+(k+1)*_-_*S[2],b+(T+1)*w-w*S[3]]}o.color&&(M.color=s.color),o.size&&(M.size=s.size),o.marker&&(M.marker=s.marker),o.borderSize&&(M.borderSize=s.borderSize),o.borderColor&&(M.borderColor=s.borderColor),o.opacity&&(M.opacity=s.opacity),o.range&&(M.range=n?h(s.range,T,k):s.range||M.bounds),s.passes.push(A)}return this},c.prototype.draw=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){for(var n=[],i=0;i<e.length;i++)if("number"==typeof e[i]){var a=this.traces[e[i]],o=a.passes,l=a.passOffset;n.push.apply(n,s(l,l+o.length))}else if(e[i].length){var u=e[i],c=this.traces[i],f=c.passes,h=c.passOffset;f=f.map((function(t,e){n[h+e]=u}))}(t=this.scatter).draw.apply(t,n)}else this.scatter.draw();return this},c.prototype.destroy=function(){return this.traces.forEach((function(t){t.buffer&&t.buffer.destroy&&t.buffer.destroy()})),this.traces=null,this.passes=null,this.scatter.destroy(),this}},98580:function(t){t.exports=function(){function t(t,e){this.id=Z++,this.type=t,this.data=e}function e(t){if(0===t.length)return[];var r=t.charAt(0),n=t.charAt(t.length-1);if(1<t.length&&r===n&&('"'===r||"'"===r))return['"'+t.substr(1,t.length-2).replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'];if(r=/\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(t))return e(t.substr(0,r.index)).concat(e(r[1])).concat(e(t.substr(r.index+r[0].length)));if(1===(r=t.split(".")).length)return['"'+t.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'];for(t=[],n=0;n<r.length;++n)t=t.concat(e(r[n]));return t}function r(t){return"["+e(t).join("][")+"]"}function n(t){return"string"==typeof t?t.split():t}function i(t){return"string"==typeof t?document.querySelector(t):t}function a(t){var e,r,a,o,s=t||{};t={};var l=[],u=[],c="undefined"==typeof window?1:window.devicePixelRatio,f=!1,h={},p=function(t){},d=function(){};if("string"==typeof s?e=document.querySelector(s):"object"==typeof s&&("string"==typeof s.nodeName&&"function"==typeof s.appendChild&&"function"==typeof s.getBoundingClientRect?e=s:"function"==typeof s.drawArrays||"function"==typeof s.drawElements?a=(o=s).canvas:("gl"in s?o=s.gl:"canvas"in s?a=i(s.canvas):"container"in s&&(r=i(s.container)),"attributes"in s&&(t=s.attributes),"extensions"in s&&(l=n(s.extensions)),"optionalExtensions"in s&&(u=n(s.optionalExtensions)),"onDone"in s&&(p=s.onDone),"profile"in s&&(f=!!s.profile),"pixelRatio"in s&&(c=+s.pixelRatio),"cachedCode"in s&&(h=s.cachedCode))),e&&("canvas"===e.nodeName.toLowerCase()?a=e:r=e),!o){if(!a){if(!(e=function(t,e,r){function n(){var e=window.innerWidth,n=window.innerHeight;t!==document.body&&(e=(n=a.getBoundingClientRect()).right-n.left,n=n.bottom-n.top),a.width=r*e,a.height=r*n}var i,a=document.createElement("canvas");return G(a.style,{border:0,margin:0,padding:0,top:0,left:0,width:"100%",height:"100%"}),t.appendChild(a),t===document.body&&(a.style.position="absolute",G(t.style,{margin:0,padding:0})),t!==document.body&&"function"==typeof ResizeObserver?(i=new ResizeObserver((function(){setTimeout(n)}))).observe(t):window.addEventListener("resize",n,!1),n(),{canvas:a,onDestroy:function(){i?i.disconnect():window.removeEventListener("resize",n),t.removeChild(a)}}}(r||document.body,0,c)))return null;a=e.canvas,d=e.onDestroy}void 0===t.premultipliedAlpha&&(t.premultipliedAlpha=!0),o=function(t,e){function r(r){try{return t.getContext(r,e)}catch(t){return null}}return r("webgl")||r("experimental-webgl")||r("webgl-experimental")}(a,t)}return o?{gl:o,canvas:a,container:r,extensions:l,optionalExtensions:u,pixelRatio:c,profile:f,cachedCode:h,onDone:p,onDestroy:d}:(d(),p("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"),null)}function o(t,e){for(var r=Array(t),n=0;n<t;++n)r[n]=e(n);return r}function s(t){var e,r;return e=(65535<t)<<4,e|=r=(255<(t>>>=e))<<3,(e|=r=(15<(t>>>=r))<<2)|(r=(3<(t>>>=r))<<1)|t>>>r>>1}function l(){function t(t){t:{for(var e=16;268435456>=e;e*=16)if(t<=e){t=e;break t}t=0}return 0<(e=r[s(t)>>2]).length?e.pop():new ArrayBuffer(t)}function e(t){r[s(t.byteLength)>>2].push(t)}var r=o(8,(function(){return[]}));return{alloc:t,free:e,allocType:function(e,r){var n=null;switch(e){case 5120:n=new Int8Array(t(r),0,r);break;case 5121:n=new Uint8Array(t(r),0,r);break;case 5122:n=new Int16Array(t(2*r),0,r);break;case 5123:n=new Uint16Array(t(2*r),0,r);break;case 5124:n=new Int32Array(t(4*r),0,r);break;case 5125:n=new Uint32Array(t(4*r),0,r);break;case 5126:n=new Float32Array(t(4*r),0,r);break;default:return null}return n.length!==r?n.subarray(0,r):n},freeType:function(t){e(t.buffer)}}}function u(t){return!!t&&"object"==typeof t&&Array.isArray(t.shape)&&Array.isArray(t.stride)&&"number"==typeof t.offset&&t.shape.length===t.stride.length&&(Array.isArray(t.data)||$(t.data))}function c(t,e,r,n,i,a){for(var o=0;o<e;++o)for(var s=t[o],l=0;l<r;++l)for(var u=s[l],c=0;c<n;++c)i[a++]=u[c]}function f(t,e,r,n,i){for(var a=1,o=r+1;o<e.length;++o)a*=e[o];var s=e[r];if(4==e.length-r){var l=e[r+1],u=e[r+2];for(e=e[r+3],o=0;o<s;++o)c(t[o],l,u,e,n,i),i+=a}else for(o=0;o<s;++o)f(t[o],e,r+1,n,i),i+=a}function h(t){return 0|et[Object.prototype.toString.call(t)]}function p(t,e){for(var r=0;r<e.length;++r)t[r]=e[r]}function d(t,e,r,n,i,a,o){for(var s=0,l=0;l<r;++l)for(var u=0;u<n;++u)t[s++]=e[i*l+a*u+o]}function v(t,e,r,n){function i(e){this.id=l++,this.buffer=t.createBuffer(),this.type=e,this.usage=35044,this.byteLength=0,this.dimension=1,this.dtype=5121,this.persistentData=null,r.profile&&(this.stats={size:0})}function a(e,r,n){e.byteLength=r.byteLength,t.bufferData(e.type,r,n)}function o(t,e,r,n,i,o){if(t.usage=r,Array.isArray(e)){if(t.dtype=n||5126,0<e.length)if(Array.isArray(e[0])){i=at(e);for(var s=n=1;s<i.length;++s)n*=i[s];t.dimension=n,a(t,e=it(e,i,t.dtype),r),o?t.persistentData=e:J.freeType(e)}else"number"==typeof e[0]?(t.dimension=i,p(i=J.allocType(t.dtype,e.length),e),a(t,i,r),o?t.persistentData=i:J.freeType(i)):$(e[0])&&(t.dimension=e[0].length,t.dtype=n||h(e[0])||5126,a(t,e=it(e,[e.length,e[0].length],t.dtype),r),o?t.persistentData=e:J.freeType(e))}else if($(e))t.dtype=n||h(e),t.dimension=i,a(t,e,r),o&&(t.persistentData=new Uint8Array(new Uint8Array(e.buffer)));else if(u(e)){i=e.shape;var l=e.stride,c=(s=e.offset,0),f=0,v=0,g=0;1===i.length?(c=i[0],f=1,v=l[0],g=0):2===i.length&&(c=i[0],f=i[1],v=l[0],g=l[1]),t.dtype=n||h(e.data)||5126,t.dimension=f,d(i=J.allocType(t.dtype,c*f),e.data,c,f,v,g,s),a(t,i,r),o?t.persistentData=i:J.freeType(i)}else e instanceof ArrayBuffer&&(t.dtype=5121,t.dimension=i,a(t,e,r),o&&(t.persistentData=new Uint8Array(new Uint8Array(e))))}function s(r){e.bufferCount--,n(r),t.deleteBuffer(r.buffer),r.buffer=null,delete c[r.id]}var l=0,c={};i.prototype.bind=function(){t.bindBuffer(this.type,this.buffer)},i.prototype.destroy=function(){s(this)};var f=[];return r.profile&&(e.getTotalBufferSize=function(){var t=0;return Object.keys(c).forEach((function(e){t+=c[e].stats.size})),t}),{create:function(n,a,l,f){function v(e){var n=35044,i=null,a=0,s=0,l=1;return Array.isArray(e)||$(e)||u(e)||e instanceof ArrayBuffer?i=e:"number"==typeof e?a=0|e:e&&("data"in e&&(i=e.data),"usage"in e&&(n=nt[e.usage]),"type"in e&&(s=rt[e.type]),"dimension"in e&&(l=0|e.dimension),"length"in e&&(a=0|e.length)),g.bind(),i?o(g,i,n,s,l,f):(a&&t.bufferData(g.type,a,n),g.dtype=s||5121,g.usage=n,g.dimension=l,g.byteLength=a),r.profile&&(g.stats.size=g.byteLength*ot[g.dtype]),v}e.bufferCount++;var g=new i(a);return c[g.id]=g,l||v(n),v._reglType="buffer",v._buffer=g,v.subdata=function(e,r){var n,i=0|(r||0);if(g.bind(),$(e)||e instanceof ArrayBuffer)t.bufferSubData(g.type,i,e);else if(Array.isArray(e)){if(0<e.length)if("number"==typeof e[0]){var a=J.allocType(g.dtype,e.length);p(a,e),t.bufferSubData(g.type,i,a),J.freeType(a)}else(Array.isArray(e[0])||$(e[0]))&&(n=at(e),a=it(e,n,g.dtype),t.bufferSubData(g.type,i,a),J.freeType(a))}else if(u(e)){n=e.shape;var o=e.stride,s=a=0,l=0,c=0;1===n.length?(a=n[0],s=1,l=o[0],c=0):2===n.length&&(a=n[0],s=n[1],l=o[0],c=o[1]),n=Array.isArray(e.data)?g.dtype:h(e.data),d(n=J.allocType(n,a*s),e.data,a,s,l,c,e.offset),t.bufferSubData(g.type,i,n),J.freeType(n)}return v},r.profile&&(v.stats=g.stats),v.destroy=function(){s(g)},v},createStream:function(t,e){var r=f.pop();return r||(r=new i(t)),r.bind(),o(r,e,35040,0,1,!1),r},destroyStream:function(t){f.push(t)},clear:function(){Q(c).forEach(s),f.forEach(s)},getBuffer:function(t){return t&&t._buffer instanceof i?t._buffer:null},restore:function(){Q(c).forEach((function(e){e.buffer=t.createBuffer(),t.bindBuffer(e.type,e.buffer),t.bufferData(e.type,e.persistentData||e.byteLength,e.usage)}))},_initBuffer:o}}function g(t,e,r,n){function i(t){this.id=l++,s[this.id]=this,this.buffer=t,this.primType=4,this.type=this.vertCount=0}function a(n,i,a,o,s,l,c){var f;if(n.buffer.bind(),i?((f=c)||$(i)&&(!u(i)||$(i.data))||(f=e.oes_element_index_uint?5125:5123),r._initBuffer(n.buffer,i,a,f,3)):(t.bufferData(34963,l,a),n.buffer.dtype=f||5121,n.buffer.usage=a,n.buffer.dimension=3,n.buffer.byteLength=l),f=c,!c){switch(n.buffer.dtype){case 5121:case 5120:f=5121;break;case 5123:case 5122:f=5123;break;case 5125:case 5124:f=5125}n.buffer.dtype=f}n.type=f,0>(i=s)&&(i=n.buffer.byteLength,5123===f?i>>=1:5125===f&&(i>>=2)),n.vertCount=i,i=o,0>o&&(i=4,1===(o=n.buffer.dimension)&&(i=0),2===o&&(i=1),3===o&&(i=4)),n.primType=i}function o(t){n.elementsCount--,delete s[t.id],t.buffer.destroy(),t.buffer=null}var s={},l=0,c={uint8:5121,uint16:5123};e.oes_element_index_uint&&(c.uint32=5125),i.prototype.bind=function(){this.buffer.bind()};var f=[];return{create:function(t,e){function s(t){if(t)if("number"==typeof t)l(t),f.primType=4,f.vertCount=0|t,f.type=5121;else{var e=null,r=35044,n=-1,i=-1,o=0,h=0;Array.isArray(t)||$(t)||u(t)?e=t:("data"in t&&(e=t.data),"usage"in t&&(r=nt[t.usage]),"primitive"in t&&(n=st[t.primitive]),"count"in t&&(i=0|t.count),"type"in t&&(h=c[t.type]),"length"in t?o=0|t.length:(o=i,5123===h||5122===h?o*=2:5125!==h&&5124!==h||(o*=4))),a(f,e,r,n,i,o,h)}else l(),f.primType=4,f.vertCount=0,f.type=5121;return s}var l=r.create(null,34963,!0),f=new i(l._buffer);return n.elementsCount++,s(t),s._reglType="elements",s._elements=f,s.subdata=function(t,e){return l.subdata(t,e),s},s.destroy=function(){o(f)},s},createStream:function(t){var e=f.pop();return e||(e=new i(r.create(null,34963,!0,!1)._buffer)),a(e,t,35040,-1,-1,0,0),e},destroyStream:function(t){f.push(t)},getElements:function(t){return"function"==typeof t&&t._elements instanceof i?t._elements:null},clear:function(){Q(s).forEach(o)}}}function y(t){for(var e=J.allocType(5123,t.length),r=0;r<t.length;++r)if(isNaN(t[r]))e[r]=65535;else if(1/0===t[r])e[r]=31744;else if(-1/0===t[r])e[r]=64512;else{lt[0]=t[r];var n=(a=ut[0])>>>31<<15,i=(a<<1>>>24)-127,a=a>>13&1023;e[r]=-24>i?n:-14>i?n+(a+1024>>-14-i):15<i?n+31744:n+(i+15<<10)+a}return e}function m(t){return Array.isArray(t)||$(t)}function x(t){return"[object "+t+"]"}function b(t){return Array.isArray(t)&&(0===t.length||"number"==typeof t[0])}function _(t){return!(!Array.isArray(t)||0===t.length||!m(t[0]))}function w(t){return Object.prototype.toString.call(t)}function T(t){if(!t)return!1;var e=w(t);return 0<=xt.indexOf(e)||b(t)||_(t)||u(t)}function k(t,e){36193===t.type?(t.data=y(e),J.freeType(e)):t.data=e}function A(t,e,r,n,i,a){if(t=void 0!==_t[t]?_t[t]:ht[t]*bt[e],a&&(t*=6),i){for(n=0;1<=r;)n+=t*r*r,r/=2;return n}return t*r*n}function M(t,e,r,n,i,a,o){function s(){this.format=this.internalformat=6408,this.type=5121,this.flipY=this.premultiplyAlpha=this.compressed=!1,this.unpackAlignment=1,this.colorSpace=37444,this.channels=this.height=this.width=0}function l(t,e){t.internalformat=e.internalformat,t.format=e.format,t.type=e.type,t.compressed=e.compressed,t.premultiplyAlpha=e.premultiplyAlpha,t.flipY=e.flipY,t.unpackAlignment=e.unpackAlignment,t.colorSpace=e.colorSpace,t.width=e.width,t.height=e.height,t.channels=e.channels}function c(t,e){if("object"==typeof e&&e){"premultiplyAlpha"in e&&(t.premultiplyAlpha=e.premultiplyAlpha),"flipY"in e&&(t.flipY=e.flipY),"alignment"in e&&(t.unpackAlignment=e.alignment),"colorSpace"in e&&(t.colorSpace=V[e.colorSpace]),"type"in e&&(t.type=H[e.type]);var r=t.width,n=t.height,i=t.channels,a=!1;"shape"in e?(r=e.shape[0],n=e.shape[1],3===e.shape.length&&(i=e.shape[2],a=!0)):("radius"in e&&(r=n=e.radius),"width"in e&&(r=e.width),"height"in e&&(n=e.height),"channels"in e&&(i=e.channels,a=!0)),t.width=0|r,t.height=0|n,t.channels=0|i,r=!1,"format"in e&&(r=e.format,n=t.internalformat=q[r],t.format=at[n],r in H&&!("type"in e)&&(t.type=H[r]),r in Z&&(t.compressed=!0),r=!0),!a&&r?t.channels=ht[t.format]:a&&!r&&t.channels!==ft[t.format]&&(t.format=t.internalformat=ft[t.channels])}}function f(e){t.pixelStorei(37440,e.flipY),t.pixelStorei(37441,e.premultiplyAlpha),t.pixelStorei(37443,e.colorSpace),t.pixelStorei(3317,e.unpackAlignment)}function h(){s.call(this),this.yOffset=this.xOffset=0,this.data=null,this.needsFree=!1,this.element=null,this.needsCopy=!1}function p(t,e){var r=null;if(T(e)?r=e:e&&(c(t,e),"x"in e&&(t.xOffset=0|e.x),"y"in e&&(t.yOffset=0|e.y),T(e.data)&&(r=e.data)),e.copy){var n=i.viewportWidth,a=i.viewportHeight;t.width=t.width||n-t.xOffset,t.height=t.height||a-t.yOffset,t.needsCopy=!0}else if(r){if($(r))t.channels=t.channels||4,t.data=r,"type"in e||5121!==t.type||(t.type=0|et[Object.prototype.toString.call(r)]);else if(b(r)){switch(t.channels=t.channels||4,a=(n=r).length,t.type){case 5121:case 5123:case 5125:case 5126:(a=J.allocType(t.type,a)).set(n),t.data=a;break;case 36193:t.data=y(n)}t.alignment=1,t.needsFree=!0}else if(u(r)){n=r.data,Array.isArray(n)||5121!==t.type||(t.type=0|et[Object.prototype.toString.call(n)]),a=r.shape;var o,s,l,f,h=r.stride;3===a.length?(l=a[2],f=h[2]):f=l=1,o=a[0],s=a[1],a=h[0],h=h[1],t.alignment=1,t.width=o,t.height=s,t.channels=l,t.format=t.internalformat=ft[l],t.needsFree=!0,o=f,r=r.offset,l=t.width,f=t.height,s=t.channels;for(var p=J.allocType(36193===t.type?5126:t.type,l*f*s),d=0,v=0;v<f;++v)for(var g=0;g<l;++g)for(var x=0;x<s;++x)p[d++]=n[a*g+h*v+o*x+r];k(t,p)}else if(w(r)===pt||w(r)===dt||w(r)===vt)w(r)===pt||w(r)===dt?t.element=r:t.element=r.canvas,t.width=t.element.width,t.height=t.element.height,t.channels=4;else if(w(r)===gt)t.element=r,t.width=r.width,t.height=r.height,t.channels=4;else if(w(r)===yt)t.element=r,t.width=r.naturalWidth,t.height=r.naturalHeight,t.channels=4;else if(w(r)===mt)t.element=r,t.width=r.videoWidth,t.height=r.videoHeight,t.channels=4;else if(_(r)){for(n=t.width||r[0].length,a=t.height||r.length,h=t.channels,h=m(r[0][0])?h||r[0][0].length:h||1,o=tt.shape(r),l=1,f=0;f<o.length;++f)l*=o[f];l=J.allocType(36193===t.type?5126:t.type,l),tt.flatten(r,o,"",l),k(t,l),t.alignment=1,t.width=n,t.height=a,t.channels=h,t.format=t.internalformat=ft[h],t.needsFree=!0}}else t.width=t.width||1,t.height=t.height||1,t.channels=t.channels||4}function d(e,r,i,a,o){var s=e.element,l=e.data,u=e.internalformat,c=e.format,h=e.type,p=e.width,d=e.height;f(e),s?t.texSubImage2D(r,o,i,a,c,h,s):e.compressed?t.compressedTexSubImage2D(r,o,i,a,u,p,d,l):e.needsCopy?(n(),t.copyTexSubImage2D(r,o,i,a,e.xOffset,e.yOffset,p,d)):t.texSubImage2D(r,o,i,a,p,d,c,h,l)}function v(){return ot.pop()||new h}function g(t){t.needsFree&&J.freeType(t.data),h.call(t),ot.push(t)}function x(){s.call(this),this.genMipmaps=!1,this.mipmapHint=4352,this.mipmask=0,this.images=Array(16)}function M(t,e,r){var n=t.images[0]=v();t.mipmask=1,n.width=t.width=e,n.height=t.height=r,n.channels=t.channels=4}function S(t,e){var r=null;if(T(e))l(r=t.images[0]=v(),t),p(r,e),t.mipmask=1;else if(c(t,e),Array.isArray(e.mipmap))for(var n=e.mipmap,i=0;i<n.length;++i)l(r=t.images[i]=v(),t),r.width>>=i,r.height>>=i,p(r,n[i]),t.mipmask|=1<<i;else l(r=t.images[0]=v(),t),p(r,e),t.mipmask=1;l(t,t.images[0])}function E(e,r){for(var i=e.images,a=0;a<i.length&&i[a];++a){var o=i[a],s=r,l=a,u=o.element,c=o.data,h=o.internalformat,p=o.format,d=o.type,v=o.width,g=o.height;f(o),u?t.texImage2D(s,l,p,p,d,u):o.compressed?t.compressedTexImage2D(s,l,h,v,g,0,c):o.needsCopy?(n(),t.copyTexImage2D(s,l,p,o.xOffset,o.yOffset,v,g,0)):t.texImage2D(s,l,p,v,g,0,p,d,c||null)}}function L(){var t=st.pop()||new x;s.call(t);for(var e=t.mipmask=0;16>e;++e)t.images[e]=null;return t}function C(t){for(var e=t.images,r=0;r<e.length;++r)e[r]&&g(e[r]),e[r]=null;st.push(t)}function P(){this.magFilter=this.minFilter=9728,this.wrapT=this.wrapS=33071,this.anisotropic=1,this.genMipmaps=!1,this.mipmapHint=4352}function O(t,e){"min"in e&&(t.minFilter=U[e.min],0<=ct.indexOf(t.minFilter)&&!("faces"in e)&&(t.genMipmaps=!0)),"mag"in e&&(t.magFilter=j[e.mag]);var r=t.wrapS,n=t.wrapT;if("wrap"in e){var i=e.wrap;"string"==typeof i?r=n=N[i]:Array.isArray(i)&&(r=N[i[0]],n=N[i[1]])}else"wrapS"in e&&(r=N[e.wrapS]),"wrapT"in e&&(n=N[e.wrapT]);if(t.wrapS=r,t.wrapT=n,"anisotropic"in e&&(t.anisotropic=e.anisotropic),"mipmap"in e){switch(r=!1,typeof e.mipmap){case"string":t.mipmapHint=B[e.mipmap],r=t.genMipmaps=!0;break;case"boolean":r=t.genMipmaps=e.mipmap;break;case"object":t.genMipmaps=!1,r=!0}!r||"min"in e||(t.minFilter=9984)}}function I(r,n){t.texParameteri(n,10241,r.minFilter),t.texParameteri(n,10240,r.magFilter),t.texParameteri(n,10242,r.wrapS),t.texParameteri(n,10243,r.wrapT),e.ext_texture_filter_anisotropic&&t.texParameteri(n,34046,r.anisotropic),r.genMipmaps&&(t.hint(33170,r.mipmapHint),t.generateMipmap(n))}function D(e){s.call(this),this.mipmask=0,this.internalformat=6408,this.id=lt++,this.refCount=1,this.target=e,this.texture=t.createTexture(),this.unit=-1,this.bindCount=0,this.texInfo=new P,o.profile&&(this.stats={size:0})}function z(e){t.activeTexture(33984),t.bindTexture(e.target,e.texture)}function R(){var e=bt[0];e?t.bindTexture(e.target,e.texture):t.bindTexture(3553,null)}function F(e){var r=e.texture,n=e.unit,i=e.target;0<=n&&(t.activeTexture(33984+n),t.bindTexture(i,null),bt[n]=null),t.deleteTexture(r),e.texture=null,e.params=null,e.pixels=null,e.refCount=0,delete ut[e.id],a.textureCount--}var B={"don't care":4352,"dont care":4352,nice:4354,fast:4353},N={repeat:10497,clamp:33071,mirror:33648},j={nearest:9728,linear:9729},U=G({mipmap:9987,"nearest mipmap nearest":9984,"linear mipmap nearest":9985,"nearest mipmap linear":9986,"linear mipmap linear":9987},j),V={none:0,browser:37444},H={uint8:5121,rgba4:32819,rgb565:33635,"rgb5 a1":32820},q={alpha:6406,luminance:6409,"luminance alpha":6410,rgb:6407,rgba:6408,rgba4:32854,"rgb5 a1":32855,rgb565:36194},Z={};e.ext_srgb&&(q.srgb=35904,q.srgba=35906),e.oes_texture_float&&(H.float32=H.float=5126),e.oes_texture_half_float&&(H.float16=H["half float"]=36193),e.webgl_depth_texture&&(G(q,{depth:6402,"depth stencil":34041}),G(H,{uint16:5123,uint32:5125,"depth stencil":34042})),e.webgl_compressed_texture_s3tc&&G(Z,{"rgb s3tc dxt1":33776,"rgba s3tc dxt1":33777,"rgba s3tc dxt3":33778,"rgba s3tc dxt5":33779}),e.webgl_compressed_texture_atc&&G(Z,{"rgb atc":35986,"rgba atc explicit alpha":35987,"rgba atc interpolated alpha":34798}),e.webgl_compressed_texture_pvrtc&&G(Z,{"rgb pvrtc 4bppv1":35840,"rgb pvrtc 2bppv1":35841,"rgba pvrtc 4bppv1":35842,"rgba pvrtc 2bppv1":35843}),e.webgl_compressed_texture_etc1&&(Z["rgb etc1"]=36196);var Y=Array.prototype.slice.call(t.getParameter(34467));Object.keys(Z).forEach((function(t){var e=Z[t];0<=Y.indexOf(e)&&(q[t]=e)}));var W=Object.keys(q);r.textureFormats=W;var X=[];Object.keys(q).forEach((function(t){X[q[t]]=t}));var K=[];Object.keys(H).forEach((function(t){K[H[t]]=t}));var rt=[];Object.keys(j).forEach((function(t){rt[j[t]]=t}));var nt=[];Object.keys(U).forEach((function(t){nt[U[t]]=t}));var it=[];Object.keys(N).forEach((function(t){it[N[t]]=t}));var at=W.reduce((function(t,r){var n=q[r];return 6409===n||6406===n||6409===n||6410===n||6402===n||34041===n||e.ext_srgb&&(35904===n||35906===n)?t[n]=n:32855===n||0<=r.indexOf("rgba")?t[n]=6408:t[n]=6407,t}),{}),ot=[],st=[],lt=0,ut={},xt=r.maxTextureUnits,bt=Array(xt).map((function(){return null}));return G(D.prototype,{bind:function(){this.bindCount+=1;var e=this.unit;if(0>e){for(var r=0;r<xt;++r){var n=bt[r];if(n){if(0<n.bindCount)continue;n.unit=-1}bt[r]=this,e=r;break}o.profile&&a.maxTextureUnits<e+1&&(a.maxTextureUnits=e+1),this.unit=e,t.activeTexture(33984+e),t.bindTexture(this.target,this.texture)}return e},unbind:function(){--this.bindCount},decRef:function(){0>=--this.refCount&&F(this)}}),o.profile&&(a.getTotalTextureSize=function(){var t=0;return Object.keys(ut).forEach((function(e){t+=ut[e].stats.size})),t}),{create2D:function(e,r){function n(t,e){var r=i.texInfo;P.call(r);var a=L();return"number"==typeof t?M(a,0|t,"number"==typeof e?0|e:0|t):t?(O(r,t),S(a,t)):M(a,1,1),r.genMipmaps&&(a.mipmask=(a.width<<1)-1),i.mipmask=a.mipmask,l(i,a),i.internalformat=a.internalformat,n.width=a.width,n.height=a.height,z(i),E(a,3553),I(r,3553),R(),C(a),o.profile&&(i.stats.size=A(i.internalformat,i.type,a.width,a.height,r.genMipmaps,!1)),n.format=X[i.internalformat],n.type=K[i.type],n.mag=rt[r.magFilter],n.min=nt[r.minFilter],n.wrapS=it[r.wrapS],n.wrapT=it[r.wrapT],n}var i=new D(3553);return ut[i.id]=i,a.textureCount++,n(e,r),n.subimage=function(t,e,r,a){e|=0,r|=0,a|=0;var o=v();return l(o,i),o.width=0,o.height=0,p(o,t),o.width=o.width||(i.width>>a)-e,o.height=o.height||(i.height>>a)-r,z(i),d(o,3553,e,r,a),R(),g(o),n},n.resize=function(e,r){var a=0|e,s=0|r||a;if(a===i.width&&s===i.height)return n;n.width=i.width=a,n.height=i.height=s,z(i);for(var l=0;i.mipmask>>l;++l){var u=a>>l,c=s>>l;if(!u||!c)break;t.texImage2D(3553,l,i.format,u,c,0,i.format,i.type,null)}return R(),o.profile&&(i.stats.size=A(i.internalformat,i.type,a,s,!1,!1)),n},n._reglType="texture2d",n._texture=i,o.profile&&(n.stats=i.stats),n.destroy=function(){i.decRef()},n},createCube:function(e,r,n,i,s,u){function f(t,e,r,n,i,a){var s,u=h.texInfo;for(P.call(u),s=0;6>s;++s)y[s]=L();if("number"!=typeof t&&t){if("object"==typeof t)if(e)S(y[0],t),S(y[1],e),S(y[2],r),S(y[3],n),S(y[4],i),S(y[5],a);else if(O(u,t),c(h,t),"faces"in t)for(t=t.faces,s=0;6>s;++s)l(y[s],h),S(y[s],t[s]);else for(s=0;6>s;++s)S(y[s],t)}else for(t=0|t||1,s=0;6>s;++s)M(y[s],t,t);for(l(h,y[0]),h.mipmask=u.genMipmaps?(y[0].width<<1)-1:y[0].mipmask,h.internalformat=y[0].internalformat,f.width=y[0].width,f.height=y[0].height,z(h),s=0;6>s;++s)E(y[s],34069+s);for(I(u,34067),R(),o.profile&&(h.stats.size=A(h.internalformat,h.type,f.width,f.height,u.genMipmaps,!0)),f.format=X[h.internalformat],f.type=K[h.type],f.mag=rt[u.magFilter],f.min=nt[u.minFilter],f.wrapS=it[u.wrapS],f.wrapT=it[u.wrapT],s=0;6>s;++s)C(y[s]);return f}var h=new D(34067);ut[h.id]=h,a.cubeCount++;var y=Array(6);return f(e,r,n,i,s,u),f.subimage=function(t,e,r,n,i){r|=0,n|=0,i|=0;var a=v();return l(a,h),a.width=0,a.height=0,p(a,e),a.width=a.width||(h.width>>i)-r,a.height=a.height||(h.height>>i)-n,z(h),d(a,34069+t,r,n,i),R(),g(a),f},f.resize=function(e){if((e|=0)!==h.width){f.width=h.width=e,f.height=h.height=e,z(h);for(var r=0;6>r;++r)for(var n=0;h.mipmask>>n;++n)t.texImage2D(34069+r,n,h.format,e>>n,e>>n,0,h.format,h.type,null);return R(),o.profile&&(h.stats.size=A(h.internalformat,h.type,f.width,f.height,!1,!0)),f}},f._reglType="textureCube",f._texture=h,o.profile&&(f.stats=h.stats),f.destroy=function(){h.decRef()},f},clear:function(){for(var e=0;e<xt;++e)t.activeTexture(33984+e),t.bindTexture(3553,null),bt[e]=null;Q(ut).forEach(F),a.cubeCount=0,a.textureCount=0},getTexture:function(t){return null},restore:function(){for(var e=0;e<xt;++e){var r=bt[e];r&&(r.bindCount=0,r.unit=-1,bt[e]=null)}Q(ut).forEach((function(e){e.texture=t.createTexture(),t.bindTexture(e.target,e.texture);for(var r=0;32>r;++r)if(0!=(e.mipmask&1<<r))if(3553===e.target)t.texImage2D(3553,r,e.internalformat,e.width>>r,e.height>>r,0,e.internalformat,e.type,null);else for(var n=0;6>n;++n)t.texImage2D(34069+n,r,e.internalformat,e.width>>r,e.height>>r,0,e.internalformat,e.type,null);I(e.texInfo,e.target)}))},refresh:function(){for(var e=0;e<xt;++e){var r=bt[e];r&&(r.bindCount=0,r.unit=-1,bt[e]=null),t.activeTexture(33984+e),t.bindTexture(3553,null),t.bindTexture(34067,null)}}}}function S(t,e,r,n,i,a){function o(t,e,r){this.target=t,this.texture=e,this.renderbuffer=r;var n=t=0;e?(t=e.width,n=e.height):r&&(t=r.width,n=r.height),this.width=t,this.height=n}function s(t){t&&(t.texture&&t.texture._texture.decRef(),t.renderbuffer&&t.renderbuffer._renderbuffer.decRef())}function l(t,e,r){t&&(t.texture?t.texture._texture.refCount+=1:t.renderbuffer._renderbuffer.refCount+=1)}function u(e,r){r&&(r.texture?t.framebufferTexture2D(36160,e,r.target,r.texture._texture.texture,0):t.framebufferRenderbuffer(36160,e,36161,r.renderbuffer._renderbuffer.renderbuffer))}function c(t){var e=3553,r=null,n=null,i=t;return"object"==typeof t&&(i=t.data,"target"in t&&(e=0|t.target)),"texture2d"===(t=i._reglType)||"textureCube"===t?r=i:"renderbuffer"===t&&(n=i,e=36161),new o(e,r,n)}function f(t,e,r,a,s){return r?((t=n.create2D({width:t,height:e,format:a,type:s}))._texture.refCount=0,new o(3553,t,null)):((t=i.create({width:t,height:e,format:a}))._renderbuffer.refCount=0,new o(36161,null,t))}function h(t){return t&&(t.texture||t.renderbuffer)}function p(t,e,r){t&&(t.texture?t.texture.resize(e,r):t.renderbuffer&&t.renderbuffer.resize(e,r),t.width=e,t.height=r)}function d(){this.id=T++,k[this.id]=this,this.framebuffer=t.createFramebuffer(),this.height=this.width=0,this.colorAttachments=[],this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function v(t){t.colorAttachments.forEach(s),s(t.depthAttachment),s(t.stencilAttachment),s(t.depthStencilAttachment)}function g(e){t.deleteFramebuffer(e.framebuffer),e.framebuffer=null,a.framebufferCount--,delete k[e.id]}function y(e){var n;t.bindFramebuffer(36160,e.framebuffer);var i=e.colorAttachments;for(n=0;n<i.length;++n)u(36064+n,i[n]);for(n=i.length;n<r.maxColorAttachments;++n)t.framebufferTexture2D(36160,36064+n,3553,null,0);t.framebufferTexture2D(36160,33306,3553,null,0),t.framebufferTexture2D(36160,36096,3553,null,0),t.framebufferTexture2D(36160,36128,3553,null,0),u(36096,e.depthAttachment),u(36128,e.stencilAttachment),u(33306,e.depthStencilAttachment),t.checkFramebufferStatus(36160),t.isContextLost(),t.bindFramebuffer(36160,x.next?x.next.framebuffer:null),x.cur=x.next,t.getError()}function m(t,e){function r(t,e){var i,a=0,o=0,s=!0,u=!0;i=null;var p=!0,d="rgba",g="uint8",m=1,x=null,w=null,T=null,k=!1;"number"==typeof t?(a=0|t,o=0|e||a):t?("shape"in t?(a=(o=t.shape)[0],o=o[1]):("radius"in t&&(a=o=t.radius),"width"in t&&(a=t.width),"height"in t&&(o=t.height)),("color"in t||"colors"in t)&&(i=t.color||t.colors,Array.isArray(i)),i||("colorCount"in t&&(m=0|t.colorCount),"colorTexture"in t&&(p=!!t.colorTexture,d="rgba4"),"colorType"in t&&(g=t.colorType,!p)&&("half float"===g||"float16"===g?d="rgba16f":"float"!==g&&"float32"!==g||(d="rgba32f")),"colorFormat"in t&&(d=t.colorFormat,0<=b.indexOf(d)?p=!0:0<=_.indexOf(d)&&(p=!1))),("depthTexture"in t||"depthStencilTexture"in t)&&(k=!(!t.depthTexture&&!t.depthStencilTexture)),"depth"in t&&("boolean"==typeof t.depth?s=t.depth:(x=t.depth,u=!1)),"stencil"in t&&("boolean"==typeof t.stencil?u=t.stencil:(w=t.stencil,s=!1)),"depthStencil"in t&&("boolean"==typeof t.depthStencil?s=u=t.depthStencil:(T=t.depthStencil,u=s=!1))):a=o=1;var A=null,M=null,S=null,E=null;if(Array.isArray(i))A=i.map(c);else if(i)A=[c(i)];else for(A=Array(m),i=0;i<m;++i)A[i]=f(a,o,p,d,g);for(a=a||A[0].width,o=o||A[0].height,x?M=c(x):s&&!u&&(M=f(a,o,k,"depth","uint32")),w?S=c(w):u&&!s&&(S=f(a,o,!1,"stencil","uint8")),T?E=c(T):!x&&!w&&u&&s&&(E=f(a,o,k,"depth stencil","depth stencil")),s=null,i=0;i<A.length;++i)l(A[i]),A[i]&&A[i].texture&&(u=kt[A[i].texture._texture.format]*At[A[i].texture._texture.type],null===s&&(s=u));return l(M),l(S),l(E),v(n),n.width=a,n.height=o,n.colorAttachments=A,n.depthAttachment=M,n.stencilAttachment=S,n.depthStencilAttachment=E,r.color=A.map(h),r.depth=h(M),r.stencil=h(S),r.depthStencil=h(E),r.width=n.width,r.height=n.height,y(n),r}var n=new d;return a.framebufferCount++,r(t,e),G(r,{resize:function(t,e){var i=Math.max(0|t,1),a=Math.max(0|e||i,1);if(i===n.width&&a===n.height)return r;for(var o=n.colorAttachments,s=0;s<o.length;++s)p(o[s],i,a);return p(n.depthAttachment,i,a),p(n.stencilAttachment,i,a),p(n.depthStencilAttachment,i,a),n.width=r.width=i,n.height=r.height=a,y(n),r},_reglType:"framebuffer",_framebuffer:n,destroy:function(){g(n),v(n)},use:function(t){x.setFBO({framebuffer:r},t)}})}var x={cur:null,next:null,dirty:!1,setFBO:null},b=["rgba"],_=["rgba4","rgb565","rgb5 a1"];e.ext_srgb&&_.push("srgba"),e.ext_color_buffer_half_float&&_.push("rgba16f","rgb16f"),e.webgl_color_buffer_float&&_.push("rgba32f");var w=["uint8"];e.oes_texture_half_float&&w.push("half float","float16"),e.oes_texture_float&&w.push("float","float32");var T=0,k={};return G(x,{getFramebuffer:function(t){return"function"==typeof t&&"framebuffer"===t._reglType&&(t=t._framebuffer)instanceof d?t:null},create:m,createCube:function(t){function e(t){var i,a={color:null},o=0,s=null;i="rgba";var l="uint8",u=1;if("number"==typeof t?o=0|t:t?("shape"in t?o=t.shape[0]:("radius"in t&&(o=0|t.radius),"width"in t?o=0|t.width:"height"in t&&(o=0|t.height)),("color"in t||"colors"in t)&&(s=t.color||t.colors,Array.isArray(s)),s||("colorCount"in t&&(u=0|t.colorCount),"colorType"in t&&(l=t.colorType),"colorFormat"in t&&(i=t.colorFormat)),"depth"in t&&(a.depth=t.depth),"stencil"in t&&(a.stencil=t.stencil),"depthStencil"in t&&(a.depthStencil=t.depthStencil)):o=1,s)if(Array.isArray(s))for(t=[],i=0;i<s.length;++i)t[i]=s[i];else t=[s];else for(t=Array(u),s={radius:o,format:i,type:l},i=0;i<u;++i)t[i]=n.createCube(s);for(a.color=Array(t.length),i=0;i<t.length;++i)u=t[i],o=o||u.width,a.color[i]={target:34069,data:t[i]};for(i=0;6>i;++i){for(u=0;u<t.length;++u)a.color[u].target=34069+i;0<i&&(a.depth=r[0].depth,a.stencil=r[0].stencil,a.depthStencil=r[0].depthStencil),r[i]?r[i](a):r[i]=m(a)}return G(e,{width:o,height:o,color:t})}var r=Array(6);return e(t),G(e,{faces:r,resize:function(t){var n=0|t;if(n===e.width)return e;var i=e.color;for(t=0;t<i.length;++t)i[t].resize(n);for(t=0;6>t;++t)r[t].resize(n);return e.width=e.height=n,e},_reglType:"framebufferCube",destroy:function(){r.forEach((function(t){t.destroy()}))}})},clear:function(){Q(k).forEach(g)},restore:function(){x.cur=null,x.next=null,x.dirty=!0,Q(k).forEach((function(e){e.framebuffer=t.createFramebuffer(),y(e)}))}})}function E(){this.w=this.z=this.y=this.x=this.state=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=5126,this.divisor=this.stride=this.offset=0}function L(t,e,r,n,i,a,o){function s(){this.id=++f,this.attributes=[],this.elements=null,this.ownsElements=!1,this.offset=this.count=0,this.instances=-1,this.primitive=4;var t=e.oes_vertex_array_object;this.vao=t?t.createVertexArrayOES():null,h[this.id]=this,this.buffers=[]}var l=r.maxAttributes,c=Array(l);for(r=0;r<l;++r)c[r]=new E;var f=0,h={},p={Record:E,scope:{},state:c,currentVAO:null,targetVAO:null,restore:e.oes_vertex_array_object?function(){e.oes_vertex_array_object&&Q(h).forEach((function(t){t.refresh()}))}:function(){},createVAO:function(t){function e(t){var n;Array.isArray(t)?(n=t,r.elements&&r.ownsElements&&r.elements.destroy(),r.elements=null,r.ownsElements=!1,r.offset=0,r.count=0,r.instances=-1,r.primitive=4):(t.elements?(n=t.elements,r.ownsElements?("function"==typeof n&&"elements"===n._reglType?r.elements.destroy():r.elements(n),r.ownsElements=!1):a.getElements(t.elements)?(r.elements=t.elements,r.ownsElements=!1):(r.elements=a.create(t.elements),r.ownsElements=!0)):(r.elements=null,r.ownsElements=!1),n=t.attributes,r.offset=0,r.count=-1,r.instances=-1,r.primitive=4,r.elements&&(r.count=r.elements._elements.vertCount,r.primitive=r.elements._elements.primType),"offset"in t&&(r.offset=0|t.offset),"count"in t&&(r.count=0|t.count),"instances"in t&&(r.instances=0|t.instances),"primitive"in t&&(r.primitive=st[t.primitive])),t={};var o=r.attributes;o.length=n.length;for(var s=0;s<n.length;++s){var l,c=n[s],f=o[s]=new E,h=c.data||c;Array.isArray(h)||$(h)||u(h)?(r.buffers[s]&&(l=r.buffers[s],$(h)&&l._buffer.byteLength>=h.byteLength?l.subdata(h):(l.destroy(),r.buffers[s]=null)),r.buffers[s]||(l=r.buffers[s]=i.create(c,34962,!1,!0)),f.buffer=i.getBuffer(l),f.size=0|f.buffer.dimension,f.normalized=!1,f.type=f.buffer.dtype,f.offset=0,f.stride=0,f.divisor=0,f.state=1,t[s]=1):i.getBuffer(c)?(f.buffer=i.getBuffer(c),f.size=0|f.buffer.dimension,f.normalized=!1,f.type=f.buffer.dtype,f.offset=0,f.stride=0,f.divisor=0,f.state=1):i.getBuffer(c.buffer)?(f.buffer=i.getBuffer(c.buffer),f.size=0|(+c.size||f.buffer.dimension),f.normalized=!!c.normalized||!1,f.type="type"in c?rt[c.type]:f.buffer.dtype,f.offset=0|(c.offset||0),f.stride=0|(c.stride||0),f.divisor=0|(c.divisor||0),f.state=1):"x"in c&&(f.x=+c.x||0,f.y=+c.y||0,f.z=+c.z||0,f.w=+c.w||0,f.state=2)}for(l=0;l<r.buffers.length;++l)!t[l]&&r.buffers[l]&&(r.buffers[l].destroy(),r.buffers[l]=null);return r.refresh(),e}var r=new s;return n.vaoCount+=1,e.destroy=function(){for(var t=0;t<r.buffers.length;++t)r.buffers[t]&&r.buffers[t].destroy();r.buffers.length=0,r.ownsElements&&(r.elements.destroy(),r.elements=null,r.ownsElements=!1),r.destroy()},e._vao=r,e._reglType="vao",e(t)},getVAO:function(t){return"function"==typeof t&&t._vao?t._vao:null},destroyBuffer:function(e){for(var r=0;r<c.length;++r){var n=c[r];n.buffer===e&&(t.disableVertexAttribArray(r),n.buffer=null)}},setVAO:e.oes_vertex_array_object?function(t){if(t!==p.currentVAO){var r=e.oes_vertex_array_object;t?r.bindVertexArrayOES(t.vao):r.bindVertexArrayOES(null),p.currentVAO=t}}:function(r){if(r!==p.currentVAO){if(r)r.bindAttrs();else{for(var n=e.angle_instanced_arrays,i=0;i<c.length;++i){var a=c[i];a.buffer?(t.enableVertexAttribArray(i),a.buffer.bind(),t.vertexAttribPointer(i,a.size,a.type,a.normalized,a.stride,a.offfset),n&&a.divisor&&n.vertexAttribDivisorANGLE(i,a.divisor)):(t.disableVertexAttribArray(i),t.vertexAttrib4f(i,a.x,a.y,a.z,a.w))}o.elements?t.bindBuffer(34963,o.elements.buffer.buffer):t.bindBuffer(34963,null)}p.currentVAO=r}},clear:e.oes_vertex_array_object?function(){Q(h).forEach((function(t){t.destroy()}))}:function(){}};return s.prototype.bindAttrs=function(){for(var r=e.angle_instanced_arrays,n=this.attributes,i=0;i<n.length;++i){var o=n[i];o.buffer?(t.enableVertexAttribArray(i),t.bindBuffer(34962,o.buffer.buffer),t.vertexAttribPointer(i,o.size,o.type,o.normalized,o.stride,o.offset),r&&o.divisor&&r.vertexAttribDivisorANGLE(i,o.divisor)):(t.disableVertexAttribArray(i),t.vertexAttrib4f(i,o.x,o.y,o.z,o.w))}for(r=n.length;r<l;++r)t.disableVertexAttribArray(r);(r=a.getElements(this.elements))?t.bindBuffer(34963,r.buffer.buffer):t.bindBuffer(34963,null)},s.prototype.refresh=function(){var t=e.oes_vertex_array_object;t&&(t.bindVertexArrayOES(this.vao),this.bindAttrs(),p.currentVAO=null,t.bindVertexArrayOES(null))},s.prototype.destroy=function(){if(this.vao){var t=e.oes_vertex_array_object;this===p.currentVAO&&(p.currentVAO=null,t.bindVertexArrayOES(null)),t.deleteVertexArrayOES(this.vao),this.vao=null}this.ownsElements&&(this.elements.destroy(),this.elements=null,this.ownsElements=!1),h[this.id]&&(delete h[this.id],--n.vaoCount)},p}function C(t,e,r,n){function i(t,e,r,n){this.name=t,this.id=e,this.location=r,this.info=n}function a(t,e){for(var r=0;r<t.length;++r)if(t[r].id===e.id)return void(t[r].location=e.location);t.push(e)}function o(r,n,i){if(!(o=(i=35632===r?u:c)[n])){var a=e.str(n),o=t.createShader(r);t.shaderSource(o,a),t.compileShader(o),i[n]=o}return o}function s(t,e){this.id=p++,this.fragId=t,this.vertId=e,this.program=null,this.uniforms=[],this.attributes=[],this.refCount=1,n.profile&&(this.stats={uniformsCount:0,attributesCount:0})}function l(r,s,l){var u;u=o(35632,r.fragId);var c=o(35633,r.vertId);if(s=r.program=t.createProgram(),t.attachShader(s,u),t.attachShader(s,c),l)for(u=0;u<l.length;++u)c=l[u],t.bindAttribLocation(s,c[0],c[1]);t.linkProgram(s),c=t.getProgramParameter(s,35718),n.profile&&(r.stats.uniformsCount=c);var f=r.uniforms;for(u=0;u<c;++u)if(l=t.getActiveUniform(s,u))if(1<l.size)for(var h=0;h<l.size;++h){var p=l.name.replace("[0]","["+h+"]");a(f,new i(p,e.id(p),t.getUniformLocation(s,p),l))}else a(f,new i(l.name,e.id(l.name),t.getUniformLocation(s,l.name),l));for(c=t.getProgramParameter(s,35721),n.profile&&(r.stats.attributesCount=c),r=r.attributes,u=0;u<c;++u)(l=t.getActiveAttrib(s,u))&&a(r,new i(l.name,e.id(l.name),t.getAttribLocation(s,l.name),l))}var u={},c={},f={},h=[],p=0;return n.profile&&(r.getMaxUniformsCount=function(){var t=0;return h.forEach((function(e){e.stats.uniformsCount>t&&(t=e.stats.uniformsCount)})),t},r.getMaxAttributesCount=function(){var t=0;return h.forEach((function(e){e.stats.attributesCount>t&&(t=e.stats.attributesCount)})),t}),{clear:function(){var e=t.deleteShader.bind(t);Q(u).forEach(e),u={},Q(c).forEach(e),c={},h.forEach((function(e){t.deleteProgram(e.program)})),h.length=0,f={},r.shaderCount=0},program:function(e,n,i,a){var o=f[n];o||(o=f[n]={});var p=o[e];if(p&&(p.refCount++,!a))return p;var d=new s(n,e);return r.shaderCount++,l(d,i,a),p||(o[e]=d),h.push(d),G(d,{destroy:function(){if(d.refCount--,0>=d.refCount){t.deleteProgram(d.program);var e=h.indexOf(d);h.splice(e,1),r.shaderCount--}0>=o[d.vertId].refCount&&(t.deleteShader(c[d.vertId]),delete c[d.vertId],delete f[d.fragId][d.vertId]),Object.keys(f[d.fragId]).length||(t.deleteShader(u[d.fragId]),delete u[d.fragId],delete f[d.fragId])}})},restore:function(){u={},c={};for(var t=0;t<h.length;++t)l(h[t],null,h[t].attributes.map((function(t){return[t.location,t.name]})))},shader:o,frag:-1,vert:-1}}function P(t,e,r,n,i,a,o){function s(i){var a;a=null===e.next?5121:e.next.colorAttachments[0].texture._texture.type;var o=0,s=0,l=n.framebufferWidth,u=n.framebufferHeight,c=null;return $(i)?c=i:i&&(o=0|i.x,s=0|i.y,l=0|(i.width||n.framebufferWidth-o),u=0|(i.height||n.framebufferHeight-s),c=i.data||null),r(),i=l*u*4,c||(5121===a?c=new Uint8Array(i):5126===a&&(c=c||new Float32Array(i))),t.pixelStorei(3333,4),t.readPixels(o,s,l,u,6408,a,c),c}return function(t){return t&&"framebuffer"in t?function(t){var r;return e.setFBO({framebuffer:t.framebuffer},(function(){r=s(t)})),r}(t):s(t)}}function O(t,e){return t>>>e|t<<32-e}function I(t,e){var r=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(r>>16)<<16|65535&r}function D(t){return Array.prototype.slice.call(t)}function z(t){return D(t).join("")}function R(t){function e(){var t=[],e=[];return G((function(){t.push.apply(t,D(arguments))}),{def:function(){var r="v"+i++;return e.push(r),0<arguments.length&&(t.push(r,"="),t.push.apply(t,D(arguments)),t.push(";")),r},toString:function(){return z([0<e.length?"var "+e.join(",")+";":"",z(t)])}})}function r(){function t(t,e){n(t,e,"=",r.def(t,e),";")}var r=e(),n=e(),i=r.toString,a=n.toString;return G((function(){r.apply(r,D(arguments))}),{def:r.def,entry:r,exit:n,save:t,set:function(e,n,i){t(e,n),r(e,n,"=",i,";")},toString:function(){return i()+a()}})}var n=t&&t.cache,i=0,a=[],o=[],s=[],l=e(),u={};return{global:l,link:function(t,e){var r=e&&e.stable;if(!r)for(var n=0;n<o.length;++n)if(o[n]===t&&!s[n])return a[n];return n="g"+i++,a.push(n),o.push(t),s.push(r),n},block:e,proc:function(t,e){function n(){var t="a"+i.length;return i.push(t),t}var i=[];e=e||0;for(var a=0;a<e;++a)n();var o=(a=r()).toString;return u[t]=G(a,{arg:n,toString:function(){return z(["function(",i.join(),"){",o(),"}"])}})},scope:r,cond:function(){var t=z(arguments),e=r(),n=r(),i=e.toString,a=n.toString;return G(e,{then:function(){return e.apply(e,D(arguments)),this},else:function(){return n.apply(n,D(arguments)),this},toString:function(){var e=a();return e&&(e="else{"+e+"}"),z(["if(",t,"){",i(),"}",e])}})},compile:function(){var t=['"use strict";',l,"return {"];Object.keys(u).forEach((function(e){t.push('"',e,'":',u[e].toString(),",")})),t.push("}");var e,r=z(t).replace(/;/g,";\n").replace(/}/g,"}\n").replace(/{/g,"{\n");return n&&(e=function(t){for(var e,r="",n=0;n<t.length;n++)e=t.charCodeAt(n),r+="0123456789abcdef".charAt(e>>>4&15)+"0123456789abcdef".charAt(15&e);return r}(function(t){for(var e=Array(t.length>>2),r=0;r<e.length;r++)e[r]=0;for(r=0;r<8*t.length;r+=8)e[r>>5]|=(255&t.charCodeAt(r/8))<<24-r%32;var n,i,a,o,s,l,u,c,f,h,p,d=8*t.length;for(t=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],r=Array(64),e[d>>5]|=128<<24-d%32,e[15+(d+64>>9<<4)]=d,c=0;c<e.length;c+=16){for(d=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],l=t[6],u=t[7],f=0;64>f;f++){var v;16>f?r[f]=e[f+c]:(h=f,p=I(p=O(p=r[f-2],17)^O(p,19)^p>>>10,r[f-7]),v=O(v=r[f-15],7)^O(v,18)^v>>>3,r[h]=I(I(p,v),r[f-16])),h=I(I(I(I(u,h=O(h=o,6)^O(h,11)^O(h,25)),o&s^~o&l),Mt[f]),r[f]),p=I(u=O(u=d,2)^O(u,13)^O(u,22),d&n^d&i^n&i),u=l,l=s,s=o,o=I(a,h),a=i,i=n,n=d,d=I(h,p)}t[0]=I(d,t[0]),t[1]=I(n,t[1]),t[2]=I(i,t[2]),t[3]=I(a,t[3]),t[4]=I(o,t[4]),t[5]=I(s,t[5]),t[6]=I(l,t[6]),t[7]=I(u,t[7])}for(e="",r=0;r<32*t.length;r+=8)e+=String.fromCharCode(t[r>>5]>>>24-r%32&255);return e}(function(t){for(var e,r,n="",i=-1;++i<t.length;)e=t.charCodeAt(i),r=i+1<t.length?t.charCodeAt(i+1):0,55296<=e&&56319>=e&&56320<=r&&57343>=r&&(e=65536+((1023&e)<<10)+(1023&r),i++),127>=e?n+=String.fromCharCode(e):2047>=e?n+=String.fromCharCode(192|e>>>6&31,128|63&e):65535>=e?n+=String.fromCharCode(224|e>>>12&15,128|e>>>6&63,128|63&e):2097151>=e&&(n+=String.fromCharCode(240|e>>>18&7,128|e>>>12&63,128|e>>>6&63,128|63&e));return n}(r))),n[e])?n[e].apply(null,o):(r=Function.apply(null,a.concat(r)),n&&(n[e]=r),r.apply(null,o))}}}function F(t){return Array.isArray(t)||$(t)||u(t)}function B(t){return t.sort((function(t,e){return"viewport"===t?-1:"viewport"===e?1:t<e?-1:1}))}function N(t,e,r,n){this.thisDep=t,this.contextDep=e,this.propDep=r,this.append=n}function j(t){return t&&!(t.thisDep||t.contextDep||t.propDep)}function U(t){return new N(!1,!1,!1,t)}function V(t,e){var r=t.type;if(0===r)return new N(!0,1<=(r=t.data.length),2<=r,e);if(4===r)return new N((r=t.data).thisDep,r.contextDep,r.propDep,e);if(5===r)return new N(!1,!1,!1,e);if(6===r){for(var n=r=!1,i=!1,a=0;a<t.data.length;++a){var o=t.data[a];1===o.type?i=!0:2===o.type?n=!0:3===o.type?r=!0:0===o.type?(r=!0,1<=(o=o.data)&&(n=!0),2<=o&&(i=!0)):4===o.type&&(r=r||o.data.thisDep,n=n||o.data.contextDep,i=i||o.data.propDep)}return new N(r,n,i,e)}return new N(3===r,2===r,1===r,e)}function H(t,e,r,n,i,a,s,l,u,c,f,h,p,d,v,g){function y(t){return t.replace(".","_")}function x(t,e,r){var n=y(t);at.push(t),it[n]=nt[n]=!!r,ot[n]=e}function b(t,e,r){var n=y(t);at.push(t),Array.isArray(r)?(nt[n]=r.slice(),it[n]=r.slice()):nt[n]=it[n]=r,lt[n]=e}function _(){var t=R({cache:v}),r=t.link,n=t.global;t.id=ft++,t.batchId="0";var i=r(ut),a=t.shared={props:"a0"};Object.keys(ut).forEach((function(t){a[t]=n.def(i,".",t)}));var o=t.next={},s=t.current={};Object.keys(lt).forEach((function(t){Array.isArray(nt[t])&&(o[t]=n.def(a.next,".",t),s[t]=n.def(a.current,".",t))}));var l=t.constants={};Object.keys(ct).forEach((function(t){l[t]=n.def(JSON.stringify(ct[t]))})),t.invoke=function(e,n){switch(n.type){case 0:var i=["this",a.context,a.props,t.batchId];return e.def(r(n.data),".call(",i.slice(0,Math.max(n.data.length+1,4)),")");case 1:return e.def(a.props,n.data);case 2:return e.def(a.context,n.data);case 3:return e.def("this",n.data);case 4:return n.data.append(t,e),n.data.ref;case 5:return n.data.toString();case 6:return n.data.map((function(r){return t.invoke(e,r)}))}},t.attribCache={};var u={};return t.scopeAttrib=function(t){if((t=e.id(t))in u)return u[t];var n=c.scope[t];return n||(n=c.scope[t]=new K),u[t]=r(n)},t}function w(t,e){var r=t.static,n=t.dynamic;if("framebuffer"in r){var i=r.framebuffer;return i?(i=l.getFramebuffer(i),U((function(t,e){var r=t.link(i),n=t.shared;return e.set(n.framebuffer,".next",r),n=n.context,e.set(n,".framebufferWidth",r+".width"),e.set(n,".framebufferHeight",r+".height"),r}))):U((function(t,e){var r=t.shared;return e.set(r.framebuffer,".next","null"),r=r.context,e.set(r,".framebufferWidth",r+".drawingBufferWidth"),e.set(r,".framebufferHeight",r+".drawingBufferHeight"),"null"}))}if("framebuffer"in n){var a=n.framebuffer;return V(a,(function(t,e){var r=t.invoke(e,a),n=t.shared,i=n.framebuffer;return r=e.def(i,".getFramebuffer(",r,")"),e.set(i,".next",r),n=n.context,e.set(n,".framebufferWidth",r+"?"+r+".width:"+n+".drawingBufferWidth"),e.set(n,".framebufferHeight",r+"?"+r+".height:"+n+".drawingBufferHeight"),r}))}return null}function T(t,r,n){function i(t){if(t in a){var r=e.id(a[t]);return(t=U((function(){return r}))).id=r,t}if(t in o){var n=o[t];return V(n,(function(t,e){var r=t.invoke(e,n);return e.def(t.shared.strings,".id(",r,")")}))}return null}var a=t.static,o=t.dynamic,s=i("frag"),l=i("vert"),u=null;return j(s)&&j(l)?(u=f.program(l.id,s.id,null,n),t=U((function(t,e){return t.link(u)}))):t=new N(s&&s.thisDep||l&&l.thisDep,s&&s.contextDep||l&&l.contextDep,s&&s.propDep||l&&l.propDep,(function(t,e){var r,n,i=t.shared.shader;return r=s?s.append(t,e):e.def(i,".","frag"),n=l?l.append(t,e):e.def(i,".","vert"),e.def(i+".program("+n+","+r+")")})),{frag:s,vert:l,progVar:t,program:u}}function k(t,e){function r(t,e){if(t in n){var r=0|n[t];return e?o.offset=r:o.instances=r,U((function(t,n){return e&&(t.OFFSET=r),r}))}if(t in i){var a=i[t];return V(a,(function(t,r){var n=t.invoke(r,a);return e&&(t.OFFSET=n),n}))}if(e){if(u)return U((function(t,e){return t.OFFSET=0}));if(s)return new N(l.thisDep,l.contextDep,l.propDep,(function(t,e){return e.def(t.shared.vao+".currentVAO?"+t.shared.vao+".currentVAO.offset:0")}))}else if(s)return new N(l.thisDep,l.contextDep,l.propDep,(function(t,e){return e.def(t.shared.vao+".currentVAO?"+t.shared.vao+".currentVAO.instances:-1")}));return null}var n=t.static,i=t.dynamic,o={},s=!1,l=function(){if("vao"in n){var t=n.vao;return null!==t&&null===c.getVAO(t)&&(t=c.createVAO(t)),s=!0,o.vao=t,U((function(e){var r=c.getVAO(t);return r?e.link(r):"null"}))}if("vao"in i){s=!0;var e=i.vao;return V(e,(function(t,r){var n=t.invoke(r,e);return r.def(t.shared.vao+".getVAO("+n+")")}))}return null}(),u=!1,f=function(){if("elements"in n){var t=n.elements;if(o.elements=t,F(t)){var e=o.elements=a.create(t,!0);t=a.getElements(e),u=!0}else t&&(t=a.getElements(t),u=!0);return e=U((function(e,r){if(t){var n=e.link(t);return e.ELEMENTS=n}return e.ELEMENTS=null})),e.value=t,e}if("elements"in i){u=!0;var r=i.elements;return V(r,(function(t,e){var n=(i=t.shared).isBufferArgs,i=i.elements,a=t.invoke(e,r),o=e.def("null");return n=e.def(n,"(",a,")"),a=t.cond(n).then(o,"=",i,".createStream(",a,");").else(o,"=",i,".getElements(",a,");"),e.entry(a),e.exit(t.cond(n).then(i,".destroyStream(",o,");")),t.ELEMENTS=o}))}return s?new N(l.thisDep,l.contextDep,l.propDep,(function(t,e){return e.def(t.shared.vao+".currentVAO?"+t.shared.elements+".getElements("+t.shared.vao+".currentVAO.elements):null")})):null}(),h=r("offset",!0),p=function(){if("primitive"in n){var t=n.primitive;return o.primitive=t,U((function(e,r){return st[t]}))}if("primitive"in i){var e=i.primitive;return V(e,(function(t,r){var n=t.constants.primTypes,i=t.invoke(r,e);return r.def(n,"[",i,"]")}))}return u?j(f)?f.value?U((function(t,e){return e.def(t.ELEMENTS,".primType")})):U((function(){return 4})):new N(f.thisDep,f.contextDep,f.propDep,(function(t,e){var r=t.ELEMENTS;return e.def(r,"?",r,".primType:",4)})):s?new N(l.thisDep,l.contextDep,l.propDep,(function(t,e){return e.def(t.shared.vao+".currentVAO?"+t.shared.vao+".currentVAO.primitive:4")})):null}(),d=function(){if("count"in n){var t=0|n.count;return o.count=t,U((function(){return t}))}if("count"in i){var e=i.count;return V(e,(function(t,r){return t.invoke(r,e)}))}return u?j(f)?f?h?new N(h.thisDep,h.contextDep,h.propDep,(function(t,e){return e.def(t.ELEMENTS,".vertCount-",t.OFFSET)})):U((function(t,e){return e.def(t.ELEMENTS,".vertCount")})):U((function(){return-1})):new N(f.thisDep||h.thisDep,f.contextDep||h.contextDep,f.propDep||h.propDep,(function(t,e){var r=t.ELEMENTS;return t.OFFSET?e.def(r,"?",r,".vertCount-",t.OFFSET,":-1"):e.def(r,"?",r,".vertCount:-1")})):s?new N(l.thisDep,l.contextDep,l.propDep,(function(t,e){return e.def(t.shared.vao,".currentVAO?",t.shared.vao,".currentVAO.count:-1")})):null}(),v=r("instances",!1);return{elements:f,primitive:p,count:d,instances:v,offset:h,vao:l,vaoActive:s,elementsActive:u,static:o}}function A(t,r){var n=t.static,a=t.dynamic,o={};return Object.keys(n).forEach((function(t){var r=n[t],a=e.id(t),s=new K;if(F(r))s.state=1,s.buffer=i.getBuffer(i.create(r,34962,!1,!0)),s.type=0;else if(u=i.getBuffer(r))s.state=1,s.buffer=u,s.type=0;else if("constant"in r){var l=r.constant;s.buffer="null",s.state=2,"number"==typeof l?s.x=l:St.forEach((function(t,e){e<l.length&&(s[t]=l[e])}))}else{var u=F(r.buffer)?i.getBuffer(i.create(r.buffer,34962,!1,!0)):i.getBuffer(r.buffer),c=0|r.offset,f=0|r.stride,h=0|r.size,p=!!r.normalized,d=0;"type"in r&&(d=rt[r.type]),r=0|r.divisor,s.buffer=u,s.state=1,s.size=h,s.normalized=p,s.type=d||u.dtype,s.offset=c,s.stride=f,s.divisor=r}o[t]=U((function(t,e){var r=t.attribCache;if(a in r)return r[a];var n={isStream:!1};return Object.keys(s).forEach((function(t){n[t]=s[t]})),s.buffer&&(n.buffer=t.link(s.buffer),n.type=n.type||n.buffer+".dtype"),r[a]=n}))})),Object.keys(a).forEach((function(t){var e=a[t];o[t]=V(e,(function(t,r){function n(t){r(l[t],"=",i,".",t,"|0;")}var i=t.invoke(r,e),a=t.shared,o=t.constants,s=a.isBufferArgs,l=(a=a.buffer,{isStream:r.def(!1)}),u=new K;u.state=1,Object.keys(u).forEach((function(t){l[t]=r.def(""+u[t])}));var c=l.buffer,f=l.type;return r("if(",s,"(",i,")){",l.isStream,"=true;",c,"=",a,".createStream(",34962,",",i,");",f,"=",c,".dtype;","}else{",c,"=",a,".getBuffer(",i,");","if(",c,"){",f,"=",c,".dtype;",'}else if("constant" in ',i,"){",l.state,"=",2,";","if(typeof "+i+'.constant === "number"){',l[St[0]],"=",i,".constant;",St.slice(1).map((function(t){return l[t]})).join("="),"=0;","}else{",St.map((function(t,e){return l[t]+"="+i+".constant.length>"+e+"?"+i+".constant["+e+"]:0;"})).join(""),"}}else{","if(",s,"(",i,".buffer)){",c,"=",a,".createStream(",34962,",",i,".buffer);","}else{",c,"=",a,".getBuffer(",i,".buffer);","}",f,'="type" in ',i,"?",o.glTypes,"[",i,".type]:",c,".dtype;",l.normalized,"=!!",i,".normalized;"),n("size"),n("offset"),n("stride"),n("divisor"),r("}}"),r.exit("if(",l.isStream,"){",a,".destroyStream(",c,");","}"),l}))})),o}function M(t,e,n,i,a){function s(t){var e=u[t];e&&(h[t]=e)}var l=function(t,e){if("string"==typeof(r=t.static).frag&&"string"==typeof r.vert){if(0<Object.keys(e.dynamic).length)return null;var r=e.static,n=Object.keys(r);if(0<n.length&&"number"==typeof r[n[0]]){for(var i=[],a=0;a<n.length;++a)i.push([0|r[n[a]],n[a]]);return i}}return null}(t,e),u=function(t,e,r){function n(t){if(t in i){var r=i[t];t=!0;var n,o,s=0|r.x,l=0|r.y;return"width"in r?n=0|r.width:t=!1,"height"in r?o=0|r.height:t=!1,new N(!t&&e&&e.thisDep,!t&&e&&e.contextDep,!t&&e&&e.propDep,(function(t,e){var i=t.shared.context,a=n;"width"in r||(a=e.def(i,".","framebufferWidth","-",s));var u=o;return"height"in r||(u=e.def(i,".","framebufferHeight","-",l)),[s,l,a,u]}))}if(t in a){var u=a[t];return t=V(u,(function(t,e){var r=t.invoke(e,u),n=t.shared.context,i=e.def(r,".x|0"),a=e.def(r,".y|0");return[i,a,e.def('"width" in ',r,"?",r,".width|0:","(",n,".","framebufferWidth","-",i,")"),r=e.def('"height" in ',r,"?",r,".height|0:","(",n,".","framebufferHeight","-",a,")")]})),e&&(t.thisDep=t.thisDep||e.thisDep,t.contextDep=t.contextDep||e.contextDep,t.propDep=t.propDep||e.propDep),t}return e?new N(e.thisDep,e.contextDep,e.propDep,(function(t,e){var r=t.shared.context;return[0,0,e.def(r,".","framebufferWidth"),e.def(r,".","framebufferHeight")]})):null}var i=t.static,a=t.dynamic;if(t=n("viewport")){var o=t;t=new N(t.thisDep,t.contextDep,t.propDep,(function(t,e){var r=o.append(t,e),n=t.shared.context;return e.set(n,".viewportWidth",r[2]),e.set(n,".viewportHeight",r[3]),r}))}return{viewport:t,scissor_box:n("scissor.box")}}(t,d=w(t)),f=k(t),h=function(t,e){var r=t.static,n=t.dynamic,i={};return at.forEach((function(t){function e(e,o){if(t in r){var s=e(r[t]);i[a]=U((function(){return s}))}else if(t in n){var l=n[t];i[a]=V(l,(function(t,e){return o(t,e,t.invoke(e,l))}))}}var a=y(t);switch(t){case"cull.enable":case"blend.enable":case"dither":case"stencil.enable":case"depth.enable":case"scissor.enable":case"polygonOffset.enable":case"sample.alpha":case"sample.enable":case"depth.mask":case"lineWidth":return e((function(t){return t}),(function(t,e,r){return r}));case"depth.func":return e((function(t){return Ct[t]}),(function(t,e,r){return e.def(t.constants.compareFuncs,"[",r,"]")}));case"depth.range":return e((function(t){return t}),(function(t,e,r){return[e.def("+",r,"[0]"),e=e.def("+",r,"[1]")]}));case"blend.func":return e((function(t){return[Lt["srcRGB"in t?t.srcRGB:t.src],Lt["dstRGB"in t?t.dstRGB:t.dst],Lt["srcAlpha"in t?t.srcAlpha:t.src],Lt["dstAlpha"in t?t.dstAlpha:t.dst]]}),(function(t,e,r){function n(t,n){return e.def('"',t,n,'" in ',r,"?",r,".",t,n,":",r,".",t)}t=t.constants.blendFuncs;var i=n("src","RGB"),a=n("dst","RGB"),o=(i=e.def(t,"[",i,"]"),e.def(t,"[",n("src","Alpha"),"]"));return[i,a=e.def(t,"[",a,"]"),o,t=e.def(t,"[",n("dst","Alpha"),"]")]}));case"blend.equation":return e((function(t){return"string"==typeof t?[$[t],$[t]]:"object"==typeof t?[$[t.rgb],$[t.alpha]]:void 0}),(function(t,e,r){var n=t.constants.blendEquations,i=e.def(),a=e.def();return(t=t.cond("typeof ",r,'==="string"')).then(i,"=",a,"=",n,"[",r,"];"),t.else(i,"=",n,"[",r,".rgb];",a,"=",n,"[",r,".alpha];"),e(t),[i,a]}));case"blend.color":return e((function(t){return o(4,(function(e){return+t[e]}))}),(function(t,e,r){return o(4,(function(t){return e.def("+",r,"[",t,"]")}))}));case"stencil.mask":return e((function(t){return 0|t}),(function(t,e,r){return e.def(r,"|0")}));case"stencil.func":return e((function(t){return[Ct[t.cmp||"keep"],t.ref||0,"mask"in t?t.mask:-1]}),(function(t,e,r){return[t=e.def('"cmp" in ',r,"?",t.constants.compareFuncs,"[",r,".cmp]",":",7680),e.def(r,".ref|0"),e=e.def('"mask" in ',r,"?",r,".mask|0:-1")]}));case"stencil.opFront":case"stencil.opBack":return e((function(e){return["stencil.opBack"===t?1029:1028,Pt[e.fail||"keep"],Pt[e.zfail||"keep"],Pt[e.zpass||"keep"]]}),(function(e,r,n){function i(t){return r.def('"',t,'" in ',n,"?",a,"[",n,".",t,"]:",7680)}var a=e.constants.stencilOps;return["stencil.opBack"===t?1029:1028,i("fail"),i("zfail"),i("zpass")]}));case"polygonOffset.offset":return e((function(t){return[0|t.factor,0|t.units]}),(function(t,e,r){return[e.def(r,".factor|0"),e=e.def(r,".units|0")]}));case"cull.face":return e((function(t){var e=0;return"front"===t?e=1028:"back"===t&&(e=1029),e}),(function(t,e,r){return e.def(r,'==="front"?',1028,":",1029)}));case"frontFace":return e((function(t){return Ot[t]}),(function(t,e,r){return e.def(r+'==="cw"?2304:2305')}));case"colorMask":return e((function(t){return t.map((function(t){return!!t}))}),(function(t,e,r){return o(4,(function(t){return"!!"+r+"["+t+"]"}))}));case"sample.coverage":return e((function(t){return["value"in t?t.value:1,!!t.invert]}),(function(t,e,r){return[e.def('"value" in ',r,"?+",r,".value:1"),e=e.def("!!",r,".invert")]}))}})),i}(t),p=T(t,0,l);s("viewport"),s(y("scissor.box"));var d,v=0<Object.keys(h).length;if((d={framebuffer:d,draw:f,shader:p,state:h,dirty:v,scopeVAO:null,drawVAO:null,useVAO:!1,attributes:{}}).profile=function(t){var e,r=t.static;if(t=t.dynamic,"profile"in r){var n=!!r.profile;(e=U((function(t,e){return n}))).enable=n}else if("profile"in t){var i=t.profile;e=V(i,(function(t,e){return t.invoke(e,i)}))}return e}(t),d.uniforms=function(t,e){var r=t.static,n=t.dynamic,i={};return Object.keys(r).forEach((function(t){var e,n=r[t];if("number"==typeof n||"boolean"==typeof n)e=U((function(){return n}));else if("function"==typeof n){var a=n._reglType;"texture2d"===a||"textureCube"===a?e=U((function(t){return t.link(n)})):"framebuffer"!==a&&"framebufferCube"!==a||(e=U((function(t){return t.link(n.color[0])})))}else m(n)&&(e=U((function(t){return t.global.def("[",o(n.length,(function(t){return n[t]})),"]")})));e.value=n,i[t]=e})),Object.keys(n).forEach((function(t){var e=n[t];i[t]=V(e,(function(t,r){return t.invoke(r,e)}))})),i}(n),d.drawVAO=d.scopeVAO=f.vao,!d.drawVAO&&p.program&&!l&&r.angle_instanced_arrays&&f.static.elements){var g=!0;if(t=p.program.attributes.map((function(t){return t=e.static[t],g=g&&!!t,t})),g&&0<t.length){var x=c.getVAO(c.createVAO({attributes:t,elements:f.static.elements}));d.drawVAO=new N(null,null,null,(function(t,e){return t.link(x)})),d.useVAO=!0}}return l?d.useVAO=!0:d.attributes=A(e),d.context=function(t){var e=t.static,r=t.dynamic,n={};return Object.keys(e).forEach((function(t){var r=e[t];n[t]=U((function(t,e){return"number"==typeof r||"boolean"==typeof r?""+r:t.link(r)}))})),Object.keys(r).forEach((function(t){var e=r[t];n[t]=V(e,(function(t,r){return t.invoke(r,e)}))})),n}(i),d}function S(t,e,r){var n=t.shared.context,i=t.scope();Object.keys(r).forEach((function(a){e.save(n,"."+a);var o=r[a].append(t,e);Array.isArray(o)?i(n,".",a,"=[",o.join(),"];"):i(n,".",a,"=",o,";")})),e(i)}function E(t,e,r,n){var i,a=(s=t.shared).gl,o=s.framebuffer;tt&&(i=e.def(s.extensions,".webgl_draw_buffers"));var s=(l=t.constants).drawBuffer,l=l.backBuffer;t=r?r.append(t,e):e.def(o,".next"),n||e("if(",t,"!==",o,".cur){"),e("if(",t,"){",a,".bindFramebuffer(",36160,",",t,".framebuffer);"),tt&&e(i,".drawBuffersWEBGL(",s,"[",t,".colorAttachments.length]);"),e("}else{",a,".bindFramebuffer(",36160,",null);"),tt&&e(i,".drawBuffersWEBGL(",l,");"),e("}",o,".cur=",t,";"),n||e("}")}function L(t,e,r){var n=t.shared,i=n.gl,a=t.current,s=t.next,l=n.current,u=n.next,c=t.cond(l,".dirty");at.forEach((function(e){var n,f;if(!((e=y(e))in r.state))if(e in s){n=s[e],f=a[e];var h=o(nt[e].length,(function(t){return c.def(n,"[",t,"]")}));c(t.cond(h.map((function(t,e){return t+"!=="+f+"["+e+"]"})).join("||")).then(i,".",lt[e],"(",h,");",h.map((function(t,e){return f+"["+e+"]="+t})).join(";"),";"))}else n=c.def(u,".",e),h=t.cond(n,"!==",l,".",e),c(h),e in ot?h(t.cond(n).then(i,".enable(",ot[e],");").else(i,".disable(",ot[e],");"),l,".",e,"=",n,";"):h(i,".",lt[e],"(",n,");",l,".",e,"=",n,";")})),0===Object.keys(r.state).length&&c(l,".dirty=false;"),e(c)}function C(t,e,r,n){var i,a=t.shared,o=t.current,s=a.current,l=a.gl;B(Object.keys(r)).forEach((function(a){var u=r[a];if(!n||n(u)){var c=u.append(t,e);if(ot[a]){var f=ot[a];j(u)?(i=t.link(c,{stable:!0}),e(t.cond(i).then(l,".enable(",f,");").else(l,".disable(",f,");")),e(s,".",a,"=",i,";")):(e(t.cond(c).then(l,".enable(",f,");").else(l,".disable(",f,");")),e(s,".",a,"=",c,";"))}else if(m(c)){var h=o[a];e(l,".",lt[a],"(",c,");",c.map((function(t,e){return h+"["+e+"]="+t})).join(";"),";")}else j(u)?(i=t.link(c,{stable:!0}),e(l,".",lt[a],"(",i,");",s,".",a,"=",i,";")):e(l,".",lt[a],"(",c,");",s,".",a,"=",c,";")}}))}function P(t,e){Q&&(t.instancing=e.def(t.shared.extensions,".angle_instanced_arrays"))}function O(t,e,r,n,i){function a(){return"undefined"==typeof performance?"Date.now()":"performance.now()"}function o(t){t(u=e.def(),"=",a(),";"),"string"==typeof i?t(h,".count+=",i,";"):t(h,".count++;"),d&&(n?t(c=e.def(),"=",v,".getNumPendingQueries();"):t(v,".beginQuery(",h,");"))}function s(t){t(h,".cpuTime+=",a(),"-",u,";"),d&&(n?t(v,".pushScopeStats(",c,",",v,".getNumPendingQueries(),",h,");"):t(v,".endQuery();"))}function l(t){var r=e.def(p,".profile");e(p,".profile=",t,";"),e.exit(p,".profile=",r,";")}var u,c,f=t.shared,h=t.stats,p=f.current,v=f.timer;if(r=r.profile){if(j(r))return void(r.enable?(o(e),s(e.exit),l("true")):l("false"));l(r=r.append(t,e))}else r=e.def(p,".profile");o(f=t.block()),e("if(",r,"){",f,"}"),s(t=t.block()),e.exit("if(",r,"){",t,"}")}function I(t,e,r,n,i){function a(r,n,i){function a(){e("if(!",c,".buffer){",l,".enableVertexAttribArray(",u,");}");var r,a=i.type;r=i.size?e.def(i.size,"||",n):n,e("if(",c,".type!==",a,"||",c,".size!==",r,"||",p.map((function(t){return c+"."+t+"!=="+i[t]})).join("||"),"){",l,".bindBuffer(",34962,",",f,".buffer);",l,".vertexAttribPointer(",[u,r,a,i.normalized,i.stride,i.offset],");",c,".type=",a,";",c,".size=",r,";",p.map((function(t){return c+"."+t+"="+i[t]+";"})).join(""),"}"),Q&&(a=i.divisor,e("if(",c,".divisor!==",a,"){",t.instancing,".vertexAttribDivisorANGLE(",[u,a],");",c,".divisor=",a,";}"))}function s(){e("if(",c,".buffer){",l,".disableVertexAttribArray(",u,");",c,".buffer=null;","}if(",St.map((function(t,e){return c+"."+t+"!=="+h[e]})).join("||"),"){",l,".vertexAttrib4f(",u,",",h,");",St.map((function(t,e){return c+"."+t+"="+h[e]+";"})).join(""),"}")}var l=o.gl,u=e.def(r,".location"),c=e.def(o.attributes,"[",u,"]");r=i.state;var f=i.buffer,h=[i.x,i.y,i.z,i.w],p=["buffer","normalized","offset","stride"];1===r?a():2===r?s():(e("if(",r,"===",1,"){"),a(),e("}else{"),s(),e("}"))}var o=t.shared;n.forEach((function(n){var o,s=n.name,l=r.attributes[s];if(l){if(!i(l))return;o=l.append(t,e)}else{if(!i(It))return;var u=t.scopeAttrib(s);o={},Object.keys(new K).forEach((function(t){o[t]=e.def(u,".",t)}))}a(t.link(n),function(t){switch(t){case 35664:case 35667:case 35671:return 2;case 35665:case 35668:case 35672:return 3;case 35666:case 35669:case 35673:return 4;default:return 1}}(n.info.type),o)}))}function D(t,r,n,i,a,s){for(var l,u=t.shared,c=u.gl,f=0;f<i.length;++f){var h,p=(g=i[f]).name,d=g.info.type,v=n.uniforms[p],g=t.link(g)+".location";if(v){if(!a(v))continue;if(j(v)){if(p=v.value,35678===d||35680===d)r(c,".uniform1i(",g,",",(d=t.link(p._texture||p.color[0]._texture))+".bind());"),r.exit(d,".unbind();");else if(35674===d||35675===d||35676===d)v=2,35675===d?v=3:35676===d&&(v=4),r(c,".uniformMatrix",v,"fv(",g,",false,",p=t.global.def("new Float32Array(["+Array.prototype.slice.call(p)+"])"),");");else{switch(d){case 5126:l="1f";break;case 35664:l="2f";break;case 35665:l="3f";break;case 35666:l="4f";break;case 35670:case 5124:l="1i";break;case 35671:case 35667:l="2i";break;case 35672:case 35668:l="3i";break;case 35673:case 35669:l="4i"}r(c,".uniform",l,"(",g,",",m(p)?Array.prototype.slice.call(p):p,");")}continue}h=v.append(t,r)}else{if(!a(It))continue;h=r.def(u.uniforms,"[",e.id(p),"]")}switch(35678===d?r("if(",h,"&&",h,'._reglType==="framebuffer"){',h,"=",h,".color[0];","}"):35680===d&&r("if(",h,"&&",h,'._reglType==="framebufferCube"){',h,"=",h,".color[0];","}"),p=1,d){case 35678:case 35680:d=r.def(h,"._texture"),r(c,".uniform1i(",g,",",d,".bind());"),r.exit(d,".unbind();");continue;case 5124:case 35670:l="1i";break;case 35667:case 35671:l="2i",p=2;break;case 35668:case 35672:l="3i",p=3;break;case 35669:case 35673:l="4i",p=4;break;case 5126:l="1f";break;case 35664:l="2f",p=2;break;case 35665:l="3f",p=3;break;case 35666:l="4f",p=4;break;case 35674:l="Matrix2fv";break;case 35675:l="Matrix3fv";break;case 35676:l="Matrix4fv"}if("M"===l.charAt(0)){r(c,".uniform",l,"(",g,","),g=Math.pow(d-35674+2,2);var y=t.global.def("new Float32Array(",g,")");Array.isArray(h)?r("false,(",o(g,(function(t){return y+"["+t+"]="+h[t]})),",",y,")"):r("false,(Array.isArray(",h,")||",h," instanceof Float32Array)?",h,":(",o(g,(function(t){return y+"["+t+"]="+h+"["+t+"]"})),",",y,")"),r(");")}else{if(1<p){d=[];var x=[];for(v=0;v<p;++v)Array.isArray(h)?x.push(h[v]):x.push(r.def(h+"["+v+"]")),s&&d.push(r.def());s&&r("if(!",t.batchId,"||",d.map((function(t,e){return t+"!=="+x[e]})).join("||"),"){",d.map((function(t,e){return t+"="+x[e]+";"})).join("")),r(c,".uniform",l,"(",g,",",x.join(","),");")}else s&&(d=r.def(),r("if(!",t.batchId,"||",d,"!==",h,"){",d,"=",h,";")),r(c,".uniform",l,"(",g,",",h,");");s&&r("}")}}}function z(t,e,r,n){function i(i){var a=h[i];return a?a.contextDep&&n.contextDynamic||a.propDep?a.append(t,r):a.append(t,e):e.def(f,".",i)}function a(){function t(){r(l,".drawElementsInstancedANGLE(",[d,g,y,v+"<<(("+y+"-5121)>>1)",s],");")}function e(){r(l,".drawArraysInstancedANGLE(",[d,v,g,s],");")}p&&"null"!==p?m?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}function o(){function t(){r(c+".drawElements("+[d,g,y,v+"<<(("+y+"-5121)>>1)"]+");")}function e(){r(c+".drawArrays("+[d,v,g]+");")}p&&"null"!==p?m?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}var s,l,u=t.shared,c=u.gl,f=u.draw,h=n.draw,p=function(){var i=h.elements,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a),h.elementsActive&&a("if("+i+")"+c+".bindBuffer(34963,"+i+".buffer.buffer);")):(i=a.def(),a(i,"=",f,".","elements",";","if(",i,"){",c,".bindBuffer(",34963,",",i,".buffer.buffer);}","else if(",u.vao,".currentVAO){",i,"=",t.shared.elements+".getElements("+u.vao,".currentVAO.elements);",et?"":"if("+i+")"+c+".bindBuffer(34963,"+i+".buffer.buffer);","}")),i}(),d=i("primitive"),v=i("offset"),g=function(){var i=h.count,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,".","count"),i}();if("number"==typeof g){if(0===g)return}else r("if(",g,"){"),r.exit("}");Q&&(s=i("instances"),l=t.instancing);var y=p+".type",m=h.elements&&j(h.elements)&&!h.vaoActive;Q&&("number"!=typeof s||0<=s)?"string"==typeof s?(r("if(",s,">0){"),a(),r("}else if(",s,"<0){"),o(),r("}")):a():o()}function H(t,e,r,n,i){return i=(e=_()).proc("body",i),Q&&(e.instancing=i.def(e.shared.extensions,".angle_instanced_arrays")),t(e,i,r,n),e.compile().body}function q(t,e,r,n){P(t,e),r.useVAO?r.drawVAO?e(t.shared.vao,".setVAO(",r.drawVAO.append(t,e),");"):e(t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"):(e(t.shared.vao,".setVAO(null);"),I(t,e,r,n.attributes,(function(){return!0}))),D(t,e,r,n.uniforms,(function(){return!0}),!1),z(t,e,e,r)}function Z(t,e,r,n){function i(){return!0}t.batchId="a1",P(t,e),I(t,e,r,n.attributes,i),D(t,e,r,n.uniforms,i,!1),z(t,e,e,r)}function W(t,e,r,n){function i(t){return t.contextDep&&o||t.propDep}function a(t){return!i(t)}P(t,e);var o=r.contextDep,s=e.def(),l=e.def();t.shared.props=l,t.batchId=s;var u=t.scope(),c=t.scope();e(u.entry,"for(",s,"=0;",s,"<","a1",";++",s,"){",l,"=","a0","[",s,"];",c,"}",u.exit),r.needsContext&&S(t,c,r.context),r.needsFramebuffer&&E(t,c,r.framebuffer),C(t,c,r.state,i),r.profile&&i(r.profile)&&O(t,c,r,!1,!0),n?(r.useVAO?r.drawVAO?i(r.drawVAO)?c(t.shared.vao,".setVAO(",r.drawVAO.append(t,c),");"):u(t.shared.vao,".setVAO(",r.drawVAO.append(t,u),");"):u(t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"):(u(t.shared.vao,".setVAO(null);"),I(t,u,r,n.attributes,a),I(t,c,r,n.attributes,i)),D(t,u,r,n.uniforms,a,!1),D(t,c,r,n.uniforms,i,!0),z(t,u,c,r)):(e=t.global.def("{}"),n=r.shader.progVar.append(t,c),l=c.def(n,".id"),u=c.def(e,"[",l,"]"),c(t.shared.gl,".useProgram(",n,".program);","if(!",u,"){",u,"=",e,"[",l,"]=",t.link((function(e){return H(Z,t,r,e,2)})),"(",n,");}",u,".call(this,a0[",s,"],",s,");"))}function X(t,r){function n(e){var n=r.shader[e];n&&(n=n.append(t,i),isNaN(n)?i.set(a.shader,"."+e,n):i.set(a.shader,"."+e,t.link(n,{stable:!0})))}var i=t.proc("scope",3);t.batchId="a2";var a=t.shared,o=a.current;if(S(t,i,r.context),r.framebuffer&&r.framebuffer.append(t,i),B(Object.keys(r.state)).forEach((function(e){var n=r.state[e],o=n.append(t,i);m(o)?o.forEach((function(r,n){isNaN(r)?i.set(t.next[e],"["+n+"]",r):i.set(t.next[e],"["+n+"]",t.link(r,{stable:!0}))})):j(n)?i.set(a.next,"."+e,t.link(o,{stable:!0})):i.set(a.next,"."+e,o)})),O(t,i,r,!0,!0),["elements","offset","count","instances","primitive"].forEach((function(e){var n=r.draw[e];n&&(n=n.append(t,i),isNaN(n)?i.set(a.draw,"."+e,n):i.set(a.draw,"."+e,t.link(n),{stable:!0}))})),Object.keys(r.uniforms).forEach((function(n){var o=r.uniforms[n].append(t,i);Array.isArray(o)&&(o="["+o.map((function(e){return isNaN(e)?e:t.link(e,{stable:!0})}))+"]"),i.set(a.uniforms,"["+t.link(e.id(n),{stable:!0})+"]",o)})),Object.keys(r.attributes).forEach((function(e){var n=r.attributes[e].append(t,i),a=t.scopeAttrib(e);Object.keys(new K).forEach((function(t){i.set(a,"."+t,n[t])}))})),r.scopeVAO){var s=r.scopeVAO.append(t,i);isNaN(s)?i.set(a.vao,".targetVAO",s):i.set(a.vao,".targetVAO",t.link(s,{stable:!0}))}n("vert"),n("frag"),0<Object.keys(r.state).length&&(i(o,".dirty=true;"),i.exit(o,".dirty=true;")),i("a1(",t.shared.context,",a0,",t.batchId,");")}function J(t,e,r){var n=e.static[r];if(n&&function(t){if("object"==typeof t&&!m(t)){for(var e=Object.keys(t),r=0;r<e.length;++r)if(Y.isDynamic(t[e[r]]))return!0;return!1}}(n)){var i=t.global,a=Object.keys(n),o=!1,s=!1,l=!1,u=t.global.def("{}");a.forEach((function(e){var r=n[e];if(Y.isDynamic(r))"function"==typeof r&&(r=n[e]=Y.unbox(r)),e=V(r,null),o=o||e.thisDep,l=l||e.propDep,s=s||e.contextDep;else{switch(i(u,".",e,"="),typeof r){case"number":i(r);break;case"string":i('"',r,'"');break;case"object":Array.isArray(r)&&i("[",r.join(),"]");break;default:i(t.link(r))}i(";")}})),e.dynamic[r]=new Y.DynamicVariable(4,{thisDep:o,contextDep:s,propDep:l,ref:u,append:function(t,e){a.forEach((function(r){var i=n[r];Y.isDynamic(i)&&(i=t.invoke(e,i),e(u,".",r,"=",i,";"))}))}}),delete e.static[r]}}var K=c.Record,$={add:32774,subtract:32778,"reverse subtract":32779};r.ext_blend_minmax&&($.min=32775,$.max=32776);var Q=r.angle_instanced_arrays,tt=r.webgl_draw_buffers,et=r.oes_vertex_array_object,nt={dirty:!0,profile:g.profile},it={},at=[],ot={},lt={};x("dither",3024),x("blend.enable",3042),b("blend.color","blendColor",[0,0,0,0]),b("blend.equation","blendEquationSeparate",[32774,32774]),b("blend.func","blendFuncSeparate",[1,0,1,0]),x("depth.enable",2929,!0),b("depth.func","depthFunc",513),b("depth.range","depthRange",[0,1]),b("depth.mask","depthMask",!0),b("colorMask","colorMask",[!0,!0,!0,!0]),x("cull.enable",2884),b("cull.face","cullFace",1029),b("frontFace","frontFace",2305),b("lineWidth","lineWidth",1),x("polygonOffset.enable",32823),b("polygonOffset.offset","polygonOffset",[0,0]),x("sample.alpha",32926),x("sample.enable",32928),b("sample.coverage","sampleCoverage",[1,!1]),x("stencil.enable",2960),b("stencil.mask","stencilMask",-1),b("stencil.func","stencilFunc",[519,0,-1]),b("stencil.opFront","stencilOpSeparate",[1028,7680,7680,7680]),b("stencil.opBack","stencilOpSeparate",[1029,7680,7680,7680]),x("scissor.enable",3089),b("scissor.box","scissor",[0,0,t.drawingBufferWidth,t.drawingBufferHeight]),b("viewport","viewport",[0,0,t.drawingBufferWidth,t.drawingBufferHeight]);var ut={gl:t,context:p,strings:e,next:it,current:nt,draw:h,elements:a,buffer:i,shader:f,attributes:c.state,vao:c,uniforms:u,framebuffer:l,extensions:r,timer:d,isBufferArgs:F},ct={primTypes:st,compareFuncs:Ct,blendFuncs:Lt,blendEquations:$,stencilOps:Pt,glTypes:rt,orientationType:Ot};tt&&(ct.backBuffer=[1029],ct.drawBuffer=o(n.maxDrawbuffers,(function(t){return 0===t?[0]:o(t,(function(t){return 36064+t}))})));var ft=0;return{next:it,current:nt,procs:function(){var t=_(),e=t.proc("poll"),i=t.proc("refresh"),a=t.block();e(a),i(a);var s,l=(f=t.shared).gl,u=f.next,c=f.current;a(c,".dirty=false;"),E(t,e),E(t,i,null,!0),Q&&(s=t.link(Q)),r.oes_vertex_array_object&&i(t.link(r.oes_vertex_array_object),".bindVertexArrayOES(null);");var f=i.def(f.attributes),h=i.def(0),p=t.cond(h,".buffer");p.then(l,".enableVertexAttribArray(i);",l,".bindBuffer(",34962,",",h,".buffer.buffer);",l,".vertexAttribPointer(i,",h,".size,",h,".type,",h,".normalized,",h,".stride,",h,".offset);").else(l,".disableVertexAttribArray(i);",l,".vertexAttrib4f(i,",h,".x,",h,".y,",h,".z,",h,".w);",h,".buffer=null;");var d=t.link(n.maxAttributes,{stable:!0});return i("for(var i=0;i<",d,";++i){",h,"=",f,"[i];",p,"}"),Q&&i("for(var i=0;i<",d,";++i){",s,".vertexAttribDivisorANGLE(i,",f,"[i].divisor);","}"),i(t.shared.vao,".currentVAO=null;",t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"),Object.keys(ot).forEach((function(r){var n=ot[r],o=a.def(u,".",r),s=t.block();s("if(",o,"){",l,".enable(",n,")}else{",l,".disable(",n,")}",c,".",r,"=",o,";"),i(s),e("if(",o,"!==",c,".",r,"){",s,"}")})),Object.keys(lt).forEach((function(r){var n,s,f=lt[r],h=nt[r],p=t.block();p(l,".",f,"("),m(h)?(f=h.length,n=t.global.def(u,".",r),s=t.global.def(c,".",r),p(o(f,(function(t){return n+"["+t+"]"})),");",o(f,(function(t){return s+"["+t+"]="+n+"["+t+"];"})).join("")),e("if(",o(f,(function(t){return n+"["+t+"]!=="+s+"["+t+"]"})).join("||"),"){",p,"}")):(n=a.def(u,".",r),s=a.def(c,".",r),p(n,");",c,".",r,"=",n,";"),e("if(",n,"!==",s,"){",p,"}")),i(p)})),t.compile()}(),compile:function(t,e,r,n,i){var a=_();a.stats=a.link(i),Object.keys(e.static).forEach((function(t){J(a,e,t)})),Et.forEach((function(e){J(a,t,e)}));var o=M(t,e,r,n);return o.shader.program&&(o.shader.program.attributes.sort((function(t,e){return t.name<e.name?-1:1})),o.shader.program.uniforms.sort((function(t,e){return t.name<e.name?-1:1}))),function(t,e){var r=t.proc("draw",1);P(t,r),S(t,r,e.context),E(t,r,e.framebuffer),L(t,r,e),C(t,r,e.state),O(t,r,e,!1,!0);var n=e.shader.progVar.append(t,r);if(r(t.shared.gl,".useProgram(",n,".program);"),e.shader.program)q(t,r,e,e.shader.program);else{r(t.shared.vao,".setVAO(null);");var i=t.global.def("{}"),a=r.def(n,".id"),o=r.def(i,"[",a,"]");r(t.cond(o).then(o,".call(this,a0);").else(o,"=",i,"[",a,"]=",t.link((function(r){return H(q,t,e,r,1)})),"(",n,");",o,".call(this,a0);"))}0<Object.keys(e.state).length&&r(t.shared.current,".dirty=true;"),t.shared.vao&&r(t.shared.vao,".setVAO(null);")}(a,o),X(a,o),function(t,e){function r(t){return t.contextDep&&i||t.propDep}var n=t.proc("batch",2);t.batchId="0",P(t,n);var i=!1,a=!0;Object.keys(e.context).forEach((function(t){i=i||e.context[t].propDep})),i||(S(t,n,e.context),a=!1);var o=!1;if((s=e.framebuffer)?(s.propDep?i=o=!0:s.contextDep&&i&&(o=!0),o||E(t,n,s)):E(t,n,null),e.state.viewport&&e.state.viewport.propDep&&(i=!0),L(t,n,e),C(t,n,e.state,(function(t){return!r(t)})),e.profile&&r(e.profile)||O(t,n,e,!1,"a1"),e.contextDep=i,e.needsContext=a,e.needsFramebuffer=o,(a=e.shader.progVar).contextDep&&i||a.propDep)W(t,n,e,null);else if(a=a.append(t,n),n(t.shared.gl,".useProgram(",a,".program);"),e.shader.program)W(t,n,e,e.shader.program);else{n(t.shared.vao,".setVAO(null);");var s=t.global.def("{}"),l=(o=n.def(a,".id"),n.def(s,"[",o,"]"));n(t.cond(l).then(l,".call(this,a0,a1);").else(l,"=",s,"[",o,"]=",t.link((function(r){return H(W,t,e,r,2)})),"(",a,");",l,".call(this,a0,a1);"))}0<Object.keys(e.state).length&&n(t.shared.current,".dirty=true;"),t.shared.vao&&n(t.shared.vao,".setVAO(null);")}(a,o),G(a.compile(),{destroy:function(){o.shader.program.destroy()}})}}}function q(t,e){for(var r=0;r<t.length;++r)if(t[r]===e)return r;return-1}var G=function(t,e){for(var r=Object.keys(e),n=0;n<r.length;++n)t[r[n]]=e[r[n]];return t},Z=0,Y={DynamicVariable:t,define:function(e,n){return new t(e,r(n+""))},isDynamic:function(e){return"function"==typeof e&&!e._reglType||e instanceof t},unbox:function e(r,n){return"function"==typeof r?new t(0,r):"number"==typeof r||"boolean"==typeof r?new t(5,r):Array.isArray(r)?new t(6,r.map((function(t,r){return e(t,n+"["+r+"]")}))):r instanceof t?r:void 0},accessor:r},W={next:"function"==typeof requestAnimationFrame?function(t){return requestAnimationFrame(t)}:function(t){return setTimeout(t,16)},cancel:"function"==typeof cancelAnimationFrame?function(t){return cancelAnimationFrame(t)}:clearTimeout},X="undefined"!=typeof performance&&performance.now?function(){return performance.now()}:function(){return+new Date},J=l();J.zero=l();var K=function(t,e){var r=1;e.ext_texture_filter_anisotropic&&(r=t.getParameter(34047));var n=1,i=1;e.webgl_draw_buffers&&(n=t.getParameter(34852),i=t.getParameter(36063));var a=!!e.oes_texture_float;if(a){a=t.createTexture(),t.bindTexture(3553,a),t.texImage2D(3553,0,6408,1,1,0,6408,5126,null);var o=t.createFramebuffer();if(t.bindFramebuffer(36160,o),t.framebufferTexture2D(36160,36064,3553,a,0),t.bindTexture(3553,null),36053!==t.checkFramebufferStatus(36160))a=!1;else{t.viewport(0,0,1,1),t.clearColor(1,0,0,1),t.clear(16384);var s=J.allocType(5126,4);t.readPixels(0,0,1,1,6408,5126,s),t.getError()?a=!1:(t.deleteFramebuffer(o),t.deleteTexture(a),a=1===s[0]),J.freeType(s)}}return s=!0,"undefined"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion)||/Edge/.test(navigator.userAgent))||(s=t.createTexture(),o=J.allocType(5121,36),t.activeTexture(33984),t.bindTexture(34067,s),t.texImage2D(34069,0,6408,3,3,0,6408,5121,o),J.freeType(o),t.bindTexture(34067,null),t.deleteTexture(s),s=!t.getError()),{colorBits:[t.getParameter(3410),t.getParameter(3411),t.getParameter(3412),t.getParameter(3413)],depthBits:t.getParameter(3414),stencilBits:t.getParameter(3415),subpixelBits:t.getParameter(3408),extensions:Object.keys(e).filter((function(t){return!!e[t]})),maxAnisotropic:r,maxDrawbuffers:n,maxColorAttachments:i,pointSizeDims:t.getParameter(33901),lineWidthDims:t.getParameter(33902),maxViewportDims:t.getParameter(3386),maxCombinedTextureUnits:t.getParameter(35661),maxCubeMapSize:t.getParameter(34076),maxRenderbufferSize:t.getParameter(34024),maxTextureUnits:t.getParameter(34930),maxTextureSize:t.getParameter(3379),maxAttributes:t.getParameter(34921),maxVertexUniforms:t.getParameter(36347),maxVertexTextureUnits:t.getParameter(35660),maxVaryingVectors:t.getParameter(36348),maxFragmentUniforms:t.getParameter(36349),glsl:t.getParameter(35724),renderer:t.getParameter(7937),vendor:t.getParameter(7936),version:t.getParameter(7938),readFloat:a,npotTextureCube:s}},$=function(t){return t instanceof Uint8Array||t instanceof Uint16Array||t instanceof Uint32Array||t instanceof Int8Array||t instanceof Int16Array||t instanceof Int32Array||t instanceof Float32Array||t instanceof Float64Array||t instanceof Uint8ClampedArray},Q=function(t){return Object.keys(t).map((function(e){return t[e]}))},tt={shape:function(t){for(var e=[];t.length;t=t[0])e.push(t.length);return e},flatten:function(t,e,r,n){var i=1;if(e.length)for(var a=0;a<e.length;++a)i*=e[a];else i=0;switch(r=n||J.allocType(r,i),e.length){case 0:break;case 1:for(n=e[0],e=0;e<n;++e)r[e]=t[e];break;case 2:for(n=e[0],e=e[1],a=i=0;a<n;++a)for(var o=t[a],s=0;s<e;++s)r[i++]=o[s];break;case 3:c(t,e[0],e[1],e[2],r,0);break;default:f(t,e,0,r,0)}return r}},et={"[object Int8Array]":5120,"[object Int16Array]":5122,"[object Int32Array]":5124,"[object Uint8Array]":5121,"[object Uint8ClampedArray]":5121,"[object Uint16Array]":5123,"[object Uint32Array]":5125,"[object Float32Array]":5126,"[object Float64Array]":5121,"[object ArrayBuffer]":5121},rt={int8:5120,int16:5122,int32:5124,uint8:5121,uint16:5123,uint32:5125,float:5126,float32:5126},nt={dynamic:35048,stream:35040,static:35044},it=tt.flatten,at=tt.shape,ot=[];ot[5120]=1,ot[5122]=2,ot[5124]=4,ot[5121]=1,ot[5123]=2,ot[5125]=4,ot[5126]=4;var st={points:0,point:0,lines:1,line:1,triangles:4,triangle:4,"line loop":2,"line strip":3,"triangle strip":5,"triangle fan":6},lt=new Float32Array(1),ut=new Uint32Array(lt.buffer),ct=[9984,9986,9985,9987],ft=[0,6409,6410,6407,6408],ht={};ht[6409]=ht[6406]=ht[6402]=1,ht[34041]=ht[6410]=2,ht[6407]=ht[35904]=3,ht[6408]=ht[35906]=4;var pt=x("HTMLCanvasElement"),dt=x("OffscreenCanvas"),vt=x("CanvasRenderingContext2D"),gt=x("ImageBitmap"),yt=x("HTMLImageElement"),mt=x("HTMLVideoElement"),xt=Object.keys(et).concat([pt,dt,vt,gt,yt,mt]),bt=[];bt[5121]=1,bt[5126]=4,bt[36193]=2,bt[5123]=2,bt[5125]=4;var _t=[];_t[32854]=2,_t[32855]=2,_t[36194]=2,_t[34041]=4,_t[33776]=.5,_t[33777]=.5,_t[33778]=1,_t[33779]=1,_t[35986]=.5,_t[35987]=1,_t[34798]=1,_t[35840]=.5,_t[35841]=.25,_t[35842]=.5,_t[35843]=.25,_t[36196]=.5;var wt=[];wt[32854]=2,wt[32855]=2,wt[36194]=2,wt[33189]=2,wt[36168]=1,wt[34041]=4,wt[35907]=4,wt[34836]=16,wt[34842]=8,wt[34843]=6;var Tt=function(t,e,r,n,i){function a(t){this.id=u++,this.refCount=1,this.renderbuffer=t,this.format=32854,this.height=this.width=0,i.profile&&(this.stats={size:0})}function o(e){var r=e.renderbuffer;t.bindRenderbuffer(36161,null),t.deleteRenderbuffer(r),e.renderbuffer=null,e.refCount=0,delete c[e.id],n.renderbufferCount--}var s={rgba4:32854,rgb565:36194,"rgb5 a1":32855,depth:33189,stencil:36168,"depth stencil":34041};e.ext_srgb&&(s.srgba=35907),e.ext_color_buffer_half_float&&(s.rgba16f=34842,s.rgb16f=34843),e.webgl_color_buffer_float&&(s.rgba32f=34836);var l=[];Object.keys(s).forEach((function(t){l[s[t]]=t}));var u=0,c={};return a.prototype.decRef=function(){0>=--this.refCount&&o(this)},i.profile&&(n.getTotalRenderbufferSize=function(){var t=0;return Object.keys(c).forEach((function(e){t+=c[e].stats.size})),t}),{create:function(e,r){function o(e,r){var n=0,a=0,c=32854;if("object"==typeof e&&e?("shape"in e?(n=0|(a=e.shape)[0],a=0|a[1]):("radius"in e&&(n=a=0|e.radius),"width"in e&&(n=0|e.width),"height"in e&&(a=0|e.height)),"format"in e&&(c=s[e.format])):"number"==typeof e?(n=0|e,a="number"==typeof r?0|r:n):e||(n=a=1),n!==u.width||a!==u.height||c!==u.format)return o.width=u.width=n,o.height=u.height=a,u.format=c,t.bindRenderbuffer(36161,u.renderbuffer),t.renderbufferStorage(36161,c,n,a),i.profile&&(u.stats.size=wt[u.format]*u.width*u.height),o.format=l[u.format],o}var u=new a(t.createRenderbuffer());return c[u.id]=u,n.renderbufferCount++,o(e,r),o.resize=function(e,r){var n=0|e,a=0|r||n;return n===u.width&&a===u.height||(o.width=u.width=n,o.height=u.height=a,t.bindRenderbuffer(36161,u.renderbuffer),t.renderbufferStorage(36161,u.format,n,a),i.profile&&(u.stats.size=wt[u.format]*u.width*u.height)),o},o._reglType="renderbuffer",o._renderbuffer=u,i.profile&&(o.stats=u.stats),o.destroy=function(){u.decRef()},o},clear:function(){Q(c).forEach(o)},restore:function(){Q(c).forEach((function(e){e.renderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,e.renderbuffer),t.renderbufferStorage(36161,e.format,e.width,e.height)})),t.bindRenderbuffer(36161,null)}}},kt=[];kt[6408]=4,kt[6407]=3;var At=[];At[5121]=1,At[5126]=4,At[36193]=2;var Mt=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],St=["x","y","z","w"],Et="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "),Lt={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},Ct={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},Pt={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},Ot={cw:2304,ccw:2305},It=new N(!1,!1,!1,(function(){}));return function(t){function e(){if(0===J.length)T&&T.update(),et=null;else{et=W.next(e),f();for(var t=J.length-1;0<=t;--t){var r=J[t];r&&r(O,null,0)}d.flush(),T&&T.update()}}function r(){!et&&0<J.length&&(et=W.next(e))}function n(){et&&(W.cancel(e),et=null)}function i(t){t.preventDefault(),n(),$.forEach((function(t){t()}))}function o(t){d.getError(),m.restore(),F.restore(),D.restore(),B.restore(),N.restore(),j.restore(),R.restore(),T&&T.restore(),U.procs.refresh(),r(),Q.forEach((function(t){t()}))}function s(t){function e(t,e){var r={},n={};return Object.keys(t).forEach((function(i){var a=t[i];if(Y.isDynamic(a))n[i]=Y.unbox(a,i);else{if(e&&Array.isArray(a))for(var o=0;o<a.length;++o)if(Y.isDynamic(a[o]))return void(n[i]=Y.unbox(a,i));r[i]=a}})),{dynamic:n,static:r}}var r=e(t.context||{},!0),n=e(t.uniforms||{},!0),i=e(t.attributes||{},!1);t=e(function(t){function e(t){if(t in r){var e=r[t];delete r[t],Object.keys(e).forEach((function(n){r[t+"."+n]=e[n]}))}}var r=G({},t);return delete r.uniforms,delete r.attributes,delete r.context,delete r.vao,"stencil"in r&&r.stencil.op&&(r.stencil.opBack=r.stencil.opFront=r.stencil.op,delete r.stencil.op),e("blend"),e("depth"),e("cull"),e("stencil"),e("polygonOffset"),e("scissor"),e("sample"),"vao"in t&&(r.vao=t.vao),r}(t),!1);var a={gpuTime:0,cpuTime:0,count:0},o=U.compile(t,i,n,r,a),s=o.draw,l=o.batch,u=o.scope,c=[];return G((function(t,e){var r;if("function"==typeof t)return u.call(this,null,t,0);if("function"==typeof e)if("number"==typeof t)for(r=0;r<t;++r)u.call(this,null,e,r);else{if(!Array.isArray(t))return u.call(this,t,e,0);for(r=0;r<t.length;++r)u.call(this,t[r],e,r)}else if("number"==typeof t){if(0<t)return l.call(this,function(t){for(;c.length<t;)c.push(null);return c}(0|t),0|t)}else{if(!Array.isArray(t))return s.call(this,t);if(t.length)return l.call(this,t,t.length)}}),{stats:a,destroy:function(){o.destroy()}})}function l(t,e){var r=0;U.procs.poll();var n=e.color;n&&(d.clearColor(+n[0]||0,+n[1]||0,+n[2]||0,+n[3]||0),r|=16384),"depth"in e&&(d.clearDepth(+e.depth),r|=256),"stencil"in e&&(d.clearStencil(0|e.stencil),r|=1024),d.clear(r)}function u(t){return J.push(t),r(),{cancel:function(){var e=q(J,t);J[e]=function t(){var e=q(J,t);J[e]=J[J.length-1],--J.length,0>=J.length&&n()}}}}function c(){var t=V.viewport,e=V.scissor_box;t[0]=t[1]=e[0]=e[1]=0,O.viewportWidth=O.framebufferWidth=O.drawingBufferWidth=t[2]=e[2]=d.drawingBufferWidth,O.viewportHeight=O.framebufferHeight=O.drawingBufferHeight=t[3]=e[3]=d.drawingBufferHeight}function f(){O.tick+=1,O.time=p(),c(),U.procs.poll()}function h(){B.refresh(),c(),U.procs.refresh(),T&&T.update()}function p(){return(X()-k)/1e3}if(!(t=a(t)))return null;var d=t.gl,y=d.getContextAttributes();d.isContextLost();var m=function(t,e){function r(e){var r;e=e.toLowerCase();try{r=n[e]=t.getExtension(e)}catch(t){}return!!r}for(var n={},i=0;i<e.extensions.length;++i){var a=e.extensions[i];if(!r(a))return e.onDestroy(),e.onDone('"'+a+'" extension is not supported by the current WebGL context, try upgrading your system or a different browser'),null}return e.optionalExtensions.forEach(r),{extensions:n,restore:function(){Object.keys(n).forEach((function(t){if(n[t]&&!r(t))throw Error("(regl): error restoring extension "+t)}))}}}(d,t);if(!m)return null;var x=function(){var t={"":0},e=[""];return{id:function(r){var n=t[r];return n||(n=t[r]=e.length,e.push(r),n)},str:function(t){return e[t]}}}(),b={vaoCount:0,bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0},_=t.cachedCode||{},w=m.extensions,T=function(t,e){function r(){this.endQueryIndex=this.startQueryIndex=-1,this.sum=0,this.stats=null}function n(t,e,n){var i=o.pop()||new r;i.startQueryIndex=t,i.endQueryIndex=e,i.sum=0,i.stats=n,s.push(i)}if(!e.ext_disjoint_timer_query)return null;var i=[],a=[],o=[],s=[],l=[],u=[];return{beginQuery:function(t){var r=i.pop()||e.ext_disjoint_timer_query.createQueryEXT();e.ext_disjoint_timer_query.beginQueryEXT(35007,r),a.push(r),n(a.length-1,a.length,t)},endQuery:function(){e.ext_disjoint_timer_query.endQueryEXT(35007)},pushScopeStats:n,update:function(){var t,r;if(0!==(t=a.length)){u.length=Math.max(u.length,t+1),l.length=Math.max(l.length,t+1),l[0]=0;var n=u[0]=0;for(r=t=0;r<a.length;++r){var c=a[r];e.ext_disjoint_timer_query.getQueryObjectEXT(c,34919)?(n+=e.ext_disjoint_timer_query.getQueryObjectEXT(c,34918),i.push(c)):a[t++]=c,l[r+1]=n,u[r+1]=t}for(a.length=t,r=t=0;r<s.length;++r){var f=(n=s[r]).startQueryIndex;c=n.endQueryIndex,n.sum+=l[c]-l[f],f=u[f],(c=u[c])===f?(n.stats.gpuTime+=n.sum/1e6,o.push(n)):(n.startQueryIndex=f,n.endQueryIndex=c,s[t++]=n)}s.length=t}},getNumPendingQueries:function(){return a.length},clear:function(){i.push.apply(i,a);for(var t=0;t<i.length;t++)e.ext_disjoint_timer_query.deleteQueryEXT(i[t]);a.length=0,i.length=0},restore:function(){a.length=0,i.length=0}}}(0,w),k=X(),A=d.drawingBufferWidth,E=d.drawingBufferHeight,O={tick:0,time:0,viewportWidth:A,viewportHeight:E,framebufferWidth:A,framebufferHeight:E,drawingBufferWidth:A,drawingBufferHeight:E,pixelRatio:t.pixelRatio},I=(A={elements:null,primitive:4,count:-1,offset:0,instances:-1},K(d,w)),D=v(d,b,t,(function(t){return R.destroyBuffer(t)})),z=g(d,w,D,b),R=L(d,w,I,b,D,z,A),F=C(d,x,b,t),B=M(d,w,I,(function(){U.procs.poll()}),O,b,t),N=Tt(d,w,0,b,t),j=S(d,w,I,B,N,b),U=H(d,x,w,I,D,z,0,j,{},R,F,A,O,T,_,t),V=(x=P(d,j,U.procs.poll,O),U.next),Z=d.canvas,J=[],$=[],Q=[],tt=[t.onDestroy],et=null;Z&&(Z.addEventListener("webglcontextlost",i,!1),Z.addEventListener("webglcontextrestored",o,!1));var rt=j.setFBO=s({framebuffer:Y.define.call(null,1,"framebuffer")});return h(),y=G(s,{clear:function(t){if("framebuffer"in t)if(t.framebuffer&&"framebufferCube"===t.framebuffer_reglType)for(var e=0;6>e;++e)rt(G({framebuffer:t.framebuffer.faces[e]},t),l);else rt(t,l);else l(0,t)},prop:Y.define.bind(null,1),context:Y.define.bind(null,2),this:Y.define.bind(null,3),draw:s({}),buffer:function(t){return D.create(t,34962,!1,!1)},elements:function(t){return z.create(t,!1)},texture:B.create2D,cube:B.createCube,renderbuffer:N.create,framebuffer:j.create,framebufferCube:j.createCube,vao:R.createVAO,attributes:y,frame:u,on:function(t,e){var r;switch(t){case"frame":return u(e);case"lost":r=$;break;case"restore":r=Q;break;case"destroy":r=tt}return r.push(e),{cancel:function(){for(var t=0;t<r.length;++t)if(r[t]===e){r[t]=r[r.length-1],r.pop();break}}}},limits:I,hasExtension:function(t){return 0<=I.extensions.indexOf(t.toLowerCase())},read:x,destroy:function(){J.length=0,n(),Z&&(Z.removeEventListener("webglcontextlost",i),Z.removeEventListener("webglcontextrestored",o)),F.clear(),j.clear(),N.clear(),R.clear(),B.clear(),z.clear(),D.clear(),T&&T.clear(),tt.forEach((function(t){t()}))},_gl:d,_refresh:h,poll:function(){f(),T&&T.update()},now:p,stats:b,getCachedCode:function(){return _},preloadCachedCode:function(t){Object.entries(t).forEach((function(t){_[t[0]]=t[1]}))}}),t.onDone(null,y),y}}()},71665:function(t,e,r){var n=r(12856),i=n.Buffer;function a(t,e){for(var r in t)e[r]=t[r]}function o(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(a(n,e),e.Buffer=o),o.prototype=Object.create(i.prototype),a(i,o),o.from=function(t,e,r){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},o.alloc=function(t,e,r){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},o.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},o.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},21630:function(t,e,r){t.exports=i;var n=r(15398).EventEmitter;function i(){n.call(this)}r(42018)(i,n),i.Readable=r(40410),i.Writable=r(37493),i.Duplex=r(37865),i.Transform=r(74308),i.PassThrough=r(66897),i.finished=r(12726),i.pipeline=r(10168),i.Stream=i,i.prototype.pipe=function(t,e){var r=this;function i(e){t.writable&&!1===t.write(e)&&r.pause&&r.pause()}function a(){r.readable&&r.resume&&r.resume()}r.on("data",i),t.on("drain",a),t._isStdio||e&&!1===e.end||(r.on("end",s),r.on("close",l));var o=!1;function s(){o||(o=!0,t.end())}function l(){o||(o=!0,"function"==typeof t.destroy&&t.destroy())}function u(t){if(c(),0===n.listenerCount(this,"error"))throw t}function c(){r.removeListener("data",i),t.removeListener("drain",a),r.removeListener("end",s),r.removeListener("close",l),r.removeListener("error",u),t.removeListener("error",u),r.removeListener("end",c),r.removeListener("close",c),t.removeListener("close",c)}return r.on("error",u),t.on("error",u),r.on("end",c),r.on("close",c),t.on("close",c),t.emit("pipe",r),t}},74322:function(t){"use strict";var e={};function r(t,r,n){n||(n=Error);var i=function(t){var e,n;function i(e,n,i){return t.call(this,function(t,e,n){return"string"==typeof r?r:r(t,e,n)}(e,n,i))||this}return n=t,(e=i).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n,i}(n);i.prototype.name=n.name,i.prototype.code=t,e[t]=i}function n(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map((function(t){return String(t)})),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}r("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(t,e,r){var i,a,o,s,l;if("string"==typeof e&&(a="not ",e.substr(0,a.length)===a)?(i="must not be",e=e.replace(/^not /,"")):i="must be",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}(t," argument"))o="The ".concat(t," ").concat(i," ").concat(n(e,"type"));else{var u=("number"!=typeof l&&(l=0),l+".".length>(s=t).length||-1===s.indexOf(".",l)?"argument":"property");o='The "'.concat(t,'" ').concat(u," ").concat(i," ").concat(n(e,"type"))}return o+". Received type ".concat(typeof r)}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.q=e},37865:function(t,e,r){"use strict";var n=r(90386),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=c;var a=r(40410),o=r(37493);r(42018)(c,a);for(var s=i(o.prototype),l=0;l<s.length;l++){var u=s[l];c.prototype[u]||(c.prototype[u]=o.prototype[u])}function c(t){if(!(this instanceof c))return new c(t);a.call(this,t),o.call(this,t),this.allowHalfOpen=!0,t&&(!1===t.readable&&(this.readable=!1),!1===t.writable&&(this.writable=!1),!1===t.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",f)))}function f(){this._writableState.ended||n.nextTick(h,this)}function h(t){t.end()}Object.defineProperty(c.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(c.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(c.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(c.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&this._readableState.destroyed&&this._writableState.destroyed},set:function(t){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=t,this._writableState.destroyed=t)}})},66897:function(t,e,r){"use strict";t.exports=i;var n=r(74308);function i(t){if(!(this instanceof i))return new i(t);n.call(this,t)}r(42018)(i,n),i.prototype._transform=function(t,e,r){r(null,t)}},40410:function(t,e,r){"use strict";var n,i=r(90386);t.exports=A,A.ReadableState=k,r(15398).EventEmitter;var a,o=function(t,e){return t.listeners(e).length},s=r(71405),l=r(12856).Buffer,u=r.g.Uint8Array||function(){},c=r(40964);a=c&&c.debuglog?c.debuglog("stream"):function(){};var f,h,p,d=r(31125),v=r(65756),g=r(56306).getHighWaterMark,y=r(74322).q,m=y.ERR_INVALID_ARG_TYPE,x=y.ERR_STREAM_PUSH_AFTER_EOF,b=y.ERR_METHOD_NOT_IMPLEMENTED,_=y.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(42018)(A,s);var w=v.errorOrDestroy,T=["error","close","destroy","pause","resume"];function k(t,e,i){n=n||r(37865),t=t||{},"boolean"!=typeof i&&(i=e instanceof n),this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=g(this,t,"readableHighWaterMark",i),this.buffer=new d,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(f||(f=r(68019).s),this.decoder=new f(t.encoding),this.encoding=t.encoding)}function A(t){if(n=n||r(37865),!(this instanceof A))return new A(t);var e=this instanceof n;this._readableState=new k(t,this,e),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),s.call(this)}function M(t,e,r,n,i){a("readableAddChunk",e);var o,s=t._readableState;if(null===e)s.reading=!1,function(t,e){if(a("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?C(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,P(t)))}}(t,s);else if(i||(o=function(t,e){var r,n;return n=e,l.isBuffer(n)||n instanceof u||"string"==typeof e||void 0===e||t.objectMode||(r=new m("chunk",["string","Buffer","Uint8Array"],e)),r}(s,e)),o)w(t,o);else if(s.objectMode||e&&e.length>0)if("string"==typeof e||s.objectMode||Object.getPrototypeOf(e)===l.prototype||(e=function(t){return l.from(t)}(e)),n)s.endEmitted?w(t,new _):S(t,s,e,!0);else if(s.ended)w(t,new x);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?S(t,s,e,!1):O(t,s)):S(t,s,e,!1)}else n||(s.reading=!1,O(t,s));return!s.ended&&(s.length<s.highWaterMark||0===s.length)}function S(t,e,r,n){e.flowing&&0===e.length&&!e.sync?(e.awaitDrain=0,t.emit("data",r)):(e.length+=e.objectMode?1:r.length,n?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&C(t)),O(t,e)}Object.defineProperty(A.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}}),A.prototype.destroy=v.destroy,A.prototype._undestroy=v.undestroy,A.prototype._destroy=function(t,e){e(t)},A.prototype.push=function(t,e){var r,n=this._readableState;return n.objectMode?r=!0:"string"==typeof t&&((e=e||n.defaultEncoding)!==n.encoding&&(t=l.from(t,e),e=""),r=!0),M(this,t,e,!1,r)},A.prototype.unshift=function(t){return M(this,t,null,!0,!1)},A.prototype.isPaused=function(){return!1===this._readableState.flowing},A.prototype.setEncoding=function(t){f||(f=r(68019).s);var e=new f(t);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var n=this._readableState.buffer.head,i="";null!==n;)i+=e.write(n.data),n=n.next;return this._readableState.buffer.clear(),""!==i&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};var E=1073741824;function L(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!=t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=function(t){return t>=E?t=E:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function C(t){var e=t._readableState;a("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(a("emitReadable",e.flowing),e.emittedReadable=!0,i.nextTick(P,t))}function P(t){var e=t._readableState;a("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,F(t)}function O(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(I,t,e))}function I(t,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&0===e.length);){var r=e.length;if(a("maybeReadMore read 0"),t.read(0),r===e.length)break}e.readingMore=!1}function D(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function z(t){a("readable nexttick read 0"),t.read(0)}function R(t,e){a("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),F(t),e.flowing&&!e.reading&&t.read(0)}function F(t){var e=t._readableState;for(a("flow",e.flowing);e.flowing&&null!==t.read(););}function B(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function N(t){var e=t._readableState;a("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,i.nextTick(j,e,t))}function j(t,e){if(a("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function U(t,e){for(var r=0,n=t.length;r<n;r++)if(t[r]===e)return r;return-1}A.prototype.read=function(t){a("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(0!==t&&(e.emittedReadable=!1),0===t&&e.needReadable&&((0!==e.highWaterMark?e.length>=e.highWaterMark:e.length>0)||e.ended))return a("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?N(this):C(this),null;if(0===(t=L(t,e))&&e.ended)return 0===e.length&&N(this),null;var n,i=e.needReadable;return a("need readable",i),(0===e.length||e.length-t<e.highWaterMark)&&a("length less than watermark",i=!0),e.ended||e.reading?a("reading or ended",i=!1):i&&(a("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=L(r,e))),null===(n=t>0?B(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&N(this)),null!==n&&this.emit("data",n),n},A.prototype._read=function(t){w(this,new b("_read()"))},A.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,a("pipe count=%d opts=%j",n.pipesCount,e);var s=e&&!1===e.end||t===i.stdout||t===i.stderr?v:l;function l(){a("onend"),t.end()}n.endEmitted?i.nextTick(s):r.once("end",s),t.on("unpipe",(function e(i,o){a("onunpipe"),i===r&&o&&!1===o.hasUnpiped&&(o.hasUnpiped=!0,a("cleanup"),t.removeListener("close",p),t.removeListener("finish",d),t.removeListener("drain",u),t.removeListener("error",h),t.removeListener("unpipe",e),r.removeListener("end",l),r.removeListener("end",v),r.removeListener("data",f),c=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||u())}));var u=function(t){return function(){var e=t._readableState;a("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&o(t,"data")&&(e.flowing=!0,F(t))}}(r);t.on("drain",u);var c=!1;function f(e){a("ondata");var i=t.write(e);a("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==U(n.pipes,t))&&!c&&(a("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function h(e){a("onerror",e),v(),t.removeListener("error",h),0===o(t,"error")&&w(t,e)}function p(){t.removeListener("finish",d),v()}function d(){a("onfinish"),t.removeListener("close",p),v()}function v(){a("unpipe"),r.unpipe(t)}return r.on("data",f),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events.error?Array.isArray(t._events.error)?t._events.error.unshift(r):t._events.error=[r,t._events.error]:t.on(e,r)}(t,"error",h),t.once("close",p),t.once("finish",d),t.emit("pipe",r),n.flowing||(a("pipe resume"),r.resume()),t},A.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var a=0;a<i;a++)n[a].emit("unpipe",this,{hasUnpiped:!1});return this}var o=U(e.pipes,t);return-1===o||(e.pipes.splice(o,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),t.emit("unpipe",this,r)),this},A.prototype.on=function(t,e){var r=s.prototype.on.call(this,t,e),n=this._readableState;return"data"===t?(n.readableListening=this.listenerCount("readable")>0,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,a("on readable",n.length,n.reading),n.length?C(this):n.reading||i.nextTick(z,this))),r},A.prototype.addListener=A.prototype.on,A.prototype.removeListener=function(t,e){var r=s.prototype.removeListener.call(this,t,e);return"readable"===t&&i.nextTick(D,this),r},A.prototype.removeAllListeners=function(t){var e=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||i.nextTick(D,this),e},A.prototype.resume=function(){var t=this._readableState;return t.flowing||(a("resume"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(R,t,e))}(this,t)),t.paused=!1,this},A.prototype.pause=function(){return a("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(a("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},A.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on("end",(function(){if(a("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){a("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i||(r.objectMode||i&&i.length)&&(e.push(i)||(n=!0,t.pause()))})),t)void 0===this[i]&&"function"==typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var o=0;o<T.length;o++)t.on(T[o],this.emit.bind(this,T[o]));return this._read=function(e){a("wrapped _read",e),n&&(n=!1,t.resume())},this},"function"==typeof Symbol&&(A.prototype[Symbol.asyncIterator]=function(){return void 0===h&&(h=r(68221)),h(this)}),Object.defineProperty(A.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(A.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(A.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(t){this._readableState&&(this._readableState.flowing=t)}}),A._fromList=B,Object.defineProperty(A.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(A.from=function(t,e){return void 0===p&&(p=r(31748)),p(A,t,e)})},74308:function(t,e,r){"use strict";t.exports=c;var n=r(74322).q,i=n.ERR_METHOD_NOT_IMPLEMENTED,a=n.ERR_MULTIPLE_CALLBACK,o=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,l=r(37865);function u(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new a);r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function c(t){if(!(this instanceof c))return new c(t);l.call(this,t),this._transformState={afterTransform:u.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&("function"==typeof t.transform&&(this._transform=t.transform),"function"==typeof t.flush&&(this._flush=t.flush)),this.on("prefinish",f)}function f(){var t=this;"function"!=typeof this._flush||this._readableState.destroyed?h(this,null,null):this._flush((function(e,r){h(t,e,r)}))}function h(t,e,r){if(e)return t.emit("error",e);if(null!=r&&t.push(r),t._writableState.length)throw new s;if(t._transformState.transforming)throw new o;return t.push(null)}r(42018)(c,l),c.prototype.push=function(t,e){return this._transformState.needTransform=!1,l.prototype.push.call(this,t,e)},c.prototype._transform=function(t,e,r){r(new i("_transform()"))},c.prototype._write=function(t,e,r){var n=this._transformState;if(n.writecb=r,n.writechunk=t,n.writeencoding=e,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},c.prototype._read=function(t){var e=this._transformState;null===e.writechunk||e.transforming?e.needTransform=!0:(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform))},c.prototype._destroy=function(t,e){l.prototype._destroy.call(this,t,(function(t){e(t)}))}},37493:function(t,e,r){"use strict";var n,i=r(90386);function a(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var n=t.entry;for(t.entry=null;n;){var i=n.callback;e.pendingcb--,i(undefined),n=n.next}e.corkedRequestsFree.next=t}(e,t)}}t.exports=A,A.WritableState=k;var o,s={deprecate:r(20588)},l=r(71405),u=r(12856).Buffer,c=r.g.Uint8Array||function(){},f=r(65756),h=r(56306).getHighWaterMark,p=r(74322).q,d=p.ERR_INVALID_ARG_TYPE,v=p.ERR_METHOD_NOT_IMPLEMENTED,g=p.ERR_MULTIPLE_CALLBACK,y=p.ERR_STREAM_CANNOT_PIPE,m=p.ERR_STREAM_DESTROYED,x=p.ERR_STREAM_NULL_VALUES,b=p.ERR_STREAM_WRITE_AFTER_END,_=p.ERR_UNKNOWN_ENCODING,w=f.errorOrDestroy;function T(){}function k(t,e,o){n=n||r(37865),t=t||{},"boolean"!=typeof o&&(o=e instanceof n),this.objectMode=!!t.objectMode,o&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=h(this,t,"writableHighWaterMark",o),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=!1===t.decodeStrings;this.decodeStrings=!s,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var r=t._writableState,n=r.sync,a=r.writecb;if("function"!=typeof a)throw new g;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(r),e)!function(t,e,r,n,a){--e.pendingcb,r?(i.nextTick(a,n),i.nextTick(P,t,e),t._writableState.errorEmitted=!0,w(t,n)):(a(n),t._writableState.errorEmitted=!0,w(t,n),P(t,e))}(t,r,n,e,a);else{var o=L(r)||t.destroyed;o||r.corked||r.bufferProcessing||!r.bufferedRequest||E(t,r),n?i.nextTick(S,t,r,o,a):S(t,r,o,a)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function A(t){var e=this instanceof(n=n||r(37865));if(!e&&!o.call(A,this))return new A(t);this._writableState=new k(t,this,e),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),l.call(this)}function M(t,e,r,n,i,a,o){e.writelen=n,e.writecb=o,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new m("write")):r?t._writev(i,e.onwrite):t._write(i,a,e.onwrite),e.sync=!1}function S(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,n(),P(t,e)}function E(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var n=e.bufferedRequestCount,i=new Array(n),o=e.corkedRequestsFree;o.entry=r;for(var s=0,l=!0;r;)i[s]=r,r.isBuf||(l=!1),r=r.next,s+=1;i.allBuffers=l,M(t,e,!0,e.length,i,"",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new a(e),e.bufferedRequestCount=0}else{for(;r;){var u=r.chunk,c=r.encoding,f=r.callback;if(M(t,e,!1,e.objectMode?1:u.length,u,c,f),r=r.next,e.bufferedRequestCount--,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}function L(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function C(t,e){t._final((function(r){e.pendingcb--,r&&w(t,r),e.prefinished=!0,t.emit("prefinish"),P(t,e)}))}function P(t,e){var r=L(e);if(r&&(function(t,e){e.prefinished||e.finalCalled||("function"!=typeof t._final||e.destroyed?(e.prefinished=!0,t.emit("prefinish")):(e.pendingcb++,e.finalCalled=!0,i.nextTick(C,t,e)))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"),e.autoDestroy))){var n=t._readableState;(!n||n.autoDestroy&&n.endEmitted)&&t.destroy()}return r}r(42018)(A,l),k.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(k.prototype,"buffer",{get:s.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(o=Function.prototype[Symbol.hasInstance],Object.defineProperty(A,Symbol.hasInstance,{value:function(t){return!!o.call(this,t)||this===A&&t&&t._writableState instanceof k}})):o=function(t){return t instanceof this},A.prototype.pipe=function(){w(this,new y)},A.prototype.write=function(t,e,r){var n,a=this._writableState,o=!1,s=!a.objectMode&&(n=t,u.isBuffer(n)||n instanceof c);return s&&!u.isBuffer(t)&&(t=function(t){return u.from(t)}(t)),"function"==typeof e&&(r=e,e=null),s?e="buffer":e||(e=a.defaultEncoding),"function"!=typeof r&&(r=T),a.ending?function(t,e){var r=new b;w(t,r),i.nextTick(e,r)}(this,r):(s||function(t,e,r,n){var a;return null===r?a=new x:"string"==typeof r||e.objectMode||(a=new d("chunk",["string","Buffer"],r)),!a||(w(t,a),i.nextTick(n,a),!1)}(this,a,t,r))&&(a.pendingcb++,o=function(t,e,r,n,i,a){if(!r){var o=function(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=u.from(e,r)),e}(e,n,i);n!==o&&(r=!0,i="buffer",n=o)}var s=e.objectMode?1:n.length;e.length+=s;var l=e.length<e.highWaterMark;if(l||(e.needDrain=!0),e.writing||e.corked){var c=e.lastBufferedRequest;e.lastBufferedRequest={chunk:n,encoding:i,isBuf:r,callback:a,next:null},c?c.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else M(t,e,!1,s,n,i,a);return l}(this,a,s,t,e,r)),o},A.prototype.cork=function(){this._writableState.corked++},A.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.bufferProcessing||!t.bufferedRequest||E(this,t))},A.prototype.setDefaultEncoding=function(t){if("string"==typeof t&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new _(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(A.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(A.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),A.prototype._write=function(t,e,r){r(new v("_write()"))},A.prototype._writev=null,A.prototype.end=function(t,e,r){var n=this._writableState;return"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,r){e.ending=!0,P(t,e),r&&(e.finished?i.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}(this,n,r),this},Object.defineProperty(A.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(A.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),A.prototype.destroy=f.destroy,A.prototype._undestroy=f.undestroy,A.prototype._destroy=function(t,e){e(t)}},68221:function(t,e,r){"use strict";var n,i=r(90386);function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var o=r(12726),s=Symbol("lastResolve"),l=Symbol("lastReject"),u=Symbol("error"),c=Symbol("ended"),f=Symbol("lastPromise"),h=Symbol("handlePromise"),p=Symbol("stream");function d(t,e){return{value:t,done:e}}function v(t){var e=t[s];if(null!==e){var r=t[p].read();null!==r&&(t[f]=null,t[s]=null,t[l]=null,e(d(r,!1)))}}function g(t){i.nextTick(v,t)}var y=Object.getPrototypeOf((function(){})),m=Object.setPrototypeOf((a(n={get stream(){return this[p]},next:function(){var t=this,e=this[u];if(null!==e)return Promise.reject(e);if(this[c])return Promise.resolve(d(void 0,!0));if(this[p].destroyed)return new Promise((function(e,r){i.nextTick((function(){t[u]?r(t[u]):e(d(void 0,!0))}))}));var r,n=this[f];if(n)r=new Promise(function(t,e){return function(r,n){t.then((function(){e[c]?r(d(void 0,!0)):e[h](r,n)}),n)}}(n,this));else{var a=this[p].read();if(null!==a)return Promise.resolve(d(a,!1));r=new Promise(this[h])}return this[f]=r,r}},Symbol.asyncIterator,(function(){return this})),a(n,"return",(function(){var t=this;return new Promise((function(e,r){t[p].destroy(null,(function(t){t?r(t):e(d(void 0,!0))}))}))})),n),y);t.exports=function(t){var e,r=Object.create(m,(a(e={},p,{value:t,writable:!0}),a(e,s,{value:null,writable:!0}),a(e,l,{value:null,writable:!0}),a(e,u,{value:null,writable:!0}),a(e,c,{value:t._readableState.endEmitted,writable:!0}),a(e,h,{value:function(t,e){var n=r[p].read();n?(r[f]=null,r[s]=null,r[l]=null,t(d(n,!1))):(r[s]=t,r[l]=e)},writable:!0}),e));return r[f]=null,o(t,(function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[l];return null!==e&&(r[f]=null,r[s]=null,r[l]=null,e(t)),void(r[u]=t)}var n=r[s];null!==n&&(r[f]=null,r[s]=null,r[l]=null,n(d(void 0,!0))),r[c]=!0})),t.on("readable",g.bind(null,r)),r}},31125:function(t,e,r){"use strict";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var o=r(12856).Buffer,s=r(69862).inspect,l=s&&s.custom||"inspect";t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}var e,r;return e=t,r=[{key:"push",value:function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return o.alloc(0);for(var e,r,n,i=o.allocUnsafe(t>>>0),a=this.head,s=0;a;)e=a.data,r=i,n=s,o.prototype.copy.call(e,r,n),s+=a.data.length,a=a.next;return i}},{key:"consume",value:function(t,e){var r;return t<this.head.data.length?(r=this.head.data.slice(0,t),this.head.data=this.head.data.slice(t)):r=t===this.head.data.length?this.shift():e?this._getString(t):this._getBuffer(t),r}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(t){var e=this.head,r=1,n=e.data;for(t-=n.length;e=e.next;){var i=e.data,a=t>i.length?i.length:t;if(a===i.length?n+=i:n+=i.slice(0,t),0==(t-=a)){a===i.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=i.slice(a));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(t){var e=o.allocUnsafe(t),r=this.head,n=1;for(r.data.copy(e),t-=r.data.length;r=r.next;){var i=r.data,a=t>i.length?i.length:t;if(i.copy(e,e.length-t,0,a),0==(t-=a)){a===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(a));break}++n}return this.length-=n,e}},{key:l,value:function(t,e){return s(this,function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?n(Object(r),!0).forEach((function(e){i(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({},e,{depth:0,customInspect:!1}))}}],r&&a(e.prototype,r),t}()},65756:function(t,e,r){"use strict";var n=r(90386);function i(t,e){o(t,e),a(t)}function a(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function o(t,e){t.emit("error",e)}t.exports={destroy:function(t,e){var r=this,s=this._readableState&&this._readableState.destroyed,l=this._writableState&&this._writableState.destroyed;return s||l?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,n.nextTick(o,this,t)):n.nextTick(o,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!e&&t?r._writableState?r._writableState.errorEmitted?n.nextTick(a,r):(r._writableState.errorEmitted=!0,n.nextTick(i,r,t)):n.nextTick(i,r,t):e?(n.nextTick(a,r),e(t)):n.nextTick(a,r)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(t,e){var r=t._readableState,n=t._writableState;r&&r.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit("error",e)}}},12726:function(t,e,r){"use strict";var n=r(74322).q.ERR_STREAM_PREMATURE_CLOSE;function i(){}t.exports=function t(e,r,a){if("function"==typeof r)return t(e,null,r);r||(r={}),a=function(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];t.apply(this,n)}}}(a||i);var o=r.readable||!1!==r.readable&&e.readable,s=r.writable||!1!==r.writable&&e.writable,l=function(){e.writable||c()},u=e._writableState&&e._writableState.finished,c=function(){s=!1,u=!0,o||a.call(e)},f=e._readableState&&e._readableState.endEmitted,h=function(){o=!1,f=!0,s||a.call(e)},p=function(t){a.call(e,t)},d=function(){var t;return o&&!f?(e._readableState&&e._readableState.ended||(t=new n),a.call(e,t)):s&&!u?(e._writableState&&e._writableState.ended||(t=new n),a.call(e,t)):void 0},v=function(){e.req.on("finish",c)};return function(t){return t.setHeader&&"function"==typeof t.abort}(e)?(e.on("complete",c),e.on("abort",d),e.req?v():e.on("request",v)):s&&!e._writableState&&(e.on("end",l),e.on("close",l)),e.on("end",h),e.on("finish",c),!1!==r.error&&e.on("error",p),e.on("close",d),function(){e.removeListener("complete",c),e.removeListener("abort",d),e.removeListener("request",v),e.req&&e.req.removeListener("finish",c),e.removeListener("end",l),e.removeListener("close",l),e.removeListener("finish",c),e.removeListener("end",h),e.removeListener("error",p),e.removeListener("close",d)}}},31748:function(t){t.exports=function(){throw new Error("Readable.from is not available in the browser")}},10168:function(t,e,r){"use strict";var n,i=r(74322).q,a=i.ERR_MISSING_ARGS,o=i.ERR_STREAM_DESTROYED;function s(t){if(t)throw t}function l(t,e,i,a){a=function(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}(a);var s=!1;t.on("close",(function(){s=!0})),void 0===n&&(n=r(12726)),n(t,{readable:e,writable:i},(function(t){if(t)return a(t);s=!0,a()}));var l=!1;return function(e){if(!s&&!l)return l=!0,function(t){return t.setHeader&&"function"==typeof t.abort}(t)?t.abort():"function"==typeof t.destroy?t.destroy():void a(e||new o("pipe"))}}function u(t){t()}function c(t,e){return t.pipe(e)}function f(t){return t.length?"function"!=typeof t[t.length-1]?s:t.pop():s}t.exports=function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var n,i=f(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new a("streams");var o=e.map((function(t,r){var a=r<e.length-1;return l(t,a,r>0,(function(t){n||(n=t),t&&o.forEach(u),a||(o.forEach(u),i(n))}))}));return e.reduce(c)}},56306:function(t,e,r){"use strict";var n=r(74322).q.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(t,e,r,i){var a=function(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}(e,i,r);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0)throw new n(i?r:"highWaterMark",a);return Math.floor(a)}return t.objectMode?16:16384}}},71405:function(t,e,r){t.exports=r(15398).EventEmitter},68019:function(t,e,r){"use strict";var n=r(71665).Buffer,i=n.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(n.isEncoding===i||!i(t)))throw new Error("Unknown encoding: "+t);return e||t}(t),this.encoding){case"utf16le":this.text=l,this.end=u,e=4;break;case"utf8":this.fillLast=s,e=4;break;case"base64":this.text=c,this.end=f,e=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function o(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function s(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function l(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function u(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function c(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function f(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function h(t){return t.toString(this.encoding)}function p(t){return t&&t.length?this.write(t):""}e.s=a,a.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<t.length?e?e+this.text(t,r):this.text(t,r):e||""},a.prototype.end=function(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e},a.prototype.text=function(t,e){var r=function(t,e,r){var n=e.length-1;if(n<r)return 0;var i=o(e[n]);return i>=0?(i>0&&(t.lastNeed=i-1),i):--n<r||-2===i?0:(i=o(e[n]))>=0?(i>0&&(t.lastNeed=i-2),i):--n<r||-2===i?0:(i=o(e[n]))>=0?(i>0&&(2===i?i=0:t.lastNeed=i-3),i):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},a.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},90715:function(t,e,r){var n=r(32791),i=r(41633)("stream-parser");function a(t){i("initializing parser stream"),t._parserBytesLeft=0,t._parserBuffers=[],t._parserBuffered=0,t._parserState=-1,t._parserCallback=null,"function"==typeof t.push&&(t._parserOutput=t.push.bind(t)),t._parserInit=!0}function o(t,e){n(!this._parserCallback,'there is already a "callback" set!'),n(isFinite(t)&&t>0,'can only buffer a finite number of bytes > 0, got "'+t+'"'),this._parserInit||a(this),i("buffering %o bytes",t),this._parserBytesLeft=t,this._parserCallback=e,this._parserState=0}function s(t,e){n(!this._parserCallback,'there is already a "callback" set!'),n(t>0,'can only skip > 0 bytes, got "'+t+'"'),this._parserInit||a(this),i("skipping %o bytes",t),this._parserBytesLeft=t,this._parserCallback=e,this._parserState=1}function l(t,e){n(!this._parserCallback,'There is already a "callback" set!'),n(t>0,'can only pass through > 0 bytes, got "'+t+'"'),this._parserInit||a(this),i("passing through %o bytes",t),this._parserBytesLeft=t,this._parserCallback=e,this._parserState=2}function u(t,e,r){this._parserInit||a(this),i("write(%o bytes)",t.length),"function"==typeof e&&(r=e),h(this,t,null,r)}function c(t,e,r){this._parserInit||a(this),i("transform(%o bytes)",t.length),"function"!=typeof e&&(e=this._parserOutput),h(this,t,e,r)}function f(t,e,r,n){if(t._parserBytesLeft-=e.length,i("%o bytes left for stream piece",t._parserBytesLeft),0===t._parserState?(t._parserBuffers.push(e),t._parserBuffered+=e.length):2===t._parserState&&r(e),0!==t._parserBytesLeft)return n;var a=t._parserCallback;if(a&&0===t._parserState&&t._parserBuffers.length>1&&(e=Buffer.concat(t._parserBuffers,t._parserBuffered)),0!==t._parserState&&(e=null),t._parserCallback=null,t._parserBuffered=0,t._parserState=-1,t._parserBuffers.splice(0),a){var o=[];e&&o.push(e),r&&o.push(r);var s=a.length>o.length;s&&o.push(p(n));var l=a.apply(t,o);if(!s||n===l)return n}}t.exports=function(t){var e=t&&"function"==typeof t._transform,r=t&&"function"==typeof t._write;if(!e&&!r)throw new Error("must pass a Writable or Transform stream in");i("extending Parser into stream"),t._bytes=o,t._skipBytes=s,e&&(t._passthrough=l),e?t._transform=c:t._write=u};var h=p((function t(e,r,n,i){return e._parserBytesLeft<=0?i(new Error("got data but not currently parsing anything")):r.length<=e._parserBytesLeft?function(){return f(e,r,n,i)}:function(){var a=r.slice(0,e._parserBytesLeft);return f(e,a,n,(function(o){return o?i(o):r.length>a.length?function(){return t(e,r.slice(a.length),n,i)}:void 0}))}}));function p(t){return function(){for(var e=t.apply(this,arguments);"function"==typeof e;)e=e();return e}}},41633:function(t,e,r){var n=r(90386);function i(){var t;try{t=e.storage.debug}catch(t){}return!t&&void 0!==n&&"env"in n&&(t=n.env.DEBUG),t}(e=t.exports=r(74469)).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},e.formatArgs=function(t){var r=this.useColors;if(t[0]=(r?"%c":"")+this.namespace+(r?" %c":" ")+t[0]+(r?"%c ":" ")+"+"+e.humanize(this.diff),r){var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var i=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(t){"%%"!==t&&(i++,"%c"===t&&(a=i))})),t.splice(a,0,n)}},e.save=function(t){try{null==t?e.storage.removeItem("debug"):e.storage.debug=t}catch(t){}},e.load=i,e.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},e.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(t){}}(),e.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],e.formatters.j=function(t){try{return JSON.stringify(t)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}},e.enable(i())},74469:function(t,e,r){var n;function i(t){function r(){if(r.enabled){var t=r,i=+new Date,a=i-(n||i);t.diff=a,t.prev=n,t.curr=i,n=i;for(var o=new Array(arguments.length),s=0;s<o.length;s++)o[s]=arguments[s];o[0]=e.coerce(o[0]),"string"!=typeof o[0]&&o.unshift("%O");var l=0;o[0]=o[0].replace(/%([a-zA-Z%])/g,(function(r,n){if("%%"===r)return r;l++;var i=e.formatters[n];if("function"==typeof i){var a=o[l];r=i.call(t,a),o.splice(l,1),l--}return r})),e.formatArgs.call(t,o);var u=r.log||e.log||console.log.bind(console);u.apply(t,o)}}return r.namespace=t,r.enabled=e.enabled(t),r.useColors=e.useColors(),r.color=function(t){var r,n=0;for(r in t)n=(n<<5)-n+t.charCodeAt(r),n|=0;return e.colors[Math.abs(n)%e.colors.length]}(t),"function"==typeof e.init&&e.init(r),r}(e=t.exports=i.debug=i.default=i).coerce=function(t){return t instanceof Error?t.stack||t.message:t},e.disable=function(){e.enable("")},e.enable=function(t){e.save(t),e.names=[],e.skips=[];for(var r=("string"==typeof t?t:"").split(/[\s,]+/),n=r.length,i=0;i<n;i++)r[i]&&("-"===(t=r[i].replace(/\*/g,".*?"))[0]?e.skips.push(new RegExp("^"+t.substr(1)+"$")):e.names.push(new RegExp("^"+t+"$")))},e.enabled=function(t){var r,n;for(r=0,n=e.skips.length;r<n;r++)if(e.skips[r].test(t))return!1;for(r=0,n=e.names.length;r<n;r++)if(e.names[r].test(t))return!0;return!1},e.humanize=r(11375),e.names=[],e.skips=[],e.formatters={}},11375:function(t){var e=1e3,r=60*e,n=60*r,i=24*n;function a(t,e,r){if(!(t<e))return t<1.5*e?Math.floor(t/e)+" "+r:Math.ceil(t/e)+" "+r+"s"}t.exports=function(t,o){o=o||{};var s,l=typeof t;if("string"===l&&t.length>0)return function(t){if(!((t=String(t)).length>100)){var a=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(a){var o=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*o;case"days":case"day":case"d":return o*i;case"hours":case"hour":case"hrs":case"hr":case"h":return o*n;case"minutes":case"minute":case"mins":case"min":case"m":return o*r;case"seconds":case"second":case"secs":case"sec":case"s":return o*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}}}(t);if("number"===l&&!1===isNaN(t))return o.long?a(s=t,i,"day")||a(s,n,"hour")||a(s,r,"minute")||a(s,e,"second")||s+" ms":function(t){return t>=i?Math.round(t/i)+"d":t>=n?Math.round(t/n)+"h":t>=r?Math.round(t/r)+"m":t>=e?Math.round(t/e)+"s":t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},99011:function(t,e,r){"use strict";var n=r(88641);t.exports=function(t,e,r){if(null==t)throw Error("First argument should be a string");if(null==e)throw Error("Separator should be a string or a RegExp");r?("string"==typeof r||Array.isArray(r))&&(r={ignore:r}):r={},null==r.escape&&(r.escape=!0),null==r.ignore?r.ignore=["[]","()","{}","<>",'""',"''","``","“”","«»"]:("string"==typeof r.ignore&&(r.ignore=[r.ignore]),r.ignore=r.ignore.map((function(t){return 1===t.length&&(t+=t),t})));var i=n.parse(t,{flat:!0,brackets:r.ignore}),a=i[0].split(e);if(r.escape){for(var o=[],s=0;s<a.length;s++){var l=a[s],u=a[s+1];"\\"===l[l.length-1]&&"\\"!==l[l.length-2]?(o.push(l+e+u),s++):o.push(l)}a=o}for(s=0;s<a.length;s++)i[0]=a[s],a[s]=n.stringify(i,{flat:!0});return a}},68664:function(t){"use strict";t.exports=function(t){for(var e=t.length,r=new Array(e),n=new Array(e),i=new Array(e),a=new Array(e),o=new Array(e),s=new Array(e),l=0;l<e;++l)r[l]=-1,n[l]=0,i[l]=!1,a[l]=0,o[l]=-1,s[l]=[];var u,c=0,f=[],h=[];function p(e){var l=[e],u=[e];for(r[e]=n[e]=c,i[e]=!0,c+=1;u.length>0;){e=u[u.length-1];var p=t[e];if(a[e]<p.length){for(var d=a[e];d<p.length;++d){var v=p[d];if(r[v]<0){r[v]=n[v]=c,i[v]=!0,c+=1,l.push(v),u.push(v);break}i[v]&&(n[e]=0|Math.min(n[e],n[v])),o[v]>=0&&s[e].push(o[v])}a[e]=d}else{if(n[e]===r[e]){var g=[],y=[],m=0;for(d=l.length-1;d>=0;--d){var x=l[d];if(i[x]=!1,g.push(x),y.push(s[x]),m+=s[x].length,o[x]=f.length,x===e){l.length=d;break}}f.push(g);var b=new Array(m);for(d=0;d<y.length;d++)for(var _=0;_<y[d].length;_++)b[--m]=y[d][_];h.push(b)}u.pop()}}}for(l=0;l<e;++l)r[l]<0&&p(l);for(l=0;l<h.length;l++){var d=h[l];if(0!==d.length){d.sort((function(t,e){return t-e})),u=[d[0]];for(var v=1;v<d.length;v++)d[v]!==d[v-1]&&u.push(d[v]);h[l]=u}}return{components:f,adjacencyList:h}}},7095:function(t,e,r){"use strict";r.r(e);var n=2*Math.PI,i=function(t,e,r,n,i,a,o){var s=t.x,l=t.y;return{x:n*(s*=e)-i*(l*=r)+a,y:i*s+n*l+o}},a=function(t,e){var r=1.5707963267948966===e?.551915024494:-1.5707963267948966===e?-.551915024494:4/3*Math.tan(e/4),n=Math.cos(t),i=Math.sin(t),a=Math.cos(t+e),o=Math.sin(t+e);return[{x:n-i*r,y:i+n*r},{x:a+o*r,y:o-a*r},{x:a,y:o}]},o=function(t,e,r,n){var i=t*r+e*n;return i>1&&(i=1),i<-1&&(i=-1),(t*n-e*r<0?-1:1)*Math.acos(i)};e.default=function(t){var e=t.px,r=t.py,s=t.cx,l=t.cy,u=t.rx,c=t.ry,f=t.xAxisRotation,h=void 0===f?0:f,p=t.largeArcFlag,d=void 0===p?0:p,v=t.sweepFlag,g=void 0===v?0:v,y=[];if(0===u||0===c)return[];var m=Math.sin(h*n/360),x=Math.cos(h*n/360),b=x*(e-s)/2+m*(r-l)/2,_=-m*(e-s)/2+x*(r-l)/2;if(0===b&&0===_)return[];u=Math.abs(u),c=Math.abs(c);var w=Math.pow(b,2)/Math.pow(u,2)+Math.pow(_,2)/Math.pow(c,2);w>1&&(u*=Math.sqrt(w),c*=Math.sqrt(w));var T=function(t,e,r,i,a,s,l,u,c,f,h,p){var d=Math.pow(a,2),v=Math.pow(s,2),g=Math.pow(h,2),y=Math.pow(p,2),m=d*v-d*y-v*g;m<0&&(m=0),m/=d*y+v*g;var x=(m=Math.sqrt(m)*(l===u?-1:1))*a/s*p,b=m*-s/a*h,_=f*x-c*b+(t+r)/2,w=c*x+f*b+(e+i)/2,T=(h-x)/a,k=(p-b)/s,A=(-h-x)/a,M=(-p-b)/s,S=o(1,0,T,k),E=o(T,k,A,M);return 0===u&&E>0&&(E-=n),1===u&&E<0&&(E+=n),[_,w,S,E]}(e,r,s,l,u,c,d,g,m,x,b,_),k=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var r=[],n=!0,i=!1,a=void 0;try{for(var o,s=t[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!e||r.length!==e);n=!0);}catch(t){i=!0,a=t}finally{try{!n&&s.return&&s.return()}finally{if(i)throw a}}return r}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(T,4),A=k[0],M=k[1],S=k[2],E=k[3],L=Math.abs(E)/(n/4);Math.abs(1-L)<1e-7&&(L=1);var C=Math.max(Math.ceil(L),1);E/=C;for(var P=0;P<C;P++)y.push(a(S,E)),S+=E;return y.map((function(t){var e=i(t[0],u,c,x,m,A,M),r=e.x,n=e.y,a=i(t[1],u,c,x,m,A,M),o=a.x,s=a.y,l=i(t[2],u,c,x,m,A,M);return{x1:r,y1:n,x2:o,y2:s,x:l.x,y:l.y}}))}},1750:function(t,e,r){"use strict";var n=r(95616),i=r(65185),a=r(29988),o=r(89546),s=r(32791);t.exports=function(t){if(Array.isArray(t)&&1===t.length&&"string"==typeof t[0]&&(t=t[0]),"string"==typeof t&&(s(o(t),"String is not an SVG path."),t=n(t)),s(Array.isArray(t),"Argument should be a string or an array of path segments."),t=i(t),!(t=a(t)).length)return[0,0,0,0];for(var e=[1/0,1/0,-1/0,-1/0],r=0,l=t.length;r<l;r++)for(var u=t[r].slice(1),c=0;c<u.length;c+=2)u[c+0]<e[0]&&(e[0]=u[c+0]),u[c+1]<e[1]&&(e[1]=u[c+1]),u[c+0]>e[2]&&(e[2]=u[c+0]),u[c+1]>e[3]&&(e[3]=u[c+1]);return e}},29988:function(t,e,r){"use strict";t.exports=function(t){for(var e,r=[],o=0,s=0,l=0,u=0,c=null,f=null,h=0,p=0,d=0,v=t.length;d<v;d++){var g=t[d],y=g[0];switch(y){case"M":l=g[1],u=g[2];break;case"A":var m=n({px:h,py:p,cx:g[6],cy:g[7],rx:g[1],ry:g[2],xAxisRotation:g[3],largeArcFlag:g[4],sweepFlag:g[5]});if(!m.length)continue;for(var x,b=0;b<m.length;b++)g=["C",(x=m[b]).x1,x.y1,x.x2,x.y2,x.x,x.y],b<m.length-1&&r.push(g);break;case"S":var _=h,w=p;"C"!=e&&"S"!=e||(_+=_-o,w+=w-s),g=["C",_,w,g[1],g[2],g[3],g[4]];break;case"T":"Q"==e||"T"==e?(c=2*h-c,f=2*p-f):(c=h,f=p),g=a(h,p,c,f,g[1],g[2]);break;case"Q":c=g[1],f=g[2],g=a(h,p,g[1],g[2],g[3],g[4]);break;case"L":g=i(h,p,g[1],g[2]);break;case"H":g=i(h,p,g[1],p);break;case"V":g=i(h,p,h,g[1]);break;case"Z":g=i(h,p,l,u)}e=y,h=g[g.length-2],p=g[g.length-1],g.length>4?(o=g[g.length-4],s=g[g.length-3]):(o=h,s=p),r.push(g)}return r};var n=r(7095);function i(t,e,r,n){return["C",t,e,r,n,r,n]}function a(t,e,r,n,i,a){return["C",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}},82019:function(t,e,r){"use strict";var n,i=r(1750),a=r(95616),o=r(31457),s=r(89546),l=r(44781),u=document.createElement("canvas"),c=u.getContext("2d");t.exports=function(t,e){if(!s(t))throw Error("Argument should be valid svg path string");var r,f;e||(e={}),e.shape?(r=e.shape[0],f=e.shape[1]):(r=u.width=e.w||e.width||200,f=u.height=e.h||e.height||200);var h=Math.min(r,f),p=e.stroke||0,d=e.viewbox||e.viewBox||i(t),v=[r/(d[2]-d[0]),f/(d[3]-d[1])],g=Math.min(v[0]||0,v[1]||0)/2;if(c.fillStyle="black",c.fillRect(0,0,r,f),c.fillStyle="white",p&&("number"!=typeof p&&(p=1),c.strokeStyle=p>0?"white":"black",c.lineWidth=Math.abs(p)),c.translate(.5*r,.5*f),c.scale(g,g),function(){if(null!=n)return n;var t=document.createElement("canvas").getContext("2d");if(t.canvas.width=t.canvas.height=1,!window.Path2D)return n=!1;var e=new Path2D("M0,0h1v1h-1v-1Z");t.fillStyle="black",t.fill(e);var r=t.getImageData(0,0,1,1);return n=r&&r.data&&255===r.data[3]}()){var y=new Path2D(t);c.fill(y),p&&c.stroke(y)}else{var m=a(t);o(c,m),c.fill(),p&&c.stroke()}return c.setTransform(1,0,0,1,0,0),l(c,{cutoff:null!=e.cutoff?e.cutoff:.5,radius:null!=e.radius?e.radius:.5*h})}},84267:function(t,e,r){var n;!function(i){var a=/^\s+/,o=/\s+$/,s=0,l=i.round,u=i.min,c=i.max,f=i.random;function h(t,e){if(e=e||{},(t=t||"")instanceof h)return t;if(!(this instanceof h))return new h(t,e);var r=function(t){var e,r,n,s={r:0,g:0,b:0},l=1,f=null,h=null,p=null,d=!1,v=!1;return"string"==typeof t&&(t=function(t){t=t.replace(a,"").replace(o,"").toLowerCase();var e,r=!1;if(C[t])t=C[t],r=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};return(e=H.rgb.exec(t))?{r:e[1],g:e[2],b:e[3]}:(e=H.rgba.exec(t))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=H.hsl.exec(t))?{h:e[1],s:e[2],l:e[3]}:(e=H.hsla.exec(t))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=H.hsv.exec(t))?{h:e[1],s:e[2],v:e[3]}:(e=H.hsva.exec(t))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=H.hex8.exec(t))?{r:z(e[1]),g:z(e[2]),b:z(e[3]),a:N(e[4]),format:r?"name":"hex8"}:(e=H.hex6.exec(t))?{r:z(e[1]),g:z(e[2]),b:z(e[3]),format:r?"name":"hex"}:(e=H.hex4.exec(t))?{r:z(e[1]+""+e[1]),g:z(e[2]+""+e[2]),b:z(e[3]+""+e[3]),a:N(e[4]+""+e[4]),format:r?"name":"hex8"}:!!(e=H.hex3.exec(t))&&{r:z(e[1]+""+e[1]),g:z(e[2]+""+e[2]),b:z(e[3]+""+e[3]),format:r?"name":"hex"}}(t)),"object"==typeof t&&(q(t.r)&&q(t.g)&&q(t.b)?(e=t.r,r=t.g,n=t.b,s={r:255*I(e,255),g:255*I(r,255),b:255*I(n,255)},d=!0,v="%"===String(t.r).substr(-1)?"prgb":"rgb"):q(t.h)&&q(t.s)&&q(t.v)?(f=F(t.s),h=F(t.v),s=function(t,e,r){t=6*I(t,360),e=I(e,100),r=I(r,100);var n=i.floor(t),a=t-n,o=r*(1-e),s=r*(1-a*e),l=r*(1-(1-a)*e),u=n%6;return{r:255*[r,s,o,o,l,r][u],g:255*[l,r,r,s,o,o][u],b:255*[o,o,l,r,r,s][u]}}(t.h,f,h),d=!0,v="hsv"):q(t.h)&&q(t.s)&&q(t.l)&&(f=F(t.s),p=F(t.l),s=function(t,e,r){var n,i,a;function o(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=I(t,360),e=I(e,100),r=I(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,l=2*r-s;n=o(l,s,t+1/3),i=o(l,s,t),a=o(l,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(t.h,f,p),d=!0,v="hsl"),t.hasOwnProperty("a")&&(l=t.a)),l=O(l),{ok:d,format:t.format||v,r:u(255,c(s.r,0)),g:u(255,c(s.g,0)),b:u(255,c(s.b,0)),a:l}}(t);this._originalInput=t,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=l(100*this._a)/100,this._format=e.format||r.format,this._gradientType=e.gradientType,this._r<1&&(this._r=l(this._r)),this._g<1&&(this._g=l(this._g)),this._b<1&&(this._b=l(this._b)),this._ok=r.ok,this._tc_id=s++}function p(t,e,r){t=I(t,255),e=I(e,255),r=I(r,255);var n,i,a=c(t,e,r),o=u(t,e,r),s=(a+o)/2;if(a==o)n=i=0;else{var l=a-o;switch(i=s>.5?l/(2-a-o):l/(a+o),a){case t:n=(e-r)/l+(e<r?6:0);break;case e:n=(r-t)/l+2;break;case r:n=(t-e)/l+4}n/=6}return{h:n,s:i,l:s}}function d(t,e,r){t=I(t,255),e=I(e,255),r=I(r,255);var n,i,a=c(t,e,r),o=u(t,e,r),s=a,l=a-o;if(i=0===a?0:l/a,a==o)n=0;else{switch(a){case t:n=(e-r)/l+(e<r?6:0);break;case e:n=(r-t)/l+2;break;case r:n=(t-e)/l+4}n/=6}return{h:n,s:i,v:s}}function v(t,e,r,n){var i=[R(l(t).toString(16)),R(l(e).toString(16)),R(l(r).toString(16))];return n&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join("")}function g(t,e,r,n){return[R(B(n)),R(l(t).toString(16)),R(l(e).toString(16)),R(l(r).toString(16))].join("")}function y(t,e){e=0===e?0:e||10;var r=h(t).toHsl();return r.s-=e/100,r.s=D(r.s),h(r)}function m(t,e){e=0===e?0:e||10;var r=h(t).toHsl();return r.s+=e/100,r.s=D(r.s),h(r)}function x(t){return h(t).desaturate(100)}function b(t,e){e=0===e?0:e||10;var r=h(t).toHsl();return r.l+=e/100,r.l=D(r.l),h(r)}function _(t,e){e=0===e?0:e||10;var r=h(t).toRgb();return r.r=c(0,u(255,r.r-l(-e/100*255))),r.g=c(0,u(255,r.g-l(-e/100*255))),r.b=c(0,u(255,r.b-l(-e/100*255))),h(r)}function w(t,e){e=0===e?0:e||10;var r=h(t).toHsl();return r.l-=e/100,r.l=D(r.l),h(r)}function T(t,e){var r=h(t).toHsl(),n=(r.h+e)%360;return r.h=n<0?360+n:n,h(r)}function k(t){var e=h(t).toHsl();return e.h=(e.h+180)%360,h(e)}function A(t){var e=h(t).toHsl(),r=e.h;return[h(t),h({h:(r+120)%360,s:e.s,l:e.l}),h({h:(r+240)%360,s:e.s,l:e.l})]}function M(t){var e=h(t).toHsl(),r=e.h;return[h(t),h({h:(r+90)%360,s:e.s,l:e.l}),h({h:(r+180)%360,s:e.s,l:e.l}),h({h:(r+270)%360,s:e.s,l:e.l})]}function S(t){var e=h(t).toHsl(),r=e.h;return[h(t),h({h:(r+72)%360,s:e.s,l:e.l}),h({h:(r+216)%360,s:e.s,l:e.l})]}function E(t,e,r){e=e||6,r=r||30;var n=h(t).toHsl(),i=360/r,a=[h(t)];for(n.h=(n.h-(i*e>>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(h(n));return a}function L(t,e){e=e||6;for(var r=h(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(h({h:n,s:i,v:a})),a=(a+s)%1;return o}h.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,e,r,n=this.toRgb();return t=n.r/255,e=n.g/255,r=n.b/255,.2126*(t<=.03928?t/12.92:i.pow((t+.055)/1.055,2.4))+.7152*(e<=.03928?e/12.92:i.pow((e+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:i.pow((r+.055)/1.055,2.4))},setAlpha:function(t){return this._a=O(t),this._roundA=l(100*this._a)/100,this},toHsv:function(){var t=d(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=d(this._r,this._g,this._b),e=l(360*t.h),r=l(100*t.s),n=l(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=p(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=p(this._r,this._g,this._b),e=l(360*t.h),r=l(100*t.s),n=l(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+n+"%)":"hsla("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return v(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,i){var a=[R(l(t).toString(16)),R(l(e).toString(16)),R(l(r).toString(16)),R(B(n))];return i&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:l(this._r),g:l(this._g),b:l(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+l(this._r)+", "+l(this._g)+", "+l(this._b)+")":"rgba("+l(this._r)+", "+l(this._g)+", "+l(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:l(100*I(this._r,255))+"%",g:l(100*I(this._g,255))+"%",b:l(100*I(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+l(100*I(this._r,255))+"%, "+l(100*I(this._g,255))+"%, "+l(100*I(this._b,255))+"%)":"rgba("+l(100*I(this._r,255))+"%, "+l(100*I(this._g,255))+"%, "+l(100*I(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(P[v(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+g(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?"GradientType = 1, ":"";if(t){var i=h(t);r="#"+g(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+e+",endColorstr="+r+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return h(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(b,arguments)},brighten:function(){return this._applyModification(_,arguments)},darken:function(){return this._applyModification(w,arguments)},desaturate:function(){return this._applyModification(y,arguments)},saturate:function(){return this._applyModification(m,arguments)},greyscale:function(){return this._applyModification(x,arguments)},spin:function(){return this._applyModification(T,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(E,arguments)},complement:function(){return this._applyCombination(k,arguments)},monochromatic:function(){return this._applyCombination(L,arguments)},splitcomplement:function(){return this._applyCombination(S,arguments)},triad:function(){return this._applyCombination(A,arguments)},tetrad:function(){return this._applyCombination(M,arguments)}},h.fromRatio=function(t,e){if("object"==typeof t){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]="a"===n?t[n]:F(t[n]));t=r}return h(t,e)},h.equals=function(t,e){return!(!t||!e)&&h(t).toRgbString()==h(e).toRgbString()},h.random=function(){return h.fromRatio({r:f(),g:f(),b:f()})},h.mix=function(t,e,r){r=0===r?0:r||50;var n=h(t).toRgb(),i=h(e).toRgb(),a=r/100;return h({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},h.readability=function(t,e){var r=h(t),n=h(e);return(i.max(r.getLuminance(),n.getLuminance())+.05)/(i.min(r.getLuminance(),n.getLuminance())+.05)},h.isReadable=function(t,e,r){var n,i,a,o,s,l=h.readability(t,e);switch(i=!1,(a=r,"AA"!==(o=((a=a||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==o&&(o="AA"),"small"!==(s=(a.size||"small").toLowerCase())&&"large"!==s&&(s="small"),n={level:o,size:s}).level+n.size){case"AAsmall":case"AAAlarge":i=l>=4.5;break;case"AAlarge":i=l>=3;break;case"AAAsmall":i=l>=7}return i},h.mostReadable=function(t,e,r){var n,i,a,o,s=null,l=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var u=0;u<e.length;u++)(n=h.readability(t,e[u]))>l&&(l=n,s=h(e[u]));return h.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,h.mostReadable(t,["#fff","#000"],r))};var C=h.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},P=h.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(C);function O(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function I(t,e){(function(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var r=function(t){return"string"==typeof t&&-1!=t.indexOf("%")}(t);return t=u(e,c(0,parseFloat(t))),r&&(t=parseInt(t*e,10)/100),i.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function D(t){return u(1,c(0,t))}function z(t){return parseInt(t,16)}function R(t){return 1==t.length?"0"+t:""+t}function F(t){return t<=1&&(t=100*t+"%"),t}function B(t){return i.round(255*parseFloat(t)).toString(16)}function N(t){return z(t)/255}var j,U,V,H=(U="[\\s|\\(]+("+(j="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+j+")[,|\\s]+("+j+")\\s*\\)?",V="[\\s|\\(]+("+j+")[,|\\s]+("+j+")[,|\\s]+("+j+")[,|\\s]+("+j+")\\s*\\)?",{CSS_UNIT:new RegExp(j),rgb:new RegExp("rgb"+U),rgba:new RegExp("rgba"+V),hsl:new RegExp("hsl"+U),hsla:new RegExp("hsla"+V),hsv:new RegExp("hsv"+U),hsva:new RegExp("hsva"+V),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function q(t){return!!H.CSS_UNIT.exec(t)}t.exports?t.exports=h:void 0===(n=function(){return h}.call(e,r,e,t))||(t.exports=n)}(Math)},57060:function(t){"use strict";t.exports=r,t.exports.float32=t.exports.float=r,t.exports.fract32=t.exports.fract=function(t,e){if(t.length){if(t instanceof Float32Array)return new Float32Array(t.length);e instanceof Float32Array||(e=r(t));for(var n=0,i=e.length;n<i;n++)e[n]=t[n]-e[n];return e}return r(t-r(t))};var e=new Float32Array(1);function r(t){return t.length?t instanceof Float32Array?t:new Float32Array(t):(e[0]=t,e[0])}},75686:function(t,e,r){"use strict";var n=r(25677);function i(t,e){var r=n(getComputedStyle(t).getPropertyValue(e));return r[0]*a(r[1],t)}function a(t,e){switch(e=e||document.body,t=(t||"px").trim().toLowerCase(),e!==window&&e!==document||(e=document.body),t){case"%":return e.clientHeight/100;case"ch":case"ex":return function(t,e){var r=document.createElement("div");r.style["font-size"]="128"+t,e.appendChild(r);var n=i(r,"font-size")/128;return e.removeChild(r),n}(t,e);case"em":return i(e,"font-size");case"rem":return i(document.body,"font-size");case"vw":return window.innerWidth/100;case"vh":return window.innerHeight/100;case"vmin":return Math.min(window.innerWidth,window.innerHeight)/100;case"vmax":return Math.max(window.innerWidth,window.innerHeight)/100;case"in":return 96;case"cm":return 96/2.54;case"mm":return 96/25.4;case"pt":return 96/72;case"pc":return 16}return 1}t.exports=a},96892:function(t,e,r){"use strict";function n(t){return t}function i(t,e){return"string"==typeof e&&(e=t.objects[e]),"GeometryCollection"===e.type?{type:"FeatureCollection",features:e.geometries.map((function(e){return a(t,e)}))}:a(t,e)}function a(t,e){var r=e.id,i=e.bbox,a=null==e.properties?{}:e.properties,o=function(t,e){var r=function(t){if(null==t)return n;var e,r,i=t.scale[0],a=t.scale[1],o=t.translate[0],s=t.translate[1];return function(t,n){n||(e=r=0);var l=2,u=t.length,c=new Array(u);for(c[0]=(e+=t[0])*i+o,c[1]=(r+=t[1])*a+s;l<u;)c[l]=t[l],++l;return c}}(t.transform),i=t.arcs;function a(t,e){e.length&&e.pop();for(var n=i[t<0?~t:t],a=0,o=n.length;a<o;++a)e.push(r(n[a],a));t<0&&function(t,e){for(var r,n=t.length,i=n-e;i<--n;)r=t[i],t[i++]=t[n],t[n]=r}(e,o)}function o(t){return r(t)}function s(t){for(var e=[],r=0,n=t.length;r<n;++r)a(t[r],e);return e.length<2&&e.push(e[0]),e}function l(t){for(var e=s(t);e.length<4;)e.push(e[0]);return e}function u(t){return t.map(l)}return function t(e){var r,n=e.type;switch(n){case"GeometryCollection":return{type:n,geometries:e.geometries.map(t)};case"Point":r=o(e.coordinates);break;case"MultiPoint":r=e.coordinates.map(o);break;case"LineString":r=s(e.arcs);break;case"MultiLineString":r=e.arcs.map(s);break;case"Polygon":r=u(e.arcs);break;case"MultiPolygon":r=e.arcs.map(u);break;default:return null}return{type:n,coordinates:r}}(e)}(t,e);return null==r&&null==i?{type:"Feature",properties:a,geometry:o}:null==i?{type:"Feature",id:r,properties:a,geometry:o}:{type:"Feature",id:r,bbox:i,properties:a,geometry:o}}r.d(e,{zL:function(){return i}})},73116:function(t,e,r){"use strict";var n=r(24511);t.exports=function(t){if("function"!=typeof t)return!1;if(!hasOwnProperty.call(t,"length"))return!1;try{if("number"!=typeof t.length)return!1;if("function"!=typeof t.call)return!1;if("function"!=typeof t.apply)return!1}catch(t){return!1}return!n(t)}},69190:function(t,e,r){"use strict";var n=r(24582),i=r(47403),a=r(9234),o=r(6048),s=function(t,e){return t.replace("%v",o(e))};t.exports=function(t,e,r){if(!i(r))throw new TypeError(s(e,t));if(!n(t)){if("default"in r)return r.default;if(r.isOptional)return null}var o=a(r.errorMessage);throw n(o)||(o=e),new TypeError(s(o,t))}},18497:function(t){"use strict";t.exports=function(t){try{return t.toString()}catch(e){try{return String(t)}catch(t){return null}}}},6048:function(t,e,r){"use strict";var n=r(18497),i=/[\n\r\u2028\u2029]/g;t.exports=function(t){var e=n(t);return null===e?"<Non-coercible to string value>":(e.length>100&&(e=e.slice(0,99)+"…"),e=e.replace(i,(function(t){switch(t){case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw new Error("Unexpected character")}})))}},47403:function(t,e,r){"use strict";var n=r(24582),i={object:!0,function:!0,undefined:!0};t.exports=function(t){return!!n(t)&&hasOwnProperty.call(i,typeof t)}},82527:function(t,e,r){"use strict";var n=r(69190),i=r(84985);t.exports=function(t){return i(t)?t:n(t,"%v is not a plain function",arguments[1])}},84985:function(t,e,r){"use strict";var n=r(73116),i=/^\s*class[\s{/}]/,a=Function.prototype.toString;t.exports=function(t){return!!n(t)&&!i.test(a.call(t))}},24511:function(t,e,r){"use strict";var n=r(47403);t.exports=function(t){if(!n(t))return!1;try{return!!t.constructor&&t.constructor.prototype===t}catch(t){return!1}}},9234:function(t,e,r){"use strict";var n=r(24582),i=r(47403),a=Object.prototype.toString;t.exports=function(t){if(!n(t))return null;if(i(t)){var e=t.toString;if("function"!=typeof e)return null;if(e===a)return null}try{return""+t}catch(t){return null}}},10424:function(t,e,r){"use strict";var n=r(69190),i=r(24582);t.exports=function(t){return i(t)?t:n(t,"Cannot use %v",arguments[1])}},24582:function(t){"use strict";t.exports=function(t){return null!=t}},58404:function(t,e,r){"use strict";var n=r(13547),i=r(12129),a=r(12856).Buffer;r.g.__TYPEDARRAY_POOL||(r.g.__TYPEDARRAY_POOL={UINT8:i([32,0]),UINT16:i([32,0]),UINT32:i([32,0]),BIGUINT64:i([32,0]),INT8:i([32,0]),INT16:i([32,0]),INT32:i([32,0]),BIGINT64:i([32,0]),FLOAT:i([32,0]),DOUBLE:i([32,0]),DATA:i([32,0]),UINT8C:i([32,0]),BUFFER:i([32,0])});var o="undefined"!=typeof Uint8ClampedArray,s="undefined"!=typeof BigUint64Array,l="undefined"!=typeof BigInt64Array,u=r.g.__TYPEDARRAY_POOL;u.UINT8C||(u.UINT8C=i([32,0])),u.BIGUINT64||(u.BIGUINT64=i([32,0])),u.BIGINT64||(u.BIGINT64=i([32,0])),u.BUFFER||(u.BUFFER=i([32,0]));var c=u.DATA,f=u.BUFFER;function h(t){if(t){var e=t.length||t.byteLength,r=n.log2(e);c[r].push(t)}}function p(t){t=n.nextPow2(t);var e=n.log2(t),r=c[e];return r.length>0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function v(t){return new Uint16Array(p(2*t),0,t)}function g(t){return new Uint32Array(p(4*t),0,t)}function y(t){return new Int8Array(p(t),0,t)}function m(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function A(t){return new DataView(p(t),0,t)}function M(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}e.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);c[r].push(t)}},e.freeUint8=e.freeUint16=e.freeUint32=e.freeBigUint64=e.freeInt8=e.freeInt16=e.freeInt32=e.freeBigInt64=e.freeFloat32=e.freeFloat=e.freeFloat64=e.freeDouble=e.freeUint8Clamped=e.freeDataView=function(t){h(t.buffer)},e.freeArrayBuffer=h,e.freeBuffer=function(t){f[n.log2(t.length)].push(t)},e.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return v(t);case"uint32":return g(t);case"int8":return y(t);case"int16":return m(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return M(t);case"data":case"dataview":return A(t);default:return null}return null},e.mallocArrayBuffer=p,e.mallocUint8=d,e.mallocUint16=v,e.mallocUint32=g,e.mallocInt8=y,e.mallocInt16=m,e.mallocInt32=x,e.mallocFloat32=e.mallocFloat=b,e.mallocFloat64=e.mallocDouble=_,e.mallocUint8Clamped=w,e.mallocBigUint64=T,e.mallocBigInt64=k,e.mallocDataView=A,e.mallocBuffer=M,e.clearCache=function(){for(var t=0;t<32;++t)u.UINT8[t].length=0,u.UINT16[t].length=0,u.UINT32[t].length=0,u.INT8[t].length=0,u.INT16[t].length=0,u.INT32[t].length=0,u.FLOAT[t].length=0,u.DOUBLE[t].length=0,u.BIGUINT64[t].length=0,u.BIGINT64[t].length=0,u.UINT8C[t].length=0,c[t].length=0,f[t].length=0}},90448:function(t){var e=/[\'\"]/;t.exports=function(t){return t?(e.test(t.charAt(0))&&(t=t.substr(1)),e.test(t.charAt(t.length-1))&&(t=t.substr(0,t.length-1)),t):""}},93447:function(t){"use strict";t.exports=function(t,e,r){Array.isArray(r)||(r=[].slice.call(arguments,2));for(var n=0,i=r.length;n<i;n++){var a=r[n];for(var o in a)if((void 0===e[o]||Array.isArray(e[o])||t[o]!==e[o])&&o in e){var s;if(!0===a[o])s=e[o];else{if(!1===a[o])continue;if("function"==typeof a[o]&&void 0===(s=a[o](e[o],t,e)))continue}t[o]=s}}return t}},20588:function(t,e,r){function n(t){try{if(!r.g.localStorage)return!1}catch(t){return!1}var e=r.g.localStorage[t];return null!=e&&"true"===String(e).toLowerCase()}t.exports=function(t,e){if(n("noDeprecation"))return t;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(e);n("traceDeprecation")?console.trace(e):console.warn(e),r=!0}return t.apply(this,arguments)}}},45920:function(t){t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},4936:function(t,e,r){"use strict";var n=r(47216),i=r(65481),a=r(21099),o=r(9187);function s(t){return t.call.bind(t)}var l="undefined"!=typeof BigInt,u="undefined"!=typeof Symbol,c=s(Object.prototype.toString),f=s(Number.prototype.valueOf),h=s(String.prototype.valueOf),p=s(Boolean.prototype.valueOf);if(l)var d=s(BigInt.prototype.valueOf);if(u)var v=s(Symbol.prototype.valueOf);function g(t,e){if("object"!=typeof t)return!1;try{return e(t),!0}catch(t){return!1}}function y(t){return"[object Map]"===c(t)}function m(t){return"[object Set]"===c(t)}function x(t){return"[object WeakMap]"===c(t)}function b(t){return"[object WeakSet]"===c(t)}function _(t){return"[object ArrayBuffer]"===c(t)}function w(t){return"undefined"!=typeof ArrayBuffer&&(_.working?_(t):t instanceof ArrayBuffer)}function T(t){return"[object DataView]"===c(t)}function k(t){return"undefined"!=typeof DataView&&(T.working?T(t):t instanceof DataView)}e.isArgumentsObject=n,e.isGeneratorFunction=i,e.isTypedArray=o,e.isPromise=function(t){return"undefined"!=typeof Promise&&t instanceof Promise||null!==t&&"object"==typeof t&&"function"==typeof t.then&&"function"==typeof t.catch},e.isArrayBufferView=function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):o(t)||k(t)},e.isUint8Array=function(t){return"Uint8Array"===a(t)},e.isUint8ClampedArray=function(t){return"Uint8ClampedArray"===a(t)},e.isUint16Array=function(t){return"Uint16Array"===a(t)},e.isUint32Array=function(t){return"Uint32Array"===a(t)},e.isInt8Array=function(t){return"Int8Array"===a(t)},e.isInt16Array=function(t){return"Int16Array"===a(t)},e.isInt32Array=function(t){return"Int32Array"===a(t)},e.isFloat32Array=function(t){return"Float32Array"===a(t)},e.isFloat64Array=function(t){return"Float64Array"===a(t)},e.isBigInt64Array=function(t){return"BigInt64Array"===a(t)},e.isBigUint64Array=function(t){return"BigUint64Array"===a(t)},y.working="undefined"!=typeof Map&&y(new Map),e.isMap=function(t){return"undefined"!=typeof Map&&(y.working?y(t):t instanceof Map)},m.working="undefined"!=typeof Set&&m(new Set),e.isSet=function(t){return"undefined"!=typeof Set&&(m.working?m(t):t instanceof Set)},x.working="undefined"!=typeof WeakMap&&x(new WeakMap),e.isWeakMap=function(t){return"undefined"!=typeof WeakMap&&(x.working?x(t):t instanceof WeakMap)},b.working="undefined"!=typeof WeakSet&&b(new WeakSet),e.isWeakSet=function(t){return b(t)},_.working="undefined"!=typeof ArrayBuffer&&_(new ArrayBuffer),e.isArrayBuffer=w,T.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&T(new DataView(new ArrayBuffer(1),0,1)),e.isDataView=k;var A="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function M(t){return"[object SharedArrayBuffer]"===c(t)}function S(t){return void 0!==A&&(void 0===M.working&&(M.working=M(new A)),M.working?M(t):t instanceof A)}function E(t){return g(t,f)}function L(t){return g(t,h)}function C(t){return g(t,p)}function P(t){return l&&g(t,d)}function O(t){return u&&g(t,v)}e.isSharedArrayBuffer=S,e.isAsyncFunction=function(t){return"[object AsyncFunction]"===c(t)},e.isMapIterator=function(t){return"[object Map Iterator]"===c(t)},e.isSetIterator=function(t){return"[object Set Iterator]"===c(t)},e.isGeneratorObject=function(t){return"[object Generator]"===c(t)},e.isWebAssemblyCompiledModule=function(t){return"[object WebAssembly.Module]"===c(t)},e.isNumberObject=E,e.isStringObject=L,e.isBooleanObject=C,e.isBigIntObject=P,e.isSymbolObject=O,e.isBoxedPrimitive=function(t){return E(t)||L(t)||C(t)||P(t)||O(t)},e.isAnyArrayBuffer=function(t){return"undefined"!=typeof Uint8Array&&(w(t)||S(t))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(t){Object.defineProperty(e,t,{enumerable:!1,value:function(){throw new Error(t+" is not supported in userland")}})}))},43827:function(t,e,r){var n=r(90386),i=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),r={},n=0;n<e.length;n++)r[e[n]]=Object.getOwnPropertyDescriptor(t,e[n]);return r},a=/%[sdj%]/g;e.format=function(t){if(!x(t)){for(var e=[],r=0;r<arguments.length;r++)e.push(u(arguments[r]));return e.join(" ")}r=1;for(var n=arguments,i=n.length,o=String(t).replace(a,(function(t){if("%%"===t)return"%";if(r>=i)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),s=n[r];r<i;s=n[++r])y(s)||!w(s)?o+=" "+s:o+=" "+u(s);return o},e.deprecate=function(t,r){if(void 0!==n&&!0===n.noDeprecation)return t;if(void 0===n)return function(){return e.deprecate(t,r).apply(this,arguments)};var i=!1;return function(){if(!i){if(n.throwDeprecation)throw new Error(r);n.traceDeprecation?console.trace(r):console.error(r),i=!0}return t.apply(this,arguments)}};var o={},s=/^$/;if(n.env.NODE_DEBUG){var l=n.env.NODE_DEBUG;l=l.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),s=new RegExp("^"+l+"$","i")}function u(t,r){var n={seen:[],stylize:f};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),g(r)?n.showHidden=r:r&&e._extend(n,r),b(n.showHidden)&&(n.showHidden=!1),b(n.depth)&&(n.depth=2),b(n.colors)&&(n.colors=!1),b(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=c),h(n,t,n.depth)}function c(t,e){var r=u.styles[e];return r?"["+u.colors[r][0]+"m"+t+"["+u.colors[r][1]+"m":t}function f(t,e){return t}function h(t,r,n){if(t.customInspect&&r&&A(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,t);return x(i)||(i=h(t,i,n)),i}var a=function(t,e){if(b(e))return t.stylize("undefined","undefined");if(x(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return m(e)?t.stylize(""+e,"number"):g(e)?t.stylize(""+e,"boolean"):y(e)?t.stylize("null","null"):void 0}(t,r);if(a)return a;var o=Object.keys(r),s=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(o);if(t.showHidden&&(o=Object.getOwnPropertyNames(r)),k(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return p(r);if(0===o.length){if(A(r)){var l=r.name?": "+r.name:"";return t.stylize("[Function"+l+"]","special")}if(_(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(T(r))return t.stylize(Date.prototype.toString.call(r),"date");if(k(r))return p(r)}var u,c="",f=!1,w=["{","}"];return v(r)&&(f=!0,w=["[","]"]),A(r)&&(c=" [Function"+(r.name?": "+r.name:"")+"]"),_(r)&&(c=" "+RegExp.prototype.toString.call(r)),T(r)&&(c=" "+Date.prototype.toUTCString.call(r)),k(r)&&(c=" "+p(r)),0!==o.length||f&&0!=r.length?n<0?_(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),u=f?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o<s;++o)C(e,String(o))?a.push(d(t,e,r,n,String(o),!0)):a.push("");return i.forEach((function(i){i.match(/^\d+$/)||a.push(d(t,e,r,n,i,!0))})),a}(t,r,n,s,o):o.map((function(e){return d(t,r,n,s,e,f)})),t.seen.pop(),function(t,e,r){return t.reduce((function(t,e){return e.indexOf("\n"),t+e.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n  ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}(u,c,w)):w[0]+c+w[1]}function p(t){return"["+Error.prototype.toString.call(t)+"]"}function d(t,e,r,n,i,a){var o,s,l;if((l=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=l.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):l.set&&(s=t.stylize("[Setter]","special")),C(n,i)||(o="["+i+"]"),s||(t.seen.indexOf(l.value)<0?(s=y(r)?h(t,l.value,null):h(t,l.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(t){return"  "+t})).join("\n").slice(2):"\n"+s.split("\n").map((function(t){return"   "+t})).join("\n")):s=t.stylize("[Circular]","special")),b(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.slice(1,-1),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+s}function v(t){return Array.isArray(t)}function g(t){return"boolean"==typeof t}function y(t){return null===t}function m(t){return"number"==typeof t}function x(t){return"string"==typeof t}function b(t){return void 0===t}function _(t){return w(t)&&"[object RegExp]"===M(t)}function w(t){return"object"==typeof t&&null!==t}function T(t){return w(t)&&"[object Date]"===M(t)}function k(t){return w(t)&&("[object Error]"===M(t)||t instanceof Error)}function A(t){return"function"==typeof t}function M(t){return Object.prototype.toString.call(t)}function S(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!o[t])if(s.test(t)){var r=n.pid;o[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else o[t]=function(){};return o[t]},e.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=r(4936),e.isArray=v,e.isBoolean=g,e.isNull=y,e.isNullOrUndefined=function(t){return null==t},e.isNumber=m,e.isString=x,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=b,e.isRegExp=_,e.types.isRegExp=_,e.isObject=w,e.isDate=T,e.types.isDate=T,e.isError=k,e.types.isNativeError=k,e.isFunction=A,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(45920);var E=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function L(){var t=new Date,e=[S(t.getHours()),S(t.getMinutes()),S(t.getSeconds())].join(":");return[t.getDate(),E[t.getMonth()],e].join(" ")}function C(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){console.log("%s - %s",L(),e.format.apply(e,arguments))},e.inherits=r(42018),e._extend=function(t,e){if(!e||!w(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t};var P="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(t,e){if(!t){var r=new Error("Promise was rejected with a falsy value");r.reason=t,t=r}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(P&&t[P]){var e;if("function"!=typeof(e=t[P]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,P,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,r,n=new Promise((function(t,n){e=t,r=n})),i=[],a=0;a<arguments.length;a++)i.push(arguments[a]);i.push((function(t,n){t?r(t):e(n)}));try{t.apply(this,i)}catch(t){r(t)}return n}return Object.setPrototypeOf(e,Object.getPrototypeOf(t)),P&&Object.defineProperty(e,P,{value:e,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(e,i(t))},e.promisify.custom=P,e.callbackify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');function e(){for(var e=[],r=0;r<arguments.length;r++)e.push(arguments[r]);var i=e.pop();if("function"!=typeof i)throw new TypeError("The last argument must be of type Function");var a=this,o=function(){return i.apply(a,arguments)};t.apply(this,e).then((function(t){n.nextTick(o.bind(null,null,t))}),(function(t){n.nextTick(O.bind(null,t,o))}))}return Object.setPrototypeOf(e,Object.getPrototypeOf(t)),Object.defineProperties(e,i(t)),e}},40372:function(t,e,r){var n=r(86249);t.exports=function(t){return n("webgl",t)}},21099:function(t,e,r){"use strict";var n=r(86165),i=r(72077),a=r(92978),o=a("Object.prototype.toString"),s=r(57877)()&&"symbol"==typeof Symbol.toStringTag,l=i(),u=a("String.prototype.slice"),c={},f=r(67295),h=Object.getPrototypeOf;s&&f&&h&&n(l,(function(t){if("function"==typeof r.g[t]){var e=new r.g[t];if(!(Symbol.toStringTag in e))throw new EvalError("this engine has support for Symbol.toStringTag, but "+t+" does not have the property! Please report this.");var n=h(e),i=f(n,Symbol.toStringTag);if(!i){var a=h(n);i=f(a,Symbol.toStringTag)}c[t]=i.get}}));var p=r(9187);t.exports=function(t){return!!p(t)&&(s?function(t){var e=!1;return n(c,(function(r,n){if(!e)try{var i=r.call(t);i===n&&(e=i)}catch(t){}})),e}(t):u(o(t),8,-1))}},3961:function(t,e,r){var n=r(63489),i=r(56131),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Chinese",jdEpoch:1721425.5,hasYearZero:!1,minMonth:0,firstMonth:0,minDay:1,regionalOptions:{"":{name:"Chinese",epochs:["BEC","EC"],monthNumbers:function(t,e){if("string"==typeof t){var r=t.match(l);return r?r[0]:""}var n=this._validateYear(t),i=t.month(),a=""+this.toChineseMonth(n,i);return e&&a.length<2&&(a="0"+a),this.isIntercalaryMonth(n,i)&&(a+="i"),a},monthNames:function(t){if("string"==typeof t){var e=t.match(u);return e?e[0]:""}var r=this._validateYear(t),n=t.month(),i=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i="闰"+i),i},monthNamesShort:function(t){if("string"==typeof t){var e=t.match(c);return e?e[0]:""}var r=this._validateYear(t),n=t.month(),i=["一","二","三","四","五","六","七","八","九","十","十一","十二"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i="闰"+i),i},parseMonth:function(t,e){t=this._validateYear(t);var r,n=parseInt(e);if(isNaN(n))"闰"===e[0]&&(r=!0,e=e.substring(1)),"月"===e[e.length-1]&&(e=e.substring(0,e.length-1)),n=1+["一","二","三","四","五","六","七","八","九","十","十一","十二"].indexOf(e);else{var i=e[e.length-1];r="i"===i||"I"===i}return this.toMonthIndex(t,n,r)},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},_validateYear:function(t,e){if(t.year&&(t=t.year()),"number"!=typeof t||t<1888||t>2111)throw e.replace(/\{0\}/,this.local.name);return t},toMonthIndex:function(t,e,r){var i=this.intercalaryMonth(t);if(r&&e!==i||e<1||e>12)throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return i?!r&&e<=i?e-1:e:e-1},toChineseMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);if(e<0||e>(r?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r?e<r?e+1:e:e+1},intercalaryMonth:function(t){return t=this._validateYear(t),f[t-f[0]]>>13},isIntercalaryMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);return!!r&&r===e},leapYear:function(t){return 0!==this.intercalaryMonth(t)},weekOfYear:function(t,e,r){var i,o=this._validateYear(t,n.local.invalidyear),s=h[o-h[0]],l=s>>9&4095,u=s>>5&15,c=31&s;(i=a.newDate(l,u,c)).add(4-(i.dayOfWeek()||7),"d");var f=this.toJD(t,e,r)-i.toJD();return 1+Math.floor(f/7)},monthsInYear:function(t){return this.leapYear(t)?13:12},daysInMonth:function(t,e){t.year&&(e=t.month(),t=t.year()),t=this._validateYear(t);var r=f[t-f[0]];if(e>(r>>13?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r&1<<12-e?30:29},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,s,r,n.local.invalidDate);t=this._validateYear(i.year()),e=i.month(),r=i.day();var o=this.isIntercalaryMonth(t,e),s=this.toChineseMonth(t,e),l=function(t,e,r,n,i){var a,o,s;if("object"==typeof t)o=t,a=e||{};else{var l;if(!("number"==typeof t&&t>=1888&&t<=2111))throw new Error("Lunar year outside range 1888-2111");if(!("number"==typeof e&&e>=1&&e<=12))throw new Error("Lunar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=30))throw new Error("Lunar day outside range 1 - 30");"object"==typeof n?(l=!1,a=n):(l=!!n,a={}),o={year:t,month:e,day:r,isIntercalary:l}}s=o.day-1;var u,c=f[o.year-f[0]],p=c>>13;u=p&&(o.month>p||o.isIntercalary)?o.month:o.month-1;for(var d=0;d<u;d++)s+=c&1<<12-d?30:29;var v=h[o.year-h[0]],g=new Date(v>>9&4095,(v>>5&15)-1,(31&v)+s);return a.year=g.getFullYear(),a.month=1+g.getMonth(),a.day=g.getDate(),a}(t,s,r,o);return a.toJD(l.year,l.month,l.day)},fromJD:function(t){var e=a.fromJD(t),r=function(t,e,r,n){var i,a;if("object"==typeof t)i=t,a=e||{};else{if(!("number"==typeof t&&t>=1888&&t<=2111))throw new Error("Solar year outside range 1888-2111");if(!("number"==typeof e&&e>=1&&e<=12))throw new Error("Solar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=31))throw new Error("Solar day outside range 1 - 31");i={year:t,month:e,day:r},a={}}var o=h[i.year-h[0]],s=i.year<<9|i.month<<5|i.day;a.year=s>=o?i.year:i.year-1,o=h[a.year-h[0]];var l,u=new Date(o>>9&4095,(o>>5&15)-1,31&o),c=new Date(i.year,i.month-1,i.day);l=Math.round((c-u)/864e5);var p,d=f[a.year-f[0]];for(p=0;p<13;p++){var v=d&1<<12-p?30:29;if(l<v)break;l-=v}var g=d>>13;return!g||p<g?(a.isIntercalary=!1,a.month=1+p):p===g?(a.isIntercalary=!0,a.month=p):(a.isIntercalary=!1,a.month=p),a.day=1+l,a}(e.year(),e.month(),e.day()),n=this.toMonthIndex(r.year,r.month,r.isIntercalary);return this.newDate(r.year,n,r.day)},fromString:function(t){var e=t.match(s),r=this._validateYear(+e[1]),n=+e[2],i=!!e[3],a=this.toMonthIndex(r,n,i),o=+e[4];return this.newDate(r,a,o)},add:function(t,e,r){var n=t.year(),i=t.month(),a=this.isIntercalaryMonth(n,i),s=this.toChineseMonth(n,i),l=Object.getPrototypeOf(o.prototype).add.call(this,t,e,r);if("y"===r){var u=l.year(),c=l.month(),f=this.isIntercalaryMonth(u,s),h=a&&f?this.toMonthIndex(u,s,!0):this.toMonthIndex(u,s,!1);h!==c&&l.month(h)}return l}});var s=/^\s*(-?\d\d\d\d|\d\d)[-/](\d?\d)([iI]?)[-/](\d?\d)/m,l=/^\d?\d[iI]?/m,u=/^闰?十?[一二三四五六七八九]?月/m,c=/^闰?十?[一二三四五六七八九]?/m;n.calendars.chinese=o;var f=[1887,5780,5802,19157,2742,50359,1198,2646,46378,7466,3412,30122,5482,67949,2396,5294,43597,6732,6954,36181,2772,4954,18781,2396,54427,5274,6730,47781,5800,6868,21210,4790,59703,2350,5270,46667,3402,3496,38325,1388,4782,18735,2350,52374,6804,7498,44457,2906,1388,29294,4700,63789,6442,6804,56138,5802,2772,38235,1210,4698,22827,5418,63125,3476,5802,43701,2484,5302,27223,2646,70954,7466,3412,54698,5482,2412,38062,5294,2636,32038,6954,60245,2772,4826,43357,2394,5274,39501,6730,72357,5800,5844,53978,4790,2358,38039,5270,87627,3402,3496,54708,5484,4782,43311,2350,3222,27978,7498,68965,2904,5484,45677,4700,6444,39573,6804,6986,19285,2772,62811,1210,4698,47403,5418,5780,38570,5546,76469,2420,5302,51799,2646,5414,36501,3412,5546,18869,2412,54446,5276,6732,48422,6822,2900,28010,4826,92509,2394,5274,55883,6730,6820,47956,5812,2778,18779,2358,62615,5270,5450,46757,3492,5556,27318,4718,67887,2350,3222,52554,7498,3428,38252,5468,4700,31022,6444,64149,6804,6986,43861,2772,5338,35421,2650,70955,5418,5780,54954,5546,2740,38074,5302,2646,29991,3366,61011,3412,5546,43445,2412,5294,35406,6732,72998,6820,6996,52586,2778,2396,38045,5274,6698,23333,6820,64338,5812,2746,43355,2358,5270,39499,5450,79525,3492,5548],h=[1887,966732,967231,967733,968265,968766,969297,969798,970298,970829,971330,971830,972362,972863,973395,973896,974397,974928,975428,975929,976461,976962,977462,977994,978494,979026,979526,980026,980558,981059,981559,982091,982593,983124,983624,984124,984656,985157,985656,986189,986690,987191,987722,988222,988753,989254,989754,990286,990788,991288,991819,992319,992851,993352,993851,994383,994885,995385,995917,996418,996918,997450,997949,998481,998982,999483,1000014,1000515,1001016,1001548,1002047,1002578,1003080,1003580,1004111,1004613,1005113,1005645,1006146,1006645,1007177,1007678,1008209,1008710,1009211,1009743,1010243,1010743,1011275,1011775,1012306,1012807,1013308,1013840,1014341,1014841,1015373,1015874,1016404,1016905,1017405,1017937,1018438,1018939,1019471,1019972,1020471,1021002,1021503,1022035,1022535,1023036,1023568,1024069,1024568,1025100,1025601,1026102,1026633,1027133,1027666,1028167,1028666,1029198,1029699,1030199,1030730,1031231,1031763,1032264,1032764,1033296,1033797,1034297,1034828,1035329,1035830,1036362,1036861,1037393,1037894,1038394,1038925,1039427,1039927,1040459,1040959,1041491,1041992,1042492,1043023,1043524,1044024,1044556,1045057,1045558,1046090,1046590,1047121,1047622,1048122,1048654,1049154,1049655,1050187,1050689,1051219,1051720,1052220,1052751,1053252,1053752,1054284,1054786,1055285,1055817,1056317,1056849,1057349,1057850,1058382,1058883,1059383,1059915,1060415,1060947,1061447,1061947,1062479,1062981,1063480,1064012,1064514,1065014,1065545,1066045,1066577,1067078,1067578,1068110,1068611,1069112,1069642,1070142,1070674,1071175,1071675,1072207,1072709,1073209,1073740,1074241,1074741,1075273,1075773,1076305,1076807,1077308,1077839,1078340,1078840,1079372,1079871,1080403,1080904]},38751:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Coptic",jdEpoch:1825029.5,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Coptic",epochs:["BAM","AM"],monthNames:["Thout","Paopi","Hathor","Koiak","Tobi","Meshir","Paremhat","Paremoude","Pashons","Paoni","Epip","Mesori","Pi Kogi Enavot"],monthNamesShort:["Tho","Pao","Hath","Koi","Tob","Mesh","Pat","Pad","Pash","Pao","Epi","Meso","PiK"],dayNames:["Tkyriaka","Pesnau","Pshoment","Peftoou","Ptiou","Psoou","Psabbaton"],dayNamesShort:["Tky","Pes","Psh","Pef","Pti","Pso","Psa"],dayNamesMin:["Tk","Pes","Psh","Pef","Pt","Pso","Psa"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==3||t%4==-1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear),13},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return(t=i.year())<0&&t++,i.day()+30*(i.month()-1)+365*(t-1)+Math.floor(t/4)+this.jdEpoch-1},fromJD:function(t){var e=Math.floor(t)+.5-this.jdEpoch,r=Math.floor((e-Math.floor((e+366)/1461))/365)+1;r<=0&&r--,e=Math.floor(t)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(e/30)+1,i=e-30*(n-1)+1;return this.newDate(r,n,i)}}),n.calendars.coptic=a},86825:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Discworld",jdEpoch:1721425.5,daysPerMonth:[16,32,32,32,32,32,32,32,32,32,32,32,32],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Discworld",epochs:["BUC","UC"],monthNames:["Ick","Offle","February","March","April","May","June","Grune","August","Spune","Sektober","Ember","December"],monthNamesShort:["Ick","Off","Feb","Mar","Apr","May","Jun","Gru","Aug","Spu","Sek","Emb","Dec"],dayNames:["Sunday","Octeday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Oct","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Oc","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:2,isRTL:!1}},leapYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),!1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),13},daysInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),400},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/8)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]},daysInWeek:function(){return 8},dayOfWeek:function(t,e,r){return(this._validate(t,e,r,n.local.invalidDate).day()+1)%8},weekDay:function(t,e,r){var n=this.dayOfWeek(t,e,r);return n>=2&&n<=6},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{century:o[Math.floor((i.year()-1)/100)+1]||""}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year()+(i.year()<0?1:0),e=i.month(),(r=i.day())+(e>1?16:0)+(e>2?32*(e-2):0)+400*(t-1)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t+.5)-Math.floor(this.jdEpoch)-1;var e=Math.floor(t/400)+1;t-=400*(e-1),t+=t>15?16:0;var r=Math.floor(t/32)+1,n=t-32*(r-1)+1;return this.newDate(e<=0?e-1:e,r,n)}});var o={20:"Fruitbat",21:"Anchovy"};n.calendars.discworld=a},37715:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Ethiopian",jdEpoch:1724220.5,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Ethiopian",epochs:["BEE","EE"],monthNames:["Meskerem","Tikemet","Hidar","Tahesas","Tir","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehase","Pagume"],monthNamesShort:["Mes","Tik","Hid","Tah","Tir","Yek","Meg","Mia","Gen","Sen","Ham","Neh","Pag"],dayNames:["Ehud","Segno","Maksegno","Irob","Hamus","Arb","Kidame"],dayNamesShort:["Ehu","Seg","Mak","Iro","Ham","Arb","Kid"],dayNamesMin:["Eh","Se","Ma","Ir","Ha","Ar","Ki"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==3||t%4==-1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear),13},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return(t=i.year())<0&&t++,i.day()+30*(i.month()-1)+365*(t-1)+Math.floor(t/4)+this.jdEpoch-1},fromJD:function(t){var e=Math.floor(t)+.5-this.jdEpoch,r=Math.floor((e-Math.floor((e+366)/1461))/365)+1;r<=0&&r--,e=Math.floor(t)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(e/30)+1,i=e-30*(n-1)+1;return this.newDate(r,n,i)}}),n.calendars.ethiopian=a},99384:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Hebrew",jdEpoch:347995.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29,29],hasYearZero:!1,minMonth:1,firstMonth:7,minDay:1,regionalOptions:{"":{name:"Hebrew",epochs:["BAM","AM"],monthNames:["Nisan","Iyar","Sivan","Tammuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Shevat","Adar","Adar II"],monthNamesShort:["Nis","Iya","Siv","Tam","Av","Elu","Tis","Che","Kis","Tev","She","Ada","Ad2"],dayNames:["Yom Rishon","Yom Sheni","Yom Shlishi","Yom Revi'i","Yom Chamishi","Yom Shishi","Yom Shabbat"],dayNamesShort:["Ris","She","Shl","Rev","Cha","Shi","Sha"],dayNamesMin:["Ri","She","Shl","Re","Ch","Shi","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return this._leapYear(e.year())},_leapYear:function(t){return o(7*(t=t<0?t+1:t)+1,19)<7},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),this._leapYear(t.year?t.year():t)?13:12},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),this.toJD(-1===t?1:t+1,7,1)-this.toJD(t,7,1)},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),12===e&&this.leapYear(t)||8===e&&5===o(this.daysInYear(t),10)?30:9===e&&3===o(this.daysInYear(t),10)?29:this.daysPerMonth[e-1]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{yearType:(this.leapYear(i)?"embolismic":"common")+" "+["deficient","regular","complete"][this.daysInYear(i)%10-3]}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t<=0?t+1:t,o=this.jdEpoch+this._delay1(a)+this._delay2(a)+r+1;if(e<7){for(var s=7;s<=this.monthsInYear(t);s++)o+=this.daysInMonth(t,s);for(s=1;s<e;s++)o+=this.daysInMonth(t,s)}else for(s=7;s<e;s++)o+=this.daysInMonth(t,s);return o},_delay1:function(t){var e=Math.floor((235*t-234)/19),r=12084+13753*e,n=29*e+Math.floor(r/25920);return o(3*(n+1),7)<3&&n++,n},_delay2:function(t){var e=this._delay1(t-1),r=this._delay1(t);return this._delay1(t+1)-r==356?2:r-e==382?1:0},fromJD:function(t){t=Math.floor(t)+.5;for(var e=Math.floor(98496*(t-this.jdEpoch)/35975351)-1;t>=this.toJD(-1===e?1:e+1,7,1);)e++;for(var r=t<this.toJD(e,1,1)?7:1;t>this.toJD(e,r,this.daysInMonth(e,r));)r++;var n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.hebrew=a},43805:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Islamic",jdEpoch:1948439.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Islamic",epochs:["BH","AH"],monthNames:["Muharram","Safar","Rabi' al-awwal","Rabi' al-thani","Jumada al-awwal","Jumada al-thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-ahad","Yawm al-ithnayn","Yawm ath-thulaathaa'","Yawm al-arbi'aa'","Yawm al-khamīs","Yawm al-jum'a","Yawm as-sabt"],dayNamesShort:["Aha","Ith","Thu","Arb","Kha","Jum","Sab"],dayNamesMin:["Ah","It","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!1}},leapYear:function(t){return(11*this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year()+14)%30<11},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return this.leapYear(t)?355:354},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),t=t<=0?t+1:t,(r=i.day())+Math.ceil(29.5*(e-1))+354*(t-1)+Math.floor((3+11*t)/30)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t)+.5;var e=Math.floor((30*(t-this.jdEpoch)+10646)/10631);e=e<=0?e-1:e;var r=Math.min(12,Math.ceil((t-29-this.toJD(e,1,1))/29.5)+1),n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.islamic=a},88874:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Julian",jdEpoch:1721423.5,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Julian",epochs:["BC","AD"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"mm/dd/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()<0?e.year()+1:e.year())%4==0},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(4-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),r=i.day(),t<0&&t++,e<=2&&(t--,e+=12),Math.floor(365.25*(t+4716))+Math.floor(30.6001*(e+1))+r-1524.5},fromJD:function(t){var e=Math.floor(t+.5)+1524,r=Math.floor((e-122.1)/365.25),n=Math.floor(365.25*r),i=Math.floor((e-n)/30.6001),a=i-Math.floor(i<14?1:13),o=r-Math.floor(a>2?4716:4715),s=e-n-Math.floor(30.6001*i);return o<=0&&o--,this.newDate(o,a,s)}}),n.calendars.julian=a},83290:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}function s(t,e){return o(t-1,e)+1}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Mayan",jdEpoch:584282.5,hasYearZero:!0,minMonth:0,firstMonth:0,minDay:0,regionalOptions:{"":{name:"Mayan",epochs:["",""],monthNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],monthNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],dayNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesMin:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],digits:null,dateFormat:"YYYY.m.d",firstDay:0,isRTL:!1,haabMonths:["Pop","Uo","Zip","Zotz","Tzec","Xul","Yaxkin","Mol","Chen","Yax","Zac","Ceh","Mac","Kankin","Muan","Pax","Kayab","Cumku","Uayeb"],tzolkinMonths:["Imix","Ik","Akbal","Kan","Chicchan","Cimi","Manik","Lamat","Muluc","Oc","Chuen","Eb","Ben","Ix","Men","Cib","Caban","Etznab","Cauac","Ahau"]}},leapYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),!1},formatYear:function(t){t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year();var e=Math.floor(t/400);return t%=400,t+=t<0?400:0,e+"."+Math.floor(t/20)+"."+t%20},forYear:function(t){if((t=t.split(".")).length<3)throw"Invalid Mayan year";for(var e=0,r=0;r<t.length;r++){var n=parseInt(t[r],10);if(Math.abs(n)>19||r>0&&n<0)throw"Invalid Mayan year";e=20*e+n}return e},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),18},weekOfYear:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),0},daysInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),360},daysInMonth:function(t,e){return this._validate(t,e,this.minDay,n.local.invalidMonth),20},daysInWeek:function(){return 5},dayOfWeek:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate).day()},weekDay:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),!0},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate).toJD(),a=this._toHaab(i),o=this._toTzolkin(i);return{haabMonthName:this.local.haabMonths[a[0]-1],haabMonth:a[0],haabDay:a[1],tzolkinDayName:this.local.tzolkinMonths[o[0]-1],tzolkinDay:o[0],tzolkinTrecena:o[1]}},_toHaab:function(t){var e=o(8+(t-=this.jdEpoch)+340,365);return[Math.floor(e/20)+1,o(e,20)]},_toTzolkin:function(t){return[s(20+(t-=this.jdEpoch),20),s(t+4,13)]},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return i.day()+20*i.month()+360*i.year()+this.jdEpoch},fromJD:function(t){t=Math.floor(t)+.5-this.jdEpoch;var e=Math.floor(t/360);t%=360,t+=t<0?360:0;var r=Math.floor(t/20),n=t%20;return this.newDate(e,r,n)}}),n.calendars.mayan=a},29108:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar;var o=n.instance("gregorian");i(a.prototype,{name:"Nanakshahi",jdEpoch:2257673.5,daysPerMonth:[31,31,31,31,31,30,30,30,30,30,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Nanakshahi",epochs:["BN","AN"],monthNames:["Chet","Vaisakh","Jeth","Harh","Sawan","Bhadon","Assu","Katak","Maghar","Poh","Magh","Phagun"],monthNamesShort:["Che","Vai","Jet","Har","Saw","Bha","Ass","Kat","Mgr","Poh","Mgh","Pha"],dayNames:["Somvaar","Mangalvar","Budhvaar","Veervaar","Shukarvaar","Sanicharvaar","Etvaar"],dayNamesShort:["Som","Mangal","Budh","Veer","Shukar","Sanichar","Et"],dayNamesMin:["So","Ma","Bu","Ve","Sh","Sa","Et"],digits:null,dateFormat:"dd-mm-yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear);return o.leapYear(e.year()+(e.year()<1?1:0)+1469)},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(1-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidMonth);(t=i.year())<0&&t++;for(var a=i.day(),s=1;s<i.month();s++)a+=this.daysPerMonth[s-1];return a+o.toJD(t+1468,3,13)},fromJD:function(t){t=Math.floor(t+.5);for(var e=Math.floor((t-(this.jdEpoch-1))/366);t>=this.toJD(e+1,1,1);)e++;for(var r=t-Math.floor(this.toJD(e,1,1)+.5)+1,n=1;r>this.daysInMonth(e,n);)r-=this.daysInMonth(e,n),n++;return this.newDate(e,n,r)}}),n.calendars.nanakshahi=a},55422:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Nepali",jdEpoch:1700709.5,daysPerMonth:[31,31,32,32,31,30,30,29,30,29,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,daysPerYear:365,regionalOptions:{"":{name:"Nepali",epochs:["BBS","ABS"],monthNames:["Baisakh","Jestha","Ashadh","Shrawan","Bhadra","Ashwin","Kartik","Mangsir","Paush","Mangh","Falgun","Chaitra"],monthNamesShort:["Bai","Je","As","Shra","Bha","Ash","Kar","Mang","Pau","Ma","Fal","Chai"],dayNames:["Aaitabaar","Sombaar","Manglbaar","Budhabaar","Bihibaar","Shukrabaar","Shanibaar"],dayNamesShort:["Aaita","Som","Mangl","Budha","Bihi","Shukra","Shani"],dayNamesMin:["Aai","So","Man","Bu","Bi","Shu","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:1,isRTL:!1}},leapYear:function(t){return this.daysInYear(t)!==this.daysPerYear},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){if(t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),void 0===this.NEPALI_CALENDAR_DATA[t])return this.daysPerYear;for(var e=0,r=this.minMonth;r<=12;r++)e+=this.NEPALI_CALENDAR_DATA[t][r];return e},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),void 0===this.NEPALI_CALENDAR_DATA[t]?this.daysPerMonth[e-1]:this.NEPALI_CALENDAR_DATA[t][e]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=n.instance(),o=0,s=e,l=t;this._createMissingCalendarData(t);var u=t-(s>9||9===s&&r>=this.NEPALI_CALENDAR_DATA[l][0]?56:57);for(9!==e&&(o=r,s--);9!==s;)s<=0&&(s=12,l--),o+=this.NEPALI_CALENDAR_DATA[l][s],s--;return 9===e?(o+=r-this.NEPALI_CALENDAR_DATA[l][0])<0&&(o+=a.daysInYear(u)):o+=this.NEPALI_CALENDAR_DATA[l][9]-this.NEPALI_CALENDAR_DATA[l][0],a.newDate(u,1,1).add(o,"d").toJD()},fromJD:function(t){var e=n.instance().fromJD(t),r=e.year(),i=e.dayOfYear(),a=r+56;this._createMissingCalendarData(a);for(var o=9,s=this.NEPALI_CALENDAR_DATA[a][0],l=this.NEPALI_CALENDAR_DATA[a][o]-s+1;i>l;)++o>12&&(o=1,a++),l+=this.NEPALI_CALENDAR_DATA[a][o];var u=this.NEPALI_CALENDAR_DATA[a][o]-(l-i);return this.newDate(a,o,u)},_createMissingCalendarData:function(t){var e=this.daysPerMonth.slice(0);e.unshift(17);for(var r=t-1;r<t+2;r++)void 0===this.NEPALI_CALENDAR_DATA[r]&&(this.NEPALI_CALENDAR_DATA[r]=e)},NEPALI_CALENDAR_DATA:{1970:[18,31,31,32,31,31,31,30,29,30,29,30,30],1971:[18,31,31,32,31,32,30,30,29,30,29,30,30],1972:[17,31,32,31,32,31,30,30,30,29,29,30,30],1973:[19,30,32,31,32,31,30,30,30,29,30,29,31],1974:[19,31,31,32,30,31,31,30,29,30,29,30,30],1975:[18,31,31,32,32,30,31,30,29,30,29,30,30],1976:[17,31,32,31,32,31,30,30,30,29,29,30,31],1977:[18,31,32,31,32,31,31,29,30,29,30,29,31],1978:[18,31,31,32,31,31,31,30,29,30,29,30,30],1979:[18,31,31,32,32,31,30,30,29,30,29,30,30],1980:[17,31,32,31,32,31,30,30,30,29,29,30,31],1981:[18,31,31,31,32,31,31,29,30,30,29,30,30],1982:[18,31,31,32,31,31,31,30,29,30,29,30,30],1983:[18,31,31,32,32,31,30,30,29,30,29,30,30],1984:[17,31,32,31,32,31,30,30,30,29,29,30,31],1985:[18,31,31,31,32,31,31,29,30,30,29,30,30],1986:[18,31,31,32,31,31,31,30,29,30,29,30,30],1987:[18,31,32,31,32,31,30,30,29,30,29,30,30],1988:[17,31,32,31,32,31,30,30,30,29,29,30,31],1989:[18,31,31,31,32,31,31,30,29,30,29,30,30],1990:[18,31,31,32,31,31,31,30,29,30,29,30,30],1991:[18,31,32,31,32,31,30,30,29,30,29,30,30],1992:[17,31,32,31,32,31,30,30,30,29,30,29,31],1993:[18,31,31,31,32,31,31,30,29,30,29,30,30],1994:[18,31,31,32,31,31,31,30,29,30,29,30,30],1995:[17,31,32,31,32,31,30,30,30,29,29,30,30],1996:[17,31,32,31,32,31,30,30,30,29,30,29,31],1997:[18,31,31,32,31,31,31,30,29,30,29,30,30],1998:[18,31,31,32,31,31,31,30,29,30,29,30,30],1999:[17,31,32,31,32,31,30,30,30,29,29,30,31],2e3:[17,30,32,31,32,31,30,30,30,29,30,29,31],2001:[18,31,31,32,31,31,31,30,29,30,29,30,30],2002:[18,31,31,32,32,31,30,30,29,30,29,30,30],2003:[17,31,32,31,32,31,30,30,30,29,29,30,31],2004:[17,30,32,31,32,31,30,30,30,29,30,29,31],2005:[18,31,31,32,31,31,31,30,29,30,29,30,30],2006:[18,31,31,32,32,31,30,30,29,30,29,30,30],2007:[17,31,32,31,32,31,30,30,30,29,29,30,31],2008:[17,31,31,31,32,31,31,29,30,30,29,29,31],2009:[18,31,31,32,31,31,31,30,29,30,29,30,30],2010:[18,31,31,32,32,31,30,30,29,30,29,30,30],2011:[17,31,32,31,32,31,30,30,30,29,29,30,31],2012:[17,31,31,31,32,31,31,29,30,30,29,30,30],2013:[18,31,31,32,31,31,31,30,29,30,29,30,30],2014:[18,31,31,32,32,31,30,30,29,30,29,30,30],2015:[17,31,32,31,32,31,30,30,30,29,29,30,31],2016:[17,31,31,31,32,31,31,29,30,30,29,30,30],2017:[18,31,31,32,31,31,31,30,29,30,29,30,30],2018:[18,31,32,31,32,31,30,30,29,30,29,30,30],2019:[17,31,32,31,32,31,30,30,30,29,30,29,31],2020:[17,31,31,31,32,31,31,30,29,30,29,30,30],2021:[18,31,31,32,31,31,31,30,29,30,29,30,30],2022:[17,31,32,31,32,31,30,30,30,29,29,30,30],2023:[17,31,32,31,32,31,30,30,30,29,30,29,31],2024:[17,31,31,31,32,31,31,30,29,30,29,30,30],2025:[18,31,31,32,31,31,31,30,29,30,29,30,30],2026:[17,31,32,31,32,31,30,30,30,29,29,30,31],2027:[17,30,32,31,32,31,30,30,30,29,30,29,31],2028:[17,31,31,32,31,31,31,30,29,30,29,30,30],2029:[18,31,31,32,31,32,30,30,29,30,29,30,30],2030:[17,31,32,31,32,31,30,30,30,30,30,30,31],2031:[17,31,32,31,32,31,31,31,31,31,31,31,31],2032:[17,32,32,32,32,32,32,32,32,32,32,32,32],2033:[18,31,31,32,32,31,30,30,29,30,29,30,30],2034:[17,31,32,31,32,31,30,30,30,29,29,30,31],2035:[17,30,32,31,32,31,31,29,30,30,29,29,31],2036:[17,31,31,32,31,31,31,30,29,30,29,30,30],2037:[18,31,31,32,32,31,30,30,29,30,29,30,30],2038:[17,31,32,31,32,31,30,30,30,29,29,30,31],2039:[17,31,31,31,32,31,31,29,30,30,29,30,30],2040:[17,31,31,32,31,31,31,30,29,30,29,30,30],2041:[18,31,31,32,32,31,30,30,29,30,29,30,30],2042:[17,31,32,31,32,31,30,30,30,29,29,30,31],2043:[17,31,31,31,32,31,31,29,30,30,29,30,30],2044:[17,31,31,32,31,31,31,30,29,30,29,30,30],2045:[18,31,32,31,32,31,30,30,29,30,29,30,30],2046:[17,31,32,31,32,31,30,30,30,29,29,30,31],2047:[17,31,31,31,32,31,31,30,29,30,29,30,30],2048:[17,31,31,32,31,31,31,30,29,30,29,30,30],2049:[17,31,32,31,32,31,30,30,30,29,29,30,30],2050:[17,31,32,31,32,31,30,30,30,29,30,29,31],2051:[17,31,31,31,32,31,31,30,29,30,29,30,30],2052:[17,31,31,32,31,31,31,30,29,30,29,30,30],2053:[17,31,32,31,32,31,30,30,30,29,29,30,30],2054:[17,31,32,31,32,31,30,30,30,29,30,29,31],2055:[17,31,31,32,31,31,31,30,29,30,30,29,30],2056:[17,31,31,32,31,32,30,30,29,30,29,30,30],2057:[17,31,32,31,32,31,30,30,30,29,29,30,31],2058:[17,30,32,31,32,31,30,30,30,29,30,29,31],2059:[17,31,31,32,31,31,31,30,29,30,29,30,30],2060:[17,31,31,32,32,31,30,30,29,30,29,30,30],2061:[17,31,32,31,32,31,30,30,30,29,29,30,31],2062:[17,30,32,31,32,31,31,29,30,29,30,29,31],2063:[17,31,31,32,31,31,31,30,29,30,29,30,30],2064:[17,31,31,32,32,31,30,30,29,30,29,30,30],2065:[17,31,32,31,32,31,30,30,30,29,29,30,31],2066:[17,31,31,31,32,31,31,29,30,30,29,29,31],2067:[17,31,31,32,31,31,31,30,29,30,29,30,30],2068:[17,31,31,32,32,31,30,30,29,30,29,30,30],2069:[17,31,32,31,32,31,30,30,30,29,29,30,31],2070:[17,31,31,31,32,31,31,29,30,30,29,30,30],2071:[17,31,31,32,31,31,31,30,29,30,29,30,30],2072:[17,31,32,31,32,31,30,30,29,30,29,30,30],2073:[17,31,32,31,32,31,30,30,30,29,29,30,31],2074:[17,31,31,31,32,31,31,30,29,30,29,30,30],2075:[17,31,31,32,31,31,31,30,29,30,29,30,30],2076:[16,31,32,31,32,31,30,30,30,29,29,30,30],2077:[17,31,32,31,32,31,30,30,30,29,30,29,31],2078:[17,31,31,31,32,31,31,30,29,30,29,30,30],2079:[17,31,31,32,31,31,31,30,29,30,29,30,30],2080:[16,31,32,31,32,31,30,30,30,29,29,30,30],2081:[17,31,31,32,32,31,30,30,30,29,30,30,30],2082:[17,31,32,31,32,31,30,30,30,29,30,30,30],2083:[17,31,31,32,31,31,30,30,30,29,30,30,30],2084:[17,31,31,32,31,31,30,30,30,29,30,30,30],2085:[17,31,32,31,32,31,31,30,30,29,30,30,30],2086:[17,31,32,31,32,31,30,30,30,29,30,30,30],2087:[16,31,31,32,31,31,31,30,30,29,30,30,30],2088:[16,30,31,32,32,30,31,30,30,29,30,30,30],2089:[17,31,32,31,32,31,30,30,30,29,30,30,30],2090:[17,31,32,31,32,31,30,30,30,29,30,30,30],2091:[16,31,31,32,31,31,31,30,30,29,30,30,30],2092:[16,31,31,32,32,31,30,30,30,29,30,30,30],2093:[17,31,32,31,32,31,30,30,30,29,30,30,30],2094:[17,31,31,32,31,31,30,30,30,29,30,30,30],2095:[17,31,31,32,31,31,31,30,29,30,30,30,30],2096:[17,30,31,32,32,31,30,30,29,30,29,30,30],2097:[17,31,32,31,32,31,30,30,30,29,30,30,30],2098:[17,31,31,32,31,31,31,29,30,29,30,30,31],2099:[17,31,31,32,31,31,31,30,29,29,30,30,30],2100:[17,31,32,31,32,30,31,30,29,30,29,30,30]}}),n.calendars.nepali=a},94320:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Persian",jdEpoch:1948320.5,daysPerMonth:[31,31,31,31,31,31,30,30,30,30,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Persian",epochs:["BP","AP"],monthNames:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Day","Bahman","Esfand"],monthNamesShort:["Far","Ord","Kho","Tir","Mor","Sha","Meh","Aba","Aza","Day","Bah","Esf"],dayNames:["Yekshambe","Doshambe","Seshambe","Chæharshambe","Panjshambe","Jom'e","Shambe"],dayNamesShort:["Yek","Do","Se","Chæ","Panj","Jom","Sha"],dayNamesMin:["Ye","Do","Se","Ch","Pa","Jo","Sh"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return 682*((e.year()-(e.year()>0?474:473))%2820+474+38)%2816<682},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-(n.dayOfWeek()+1)%7,"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t-(t>=0?474:473),s=474+o(a,2820);return r+(e<=7?31*(e-1):30*(e-1)+6)+Math.floor((682*s-110)/2816)+365*(s-1)+1029983*Math.floor(a/2820)+this.jdEpoch-1},fromJD:function(t){var e=(t=Math.floor(t)+.5)-this.toJD(475,1,1),r=Math.floor(e/1029983),n=o(e,1029983),i=2820;if(1029982!==n){var a=Math.floor(n/366),s=o(n,366);i=Math.floor((2134*a+2816*s+2815)/1028522)+a+1}var l=i+2820*r+474;l=l<=0?l-1:l;var u=t-this.toJD(l,1,1)+1,c=u<=186?Math.ceil(u/31):Math.ceil((u-6)/30),f=t-this.toJD(l,c,1)+1;return this.newDate(l,c,f)}}),n.calendars.persian=a,n.calendars.jalali=a},31320:function(t,e,r){var n=r(63489),i=r(56131),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Taiwan",jdEpoch:2419402.5,yearsOffset:1911,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Taiwan",epochs:["BROC","ROC"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return t=this._t2gYear(e.year()),a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return t=this._t2gYear(i.year()),a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=this._t2gYear(i.year()),a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)},_g2tYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)}}),n.calendars.taiwan=o},51367:function(t,e,r){var n=r(63489),i=r(56131),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Thai",jdEpoch:1523098.5,yearsOffset:543,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Thai",epochs:["BBE","BE"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return t=this._t2gYear(e.year()),a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return t=this._t2gYear(i.year()),a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=this._t2gYear(i.year()),a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)},_g2tYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)}}),n.calendars.thai=o},21457:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"UmmAlQura",hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Umm al-Qura",epochs:["BH","AH"],monthNames:["Al-Muharram","Safar","Rabi' al-awwal","Rabi' Al-Thani","Jumada Al-Awwal","Jumada Al-Thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-Ahad","Yawm al-Ithnain","Yawm al-Thalāthā’","Yawm al-Arba‘ā’","Yawm al-Khamīs","Yawm al-Jum‘a","Yawm al-Sabt"],dayNamesMin:["Ah","Ith","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!0}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return 355===this.daysInYear(e.year())},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){for(var e=0,r=1;r<=12;r++)e+=this.daysInMonth(t,r);return e},daysInMonth:function(t,e){for(var r=this._validate(t,e,this.minDay,n.local.invalidMonth).toJD()-24e5+.5,i=0,a=0;a<o.length;a++){if(o[a]>r)return o[i]-o[i-1];i++}return 30},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate),a=12*(i.year()-1)+i.month()-15292;return i.day()+o[a-1]-1+24e5-.5},fromJD:function(t){for(var e=t-24e5+.5,r=0,n=0;n<o.length&&!(o[n]>e);n++)r++;var i=r+15292,a=Math.floor((i-1)/12),s=a+1,l=i-12*a,u=e-o[r-1]+1;return this.newDate(s,l,u)},isValid:function(t,e,r){var i=n.baseCalendar.prototype.isValid.apply(this,arguments);return i&&(i=(t=null!=t.year?t.year:t)>=1276&&t<=1500),i},_validate:function(t,e,r,i){var a=n.baseCalendar.prototype._validate.apply(this,arguments);if(a.year<1276||a.year>1500)throw i.replace(/\{0\}/,this.local.name);return a}}),n.calendars.ummalqura=a;var o=[20,50,79,109,138,168,197,227,256,286,315,345,374,404,433,463,492,522,551,581,611,641,670,700,729,759,788,818,847,877,906,936,965,995,1024,1054,1083,1113,1142,1172,1201,1231,1260,1290,1320,1350,1379,1409,1438,1468,1497,1527,1556,1586,1615,1645,1674,1704,1733,1763,1792,1822,1851,1881,1910,1940,1969,1999,2028,2058,2087,2117,2146,2176,2205,2235,2264,2294,2323,2353,2383,2413,2442,2472,2501,2531,2560,2590,2619,2649,2678,2708,2737,2767,2796,2826,2855,2885,2914,2944,2973,3003,3032,3062,3091,3121,3150,3180,3209,3239,3268,3298,3327,3357,3386,3416,3446,3476,3505,3535,3564,3594,3623,3653,3682,3712,3741,3771,3800,3830,3859,3889,3918,3948,3977,4007,4036,4066,4095,4125,4155,4185,4214,4244,4273,4303,4332,4362,4391,4421,4450,4480,4509,4539,4568,4598,4627,4657,4686,4716,4745,4775,4804,4834,4863,4893,4922,4952,4981,5011,5040,5070,5099,5129,5158,5188,5218,5248,5277,5307,5336,5366,5395,5425,5454,5484,5513,5543,5572,5602,5631,5661,5690,5720,5749,5779,5808,5838,5867,5897,5926,5956,5985,6015,6044,6074,6103,6133,6162,6192,6221,6251,6281,6311,6340,6370,6399,6429,6458,6488,6517,6547,6576,6606,6635,6665,6694,6724,6753,6783,6812,6842,6871,6901,6930,6960,6989,7019,7048,7078,7107,7137,7166,7196,7225,7255,7284,7314,7344,7374,7403,7433,7462,7492,7521,7551,7580,7610,7639,7669,7698,7728,7757,7787,7816,7846,7875,7905,7934,7964,7993,8023,8053,8083,8112,8142,8171,8201,8230,8260,8289,8319,8348,8378,8407,8437,8466,8496,8525,8555,8584,8614,8643,8673,8702,8732,8761,8791,8821,8850,8880,8909,8938,8968,8997,9027,9056,9086,9115,9145,9175,9205,9234,9264,9293,9322,9352,9381,9410,9440,9470,9499,9529,9559,9589,9618,9648,9677,9706,9736,9765,9794,9824,9853,9883,9913,9943,9972,10002,10032,10061,10090,10120,10149,10178,10208,10237,10267,10297,10326,10356,10386,10415,10445,10474,10504,10533,10562,10592,10621,10651,10680,10710,10740,10770,10799,10829,10858,10888,10917,10947,10976,11005,11035,11064,11094,11124,11153,11183,11213,11242,11272,11301,11331,11360,11389,11419,11448,11478,11507,11537,11567,11596,11626,11655,11685,11715,11744,11774,11803,11832,11862,11891,11921,11950,11980,12010,12039,12069,12099,12128,12158,12187,12216,12246,12275,12304,12334,12364,12393,12423,12453,12483,12512,12542,12571,12600,12630,12659,12688,12718,12747,12777,12807,12837,12866,12896,12926,12955,12984,13014,13043,13072,13102,13131,13161,13191,13220,13250,13280,13310,13339,13368,13398,13427,13456,13486,13515,13545,13574,13604,13634,13664,13693,13723,13752,13782,13811,13840,13870,13899,13929,13958,13988,14018,14047,14077,14107,14136,14166,14195,14224,14254,14283,14313,14342,14372,14401,14431,14461,14490,14520,14550,14579,14609,14638,14667,14697,14726,14756,14785,14815,14844,14874,14904,14933,14963,14993,15021,15051,15081,15110,15140,15169,15199,15228,15258,15287,15317,15347,15377,15406,15436,15465,15494,15524,15553,15582,15612,15641,15671,15701,15731,15760,15790,15820,15849,15878,15908,15937,15966,15996,16025,16055,16085,16114,16144,16174,16204,16233,16262,16292,16321,16350,16380,16409,16439,16468,16498,16528,16558,16587,16617,16646,16676,16705,16734,16764,16793,16823,16852,16882,16912,16941,16971,17001,17030,17060,17089,17118,17148,17177,17207,17236,17266,17295,17325,17355,17384,17414,17444,17473,17502,17532,17561,17591,17620,17650,17679,17709,17738,17768,17798,17827,17857,17886,17916,17945,17975,18004,18034,18063,18093,18122,18152,18181,18211,18241,18270,18300,18330,18359,18388,18418,18447,18476,18506,18535,18565,18595,18625,18654,18684,18714,18743,18772,18802,18831,18860,18890,18919,18949,18979,19008,19038,19068,19098,19127,19156,19186,19215,19244,19274,19303,19333,19362,19392,19422,19452,19481,19511,19540,19570,19599,19628,19658,19687,19717,19746,19776,19806,19836,19865,19895,19924,19954,19983,20012,20042,20071,20101,20130,20160,20190,20219,20249,20279,20308,20338,20367,20396,20426,20455,20485,20514,20544,20573,20603,20633,20662,20692,20721,20751,20780,20810,20839,20869,20898,20928,20957,20987,21016,21046,21076,21105,21135,21164,21194,21223,21253,21282,21312,21341,21371,21400,21430,21459,21489,21519,21548,21578,21607,21637,21666,21696,21725,21754,21784,21813,21843,21873,21902,21932,21962,21991,22021,22050,22080,22109,22138,22168,22197,22227,22256,22286,22316,22346,22375,22405,22434,22464,22493,22522,22552,22581,22611,22640,22670,22700,22730,22759,22789,22818,22848,22877,22906,22936,22965,22994,23024,23054,23083,23113,23143,23173,23202,23232,23261,23290,23320,23349,23379,23408,23438,23467,23497,23527,23556,23586,23616,23645,23674,23704,23733,23763,23792,23822,23851,23881,23910,23940,23970,23999,24029,24058,24088,24117,24147,24176,24206,24235,24265,24294,24324,24353,24383,24413,24442,24472,24501,24531,24560,24590,24619,24648,24678,24707,24737,24767,24796,24826,24856,24885,24915,24944,24974,25003,25032,25062,25091,25121,25150,25180,25210,25240,25269,25299,25328,25358,25387,25416,25446,25475,25505,25534,25564,25594,25624,25653,25683,25712,25742,25771,25800,25830,25859,25888,25918,25948,25977,26007,26037,26067,26096,26126,26155,26184,26214,26243,26272,26302,26332,26361,26391,26421,26451,26480,26510,26539,26568,26598,26627,26656,26686,26715,26745,26775,26805,26834,26864,26893,26923,26952,26982,27011,27041,27070,27099,27129,27159,27188,27218,27248,27277,27307,27336,27366,27395,27425,27454,27484,27513,27542,27572,27602,27631,27661,27691,27720,27750,27779,27809,27838,27868,27897,27926,27956,27985,28015,28045,28074,28104,28134,28163,28193,28222,28252,28281,28310,28340,28369,28399,28428,28458,28488,28517,28547,28577,28607,28636,28665,28695,28724,28754,28783,28813,28843,28872,28901,28931,28960,28990,29019,29049,29078,29108,29137,29167,29196,29226,29255,29285,29315,29345,29375,29404,29434,29463,29492,29522,29551,29580,29610,29640,29669,29699,29729,29759,29788,29818,29847,29876,29906,29935,29964,29994,30023,30053,30082,30112,30141,30171,30200,30230,30259,30289,30318,30348,30378,30408,30437,30467,30496,30526,30555,30585,30614,30644,30673,30703,30732,30762,30791,30821,30850,30880,30909,30939,30968,30998,31027,31057,31086,31116,31145,31175,31204,31234,31263,31293,31322,31352,31381,31411,31441,31471,31500,31530,31559,31589,31618,31648,31676,31706,31736,31766,31795,31825,31854,31884,31913,31943,31972,32002,32031,32061,32090,32120,32150,32180,32209,32239,32268,32298,32327,32357,32386,32416,32445,32475,32504,32534,32563,32593,32622,32652,32681,32711,32740,32770,32799,32829,32858,32888,32917,32947,32976,33006,33035,33065,33094,33124,33153,33183,33213,33243,33272,33302,33331,33361,33390,33420,33450,33479,33509,33539,33568,33598,33627,33657,33686,33716,33745,33775,33804,33834,33863,33893,33922,33952,33981,34011,34040,34069,34099,34128,34158,34187,34217,34247,34277,34306,34336,34365,34395,34424,34454,34483,34512,34542,34571,34601,34631,34660,34690,34719,34749,34778,34808,34837,34867,34896,34926,34955,34985,35015,35044,35074,35103,35133,35162,35192,35222,35251,35280,35310,35340,35370,35399,35429,35458,35488,35517,35547,35576,35605,35635,35665,35694,35723,35753,35782,35811,35841,35871,35901,35930,35960,35989,36019,36048,36078,36107,36136,36166,36195,36225,36254,36284,36314,36343,36373,36403,36433,36462,36492,36521,36551,36580,36610,36639,36669,36698,36728,36757,36786,36816,36845,36875,36904,36934,36963,36993,37022,37052,37081,37111,37141,37170,37200,37229,37259,37288,37318,37347,37377,37406,37436,37465,37495,37524,37554,37584,37613,37643,37672,37701,37731,37760,37790,37819,37849,37878,37908,37938,37967,37997,38027,38056,38085,38115,38144,38174,38203,38233,38262,38292,38322,38351,38381,38410,38440,38469,38499,38528,38558,38587,38617,38646,38676,38705,38735,38764,38794,38823,38853,38882,38912,38941,38971,39001,39030,39059,39089,39118,39148,39178,39208,39237,39267,39297,39326,39355,39385,39414,39444,39473,39503,39532,39562,39592,39621,39650,39680,39709,39739,39768,39798,39827,39857,39886,39916,39946,39975,40005,40035,40064,40094,40123,40153,40182,40212,40241,40271,40300,40330,40359,40389,40418,40448,40477,40507,40536,40566,40595,40625,40655,40685,40714,40744,40773,40803,40832,40862,40892,40921,40951,40980,41009,41039,41068,41098,41127,41157,41186,41216,41245,41275,41304,41334,41364,41393,41422,41452,41481,41511,41540,41570,41599,41629,41658,41688,41718,41748,41777,41807,41836,41865,41894,41924,41953,41983,42012,42042,42072,42102,42131,42161,42190,42220,42249,42279,42308,42337,42367,42397,42426,42456,42485,42515,42545,42574,42604,42633,42662,42692,42721,42751,42780,42810,42839,42869,42899,42929,42958,42988,43017,43046,43076,43105,43135,43164,43194,43223,43253,43283,43312,43342,43371,43401,43430,43460,43489,43519,43548,43578,43607,43637,43666,43696,43726,43755,43785,43814,43844,43873,43903,43932,43962,43991,44021,44050,44080,44109,44139,44169,44198,44228,44258,44287,44317,44346,44375,44405,44434,44464,44493,44523,44553,44582,44612,44641,44671,44700,44730,44759,44788,44818,44847,44877,44906,44936,44966,44996,45025,45055,45084,45114,45143,45172,45202,45231,45261,45290,45320,45350,45380,45409,45439,45468,45498,45527,45556,45586,45615,45644,45674,45704,45733,45763,45793,45823,45852,45882,45911,45940,45970,45999,46028,46058,46088,46117,46147,46177,46206,46236,46265,46295,46324,46354,46383,46413,46442,46472,46501,46531,46560,46590,46620,46649,46679,46708,46738,46767,46797,46826,46856,46885,46915,46944,46974,47003,47033,47063,47092,47122,47151,47181,47210,47240,47269,47298,47328,47357,47387,47417,47446,47476,47506,47535,47565,47594,47624,47653,47682,47712,47741,47771,47800,47830,47860,47890,47919,47949,47978,48008,48037,48066,48096,48125,48155,48184,48214,48244,48273,48303,48333,48362,48392,48421,48450,48480,48509,48538,48568,48598,48627,48657,48687,48717,48746,48776,48805,48834,48864,48893,48922,48952,48982,49011,49041,49071,49100,49130,49160,49189,49218,49248,49277,49306,49336,49365,49395,49425,49455,49484,49514,49543,49573,49602,49632,49661,49690,49720,49749,49779,49809,49838,49868,49898,49927,49957,49986,50016,50045,50075,50104,50133,50163,50192,50222,50252,50281,50311,50340,50370,50400,50429,50459,50488,50518,50547,50576,50606,50635,50665,50694,50724,50754,50784,50813,50843,50872,50902,50931,50960,50990,51019,51049,51078,51108,51138,51167,51197,51227,51256,51286,51315,51345,51374,51403,51433,51462,51492,51522,51552,51582,51611,51641,51670,51699,51729,51758,51787,51816,51846,51876,51906,51936,51965,51995,52025,52054,52083,52113,52142,52171,52200,52230,52260,52290,52319,52349,52379,52408,52438,52467,52497,52526,52555,52585,52614,52644,52673,52703,52733,52762,52792,52822,52851,52881,52910,52939,52969,52998,53028,53057,53087,53116,53146,53176,53205,53235,53264,53294,53324,53353,53383,53412,53441,53471,53500,53530,53559,53589,53619,53648,53678,53708,53737,53767,53796,53825,53855,53884,53913,53943,53973,54003,54032,54062,54092,54121,54151,54180,54209,54239,54268,54297,54327,54357,54387,54416,54446,54476,54505,54535,54564,54593,54623,54652,54681,54711,54741,54770,54800,54830,54859,54889,54919,54948,54977,55007,55036,55066,55095,55125,55154,55184,55213,55243,55273,55302,55332,55361,55391,55420,55450,55479,55508,55538,55567,55597,55627,55657,55686,55716,55745,55775,55804,55834,55863,55892,55922,55951,55981,56011,56040,56070,56100,56129,56159,56188,56218,56247,56276,56306,56335,56365,56394,56424,56454,56483,56513,56543,56572,56601,56631,56660,56690,56719,56749,56778,56808,56837,56867,56897,56926,56956,56985,57015,57044,57074,57103,57133,57162,57192,57221,57251,57280,57310,57340,57369,57399,57429,57458,57487,57517,57546,57576,57605,57634,57664,57694,57723,57753,57783,57813,57842,57871,57901,57930,57959,57989,58018,58048,58077,58107,58137,58167,58196,58226,58255,58285,58314,58343,58373,58402,58432,58461,58491,58521,58551,58580,58610,58639,58669,58698,58727,58757,58786,58816,58845,58875,58905,58934,58964,58994,59023,59053,59082,59111,59141,59170,59200,59229,59259,59288,59318,59348,59377,59407,59436,59466,59495,59525,59554,59584,59613,59643,59672,59702,59731,59761,59791,59820,59850,59879,59909,59939,59968,59997,60027,60056,60086,60115,60145,60174,60204,60234,60264,60293,60323,60352,60381,60411,60440,60469,60499,60528,60558,60588,60618,60648,60677,60707,60736,60765,60795,60824,60853,60883,60912,60942,60972,61002,61031,61061,61090,61120,61149,61179,61208,61237,61267,61296,61326,61356,61385,61415,61445,61474,61504,61533,61563,61592,61621,61651,61680,61710,61739,61769,61799,61828,61858,61888,61917,61947,61976,62006,62035,62064,62094,62123,62153,62182,62212,62242,62271,62301,62331,62360,62390,62419,62448,62478,62507,62537,62566,62596,62625,62655,62685,62715,62744,62774,62803,62832,62862,62891,62921,62950,62980,63009,63039,63069,63099,63128,63157,63187,63216,63246,63275,63305,63334,63363,63393,63423,63453,63482,63512,63541,63571,63600,63630,63659,63689,63718,63747,63777,63807,63836,63866,63895,63925,63955,63984,64014,64043,64073,64102,64131,64161,64190,64220,64249,64279,64309,64339,64368,64398,64427,64457,64486,64515,64545,64574,64603,64633,64663,64692,64722,64752,64782,64811,64841,64870,64899,64929,64958,64987,65017,65047,65076,65106,65136,65166,65195,65225,65254,65283,65313,65342,65371,65401,65431,65460,65490,65520,65549,65579,65608,65638,65667,65697,65726,65755,65785,65815,65844,65874,65903,65933,65963,65992,66022,66051,66081,66110,66140,66169,66199,66228,66258,66287,66317,66346,66376,66405,66435,66465,66494,66524,66553,66583,66612,66641,66671,66700,66730,66760,66789,66819,66849,66878,66908,66937,66967,66996,67025,67055,67084,67114,67143,67173,67203,67233,67262,67292,67321,67351,67380,67409,67439,67468,67497,67527,67557,67587,67617,67646,67676,67705,67735,67764,67793,67823,67852,67882,67911,67941,67971,68e3,68030,68060,68089,68119,68148,68177,68207,68236,68266,68295,68325,68354,68384,68414,68443,68473,68502,68532,68561,68591,68620,68650,68679,68708,68738,68768,68797,68827,68857,68886,68916,68946,68975,69004,69034,69063,69092,69122,69152,69181,69211,69240,69270,69300,69330,69359,69388,69418,69447,69476,69506,69535,69565,69595,69624,69654,69684,69713,69743,69772,69802,69831,69861,69890,69919,69949,69978,70008,70038,70067,70097,70126,70156,70186,70215,70245,70274,70303,70333,70362,70392,70421,70451,70481,70510,70540,70570,70599,70629,70658,70687,70717,70746,70776,70805,70835,70864,70894,70924,70954,70983,71013,71042,71071,71101,71130,71159,71189,71218,71248,71278,71308,71337,71367,71397,71426,71455,71485,71514,71543,71573,71602,71632,71662,71691,71721,71751,71781,71810,71839,71869,71898,71927,71957,71986,72016,72046,72075,72105,72135,72164,72194,72223,72253,72282,72311,72341,72370,72400,72429,72459,72489,72518,72548,72577,72607,72637,72666,72695,72725,72754,72784,72813,72843,72872,72902,72931,72961,72991,73020,73050,73080,73109,73139,73168,73197,73227,73256,73286,73315,73345,73375,73404,73434,73464,73493,73523,73552,73581,73611,73640,73669,73699,73729,73758,73788,73818,73848,73877,73907,73936,73965,73995,74024,74053,74083,74113,74142,74172,74202,74231,74261,74291,74320,74349,74379,74408,74437,74467,74497,74526,74556,74586,74615,74645,74675,74704,74733,74763,74792,74822,74851,74881,74910,74940,74969,74999,75029,75058,75088,75117,75147,75176,75206,75235,75264,75294,75323,75353,75383,75412,75442,75472,75501,75531,75560,75590,75619,75648,75678,75707,75737,75766,75796,75826,75856,75885,75915,75944,75974,76003,76032,76062,76091,76121,76150,76180,76210,76239,76269,76299,76328,76358,76387,76416,76446,76475,76505,76534,76564,76593,76623,76653,76682,76712,76741,76771,76801,76830,76859,76889,76918,76948,76977,77007,77036,77066,77096,77125,77155,77185,77214,77243,77273,77302,77332,77361,77390,77420,77450,77479,77509,77539,77569,77598,77627,77657,77686,77715,77745,77774,77804,77833,77863,77893,77923,77952,77982,78011,78041,78070,78099,78129,78158,78188,78217,78247,78277,78307,78336,78366,78395,78425,78454,78483,78513,78542,78572,78601,78631,78661,78690,78720,78750,78779,78808,78838,78867,78897,78926,78956,78985,79015,79044,79074,79104,79133,79163,79192,79222,79251,79281,79310,79340,79369,79399,79428,79458,79487,79517,79546,79576,79606,79635,79665,79695,79724,79753,79783,79812,79841,79871,79900,79930,79960,79990]},63489:function(t,e,r){var n=r(56131);function i(){this.regionalOptions=[],this.regionalOptions[""]={invalidCalendar:"Calendar {0} not found",invalidDate:"Invalid {0} date",invalidMonth:"Invalid {0} month",invalidYear:"Invalid {0} year",differentCalendars:"Cannot mix {0} and {1} dates"},this.local=this.regionalOptions[""],this.calendars={},this._localCals={}}function a(t,e,r,n){if(this._calendar=t,this._year=e,this._month=r,this._day=n,0===this._calendar._validateLevel&&!this._calendar.isValid(this._year,this._month,this._day))throw(u.local.invalidDate||u.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name)}function o(t,e){return"000000".substring(0,e-(t=""+t).length)+t}function s(){this.shortYearCutoff="+10"}function l(t){this.local=this.regionalOptions[t]||this.regionalOptions[""]}n(i.prototype,{instance:function(t,e){t=(t||"gregorian").toLowerCase(),e=e||"";var r=this._localCals[t+"-"+e];if(!r&&this.calendars[t]&&(r=new this.calendars[t](e),this._localCals[t+"-"+e]=r),!r)throw(this.local.invalidCalendar||this.regionalOptions[""].invalidCalendar).replace(/\{0\}/,t);return r},newDate:function(t,e,r,n,i){return(n=(null!=t&&t.year?t.calendar():"string"==typeof n?this.instance(n,i):n)||this.instance()).newDate(t,e,r)},substituteDigits:function(t){return function(e){return(e+"").replace(/[0-9]/g,(function(e){return t[e]}))}},substituteChineseDigits:function(t,e){return function(r){for(var n="",i=0;r>0;){var a=r%10;n=(0===a?"":t[a]+e[i])+n,i++,r=Math.floor(r/10)}return 0===n.indexOf(t[1]+e[1])&&(n=n.substr(1)),n||t[0]}}}),n(a.prototype,{newDate:function(t,e,r){return this._calendar.newDate(null==t?this:t,e,r)},year:function(t){return 0===arguments.length?this._year:this.set(t,"y")},month:function(t){return 0===arguments.length?this._month:this.set(t,"m")},day:function(t){return 0===arguments.length?this._day:this.set(t,"d")},date:function(t,e,r){if(!this._calendar.isValid(t,e,r))throw(u.local.invalidDate||u.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name);return this._year=t,this._month=e,this._day=r,this},leapYear:function(){return this._calendar.leapYear(this)},epoch:function(){return this._calendar.epoch(this)},formatYear:function(){return this._calendar.formatYear(this)},monthOfYear:function(){return this._calendar.monthOfYear(this)},weekOfYear:function(){return this._calendar.weekOfYear(this)},daysInYear:function(){return this._calendar.daysInYear(this)},dayOfYear:function(){return this._calendar.dayOfYear(this)},daysInMonth:function(){return this._calendar.daysInMonth(this)},dayOfWeek:function(){return this._calendar.dayOfWeek(this)},weekDay:function(){return this._calendar.weekDay(this)},extraInfo:function(){return this._calendar.extraInfo(this)},add:function(t,e){return this._calendar.add(this,t,e)},set:function(t,e){return this._calendar.set(this,t,e)},compareTo:function(t){if(this._calendar.name!==t._calendar.name)throw(u.local.differentCalendars||u.regionalOptions[""].differentCalendars).replace(/\{0\}/,this._calendar.local.name).replace(/\{1\}/,t._calendar.local.name);var e=this._year!==t._year?this._year-t._year:this._month!==t._month?this.monthOfYear()-t.monthOfYear():this._day-t._day;return 0===e?0:e<0?-1:1},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(t){return this._calendar.fromJD(t)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(t){return this._calendar.fromJSDate(t)},toString:function(){return(this.year()<0?"-":"")+o(Math.abs(this.year()),4)+"-"+o(this.month(),2)+"-"+o(this.day(),2)}}),n(s.prototype,{_validateLevel:0,newDate:function(t,e,r){return null==t?this.today():(t.year&&(this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate),r=t.day(),e=t.month(),t=t.year()),new a(this,t,e,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(t){return this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear).year()<0?this.local.epochs[0]:this.local.epochs[1]},formatYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear);return(e.year()<0?"-":"")+o(Math.abs(e.year()),4)},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear),12},monthOfYear:function(t,e){var r=this._validate(t,e,this.minDay,u.local.invalidMonth||u.regionalOptions[""].invalidMonth);return(r.month()+this.monthsInYear(r)-this.firstMonth)%this.monthsInYear(r)+this.minMonth},fromMonthOfYear:function(t,e){var r=(e+this.firstMonth-2*this.minMonth)%this.monthsInYear(t)+this.minMonth;return this._validate(t,r,this.minDay,u.local.invalidMonth||u.regionalOptions[""].invalidMonth),r},daysInYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear);return this.leapYear(e)?366:365},dayOfYear:function(t,e,r){var n=this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate);return n.toJD()-this.newDate(n.year(),this.fromMonthOfYear(n.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(t,e,r){var n=this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(t,e,r){return this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate),{}},add:function(t,e,r){return this._validate(t,this.minMonth,this.minDay,u.local.invalidDate||u.regionalOptions[""].invalidDate),this._correctAdd(t,this._add(t,e,r),e,r)},_add:function(t,e,r){if(this._validateLevel++,"d"===r||"w"===r){var n=t.toJD()+e*("w"===r?this.daysInWeek():1),i=t.calendar().fromJD(n);return this._validateLevel--,[i.year(),i.month(),i.day()]}try{var a=t.year()+("y"===r?e:0),o=t.monthOfYear()+("m"===r?e:0);i=t.day(),"y"===r?(t.month()!==this.fromMonthOfYear(a,o)&&(o=this.newDate(a,t.month(),this.minDay).monthOfYear()),o=Math.min(o,this.monthsInYear(a)),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o)))):"m"===r&&(function(t){for(;o<t.minMonth;)a--,o+=t.monthsInYear(a);for(var e=t.monthsInYear(a);o>e-1+t.minMonth;)a++,o-=e,e=t.monthsInYear(a)}(this),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o))));var s=[a,this.fromMonthOfYear(a,o),i];return this._validateLevel--,s}catch(t){throw this._validateLevel--,t}},_correctAdd:function(t,e,r,n){if(!(this.hasYearZero||"y"!==n&&"m"!==n||0!==e[0]&&t.year()>0==e[0]>0)){var i={y:[1,1,"y"],m:[1,this.monthsInYear(-1),"m"],w:[this.daysInWeek(),this.daysInYear(-1),"d"],d:[1,this.daysInYear(-1),"d"]}[n],a=r<0?-1:1;e=this._add(t,r*i[0]+a*i[1],i[2])}return t.date(e[0],e[1],e[2])},set:function(t,e,r){this._validate(t,this.minMonth,this.minDay,u.local.invalidDate||u.regionalOptions[""].invalidDate);var n="y"===r?e:t.year(),i="m"===r?e:t.month(),a="d"===r?e:t.day();return"y"!==r&&"m"!==r||(a=Math.min(a,this.daysInMonth(n,i))),t.date(n,i,a)},isValid:function(t,e,r){this._validateLevel++;var n=this.hasYearZero||0!==t;if(n){var i=this.newDate(t,e,this.minDay);n=e>=this.minMonth&&e-this.minMonth<this.monthsInYear(i)&&r>=this.minDay&&r-this.minDay<this.daysInMonth(i)}return this._validateLevel--,n},toJSDate:function(t,e,r){var n=this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate);return u.instance().fromJD(this.toJD(n)).toJSDate()},fromJSDate:function(t){return this.fromJD(u.instance().fromJSDate(t).toJD())},_validate:function(t,e,r,n){if(t.year){if(0===this._validateLevel&&this.name!==t.calendar().name)throw(u.local.differentCalendars||u.regionalOptions[""].differentCalendars).replace(/\{0\}/,this.local.name).replace(/\{1\}/,t.calendar().local.name);return t}try{if(this._validateLevel++,1===this._validateLevel&&!this.isValid(t,e,r))throw n.replace(/\{0\}/,this.local.name);var i=this.newDate(t,e,r);return this._validateLevel--,i}catch(t){throw this._validateLevel--,t}}}),l.prototype=new s,n(l.prototype,{name:"Gregorian",jdEpoch:1721425.5,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Gregorian",epochs:["BCE","CE"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"mm/dd/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==0&&(t%100!=0||t%400==0)},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(4-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,u.local.invalidMonth||u.regionalOptions[""].invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var n=this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate);t=n.year(),e=n.month(),r=n.day(),t<0&&t++,e<3&&(e+=12,t--);var i=Math.floor(t/100),a=2-i+Math.floor(i/4);return Math.floor(365.25*(t+4716))+Math.floor(30.6001*(e+1))+r+a-1524.5},fromJD:function(t){var e=Math.floor(t+.5),r=Math.floor((e-1867216.25)/36524.25),n=1524+(r=e+1+r-Math.floor(r/4)),i=Math.floor((n-122.1)/365.25),a=Math.floor(365.25*i),o=Math.floor((n-a)/30.6001),s=n-a-Math.floor(30.6001*o),l=o-(o>13.5?13:1),u=i-(l>2.5?4716:4715);return u<=0&&u--,this.newDate(u,l,s)},toJSDate:function(t,e,r){var n=this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate),i=new Date(n.year(),n.month()-1,n.day());return i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0),i.setHours(i.getHours()>12?i.getHours()+2:0),i},fromJSDate:function(t){return this.newDate(t.getFullYear(),t.getMonth()+1,t.getDate())}});var u=t.exports=new i;u.cdate=a,u.baseCalendar=s,u.calendars.gregorian=l},94338:function(t,e,r){var n=r(56131),i=r(63489);n(i.regionalOptions[""],{invalidArguments:"Invalid arguments",invalidFormat:"Cannot format a date from another calendar",missingNumberAt:"Missing number at position {0}",unknownNameAt:"Unknown name at position {0}",unexpectedLiteralAt:"Unexpected literal at position {0}",unexpectedText:"Additional text found at end"}),i.local=i.regionalOptions[""],n(i.cdate.prototype,{formatDate:function(t,e){return"string"!=typeof t&&(e=t,t=""),this._calendar.formatDate(t||"",this,e)}}),n(i.baseCalendar.prototype,{UNIX_EPOCH:i.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:86400,TICKS_EPOCH:i.instance().jdEpoch,TICKS_PER_DAY:864e9,ATOM:"yyyy-mm-dd",COOKIE:"D, dd M yyyy",FULL:"DD, MM d, yyyy",ISO_8601:"yyyy-mm-dd",JULIAN:"J",RFC_822:"D, d M yy",RFC_850:"DD, dd-M-yy",RFC_1036:"D, d M yy",RFC_1123:"D, d M yyyy",RFC_2822:"D, d M yyyy",RSS:"D, d M yy",TICKS:"!",TIMESTAMP:"@",W3C:"yyyy-mm-dd",formatDate:function(t,e,r){if("string"!=typeof t&&(r=e,e=t,t=""),!e)return"";if(e.calendar()!==this)throw i.local.invalidFormat||i.regionalOptions[""].invalidFormat;t=t||this.local.dateFormat;for(var n,a,o,s=(r=r||{}).dayNamesShort||this.local.dayNamesShort,l=r.dayNames||this.local.dayNames,u=r.monthNumbers||this.local.monthNumbers,c=r.monthNamesShort||this.local.monthNamesShort,f=r.monthNames||this.local.monthNames,h=(r.calculateWeek||this.local.calculateWeek,function(e,r){for(var n=1;_+n<t.length&&t.charAt(_+n)===e;)n++;return _+=n-1,Math.floor(n/(r||1))>1}),p=function(t,e,r,n){var i=""+e;if(h(t,n))for(;i.length<r;)i="0"+i;return i},d=this,v=function(t){return"function"==typeof u?u.call(d,t,h("m")):m(p("m",t.month(),2))},g=function(t,e){return e?"function"==typeof f?f.call(d,t):f[t.month()-d.minMonth]:"function"==typeof c?c.call(d,t):c[t.month()-d.minMonth]},y=this.local.digits,m=function(t){return r.localNumbers&&y?y(t):t},x="",b=!1,_=0;_<t.length;_++)if(b)"'"!==t.charAt(_)||h("'")?x+=t.charAt(_):b=!1;else switch(t.charAt(_)){case"d":x+=m(p("d",e.day(),2));break;case"D":x+=("D",n=e.dayOfWeek(),a=s,o=l,h("D")?o[n]:a[n]);break;case"o":x+=p("o",e.dayOfYear(),3);break;case"w":x+=p("w",e.weekOfYear(),2);break;case"m":x+=v(e);break;case"M":x+=g(e,h("M"));break;case"y":x+=h("y",2)?e.year():(e.year()%100<10?"0":"")+e.year()%100;break;case"Y":h("Y",2),x+=e.formatYear();break;case"J":x+=e.toJD();break;case"@":x+=(e.toJD()-this.UNIX_EPOCH)*this.SECS_PER_DAY;break;case"!":x+=(e.toJD()-this.TICKS_EPOCH)*this.TICKS_PER_DAY;break;case"'":h("'")?x+="'":b=!0;break;default:x+=t.charAt(_)}return x},parseDate:function(t,e,r){if(null==e)throw i.local.invalidArguments||i.regionalOptions[""].invalidArguments;if(""===(e="object"==typeof e?e.toString():e+""))return null;t=t||this.local.dateFormat;var n=(r=r||{}).shortYearCutoff||this.shortYearCutoff;n="string"!=typeof n?n:this.today().year()%100+parseInt(n,10);for(var a=r.dayNamesShort||this.local.dayNamesShort,o=r.dayNames||this.local.dayNames,s=r.parseMonth||this.local.parseMonth,l=r.monthNumbers||this.local.monthNumbers,u=r.monthNamesShort||this.local.monthNamesShort,c=r.monthNames||this.local.monthNames,f=-1,h=-1,p=-1,d=-1,v=-1,g=!1,y=!1,m=function(e,r){for(var n=1;M+n<t.length&&t.charAt(M+n)===e;)n++;return M+=n-1,Math.floor(n/(r||1))>1},x=function(t,r){var n=m(t,r),a=[2,3,n?4:2,n?4:2,10,11,20]["oyYJ@!".indexOf(t)+1],o=new RegExp("^-?\\d{1,"+a+"}"),s=e.substring(A).match(o);if(!s)throw(i.local.missingNumberAt||i.regionalOptions[""].missingNumberAt).replace(/\{0\}/,A);return A+=s[0].length,parseInt(s[0],10)},b=this,_=function(){if("function"==typeof l){m("m");var t=l.call(b,e.substring(A));return A+=t.length,t}return x("m")},w=function(t,r,n,a){for(var o=m(t,a)?n:r,s=0;s<o.length;s++)if(e.substr(A,o[s].length).toLowerCase()===o[s].toLowerCase())return A+=o[s].length,s+b.minMonth;throw(i.local.unknownNameAt||i.regionalOptions[""].unknownNameAt).replace(/\{0\}/,A)},T=function(){if("function"==typeof c){var t=m("M")?c.call(b,e.substring(A)):u.call(b,e.substring(A));return A+=t.length,t}return w("M",u,c)},k=function(){if(e.charAt(A)!==t.charAt(M))throw(i.local.unexpectedLiteralAt||i.regionalOptions[""].unexpectedLiteralAt).replace(/\{0\}/,A);A++},A=0,M=0;M<t.length;M++)if(y)"'"!==t.charAt(M)||m("'")?k():y=!1;else switch(t.charAt(M)){case"d":d=x("d");break;case"D":w("D",a,o);break;case"o":v=x("o");break;case"w":x("w");break;case"m":p=_();break;case"M":p=T();break;case"y":var S=M;g=!m("y",2),M=S,h=x("y",2);break;case"Y":h=x("Y",2);break;case"J":f=x("J")+.5,"."===e.charAt(A)&&(A++,x("J"));break;case"@":f=x("@")/this.SECS_PER_DAY+this.UNIX_EPOCH;break;case"!":f=x("!")/this.TICKS_PER_DAY+this.TICKS_EPOCH;break;case"*":A=e.length;break;case"'":m("'")?k():y=!0;break;default:k()}if(A<e.length)throw i.local.unexpectedText||i.regionalOptions[""].unexpectedText;if(-1===h?h=this.today().year():h<100&&g&&(h+=-1===n?1900:this.today().year()-this.today().year()%100-(h<=n?0:100)),"string"==typeof p&&(p=s.call(this,h,p)),v>-1){p=1,d=v;for(var E=this.daysInMonth(h,p);d>E;E=this.daysInMonth(h,p))p++,d-=E}return f>-1?this.fromJD(f):this.newDate(h,p,d)},determineDate:function(t,e,r,n,i){r&&"object"!=typeof r&&(i=n,n=r,r=null),"string"!=typeof n&&(i=n,n="");var a=this;return e=e?e.newDate():null,null==t?e:"string"==typeof t?function(t){try{return a.parseDate(n,t,i)}catch(t){}for(var e=((t=t.toLowerCase()).match(/^c/)&&r?r.newDate():null)||a.today(),o=/([+-]?[0-9]+)\s*(d|w|m|y)?/g,s=o.exec(t);s;)e.add(parseInt(s[1],10),s[2]||"d"),s=o.exec(t);return e}(t):"number"==typeof t?isNaN(t)||t===1/0||t===-1/0?e:a.today().add(t,"d"):a.newDate(t)}})},69862:function(){},40964:function(){},72077:function(t,e,r){"use strict";var n=r(24696);t.exports=function(){return n(["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],(function(t){return"function"==typeof r.g[t]}))}},40402:function(t){"use strict";t.exports=JSON.parse('["xx-small","x-small","small","medium","large","x-large","xx-large","larger","smaller"]')},83794:function(t){"use strict";t.exports=JSON.parse('["normal","condensed","semi-condensed","extra-condensed","ultra-condensed","expanded","semi-expanded","extra-expanded","ultra-expanded"]')},96209:function(t){"use strict";t.exports=JSON.parse('["normal","italic","oblique"]')},15659:function(t){"use strict";t.exports=JSON.parse('["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"]')},38732:function(t){"use strict";t.exports=JSON.parse('["inherit","initial","unset"]')},41901:function(t){"use strict";t.exports=JSON.parse('["caption","icon","menu","message-box","small-caption","status-bar"]')}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var a=e[n]={exports:{}};return t[n].call(a.exports,a,a.exports,r),a.exports}return r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,{a:e}),e},r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r(27909)}()}));</script>                <div id="35615e24-2994-41d0-86f3-744387697c1b" class="plotly-graph-div" style="height:400px; width:375px;"></div>            <script type="text/javascript">                                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById("35615e24-2994-41d0-86f3-744387697c1b")) {                    Plotly.newPlot(                        "35615e24-2994-41d0-86f3-744387697c1b",                        [{"hoverinfo":"none","line":{"color":"#808080","width":2},"mode":"lines","opacity":0.8,"x":[0.2230047399072604,-0.42247199516947576,null,0.2230047399072604,0.17771926612854827,null,0.2230047399072604,0.9999999999999999,null,-0.9782520108663335,-0.42247199516947576,null,-0.42247199516947576,0.2230047399072604,null,-0.42247199516947576,-0.9782520108663335,null,0.17771926612854827,0.2230047399072604,null,0.9999999999999999,0.2230047399072604,null],"y":[0.21289920941763857,-0.40332268316045417,null,0.21289920941763857,0.9928464515123737,null,0.21289920941763857,0.13147076423589932,null,-0.9338937420054578,-0.40332268316045417,null,-0.40332268316045417,0.21289920941763857,null,-0.40332268316045417,-0.9338937420054578,null,0.9928464515123737,0.21289920941763857,null,0.13147076423589932,0.21289920941763857,null],"type":"scatter"},{"hoverinfo":"text","marker":{"color":"#fcfcfc","colorbar":{"thickness":15,"title":{"side":"right","text":""},"xanchor":"left"},"colorscale":[[0.0,"rgb(255,255,217)"],[0.125,"rgb(237,248,177)"],[0.25,"rgb(199,233,180)"],[0.375,"rgb(127,205,187)"],[0.5,"rgb(65,182,196)"],[0.625,"rgb(29,145,192)"],[0.75,"rgb(34,94,168)"],[0.875,"rgb(37,52,148)"],[1.0,"rgb(8,29,88)"]],"line":{"color":"#333333","width":2},"reversescale":false,"showscale":false,"size":20},"mode":"markers+text","opacity":0.8,"text":["0","1","2","3","4"],"textfont":{"color":"#000000","family":"Arial","size":14},"textposition":"top left","x":[0.2230047399072604,-0.9782520108663335,-0.42247199516947576,0.17771926612854827,0.9999999999999999],"y":[0.21289920941763857,-0.9338937420054578,-0.40332268316045417,0.9928464515123737,0.13147076423589932],"type":"scatter"}],                        {"autosize":false,"height":400,"hovermode":"closest","margin":{"b":5,"l":0,"r":0,"t":20},"paper_bgcolor":"rgba(255,255,255,255)","plot_bgcolor":"rgba(0,0,0,0)","scene":{"xaxis":{"autorange":true,"showgrid":false,"showline":false,"showticklabels":false,"ticks":"","visible":false,"zeroline":false},"yaxis":{"autorange":true,"showgrid":false,"showline":false,"showticklabels":false,"ticks":"","visible":false,"zeroline":false},"zaxis":{"autorange":true,"showgrid":false,"showline":false,"showticklabels":false,"ticks":"","visible":false,"zeroline":false}},"showlegend":false,"title":{"font":{"size":16},"text":""},"width":375,"xaxis":{"autorange":true,"showgrid":false,"showline":false,"showticklabels":false,"ticks":"","visible":false,"zeroline":false},"yaxis":{"autorange":true,"showgrid":false,"showline":false,"showticklabels":false,"ticks":"","visible":false,"zeroline":false},"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.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.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.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.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.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.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.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.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.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.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.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.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"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"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"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"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.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.0,"#f0f921"]],"sequentialminus":[[0.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.0,"#f0f921"]],"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"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}}},                        {"responsive": true}                    )                };                            </script>        </div>
+</body>
+
+</html>
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 153, in <module>
+    table.add_data(wandb.Html(graph_vis), n_nodes, n_edges, label)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\data_types\html.py", line 55, in __init__
+    out.write(self.html)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\encodings\cp1252.py", line 19, in encode
+    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+UnicodeEncodeError: 'charmap' codec can't encode character '\u25c4' in position 276500: character maps to <undefined>
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_122235-prub22wv/files/requirements.txt b/embeddings/wandb/run-20230224_122235-prub22wv/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122235-prub22wv/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_122235-prub22wv/files/wandb-metadata.json b/embeddings/wandb/run-20230224_122235-prub22wv/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..58491e81055971b6b01cc88f60affc4c368319e2
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122235-prub22wv/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T12:22:36.014461",
+    "startedAt": "2023-02-24T12:22:35.057124",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 352.4709014892578
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_122235-prub22wv/files/wandb-summary.json b/embeddings/wandb/run-20230224_122235-prub22wv/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..aa864209843b582b57a73cd9a8a8c04f4edfc183
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122235-prub22wv/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677241356.1471918, "_runtime": 1.0770728588104248, "_step": 0, "_wandb": {"runtime": 0}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_122235-prub22wv/logs/debug-internal.log b/embeddings/wandb/run-20230224_122235-prub22wv/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..21eeb45e0af0c2ff0dfc07ad40584a4ccad87a9b
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122235-prub22wv/logs/debug-internal.log
@@ -0,0 +1,177 @@
+2023-02-24 12:22:35,071 INFO    StreamThr :13824 [internal.py:wandb_internal():87] W&B internal server running at pid: 13824, started at: 2023-02-24 12:22:35.070120
+2023-02-24 12:22:35,072 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: status
+2023-02-24 12:22:35,074 INFO    WriterThread:13824 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\run-prub22wv.wandb
+2023-02-24 12:22:35,078 DEBUG   SenderThread:13824 [sender.py:send():336] send: header
+2023-02-24 12:22:35,123 DEBUG   SenderThread:13824 [sender.py:send():336] send: run
+2023-02-24 12:22:35,689 INFO    SenderThread:13824 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files
+2023-02-24 12:22:35,690 INFO    SenderThread:13824 [sender.py:_start_run_threads():1067] run started: prub22wv with start time 1677241355.070119
+2023-02-24 12:22:35,690 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:22:35,690 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 12:22:35,691 INFO    SenderThread:13824 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:22:35,691 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: check_version
+2023-02-24 12:22:35,993 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 12:22:36,010 DEBUG   HandlerThread:13824 [system_info.py:__init__():31] System info init
+2023-02-24 12:22:36,010 DEBUG   HandlerThread:13824 [system_info.py:__init__():46] System info init done
+2023-02-24 12:22:36,010 INFO    HandlerThread:13824 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 12:22:36,011 INFO    SystemMonitor:13824 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 12:22:36,011 INFO    HandlerThread:13824 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 12:22:36,014 INFO    SystemMonitor:13824 [interfaces.py:start():168] Started cpu
+2023-02-24 12:22:36,014 DEBUG   HandlerThread:13824 [system_info.py:probe():195] Probing system
+2023-02-24 12:22:36,015 INFO    SystemMonitor:13824 [interfaces.py:start():168] Started disk
+2023-02-24 12:22:36,015 INFO    SystemMonitor:13824 [interfaces.py:start():168] Started memory
+2023-02-24 12:22:36,032 INFO    SystemMonitor:13824 [interfaces.py:start():168] Started network
+2023-02-24 12:22:36,033 DEBUG   HandlerThread:13824 [system_info.py:_probe_git():180] Probing git
+2023-02-24 12:22:36,125 DEBUG   HandlerThread:13824 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 12:22:36,125 DEBUG   HandlerThread:13824 [system_info.py:probe():241] Probing system done
+2023-02-24 12:22:36,125 DEBUG   HandlerThread:13824 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T12:22:36.014461', 'startedAt': '2023-02-24T12:22:35.057124', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 352.4709014892578}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 12:22:36,125 INFO    HandlerThread:13824 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 12:22:36,125 INFO    HandlerThread:13824 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 12:22:36,126 DEBUG   HandlerThread:13824 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 12:22:36,127 DEBUG   HandlerThread:13824 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 12:22:36,129 INFO    HandlerThread:13824 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 12:22:36,138 DEBUG   SenderThread:13824 [sender.py:send():336] send: files
+2023-02-24 12:22:36,138 INFO    SenderThread:13824 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 12:22:36,145 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 12:22:36,146 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 12:22:36,148 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 12:22:36,429 DEBUG   SenderThread:13824 [sender.py:send():336] send: telemetry
+2023-02-24 12:22:36,429 DEBUG   SenderThread:13824 [sender.py:send():336] send: history
+2023-02-24 12:22:36,429 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:22:36,430 INFO    SenderThread:13824 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:22:36,480 DEBUG   SenderThread:13824 [sender.py:send():336] send: exit
+2023-02-24 12:22:36,480 INFO    SenderThread:13824 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 12:22:36,480 INFO    SenderThread:13824 [sender.py:send_exit():561] handling runtime: 0
+2023-02-24 12:22:36,490 INFO    SenderThread:13824 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:22:36,491 INFO    SenderThread:13824 [sender.py:send_exit():567] send defer
+2023-02-24 12:22:36,491 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:36,491 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 12:22:36,492 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:36,492 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 12:22:36,492 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 1
+2023-02-24 12:22:36,492 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:36,493 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 12:22:36,493 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:36,493 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 12:22:36,493 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 2
+2023-02-24 12:22:36,494 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:36,494 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 12:22:36,494 INFO    HandlerThread:13824 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 12:22:36,494 DEBUG   SystemMonitor:13824 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 12:22:36,494 DEBUG   SystemMonitor:13824 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 12:22:36,495 DEBUG   SystemMonitor:13824 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 12:22:36,496 INFO    HandlerThread:13824 [interfaces.py:finish():175] Joined cpu
+2023-02-24 12:22:36,496 INFO    HandlerThread:13824 [interfaces.py:finish():175] Joined disk
+2023-02-24 12:22:36,496 INFO    HandlerThread:13824 [interfaces.py:finish():175] Joined memory
+2023-02-24 12:22:36,496 INFO    HandlerThread:13824 [interfaces.py:finish():175] Joined network
+2023-02-24 12:22:36,497 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:36,497 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 12:22:36,497 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 3
+2023-02-24 12:22:36,497 DEBUG   SenderThread:13824 [sender.py:send():336] send: stats
+2023-02-24 12:22:36,497 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:36,498 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 12:22:36,498 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:36,498 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 12:22:36,498 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 4
+2023-02-24 12:22:36,498 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:36,498 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 12:22:36,499 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:36,499 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 12:22:36,499 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 5
+2023-02-24 12:22:36,499 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:36,499 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 12:22:36,500 DEBUG   SenderThread:13824 [sender.py:send():336] send: summary
+2023-02-24 12:22:36,501 INFO    SenderThread:13824 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:22:36,501 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:36,501 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 12:22:36,501 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 6
+2023-02-24 12:22:36,502 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:36,502 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 12:22:36,502 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:36,502 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 12:22:36,508 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:22:36,707 INFO    Thread-17 :13824 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\wandb-summary.json
+2023-02-24 12:22:36,707 INFO    Thread-17 :13824 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\wandb-metadata.json
+2023-02-24 12:22:36,708 INFO    Thread-17 :13824 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\requirements.txt
+2023-02-24 12:22:36,708 INFO    Thread-17 :13824 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\output.log
+2023-02-24 12:22:36,794 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 7
+2023-02-24 12:22:36,794 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:36,794 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 12:22:36,795 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:36,795 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 12:22:36,972 INFO    wandb-upload_0:13824 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpx5ig80k2wandb\8gt2z3x3-wandb-metadata.json
+2023-02-24 12:22:36,991 WARNING OutRawWr-stdout:13824 [sender.py:_output_raw_writer_thread():1158] Terminal output too large. Logging without processing.
+2023-02-24 12:22:37,383 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:22:37,711 INFO    Thread-17 :13824 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\config.yaml
+2023-02-24 12:22:37,711 INFO    Thread-17 :13824 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\output.log
+2023-02-24 12:22:38,727 INFO    Thread-17 :13824 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\output.log
+2023-02-24 12:22:40,505 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 8
+2023-02-24 12:22:40,505 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:22:40,505 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:40,505 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 12:22:40,506 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:40,506 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 12:22:40,520 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 9
+2023-02-24 12:22:40,520 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:40,521 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 12:22:40,521 DEBUG   SenderThread:13824 [sender.py:send():336] send: artifact
+2023-02-24 12:22:40,755 INFO    Thread-17 :13824 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\output.log
+2023-02-24 12:22:41,441 INFO    SenderThread:13824 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzgzODYx', 'digest': '52054f0b23df9b668b4724b52e59ad5e', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v1'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzgzODYx', 'versionIndex': 1}}, 'version': 'v1'}
+2023-02-24 12:22:41,441 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:41,441 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 12:22:41,441 INFO    SenderThread:13824 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 12:22:41,769 INFO    SenderThread:13824 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files
+2023-02-24 12:22:41,769 INFO    SenderThread:13824 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\config.yaml config.yaml
+2023-02-24 12:22:41,770 INFO    SenderThread:13824 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\output.log output.log
+2023-02-24 12:22:41,773 INFO    SenderThread:13824 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\requirements.txt requirements.txt
+2023-02-24 12:22:41,777 INFO    SenderThread:13824 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 12:22:41,777 INFO    SenderThread:13824 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\wandb-summary.json wandb-summary.json
+2023-02-24 12:22:41,778 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 10
+2023-02-24 12:22:41,781 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:41,781 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 12:22:41,782 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:41,785 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 12:22:41,785 INFO    SenderThread:13824 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:22:42,317 INFO    wandb-upload_0:13824 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\config.yaml
+2023-02-24 12:22:42,434 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:22:42,706 INFO    wandb-upload_3:13824 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\wandb-summary.json
+2023-02-24 12:22:42,732 INFO    wandb-upload_2:13824 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\requirements.txt
+2023-02-24 12:22:44,104 INFO    wandb-upload_1:13824 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\files\output.log
+2023-02-24 12:22:44,320 INFO    Thread-16 :13824 [sender.py:transition_state():587] send defer: 11
+2023-02-24 12:22:44,320 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:44,320 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 12:22:44,321 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:44,321 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 12:22:44,321 INFO    SenderThread:13824 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 12:22:44,321 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 12
+2023-02-24 12:22:44,321 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:44,321 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 12:22:44,321 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:44,321 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 12:22:46,683 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 13
+2023-02-24 12:22:46,683 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:46,684 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 12:22:46,684 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:22:46,684 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:46,684 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 12:22:46,684 INFO    SenderThread:13824 [sender.py:transition_state():587] send defer: 14
+2023-02-24 12:22:46,685 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:22:46,685 DEBUG   SenderThread:13824 [sender.py:send():336] send: final
+2023-02-24 12:22:46,685 INFO    HandlerThread:13824 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 12:22:46,685 DEBUG   SenderThread:13824 [sender.py:send():336] send: footer
+2023-02-24 12:22:46,686 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:22:46,687 INFO    SenderThread:13824 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 12:22:46,687 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:22:46,687 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 12:22:46,688 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 12:22:46,688 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:22:46,688 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 12:22:46,688 DEBUG   SenderThread:13824 [sender.py:send_request():363] send_request: server_info
+2023-02-24 12:22:47,462 INFO    MainThread:13824 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 12:22:47,463 INFO    MainThread:13824 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 12:22:47,463 INFO    MainThread:13824 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 12:22:47,463 DEBUG   HandlerThread:13824 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 12:22:47,463 INFO    HandlerThread:13824 [handler.py:finish():841] shutting down handler
+2023-02-24 12:22:47,698 INFO    WriterThread:13824 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\run-prub22wv.wandb
+2023-02-24 12:22:48,463 INFO    SenderThread:13824 [sender.py:finish():1493] shutting down sender
+2023-02-24 12:22:48,463 INFO    SenderThread:13824 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:22:48,463 INFO    SenderThread:13824 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_122235-prub22wv/logs/debug.log b/embeddings/wandb/run-20230224_122235-prub22wv/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..80d6384387fb12344fd682813c722165e8e4e6df
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122235-prub22wv/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 12:22:35,060 INFO    MainThread:12040 [wandb_setup.py:_flush():68] Configure stats pid to 12040
+2023-02-24 12:22:35,061 INFO    MainThread:12040 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 12:22:35,061 INFO    MainThread:12040 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 12:22:35,061 INFO    MainThread:12040 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 12:22:35,061 INFO    MainThread:12040 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 12:22:35,062 INFO    MainThread:12040 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\logs\debug.log
+2023-02-24 12:22:35,062 INFO    MainThread:12040 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122235-prub22wv\logs\debug-internal.log
+2023-02-24 12:22:35,063 INFO    MainThread:12040 [wandb_init.py:init():532] calling init triggers
+2023-02-24 12:22:35,063 INFO    MainThread:12040 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 12:22:35,063 INFO    MainThread:12040 [wandb_init.py:init():588] starting backend
+2023-02-24 12:22:35,063 INFO    MainThread:12040 [wandb_init.py:init():592] setting up manager
+2023-02-24 12:22:35,066 INFO    MainThread:12040 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 12:22:35,069 INFO    MainThread:12040 [wandb_init.py:init():599] backend started and connected
+2023-02-24 12:22:35,072 INFO    MainThread:12040 [wandb_init.py:init():687] updated telemetry
+2023-02-24 12:22:35,122 INFO    MainThread:12040 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 12:22:35,689 INFO    MainThread:12040 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 12:22:35,985 INFO    MainThread:12040 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 12:22:35,986 INFO    MainThread:12040 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 12:22:36,146 INFO    MainThread:12040 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 12:22:36,146 INFO    MainThread:12040 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 12:22:36,146 INFO    MainThread:12040 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 12:22:36,146 INFO    MainThread:12040 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 12:22:36,147 INFO    MainThread:12040 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 12:22:48,538 WARNING MsgRouterThr:12040 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_122235-prub22wv/run-prub22wv.wandb b/embeddings/wandb/run-20230224_122235-prub22wv/run-prub22wv.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..9274cba4ba4872cb6f5744cb295c6d5409f14117
Binary files /dev/null and b/embeddings/wandb/run-20230224_122235-prub22wv/run-prub22wv.wandb differ
diff --git a/embeddings/wandb/run-20230224_122505-vzang0ae/files/config.yaml b/embeddings/wandb/run-20230224_122505-vzang0ae/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d74b94baa614016891ab3f0b67b715e6154618eb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122505-vzang0ae/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677241505.471108
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_122505-vzang0ae/files/output.log b/embeddings/wandb/run-20230224_122505-vzang0ae/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..d8ba2fd7100ed24309d3b273a526c675f9165e12
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122505-vzang0ae/files/output.log
@@ -0,0 +1,6 @@
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 154, in <module>
+    table.add_data(wandb.Html(graph_vis.encode('utf-8')), n_nodes, n_edges, label)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\data_types\html.py", line 47, in __init__
+    raise ValueError("data must be a string or an io object")
+ValueError: data must be a string or an io object
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_122505-vzang0ae/files/requirements.txt b/embeddings/wandb/run-20230224_122505-vzang0ae/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122505-vzang0ae/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_122505-vzang0ae/files/wandb-metadata.json b/embeddings/wandb/run-20230224_122505-vzang0ae/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..ad28883c4b5a1f82b04cd4e99fe9f79cf59a70e7
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122505-vzang0ae/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T12:25:06.023289",
+    "startedAt": "2023-02-24T12:25:05.458105",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 352.4537658691406
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_122505-vzang0ae/files/wandb-summary.json b/embeddings/wandb/run-20230224_122505-vzang0ae/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..c78ac7669b5c7e64da852e1bb67edd991249de35
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122505-vzang0ae/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677241506.1522732, "_runtime": 0.6811652183532715, "_step": 0, "_wandb": {"runtime": 0}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_122505-vzang0ae/logs/debug-internal.log b/embeddings/wandb/run-20230224_122505-vzang0ae/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..65b6f14d20e06a4a4591686f558450c2ba974381
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122505-vzang0ae/logs/debug-internal.log
@@ -0,0 +1,172 @@
+2023-02-24 12:25:05,471 INFO    StreamThr :14024 [internal.py:wandb_internal():87] W&B internal server running at pid: 14024, started at: 2023-02-24 12:25:05.470105
+2023-02-24 12:25:05,473 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: status
+2023-02-24 12:25:05,474 INFO    WriterThread:14024 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\run-vzang0ae.wandb
+2023-02-24 12:25:05,479 DEBUG   SenderThread:14024 [sender.py:send():336] send: header
+2023-02-24 12:25:05,524 DEBUG   SenderThread:14024 [sender.py:send():336] send: run
+2023-02-24 12:25:05,904 INFO    SenderThread:14024 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files
+2023-02-24 12:25:05,905 INFO    SenderThread:14024 [sender.py:_start_run_threads():1067] run started: vzang0ae with start time 1677241505.471108
+2023-02-24 12:25:05,905 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:25:05,906 INFO    SenderThread:14024 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:25:05,906 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 12:25:05,907 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: check_version
+2023-02-24 12:25:06,001 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 12:25:06,018 DEBUG   HandlerThread:14024 [system_info.py:__init__():31] System info init
+2023-02-24 12:25:06,018 DEBUG   HandlerThread:14024 [system_info.py:__init__():46] System info init done
+2023-02-24 12:25:06,018 INFO    HandlerThread:14024 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 12:25:06,019 INFO    SystemMonitor:14024 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 12:25:06,019 INFO    HandlerThread:14024 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 12:25:06,019 INFO    SystemMonitor:14024 [interfaces.py:start():168] Started cpu
+2023-02-24 12:25:06,022 DEBUG   HandlerThread:14024 [system_info.py:probe():195] Probing system
+2023-02-24 12:25:06,022 INFO    SystemMonitor:14024 [interfaces.py:start():168] Started disk
+2023-02-24 12:25:06,023 INFO    SystemMonitor:14024 [interfaces.py:start():168] Started memory
+2023-02-24 12:25:06,039 INFO    SystemMonitor:14024 [interfaces.py:start():168] Started network
+2023-02-24 12:25:06,041 DEBUG   HandlerThread:14024 [system_info.py:_probe_git():180] Probing git
+2023-02-24 12:25:06,130 DEBUG   HandlerThread:14024 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 12:25:06,130 DEBUG   HandlerThread:14024 [system_info.py:probe():241] Probing system done
+2023-02-24 12:25:06,131 DEBUG   HandlerThread:14024 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T12:25:06.023289', 'startedAt': '2023-02-24T12:25:05.458105', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 352.4537658691406}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 12:25:06,131 INFO    HandlerThread:14024 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 12:25:06,131 INFO    HandlerThread:14024 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 12:25:06,131 DEBUG   HandlerThread:14024 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 12:25:06,132 DEBUG   HandlerThread:14024 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 12:25:06,133 INFO    HandlerThread:14024 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 12:25:06,141 DEBUG   SenderThread:14024 [sender.py:send():336] send: files
+2023-02-24 12:25:06,141 INFO    SenderThread:14024 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 12:25:06,150 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 12:25:06,150 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 12:25:06,153 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 12:25:06,308 DEBUG   SenderThread:14024 [sender.py:send():336] send: telemetry
+2023-02-24 12:25:06,308 DEBUG   SenderThread:14024 [sender.py:send():336] send: history
+2023-02-24 12:25:06,308 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:25:06,309 INFO    SenderThread:14024 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:25:06,311 DEBUG   SenderThread:14024 [sender.py:send():336] send: exit
+2023-02-24 12:25:06,311 INFO    SenderThread:14024 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 12:25:06,311 INFO    SenderThread:14024 [sender.py:send_exit():561] handling runtime: 0
+2023-02-24 12:25:06,311 INFO    SenderThread:14024 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:25:06,312 INFO    SenderThread:14024 [sender.py:send_exit():567] send defer
+2023-02-24 12:25:06,312 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:06,312 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 12:25:06,312 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:06,312 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 12:25:06,312 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 1
+2023-02-24 12:25:06,312 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:06,313 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 12:25:06,313 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:06,313 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 12:25:06,313 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 2
+2023-02-24 12:25:06,313 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:06,313 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 12:25:06,313 INFO    HandlerThread:14024 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 12:25:06,313 DEBUG   SystemMonitor:14024 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 12:25:06,314 DEBUG   SystemMonitor:14024 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 12:25:06,314 DEBUG   SystemMonitor:14024 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 12:25:06,314 INFO    HandlerThread:14024 [interfaces.py:finish():175] Joined cpu
+2023-02-24 12:25:06,314 INFO    HandlerThread:14024 [interfaces.py:finish():175] Joined disk
+2023-02-24 12:25:06,315 INFO    HandlerThread:14024 [interfaces.py:finish():175] Joined memory
+2023-02-24 12:25:06,315 INFO    HandlerThread:14024 [interfaces.py:finish():175] Joined network
+2023-02-24 12:25:06,315 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:06,315 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 12:25:06,315 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 3
+2023-02-24 12:25:06,315 DEBUG   SenderThread:14024 [sender.py:send():336] send: stats
+2023-02-24 12:25:06,315 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:06,316 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 12:25:06,316 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:06,316 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 12:25:06,316 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 4
+2023-02-24 12:25:06,316 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:06,316 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 12:25:06,316 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:06,316 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 12:25:06,316 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 5
+2023-02-24 12:25:06,317 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:06,317 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 12:25:06,317 DEBUG   SenderThread:14024 [sender.py:send():336] send: summary
+2023-02-24 12:25:06,318 INFO    SenderThread:14024 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:25:06,318 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:06,318 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 12:25:06,318 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 6
+2023-02-24 12:25:06,318 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:06,318 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 12:25:06,319 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:06,319 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 12:25:06,322 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:25:06,511 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 7
+2023-02-24 12:25:06,511 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:06,511 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 12:25:06,512 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:06,512 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 12:25:06,700 INFO    wandb-upload_0:14024 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp_qyqueuewandb\yuzbeurf-wandb-metadata.json
+2023-02-24 12:25:06,907 INFO    Thread-17 :14024 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\config.yaml
+2023-02-24 12:25:06,907 INFO    Thread-17 :14024 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\wandb-summary.json
+2023-02-24 12:25:06,908 INFO    Thread-17 :14024 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\output.log
+2023-02-24 12:25:06,908 INFO    Thread-17 :14024 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\wandb-metadata.json
+2023-02-24 12:25:06,908 INFO    Thread-17 :14024 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\requirements.txt
+2023-02-24 12:25:07,294 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:25:08,324 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 8
+2023-02-24 12:25:08,325 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:25:08,325 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:08,325 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 12:25:08,326 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:08,326 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 12:25:08,340 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 9
+2023-02-24 12:25:08,341 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:08,341 DEBUG   SenderThread:14024 [sender.py:send():336] send: artifact
+2023-02-24 12:25:08,341 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 12:25:08,927 INFO    Thread-17 :14024 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\output.log
+2023-02-24 12:25:09,166 INFO    SenderThread:14024 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzgzODYx', 'digest': '52054f0b23df9b668b4724b52e59ad5e', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v1'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzgzODYx', 'versionIndex': 1}}, 'version': 'v1'}
+2023-02-24 12:25:09,167 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:09,167 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 12:25:09,167 INFO    SenderThread:14024 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 12:25:09,931 INFO    SenderThread:14024 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files
+2023-02-24 12:25:09,931 INFO    SenderThread:14024 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\config.yaml config.yaml
+2023-02-24 12:25:09,932 INFO    SenderThread:14024 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\output.log output.log
+2023-02-24 12:25:09,934 INFO    SenderThread:14024 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\requirements.txt requirements.txt
+2023-02-24 12:25:09,938 INFO    SenderThread:14024 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 12:25:09,938 INFO    SenderThread:14024 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\wandb-summary.json wandb-summary.json
+2023-02-24 12:25:09,939 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 10
+2023-02-24 12:25:09,939 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:09,940 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 12:25:09,943 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:09,943 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 12:25:09,943 INFO    SenderThread:14024 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:25:10,413 INFO    wandb-upload_0:14024 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\config.yaml
+2023-02-24 12:25:10,494 INFO    wandb-upload_3:14024 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\wandb-summary.json
+2023-02-24 12:25:10,505 INFO    wandb-upload_2:14024 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\requirements.txt
+2023-02-24 12:25:10,529 INFO    wandb-upload_1:14024 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\files\output.log
+2023-02-24 12:25:10,745 INFO    Thread-16 :14024 [sender.py:transition_state():587] send defer: 11
+2023-02-24 12:25:10,745 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:10,745 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 12:25:10,746 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:10,746 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 12:25:10,746 INFO    SenderThread:14024 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 12:25:10,746 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 12
+2023-02-24 12:25:10,746 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:10,746 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 12:25:10,747 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:10,747 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 12:25:10,884 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 13
+2023-02-24 12:25:10,885 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:10,885 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 12:25:10,885 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:10,885 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 12:25:10,885 INFO    SenderThread:14024 [sender.py:transition_state():587] send defer: 14
+2023-02-24 12:25:10,886 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:25:10,886 INFO    HandlerThread:14024 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 12:25:10,886 DEBUG   SenderThread:14024 [sender.py:send():336] send: final
+2023-02-24 12:25:10,886 DEBUG   SenderThread:14024 [sender.py:send():336] send: footer
+2023-02-24 12:25:10,887 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:25:10,887 INFO    SenderThread:14024 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 12:25:10,887 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:25:10,887 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 12:25:10,888 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 12:25:10,888 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 12:25:10,888 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:25:10,889 DEBUG   SenderThread:14024 [sender.py:send_request():363] send_request: server_info
+2023-02-24 12:25:11,043 INFO    MainThread:14024 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 12:25:11,043 INFO    MainThread:14024 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 12:25:11,044 INFO    MainThread:14024 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 12:25:11,044 DEBUG   HandlerThread:14024 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 12:25:11,044 INFO    HandlerThread:14024 [handler.py:finish():841] shutting down handler
+2023-02-24 12:25:11,895 INFO    WriterThread:14024 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\run-vzang0ae.wandb
+2023-02-24 12:25:12,051 INFO    SenderThread:14024 [sender.py:finish():1493] shutting down sender
+2023-02-24 12:25:12,051 INFO    SenderThread:14024 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:25:12,052 INFO    SenderThread:14024 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_122505-vzang0ae/logs/debug.log b/embeddings/wandb/run-20230224_122505-vzang0ae/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..13dfb562a7154e983abd9bcc18dd2b2f52579ddf
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122505-vzang0ae/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 12:25:05,462 INFO    MainThread:76 [wandb_setup.py:_flush():68] Configure stats pid to 76
+2023-02-24 12:25:05,462 INFO    MainThread:76 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 12:25:05,462 INFO    MainThread:76 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 12:25:05,462 INFO    MainThread:76 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 12:25:05,462 INFO    MainThread:76 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 12:25:05,463 INFO    MainThread:76 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\logs\debug.log
+2023-02-24 12:25:05,464 INFO    MainThread:76 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122505-vzang0ae\logs\debug-internal.log
+2023-02-24 12:25:05,464 INFO    MainThread:76 [wandb_init.py:init():532] calling init triggers
+2023-02-24 12:25:05,464 INFO    MainThread:76 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 12:25:05,464 INFO    MainThread:76 [wandb_init.py:init():588] starting backend
+2023-02-24 12:25:05,464 INFO    MainThread:76 [wandb_init.py:init():592] setting up manager
+2023-02-24 12:25:05,467 INFO    MainThread:76 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 12:25:05,470 INFO    MainThread:76 [wandb_init.py:init():599] backend started and connected
+2023-02-24 12:25:05,473 INFO    MainThread:76 [wandb_init.py:init():687] updated telemetry
+2023-02-24 12:25:05,523 INFO    MainThread:76 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 12:25:05,906 INFO    MainThread:76 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 12:25:05,993 INFO    MainThread:76 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 12:25:05,993 INFO    MainThread:76 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 12:25:06,150 INFO    MainThread:76 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 12:25:06,151 INFO    MainThread:76 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 12:25:06,151 INFO    MainThread:76 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 12:25:06,151 INFO    MainThread:76 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 12:25:06,151 INFO    MainThread:76 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 12:25:12,125 WARNING MsgRouterThr:76 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_122505-vzang0ae/run-vzang0ae.wandb b/embeddings/wandb/run-20230224_122505-vzang0ae/run-vzang0ae.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..46678c2730db81014422dc3d75b85eab5923a6ec
Binary files /dev/null and b/embeddings/wandb/run-20230224_122505-vzang0ae/run-vzang0ae.wandb differ
diff --git a/embeddings/wandb/run-20230224_122541-r5awcwvl/files/config.yaml b/embeddings/wandb/run-20230224_122541-r5awcwvl/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1b3cc3b0cd8db3e852b53bb991685caea42ab6fe
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122541-r5awcwvl/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677241541.340814
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_122541-r5awcwvl/files/media/table/data_1_83bbf864290b80cf8624.table.json b/embeddings/wandb/run-20230224_122541-r5awcwvl/files/media/table/data_1_83bbf864290b80cf8624.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..8bcfad55bae51e5e9981553433c33755fe1ea836
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122541-r5awcwvl/files/media/table/data_1_83bbf864290b80cf8624.table.json
@@ -0,0 +1 @@
+{"columns": ["Graph", "Number of Nodes", "Number of Edges", "Label"], "data": [["Html", 5, 8, 1], ["Html", 74, 118, 1], ["Html", 3, 4, 1], ["Html", 70, 120, 1], ["Html", 41, 86, 1], ["Html", 11, 14, 1], ["Html", 17, 22, 1], ["Html", 51, 94, 1], ["Html", 58, 90, 1], ["Html", 39, 74, 1], ["Html", 74, 118, 1], ["Html", 38, 68, 1], ["Html", 4, 6, 1], ["Html", 4, 6, 1], ["Html", 84, 130, 1], ["Html", 21, 36, 1], ["Html", 18, 30, 1], ["Html", 55, 84, 1], ["Html", 74, 142, 1], ["Html", 26, 38, 1], ["Html", 3, 4, 1], ["Html", 73, 120, 1], ["Html", 34, 50, 1], ["Html", 48, 86, 1], ["Html", 62, 106, 1], ["Html", 44, 82, 1], ["Html", 10, 16, 1], ["Html", 9, 12, 1], ["Html", 52, 88, 0], ["Html", 16, 28, 1], ["Html", 70, 120, 1], ["Html", 29, 40, 1], ["Html", 78, 110, 1], ["Html", 32, 42, 1], ["Html", 46, 66, 1], ["Html", 11, 18, 1], ["Html", 75, 132, 1], ["Html", 56, 92, 1], ["Html", 45, 92, 1], ["Html", 48, 106, 1], ["Html", 41, 86, 1], ["Html", 4, 6, 1], ["Html", 26, 46, 1], ["Html", 21, 32, 1], ["Html", 61, 96, 1], ["Html", 51, 80, 1]]}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_122541-r5awcwvl/files/output.log b/embeddings/wandb/run-20230224_122541-r5awcwvl/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..3803534a84c307bfff207b75db6f1aa13da12572
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122541-r5awcwvl/files/output.log
@@ -0,0 +1,96 @@
+INFO:heterogeneous-GAT-model:[1] Loss: 0.0003425672948360443
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 178, in <module>
+    train_acc, train_f1 = test(train_loader)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 109, in test
+    predictions.append(pred.item())
+ValueError: only one element tensors can be converted to Python scalars
+BatchedHeteroDataBatch(
+  question_emb=[16, 1536],
+  answer_emb=[16, 1536],
+  label=[16, 1],
+  question={
+    x=[71, 1536],
+    batch=[71],
+    ptr=[17]
+  },
+  answer={
+    x=[112, 1536],
+    batch=[112],
+    ptr=[17]
+  },
+  comment={
+    x=[95, 768],
+    batch=[95],
+    ptr=[17]
+  },
+  tag={
+    x=[411, 50],
+    batch=[411],
+    ptr=[17]
+  },
+  module={
+    x=[15, 30],
+    batch=[15],
+    ptr=[17]
+  },
+  (tag, describes, question)={ edge_index=[2, 161] },
+  (tag, describes, answer)={ edge_index=[2, 233] },
+  (tag, describes, comment)={ edge_index=[2, 189] },
+  (module, imported_in, question)={ edge_index=[2, 3] },
+  (module, imported_in, answer)={ edge_index=[2, 15] },
+  (question, rev_describes, tag)={ edge_index=[2, 161] },
+  (answer, rev_describes, tag)={ edge_index=[2, 233] },
+  (comment, rev_describes, tag)={ edge_index=[2, 189] },
+  (question, rev_imported_in, module)={ edge_index=[2, 3] },
+  (answer, rev_imported_in, module)={ edge_index=[2, 15] }
+)
+DATA IN torch.Size([16, 1536]) torch.Size([16, 1536])
+IN torch.Size([16, 3072])
+B4 LINEAR torch.Size([16, 3392])
+BatchedHeteroDataBatch(
+  question_emb=[12, 1536],
+  answer_emb=[12, 1536],
+  label=[12, 1],
+  question={
+    x=[44, 1536],
+    batch=[44],
+    ptr=[13]
+  },
+  answer={
+    x=[92, 1536],
+    batch=[92],
+    ptr=[13]
+  },
+  comment={
+    x=[78, 768],
+    batch=[78],
+    ptr=[13]
+  },
+  tag={
+    x=[320, 50],
+    batch=[320],
+    ptr=[13]
+  },
+  module={
+    x=[13, 30],
+    batch=[13],
+    ptr=[13]
+  },
+  (tag, describes, question)={ edge_index=[2, 91] },
+  (tag, describes, answer)={ edge_index=[2, 188] },
+  (tag, describes, comment)={ edge_index=[2, 162] },
+  (module, imported_in, question)={ edge_index=[2, 0] },
+  (module, imported_in, answer)={ edge_index=[2, 16] },
+  (question, rev_describes, tag)={ edge_index=[2, 91] },
+  (answer, rev_describes, tag)={ edge_index=[2, 188] },
+  (comment, rev_describes, tag)={ edge_index=[2, 162] },
+  (question, rev_imported_in, module)={ edge_index=[2, 0] },
+  (answer, rev_imported_in, module)={ edge_index=[2, 16] }
+)
+DATA IN torch.Size([12, 1536]) torch.Size([12, 1536])
+IN torch.Size([12, 3072])
+B4 LINEAR torch.Size([12, 3392])
+IN torch.Size([16, 3072])
+B4 LINEAR torch.Size([16, 3392])
+torch.Size([16, 2]) torch.Size([16, 1])
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_122541-r5awcwvl/files/requirements.txt b/embeddings/wandb/run-20230224_122541-r5awcwvl/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122541-r5awcwvl/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_122541-r5awcwvl/files/wandb-metadata.json b/embeddings/wandb/run-20230224_122541-r5awcwvl/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..700df73794899da50412472b88364211ed891631
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122541-r5awcwvl/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T12:25:41.860506",
+    "startedAt": "2023-02-24T12:25:41.326807",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 352.4544334411621
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_122541-r5awcwvl/files/wandb-summary.json b/embeddings/wandb/run-20230224_122541-r5awcwvl/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..c1328a5d1bda418490113d2af9bd568e657e5751
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122541-r5awcwvl/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677241552.527189, "_runtime": 11.18637490272522, "_step": 1, "data": {"_type": "table-file", "sha256": "83bbf864290b80cf8624948cb39add689e6cf983395c372d7f2e0d6c0428060e", "size": 1043, "artifact_path": "wandb-client-artifact://uchw2xvmz44ryvojr0bgzm9uj81jwwtphlh7ebm09nj1k1b4ztsjsta2j2ivf9bqiqbbimjel2nmcqs784cj19f56jpz73hybzvu2temv8atj5gk0hx47p6z55l7lcd0:latest/data.table.json", "_latest_artifact_path": "wandb-client-artifact://uchw2xvmz44ryvojr0bgzm9uj81jwwtphlh7ebm09nj1k1b4ztsjsta2j2ivf9bqiqbbimjel2nmcqs784cj19f56jpz73hybzvu2temv8atj5gk0hx47p6z55l7lcd0:latest/data.table.json", "path": "media/table/data_1_83bbf864290b80cf8624.table.json", "ncols": 4, "nrows": 46}, "_wandb": {"runtime": 11}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_122541-r5awcwvl/logs/debug-internal.log b/embeddings/wandb/run-20230224_122541-r5awcwvl/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..14989e0e899e29622b432410d548da7b162156dc
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122541-r5awcwvl/logs/debug-internal.log
@@ -0,0 +1,245 @@
+2023-02-24 12:25:41,340 INFO    StreamThr :10624 [internal.py:wandb_internal():87] W&B internal server running at pid: 10624, started at: 2023-02-24 12:25:41.339805
+2023-02-24 12:25:41,342 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: status
+2023-02-24 12:25:41,344 INFO    WriterThread:10624 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\run-r5awcwvl.wandb
+2023-02-24 12:25:41,347 DEBUG   SenderThread:10624 [sender.py:send():336] send: header
+2023-02-24 12:25:41,392 DEBUG   SenderThread:10624 [sender.py:send():336] send: run
+2023-02-24 12:25:41,765 INFO    SenderThread:10624 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files
+2023-02-24 12:25:41,765 INFO    SenderThread:10624 [sender.py:_start_run_threads():1067] run started: r5awcwvl with start time 1677241541.340814
+2023-02-24 12:25:41,765 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:25:41,766 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 12:25:41,766 INFO    SenderThread:10624 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:25:41,767 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: check_version
+2023-02-24 12:25:41,841 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 12:25:41,859 DEBUG   HandlerThread:10624 [system_info.py:__init__():31] System info init
+2023-02-24 12:25:41,859 DEBUG   HandlerThread:10624 [system_info.py:__init__():46] System info init done
+2023-02-24 12:25:41,859 INFO    HandlerThread:10624 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 12:25:41,860 INFO    SystemMonitor:10624 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 12:25:41,860 INFO    HandlerThread:10624 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 12:25:41,860 DEBUG   HandlerThread:10624 [system_info.py:probe():195] Probing system
+2023-02-24 12:25:41,863 INFO    SystemMonitor:10624 [interfaces.py:start():168] Started cpu
+2023-02-24 12:25:41,864 INFO    SystemMonitor:10624 [interfaces.py:start():168] Started disk
+2023-02-24 12:25:41,864 INFO    SystemMonitor:10624 [interfaces.py:start():168] Started memory
+2023-02-24 12:25:41,881 INFO    SystemMonitor:10624 [interfaces.py:start():168] Started network
+2023-02-24 12:25:41,882 DEBUG   HandlerThread:10624 [system_info.py:_probe_git():180] Probing git
+2023-02-24 12:25:41,976 DEBUG   HandlerThread:10624 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 12:25:41,976 DEBUG   HandlerThread:10624 [system_info.py:probe():241] Probing system done
+2023-02-24 12:25:41,977 DEBUG   HandlerThread:10624 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T12:25:41.860506', 'startedAt': '2023-02-24T12:25:41.326807', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 352.4544334411621}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 12:25:41,977 INFO    HandlerThread:10624 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 12:25:41,977 INFO    HandlerThread:10624 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 12:25:41,977 DEBUG   HandlerThread:10624 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 12:25:41,978 DEBUG   HandlerThread:10624 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 12:25:41,979 INFO    HandlerThread:10624 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 12:25:41,988 DEBUG   SenderThread:10624 [sender.py:send():336] send: files
+2023-02-24 12:25:41,988 INFO    SenderThread:10624 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 12:25:41,996 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 12:25:41,996 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 12:25:41,998 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 12:25:42,155 DEBUG   SenderThread:10624 [sender.py:send():336] send: telemetry
+2023-02-24 12:25:42,155 DEBUG   SenderThread:10624 [sender.py:send():336] send: history
+2023-02-24 12:25:42,156 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:25:42,157 INFO    SenderThread:10624 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:25:42,544 INFO    wandb-upload_0:10624 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpx0_ma21cwandb\es672i4v-wandb-metadata.json
+2023-02-24 12:25:42,776 INFO    Thread-17 :10624 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\requirements.txt
+2023-02-24 12:25:42,776 INFO    Thread-17 :10624 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\wandb-summary.json
+2023-02-24 12:25:42,776 INFO    Thread-17 :10624 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\wandb-metadata.json
+2023-02-24 12:25:47,209 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:25:52,180 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 12:25:52,180 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 12:25:52,527 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 12:25:52,877 INFO    Thread-17 :10624 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\media\table\data_1_83bbf864290b80cf8624.table.json
+2023-02-24 12:25:52,877 INFO    Thread-17 :10624 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\media\table
+2023-02-24 12:25:52,878 INFO    Thread-17 :10624 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\media
+2023-02-24 12:25:53,976 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:25:55,697 INFO    wandb-upload_0:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpgbvzuefw
+2023-02-24 12:25:59,046 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:26:04,111 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:26:05,366 INFO    wandb-upload_7:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpro0eeng5
+2023-02-24 12:26:05,489 INFO    wandb-upload_42:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp3zq19boc
+2023-02-24 12:26:05,490 INFO    wandb-upload_2:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpk4g5655s
+2023-02-24 12:26:05,501 INFO    wandb-upload_5:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmplcnjybx8
+2023-02-24 12:26:05,914 INFO    wandb-upload_1:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp9gutobd8
+2023-02-24 12:26:05,968 INFO    wandb-upload_28:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpbkaeg0_9
+2023-02-24 12:26:06,016 INFO    wandb-upload_6:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpm0bnwv_z
+2023-02-24 12:26:06,065 INFO    wandb-upload_4:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpr7lrety9
+2023-02-24 12:26:06,182 INFO    wandb-upload_30:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpfquzxan6
+2023-02-24 12:26:06,395 INFO    wandb-upload_40:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmptrkv61wz
+2023-02-24 12:26:06,656 INFO    wandb-upload_3:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpez6furnz
+2023-02-24 12:26:06,657 INFO    wandb-upload_18:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpp31_jcw7
+2023-02-24 12:26:06,660 INFO    wandb-upload_36:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpyobqk2a5
+2023-02-24 12:26:06,917 INFO    wandb-upload_38:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpabz6iuyy
+2023-02-24 12:26:07,112 INFO    wandb-upload_39:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmptj641v26
+2023-02-24 12:26:07,113 INFO    wandb-upload_22:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpir5ivv2p
+2023-02-24 12:26:07,113 INFO    wandb-upload_10:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp33739db2
+2023-02-24 12:26:07,139 INFO    wandb-upload_15:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpw22gp7jp
+2023-02-24 12:26:07,160 INFO    wandb-upload_19:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp4111id4j
+2023-02-24 12:26:07,321 INFO    wandb-upload_35:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpnansk5lr
+2023-02-24 12:26:07,514 INFO    wandb-upload_25:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp577g3lwo
+2023-02-24 12:26:07,534 INFO    wandb-upload_26:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpwie_n9vt
+2023-02-24 12:26:07,706 INFO    wandb-upload_23:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpx6od1rp6
+2023-02-24 12:26:07,825 INFO    wandb-upload_41:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpgltuj4_p
+2023-02-24 12:26:08,101 INFO    wandb-upload_12:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp5vgw6vz0
+2023-02-24 12:26:08,103 INFO    wandb-upload_21:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpo1w9afto
+2023-02-24 12:26:08,116 INFO    wandb-upload_29:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp_4b68qx1
+2023-02-24 12:26:08,156 INFO    wandb-upload_9:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp2ogi8f72
+2023-02-24 12:26:08,208 INFO    wandb-upload_32:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpvxtxojmy
+2023-02-24 12:26:08,209 INFO    wandb-upload_33:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp1sb5tski
+2023-02-24 12:26:08,230 INFO    wandb-upload_45:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpje5cmg83
+2023-02-24 12:26:08,293 INFO    wandb-upload_31:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpa7_dee8c
+2023-02-24 12:26:08,336 INFO    wandb-upload_37:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpy43ulfxz
+2023-02-24 12:26:08,346 INFO    wandb-upload_20:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpr2pbjs9_
+2023-02-24 12:26:08,584 INFO    wandb-upload_34:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpbf9uleqq
+2023-02-24 12:26:08,805 INFO    wandb-upload_24:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmps4ywbii2
+2023-02-24 12:26:08,808 INFO    wandb-upload_14:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpjq9pn5y6
+2023-02-24 12:26:08,830 INFO    wandb-upload_46:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpgypu7xtf
+2023-02-24 12:26:08,831 INFO    wandb-upload_44:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpzltf8p84
+2023-02-24 12:26:09,152 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:26:09,276 INFO    wandb-upload_17:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpt50x959w
+2023-02-24 12:26:09,542 INFO    wandb-upload_27:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmppfxw9t9_
+2023-02-24 12:26:09,711 INFO    wandb-upload_43:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpff_0y2k_
+2023-02-24 12:26:09,738 INFO    wandb-upload_13:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp_h83q1r3
+2023-02-24 12:26:09,831 INFO    wandb-upload_11:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp5ktaz2zh
+2023-02-24 12:26:09,904 INFO    wandb-upload_16:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp971inhi9
+2023-02-24 12:26:10,615 INFO    wandb-upload_8:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpjxoa8fay
+2023-02-24 12:26:11,549 INFO    SenderThread:10624 [sender.py:send_request_log_artifact():1381] logged artifact run-r5awcwvl-data - {'id': 'QXJ0aWZhY3Q6MzgwMzk2Nzgy', 'digest': '9803377c226c41131b87c6dcbe727e42', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTkyNTE5', 'latestArtifact': None}, 'version': 'latest'}
+2023-02-24 12:26:11,554 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:26:11,730 DEBUG   SenderThread:10624 [sender.py:send():336] send: files
+2023-02-24 12:26:11,730 INFO    SenderThread:10624 [sender.py:_save_file():1321] saving file media\table\data_1_83bbf864290b80cf8624.table.json with policy now
+2023-02-24 12:26:11,731 DEBUG   SenderThread:10624 [sender.py:send():336] send: history
+2023-02-24 12:26:11,731 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:26:11,734 INFO    SenderThread:10624 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:26:11,738 DEBUG   SenderThread:10624 [sender.py:send():336] send: exit
+2023-02-24 12:26:11,738 INFO    SenderThread:10624 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 12:26:11,738 INFO    SenderThread:10624 [sender.py:send_exit():561] handling runtime: 11
+2023-02-24 12:26:11,741 INFO    SenderThread:10624 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:26:11,741 INFO    SenderThread:10624 [sender.py:send_exit():567] send defer
+2023-02-24 12:26:11,742 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:26:11,742 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:11,742 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 12:26:11,743 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:11,743 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 12:26:11,743 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 1
+2023-02-24 12:26:11,743 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:11,743 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 12:26:11,743 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:11,744 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 12:26:11,744 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 2
+2023-02-24 12:26:11,744 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:11,744 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 12:26:11,744 INFO    HandlerThread:10624 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 12:26:11,744 DEBUG   SystemMonitor:10624 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 12:26:11,745 DEBUG   SystemMonitor:10624 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 12:26:11,745 DEBUG   SystemMonitor:10624 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 12:26:11,746 INFO    HandlerThread:10624 [interfaces.py:finish():175] Joined cpu
+2023-02-24 12:26:11,746 INFO    HandlerThread:10624 [interfaces.py:finish():175] Joined disk
+2023-02-24 12:26:11,746 INFO    HandlerThread:10624 [interfaces.py:finish():175] Joined memory
+2023-02-24 12:26:11,746 INFO    HandlerThread:10624 [interfaces.py:finish():175] Joined network
+2023-02-24 12:26:11,746 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:11,746 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 12:26:11,747 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 3
+2023-02-24 12:26:11,747 DEBUG   SenderThread:10624 [sender.py:send():336] send: stats
+2023-02-24 12:26:11,747 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:11,747 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 12:26:11,747 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:11,747 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 12:26:11,747 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 4
+2023-02-24 12:26:11,748 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:11,748 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 12:26:11,748 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:11,748 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 12:26:11,748 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 5
+2023-02-24 12:26:11,748 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:11,748 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 12:26:11,749 DEBUG   SenderThread:10624 [sender.py:send():336] send: summary
+2023-02-24 12:26:11,750 INFO    SenderThread:10624 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:26:11,750 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:11,751 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 12:26:11,751 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 6
+2023-02-24 12:26:11,751 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:11,751 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 12:26:11,751 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:11,751 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 12:26:11,751 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 7
+2023-02-24 12:26:11,751 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:26:11,751 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:11,752 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 12:26:11,752 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:11,752 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 12:26:12,172 INFO    Thread-17 :10624 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\config.yaml
+2023-02-24 12:26:12,173 INFO    Thread-17 :10624 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\wandb-summary.json
+2023-02-24 12:26:12,174 INFO    Thread-17 :10624 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\output.log
+2023-02-24 12:26:12,238 INFO    wandb-upload_0:10624 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpx0_ma21cwandb\tb0gxoit-media/table/data_1_83bbf864290b80cf8624.table.json
+2023-02-24 12:26:14,184 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:26:14,185 INFO    Thread-17 :10624 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\output.log
+2023-02-24 12:26:15,759 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 8
+2023-02-24 12:26:15,760 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:15,760 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 12:26:15,760 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:15,760 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 12:26:15,775 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 9
+2023-02-24 12:26:15,776 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:15,776 DEBUG   SenderThread:10624 [sender.py:send():336] send: artifact
+2023-02-24 12:26:15,776 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 12:26:16,210 INFO    Thread-17 :10624 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\output.log
+2023-02-24 12:26:18,337 INFO    wandb-upload_42:10624 [upload_job.py:push():93] Skipped uploading C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp4yebe3jo
+2023-02-24 12:26:18,616 INFO    wandb-upload_2:10624 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpw48cjxq_
+2023-02-24 12:26:19,235 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:26:20,291 INFO    SenderThread:10624 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'digest': '8077f65decb82fd65dc9936bbf393b39', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzgzODYx', 'versionIndex': 1}}, 'version': 'latest'}
+2023-02-24 12:26:20,291 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:20,291 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 12:26:20,292 INFO    SenderThread:10624 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 12:26:20,292 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:26:21,261 INFO    SenderThread:10624 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files
+2023-02-24 12:26:21,261 INFO    SenderThread:10624 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\config.yaml config.yaml
+2023-02-24 12:26:21,262 INFO    SenderThread:10624 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\output.log output.log
+2023-02-24 12:26:21,262 INFO    SenderThread:10624 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\requirements.txt requirements.txt
+2023-02-24 12:26:21,269 INFO    SenderThread:10624 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 12:26:21,269 INFO    SenderThread:10624 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\wandb-summary.json wandb-summary.json
+2023-02-24 12:26:21,276 INFO    SenderThread:10624 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\media\table\data_1_83bbf864290b80cf8624.table.json media\table\data_1_83bbf864290b80cf8624.table.json
+2023-02-24 12:26:21,277 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 10
+2023-02-24 12:26:21,277 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:21,277 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 12:26:21,277 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:21,278 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 12:26:21,278 INFO    SenderThread:10624 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:26:21,771 INFO    wandb-upload_3:10624 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\wandb-summary.json
+2023-02-24 12:26:21,800 INFO    wandb-upload_30:10624 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\requirements.txt
+2023-02-24 12:26:21,801 INFO    wandb-upload_1:10624 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\config.yaml
+2023-02-24 12:26:21,846 INFO    wandb-upload_6:10624 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\files\output.log
+2023-02-24 12:26:22,055 INFO    Thread-16 :10624 [sender.py:transition_state():587] send defer: 11
+2023-02-24 12:26:22,055 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:22,055 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 12:26:22,056 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:22,056 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 12:26:22,056 INFO    SenderThread:10624 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 12:26:22,056 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 12
+2023-02-24 12:26:22,056 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:22,056 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 12:26:22,057 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:22,057 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 12:26:22,198 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 13
+2023-02-24 12:26:22,199 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:22,199 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 12:26:22,199 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:22,199 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 12:26:22,199 INFO    SenderThread:10624 [sender.py:transition_state():587] send defer: 14
+2023-02-24 12:26:22,200 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:26:22,200 INFO    HandlerThread:10624 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 12:26:22,200 DEBUG   SenderThread:10624 [sender.py:send():336] send: final
+2023-02-24 12:26:22,200 DEBUG   SenderThread:10624 [sender.py:send():336] send: footer
+2023-02-24 12:26:22,200 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:26:22,200 INFO    SenderThread:10624 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 12:26:22,201 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:26:22,201 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 12:26:22,201 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 12:26:22,201 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 12:26:22,203 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:26:22,203 DEBUG   SenderThread:10624 [sender.py:send_request():363] send_request: server_info
+2023-02-24 12:26:22,366 INFO    MainThread:10624 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 12:26:22,367 INFO    MainThread:10624 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 12:26:22,367 INFO    MainThread:10624 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 12:26:22,367 DEBUG   HandlerThread:10624 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 12:26:22,367 INFO    HandlerThread:10624 [handler.py:finish():841] shutting down handler
+2023-02-24 12:26:23,209 INFO    WriterThread:10624 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\run-r5awcwvl.wandb
+2023-02-24 12:26:23,379 INFO    SenderThread:10624 [sender.py:finish():1493] shutting down sender
+2023-02-24 12:26:23,379 INFO    SenderThread:10624 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:26:23,379 INFO    SenderThread:10624 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_122541-r5awcwvl/logs/debug.log b/embeddings/wandb/run-20230224_122541-r5awcwvl/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..c9ea0a0523c25a3b3b5b762647aac5bce899ddb2
--- /dev/null
+++ b/embeddings/wandb/run-20230224_122541-r5awcwvl/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 12:25:41,329 INFO    MainThread:9720 [wandb_setup.py:_flush():68] Configure stats pid to 9720
+2023-02-24 12:25:41,330 INFO    MainThread:9720 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 12:25:41,330 INFO    MainThread:9720 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 12:25:41,330 INFO    MainThread:9720 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 12:25:41,330 INFO    MainThread:9720 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 12:25:41,331 INFO    MainThread:9720 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\logs\debug.log
+2023-02-24 12:25:41,331 INFO    MainThread:9720 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_122541-r5awcwvl\logs\debug-internal.log
+2023-02-24 12:25:41,331 INFO    MainThread:9720 [wandb_init.py:init():532] calling init triggers
+2023-02-24 12:25:41,331 INFO    MainThread:9720 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 12:25:41,331 INFO    MainThread:9720 [wandb_init.py:init():588] starting backend
+2023-02-24 12:25:41,331 INFO    MainThread:9720 [wandb_init.py:init():592] setting up manager
+2023-02-24 12:25:41,334 INFO    MainThread:9720 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 12:25:41,339 INFO    MainThread:9720 [wandb_init.py:init():599] backend started and connected
+2023-02-24 12:25:41,342 INFO    MainThread:9720 [wandb_init.py:init():687] updated telemetry
+2023-02-24 12:25:41,391 INFO    MainThread:9720 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 12:25:41,765 INFO    MainThread:9720 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 12:25:41,833 INFO    MainThread:9720 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 12:25:41,833 INFO    MainThread:9720 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 12:25:41,996 INFO    MainThread:9720 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 12:25:41,996 INFO    MainThread:9720 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 12:25:41,996 INFO    MainThread:9720 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 12:25:41,997 INFO    MainThread:9720 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 12:25:41,997 INFO    MainThread:9720 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 12:26:23,481 WARNING MsgRouterThr:9720 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_122541-r5awcwvl/run-r5awcwvl.wandb b/embeddings/wandb/run-20230224_122541-r5awcwvl/run-r5awcwvl.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..c5c2a6a2921758b42efa1904feab42dbd10c6142
Binary files /dev/null and b/embeddings/wandb/run-20230224_122541-r5awcwvl/run-r5awcwvl.wandb differ
diff --git a/embeddings/wandb/run-20230224_123451-o6eekle7/files/config.yaml b/embeddings/wandb/run-20230224_123451-o6eekle7/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c5e0ff478af50798714a37a3b91e54a056e140d9
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123451-o6eekle7/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677242091.573574
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_123451-o6eekle7/files/media/table/data_1_83bbf864290b80cf8624.table.json b/embeddings/wandb/run-20230224_123451-o6eekle7/files/media/table/data_1_83bbf864290b80cf8624.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..8bcfad55bae51e5e9981553433c33755fe1ea836
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123451-o6eekle7/files/media/table/data_1_83bbf864290b80cf8624.table.json
@@ -0,0 +1 @@
+{"columns": ["Graph", "Number of Nodes", "Number of Edges", "Label"], "data": [["Html", 5, 8, 1], ["Html", 74, 118, 1], ["Html", 3, 4, 1], ["Html", 70, 120, 1], ["Html", 41, 86, 1], ["Html", 11, 14, 1], ["Html", 17, 22, 1], ["Html", 51, 94, 1], ["Html", 58, 90, 1], ["Html", 39, 74, 1], ["Html", 74, 118, 1], ["Html", 38, 68, 1], ["Html", 4, 6, 1], ["Html", 4, 6, 1], ["Html", 84, 130, 1], ["Html", 21, 36, 1], ["Html", 18, 30, 1], ["Html", 55, 84, 1], ["Html", 74, 142, 1], ["Html", 26, 38, 1], ["Html", 3, 4, 1], ["Html", 73, 120, 1], ["Html", 34, 50, 1], ["Html", 48, 86, 1], ["Html", 62, 106, 1], ["Html", 44, 82, 1], ["Html", 10, 16, 1], ["Html", 9, 12, 1], ["Html", 52, 88, 0], ["Html", 16, 28, 1], ["Html", 70, 120, 1], ["Html", 29, 40, 1], ["Html", 78, 110, 1], ["Html", 32, 42, 1], ["Html", 46, 66, 1], ["Html", 11, 18, 1], ["Html", 75, 132, 1], ["Html", 56, 92, 1], ["Html", 45, 92, 1], ["Html", 48, 106, 1], ["Html", 41, 86, 1], ["Html", 4, 6, 1], ["Html", 26, 46, 1], ["Html", 21, 32, 1], ["Html", 61, 96, 1], ["Html", 51, 80, 1]]}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_123451-o6eekle7/files/output.log b/embeddings/wandb/run-20230224_123451-o6eekle7/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123451-o6eekle7/files/output.log
@@ -0,0 +1 @@
+
diff --git a/embeddings/wandb/run-20230224_123451-o6eekle7/files/requirements.txt b/embeddings/wandb/run-20230224_123451-o6eekle7/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123451-o6eekle7/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_123451-o6eekle7/files/wandb-metadata.json b/embeddings/wandb/run-20230224_123451-o6eekle7/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..6a2f30cdd0d3f770bf665602044c8f375d2856bb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123451-o6eekle7/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T12:34:52.115855",
+    "startedAt": "2023-02-24T12:34:51.557575",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 352.6499214172363
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_123451-o6eekle7/files/wandb-summary.json b/embeddings/wandb/run-20230224_123451-o6eekle7/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..4343fb4ec1b41154b7b1882e5aa8e81506a1ba5f
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123451-o6eekle7/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677242101.6094127, "_runtime": 10.035838603973389, "_step": 1, "data": {"_type": "table-file", "sha256": "83bbf864290b80cf8624948cb39add689e6cf983395c372d7f2e0d6c0428060e", "size": 1043, "artifact_path": "wandb-client-artifact://863t73fpwrp6ykcukcc21bact85uja8ocyt4sr3o24sx87ffv8mu1a1okyic0d1ez36u0jdb0eqhi2vjqxnuhx1hen1vp6dh1apc61sl5wnxd46d12rq2f6m3g22448i:latest/data.table.json", "_latest_artifact_path": "wandb-client-artifact://863t73fpwrp6ykcukcc21bact85uja8ocyt4sr3o24sx87ffv8mu1a1okyic0d1ez36u0jdb0eqhi2vjqxnuhx1hen1vp6dh1apc61sl5wnxd46d12rq2f6m3g22448i:latest/data.table.json", "path": "media/table/data_1_83bbf864290b80cf8624.table.json", "ncols": 4, "nrows": 46}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_123451-o6eekle7/logs/debug-internal.log b/embeddings/wandb/run-20230224_123451-o6eekle7/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..e299ba7f8d0c6eee7cb5465ae10d44dcb5f1ac64
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123451-o6eekle7/logs/debug-internal.log
@@ -0,0 +1,609 @@
+2023-02-24 12:34:51,573 INFO    StreamThr :15572 [internal.py:wandb_internal():87] W&B internal server running at pid: 15572, started at: 2023-02-24 12:34:51.572575
+2023-02-24 12:34:51,575 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: status
+2023-02-24 12:34:51,576 INFO    WriterThread:15572 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\run-o6eekle7.wandb
+2023-02-24 12:34:51,581 DEBUG   SenderThread:15572 [sender.py:send():336] send: header
+2023-02-24 12:34:51,639 DEBUG   SenderThread:15572 [sender.py:send():336] send: run
+2023-02-24 12:34:52,001 INFO    SenderThread:15572 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\files
+2023-02-24 12:34:52,001 INFO    SenderThread:15572 [sender.py:_start_run_threads():1067] run started: o6eekle7 with start time 1677242091.573574
+2023-02-24 12:34:52,002 DEBUG   SenderThread:15572 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:34:52,002 INFO    SenderThread:15572 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:34:52,003 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 12:34:52,004 DEBUG   SenderThread:15572 [sender.py:send_request():363] send_request: check_version
+2023-02-24 12:34:52,093 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 12:34:52,111 DEBUG   HandlerThread:15572 [system_info.py:__init__():31] System info init
+2023-02-24 12:34:52,111 DEBUG   HandlerThread:15572 [system_info.py:__init__():46] System info init done
+2023-02-24 12:34:52,111 INFO    HandlerThread:15572 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 12:34:52,112 INFO    SystemMonitor:15572 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 12:34:52,112 INFO    HandlerThread:15572 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 12:34:52,115 INFO    SystemMonitor:15572 [interfaces.py:start():168] Started cpu
+2023-02-24 12:34:52,115 DEBUG   HandlerThread:15572 [system_info.py:probe():195] Probing system
+2023-02-24 12:34:52,116 INFO    SystemMonitor:15572 [interfaces.py:start():168] Started disk
+2023-02-24 12:34:52,116 INFO    SystemMonitor:15572 [interfaces.py:start():168] Started memory
+2023-02-24 12:34:52,133 INFO    SystemMonitor:15572 [interfaces.py:start():168] Started network
+2023-02-24 12:34:52,134 DEBUG   HandlerThread:15572 [system_info.py:_probe_git():180] Probing git
+2023-02-24 12:34:52,239 DEBUG   HandlerThread:15572 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 12:34:52,239 DEBUG   HandlerThread:15572 [system_info.py:probe():241] Probing system done
+2023-02-24 12:34:52,239 DEBUG   HandlerThread:15572 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T12:34:52.115855', 'startedAt': '2023-02-24T12:34:51.557575', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 352.6499214172363}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 12:34:52,240 INFO    HandlerThread:15572 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 12:34:52,240 INFO    HandlerThread:15572 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 12:34:52,240 DEBUG   HandlerThread:15572 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 12:34:52,242 DEBUG   HandlerThread:15572 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 12:34:52,244 INFO    HandlerThread:15572 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 12:34:52,253 DEBUG   SenderThread:15572 [sender.py:send():336] send: files
+2023-02-24 12:34:52,254 INFO    SenderThread:15572 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 12:34:52,264 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 12:34:52,264 DEBUG   SenderThread:15572 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 12:34:52,266 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 12:34:52,436 DEBUG   SenderThread:15572 [sender.py:send():336] send: telemetry
+2023-02-24 12:34:52,439 DEBUG   SenderThread:15572 [sender.py:send():336] send: history
+2023-02-24 12:34:52,440 DEBUG   SenderThread:15572 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:34:52,441 INFO    SenderThread:15572 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:34:52,838 INFO    wandb-upload_0:15572 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp6t8dl2bjwandb\z2ez9vxs-wandb-metadata.json
+2023-02-24 12:34:53,012 INFO    Thread-17 :15572 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\files\requirements.txt
+2023-02-24 12:34:53,012 INFO    Thread-17 :15572 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\files\wandb-summary.json
+2023-02-24 12:34:53,013 INFO    Thread-17 :15572 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\files\wandb-metadata.json
+2023-02-24 12:34:57,504 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:35:01,287 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 12:35:01,288 DEBUG   SenderThread:15572 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 12:35:01,610 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 12:35:02,126 INFO    Thread-17 :15572 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\files\media\table\data_1_83bbf864290b80cf8624.table.json
+2023-02-24 12:35:02,126 INFO    Thread-17 :15572 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\files\media
+2023-02-24 12:35:02,126 INFO    Thread-17 :15572 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\files\media\table
+2023-02-24 12:35:02,976 INFO    wandb-upload_0:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpq1rpnh32
+2023-02-24 12:35:07,281 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:35:09,496 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 12:35:10,503 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:35:15,539 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:35:20,598 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:35:25,648 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:35:28,776 INFO    wandb-upload_4:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpmadbep1i
+2023-02-24 12:35:28,927 INFO    wandb-upload_6:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpuccnu6c2
+2023-02-24 12:35:28,973 INFO    wandb-upload_2:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmptk4db49p
+2023-02-24 12:35:29,003 INFO    wandb-upload_3:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpsvzht581
+2023-02-24 12:35:29,106 INFO    wandb-upload_5:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp_tgdbbpx
+2023-02-24 12:35:29,107 INFO    wandb-upload_1:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp4qu61go7
+2023-02-24 12:35:29,141 INFO    wandb-upload_12:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmps7y2pky3
+2023-02-24 12:35:29,163 INFO    wandb-upload_14:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp45j0y_p5
+2023-02-24 12:35:29,386 INFO    wandb-upload_25:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp44obdc_8
+2023-02-24 12:35:29,486 INFO    wandb-upload_18:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpguwejyjx
+2023-02-24 12:35:29,499 INFO    wandb-upload_9:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpjvjoyu6_
+2023-02-24 12:35:29,545 INFO    wandb-upload_26:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpj0qkx07y
+2023-02-24 12:35:29,574 INFO    wandb-upload_21:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpkc_uyc9b
+2023-02-24 12:35:29,599 INFO    wandb-upload_28:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpmd4vntum
+2023-02-24 12:35:29,639 INFO    wandb-upload_40:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp4z0r3jwb
+2023-02-24 12:35:29,650 INFO    wandb-upload_19:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmplho77rza
+2023-02-24 12:35:29,756 INFO    wandb-upload_29:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpfhokowf7
+2023-02-24 12:35:29,759 INFO    wandb-upload_17:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpfd8xb_rw
+2023-02-24 12:35:29,761 INFO    wandb-upload_34:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpq46hilah
+2023-02-24 12:35:29,763 INFO    wandb-upload_20:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpx5zk__m0
+2023-02-24 12:35:29,763 INFO    wandb-upload_30:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpyzcavj4v
+2023-02-24 12:35:29,765 INFO    wandb-upload_41:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp4hwg86sz
+2023-02-24 12:35:29,793 INFO    wandb-upload_22:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp2_uvpqb_
+2023-02-24 12:35:29,812 INFO    wandb-upload_8:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpjnz8j50w
+2023-02-24 12:35:29,816 INFO    wandb-upload_33:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmplxetyn53
+2023-02-24 12:35:29,838 INFO    wandb-upload_13:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpth6in6ik
+2023-02-24 12:35:29,844 INFO    wandb-upload_46:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpeyy6fme3
+2023-02-24 12:35:29,849 INFO    wandb-upload_44:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpzmkd7zhs
+2023-02-24 12:35:29,851 INFO    wandb-upload_24:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp5wb9rpsb
+2023-02-24 12:35:29,854 INFO    wandb-upload_27:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpobvgmn49
+2023-02-24 12:35:29,876 INFO    wandb-upload_32:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpoo9zaec8
+2023-02-24 12:35:29,912 INFO    wandb-upload_42:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpj14jkp8h
+2023-02-24 12:35:29,912 INFO    wandb-upload_45:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp7p82hvjz
+2023-02-24 12:35:29,954 INFO    wandb-upload_38:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp9rb3y3od
+2023-02-24 12:35:29,965 INFO    wandb-upload_31:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmppaqwcire
+2023-02-24 12:35:29,980 INFO    wandb-upload_15:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpwfusvsfn
+2023-02-24 12:35:30,007 INFO    wandb-upload_35:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpx_z4g9xa
+2023-02-24 12:35:30,008 INFO    wandb-upload_11:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpy00mg6l_
+2023-02-24 12:35:30,034 INFO    wandb-upload_10:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp22sst0it
+2023-02-24 12:35:30,034 INFO    wandb-upload_23:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpeijam4jn
+2023-02-24 12:35:30,056 INFO    wandb-upload_36:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpfbspsg_0
+2023-02-24 12:35:30,067 INFO    wandb-upload_16:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpsnbz0uc3
+2023-02-24 12:35:30,093 INFO    wandb-upload_43:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpd48j9ovu
+2023-02-24 12:35:30,113 INFO    wandb-upload_37:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpj6jdyd84
+2023-02-24 12:35:30,190 INFO    wandb-upload_7:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp713q9bxt
+2023-02-24 12:35:30,219 INFO    wandb-upload_39:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpf7czz8l2
+2023-02-24 12:35:30,695 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:35:31,114 INFO    SenderThread:15572 [sender.py:send_request_log_artifact():1381] logged artifact run-o6eekle7-data - {'id': 'QXJ0aWZhY3Q6MzgwNDAxMjcw', 'digest': '9015589079b584d63120c6750f48ad17', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTkzMzA2', 'latestArtifact': None}, 'version': 'latest'}
+2023-02-24 12:35:31,119 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:35:31,309 DEBUG   SenderThread:15572 [sender.py:send():336] send: files
+2023-02-24 12:35:31,309 INFO    SenderThread:15572 [sender.py:_save_file():1321] saving file media\table\data_1_83bbf864290b80cf8624.table.json with policy now
+2023-02-24 12:35:31,310 DEBUG   SenderThread:15572 [sender.py:send():336] send: history
+2023-02-24 12:35:31,310 DEBUG   SenderThread:15572 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:35:31,312 INFO    SenderThread:15572 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:35:31,314 DEBUG   SenderThread:15572 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 12:35:31,522 INFO    Thread-17 :15572 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\files\config.yaml
+2023-02-24 12:35:31,523 INFO    Thread-17 :15572 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\files\wandb-summary.json
+2023-02-24 12:35:31,523 INFO    Thread-17 :15572 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\files\output.log
+2023-02-24 12:35:31,922 INFO    wandb-upload_0:15572 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp6t8dl2bjwandb\i6lmdb3o-media/table/data_1_83bbf864290b80cf8624.table.json
+2023-02-24 12:35:32,946 INFO    wandb-upload_3:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpnf0f3qdy
+2023-02-24 12:35:32,958 INFO    wandb-upload_6:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpvlb3t2fw
+2023-02-24 12:35:33,039 INFO    wandb-upload_5:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpapleb2zj
+2023-02-24 12:35:33,127 INFO    wandb-upload_12:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpxs31vn0_
+2023-02-24 12:35:33,135 INFO    wandb-upload_42:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpeb9u2xvd
+2023-02-24 12:35:33,150 INFO    wandb-upload_47:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp_awwobdf
+2023-02-24 12:35:33,158 INFO    wandb-upload_9:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp4sblghn0
+2023-02-24 12:35:33,181 INFO    wandb-upload_1:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpxyg2f2i8
+2023-02-24 12:35:33,216 INFO    wandb-upload_26:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp4oq45l_5
+2023-02-24 12:35:33,222 INFO    wandb-upload_50:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp82m3djia
+2023-02-24 12:35:33,229 INFO    wandb-upload_17:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpvv2j7w2d
+2023-02-24 12:35:33,230 INFO    wandb-upload_38:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpvgs6mdq5
+2023-02-24 12:35:33,234 INFO    wandb-upload_14:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpvkak6jzp
+2023-02-24 12:35:33,247 INFO    wandb-upload_16:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpxx0cb06y
+2023-02-24 12:35:33,248 INFO    wandb-upload_51:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpn_j7wq65
+2023-02-24 12:35:33,271 INFO    wandb-upload_2:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpuuyutj2m
+2023-02-24 12:35:33,281 INFO    wandb-upload_48:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp_jre653g
+2023-02-24 12:35:33,303 INFO    wandb-upload_19:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpr0_l7new
+2023-02-24 12:35:33,318 INFO    wandb-upload_10:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpj8in290_
+2023-02-24 12:35:33,336 INFO    wandb-upload_8:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpftwt1au2
+2023-02-24 12:35:33,339 INFO    wandb-upload_27:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpp88po67g
+2023-02-24 12:35:33,345 INFO    wandb-upload_36:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpyxl8otzu
+2023-02-24 12:35:33,346 INFO    wandb-upload_49:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpvjrl8haj
+2023-02-24 12:35:33,360 INFO    wandb-upload_15:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmppc5swpmj
+2023-02-24 12:35:33,380 INFO    wandb-upload_34:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp3dfqcbwf
+2023-02-24 12:35:33,397 INFO    wandb-upload_22:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpn1zhrffo
+2023-02-24 12:35:33,418 INFO    wandb-upload_0:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpl9qdh7jm
+2023-02-24 12:35:33,419 INFO    wandb-upload_41:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp57x8qo62
+2023-02-24 12:35:33,421 INFO    wandb-upload_11:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpdsidjmyp
+2023-02-24 12:35:33,437 INFO    wandb-upload_44:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpbi2omq5g
+2023-02-24 12:35:33,464 INFO    wandb-upload_21:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpngfcy3q_
+2023-02-24 12:35:33,472 INFO    wandb-upload_20:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpn04o5jib
+2023-02-24 12:35:33,472 INFO    wandb-upload_46:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpc0v8psjd
+2023-02-24 12:35:33,497 INFO    wandb-upload_23:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpfp8qykcj
+2023-02-24 12:35:33,497 INFO    wandb-upload_28:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpcjvtrajm
+2023-02-24 12:35:33,498 INFO    wandb-upload_33:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpr4pkkrwx
+2023-02-24 12:35:33,533 INFO    wandb-upload_31:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpdr1g3vd1
+2023-02-24 12:35:33,538 INFO    wandb-upload_43:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpma1xg3_u
+2023-02-24 12:35:33,548 INFO    wandb-upload_32:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp3hkb0ale
+2023-02-24 12:35:33,549 INFO    wandb-upload_45:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpcr698_zu
+2023-02-24 12:35:33,550 INFO    Thread-17 :15572 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\files\output.log
+2023-02-24 12:35:33,551 INFO    wandb-upload_37:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp_6t80466
+2023-02-24 12:35:33,596 INFO    wandb-upload_40:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpix2gv4gz
+2023-02-24 12:35:33,609 INFO    wandb-upload_30:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp58wporxo
+2023-02-24 12:35:33,621 INFO    wandb-upload_18:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpk5ksqd6f
+2023-02-24 12:35:33,653 INFO    wandb-upload_25:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpwq3wcp8w
+2023-02-24 12:35:33,665 INFO    wandb-upload_24:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpvlj9sr6h
+2023-02-24 12:35:33,674 INFO    wandb-upload_29:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp7y0u3fkl
+2023-02-24 12:35:33,692 INFO    wandb-upload_35:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpt9qvfep5
+2023-02-24 12:35:33,790 INFO    wandb-upload_13:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp9xic_9xa
+2023-02-24 12:35:33,978 INFO    wandb-upload_4:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpx3x84trd
+2023-02-24 12:35:35,775 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:35:40,843 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:35:41,577 INFO    wandb-upload_39:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpkxgl6643
+2023-02-24 12:35:45,906 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:35:50,949 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:35:52,149 DEBUG   SystemMonitor:15572 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 12:35:56,006 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:36:01,082 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:36:06,131 DEBUG   HandlerThread:15572 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:36:08,567 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:08,568 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:08,568 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:08,571 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:08,983 INFO    MainThread:15572 [internal.py:handle_exit():77] Internal process exited
+2023-02-24 12:36:10,573 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:10,573 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:10,576 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:10,576 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:12,604 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:12,604 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:12,605 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:12,608 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:13,707 WARNING StreamThr :15572 [internal.py:is_dead():415] Internal process exiting, parent pid 9368 disappeared
+2023-02-24 12:36:13,707 ERROR   StreamThr :15572 [internal.py:wandb_internal():153] Internal process shutdown.
+2023-02-24 12:36:14,247 INFO    HandlerThread:15572 [handler.py:finish():841] shutting down handler
+2023-02-24 12:36:14,435 INFO    WriterThread:15572 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\run-o6eekle7.wandb
+2023-02-24 12:36:14,621 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:14,627 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:14,627 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:14,628 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:16,637 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:16,637 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:16,637 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:16,641 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:18,648 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:18,648 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:18,648 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:18,651 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:20,648 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:20,648 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:20,664 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:20,668 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:22,663 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:22,663 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:22,679 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:22,683 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:24,676 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:24,676 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:24,693 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:24,696 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:26,688 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:26,688 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:26,704 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:26,708 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:28,702 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:28,702 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:28,718 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:28,721 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:30,715 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:30,715 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:30,730 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:30,733 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:32,728 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:32,728 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:32,744 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:32,747 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:34,740 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:34,740 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:34,756 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:34,760 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:36,755 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:36,755 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:36,770 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:36,773 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:38,812 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:38,812 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:38,818 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:38,978 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:40,812 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:40,812 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:40,984 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:40,987 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:42,820 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:42,820 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:42,992 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:42,995 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:44,834 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:44,834 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:45,008 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:45,011 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:46,849 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:46,849 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:47,020 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:47,023 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:48,854 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:48,855 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:49,024 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:49,027 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:50,862 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:50,862 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:51,033 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:51,036 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:52,871 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:52,871 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:53,043 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:53,045 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:54,884 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:54,884 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:55,056 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:55,059 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:56,891 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:56,891 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:57,062 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:57,065 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:58,903 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:58,903 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:59,075 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:36:59,077 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:00,910 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:00,910 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:01,083 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:01,085 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:02,919 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:02,919 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:03,156 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:03,160 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:04,930 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:04,930 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:05,162 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:05,165 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:06,933 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:06,933 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:07,167 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:07,170 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:08,944 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:08,944 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:09,175 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:09,178 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:10,950 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:10,950 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:11,182 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:11,185 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:12,956 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:12,956 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:13,188 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:13,191 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:14,961 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:14,961 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:15,197 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:15,200 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:16,973 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:16,974 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:17,208 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:17,210 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:18,979 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:18,979 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:19,211 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:19,214 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:20,985 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:20,986 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:21,220 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:21,223 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:22,990 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:22,990 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:23,224 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:23,227 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:24,994 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:24,994 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:25,229 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:25,232 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:27,002 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:27,002 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:27,233 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:27,236 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:29,004 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:29,004 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:29,237 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:29,240 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:31,008 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:31,008 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:31,242 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:31,245 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:33,018 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:33,018 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:33,254 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:33,257 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:35,028 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:35,028 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:35,263 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:35,266 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:37,040 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:37,040 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:37,272 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:37,275 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:39,042 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:39,042 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:39,290 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:39,292 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:41,047 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:41,047 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:41,297 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:41,300 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:43,057 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:43,057 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:43,307 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:43,309 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:45,057 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:45,057 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:45,321 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:45,324 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:47,060 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:47,060 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:47,325 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:47,328 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:49,068 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:49,068 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:49,331 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:49,333 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:51,080 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:51,080 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:51,343 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:51,347 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:53,085 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:53,085 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:53,349 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:53,352 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:55,092 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:55,092 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:55,354 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:55,357 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:57,096 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:57,096 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:57,358 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:57,361 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:59,103 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:59,103 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:59,370 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:37:59,373 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:01,110 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:01,110 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:01,374 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:01,377 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:03,119 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:03,119 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:03,382 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:03,384 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:05,126 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:05,126 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:05,390 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:05,393 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:07,135 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:07,135 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:07,399 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:07,402 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:09,143 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:09,143 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:09,407 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:09,410 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:11,152 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:11,152 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:11,417 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:11,420 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:13,161 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:13,161 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:13,426 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:13,429 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:15,172 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:15,172 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:15,438 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:15,441 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:17,178 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:17,178 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:17,442 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:17,445 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:19,186 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:19,186 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:19,450 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:19,452 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:21,188 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:21,188 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:21,467 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:21,470 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:23,191 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:23,191 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:23,471 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:23,474 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:25,193 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:25,193 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:25,488 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:25,491 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:27,207 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:27,207 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:27,501 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:27,504 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:29,213 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:29,229 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:29,509 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:29,512 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:31,235 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:31,250 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:31,513 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:31,516 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:33,277 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:33,277 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:33,526 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:33,529 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:35,278 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:35,278 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:35,541 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:35,544 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:37,299 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:37,299 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:37,550 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:37,553 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:39,301 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:39,301 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:39,564 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:39,567 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:41,308 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:41,308 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:41,570 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:41,573 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:43,313 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:43,313 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:43,578 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:43,581 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:45,321 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:45,321 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:45,586 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:45,588 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:47,328 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:47,328 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:47,593 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:47,596 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:49,333 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:49,333 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:49,597 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:49,600 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:51,342 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:51,342 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:51,606 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:51,609 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:53,345 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:53,345 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:53,610 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:53,613 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:55,350 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:55,350 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:55,614 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:55,617 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:57,359 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:57,359 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:57,623 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:57,625 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:59,365 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:59,365 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:59,629 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:38:59,632 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:01,374 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:01,374 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:01,637 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:01,639 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:03,377 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:03,378 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:03,643 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:03,646 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:05,381 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:05,381 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:05,660 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:05,662 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:07,381 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:07,381 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:07,662 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:07,665 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:09,389 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:09,390 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:09,669 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:09,672 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:11,394 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:11,394 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:11,673 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:11,675 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:13,405 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:13,405 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:13,685 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:13,703 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:15,415 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:15,415 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:15,710 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:15,713 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:17,419 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:17,420 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:17,730 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:17,732 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:19,425 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:19,425 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:19,749 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:19,767 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:21,436 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:21,436 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:21,777 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:21,780 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:23,441 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:23,441 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:23,816 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:23,818 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:25,448 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:25,448 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:25,822 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:25,825 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:27,456 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:27,456 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:27,844 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:27,847 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:29,463 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:29,463 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:29,849 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:29,852 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:31,472 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:31,472 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:31,859 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:31,862 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:33,486 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:33,487 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:33,876 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:33,879 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:35,495 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:35,496 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:35,885 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:35,888 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:37,505 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:37,505 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:37,895 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:37,898 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:39,514 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:39,514 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:39,901 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:39,904 ERROR   cpu       :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:41,525 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:41,525 ERROR   memory    :15572 [interfaces.py:monitor():129] Failed to sample metric: process no longer exists (pid=9368)
+2023-02-24 12:39:41,852 INFO    wandb-upload_7:15572 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmph8buxmt_
diff --git a/embeddings/wandb/run-20230224_123451-o6eekle7/logs/debug.log b/embeddings/wandb/run-20230224_123451-o6eekle7/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..d8408ff9aba88b060e42737e69cb77139c5df90f
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123451-o6eekle7/logs/debug.log
@@ -0,0 +1,28 @@
+2023-02-24 12:34:51,561 INFO    MainThread:9368 [wandb_setup.py:_flush():68] Configure stats pid to 9368
+2023-02-24 12:34:51,562 INFO    MainThread:9368 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 12:34:51,562 INFO    MainThread:9368 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 12:34:51,562 INFO    MainThread:9368 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 12:34:51,562 INFO    MainThread:9368 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 12:34:51,563 INFO    MainThread:9368 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\logs\debug.log
+2023-02-24 12:34:51,563 INFO    MainThread:9368 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123451-o6eekle7\logs\debug-internal.log
+2023-02-24 12:34:51,563 INFO    MainThread:9368 [wandb_init.py:init():532] calling init triggers
+2023-02-24 12:34:51,564 INFO    MainThread:9368 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 12:34:51,564 INFO    MainThread:9368 [wandb_init.py:init():588] starting backend
+2023-02-24 12:34:51,564 INFO    MainThread:9368 [wandb_init.py:init():592] setting up manager
+2023-02-24 12:34:51,566 INFO    MainThread:9368 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 12:34:51,572 INFO    MainThread:9368 [wandb_init.py:init():599] backend started and connected
+2023-02-24 12:34:51,574 INFO    MainThread:9368 [wandb_init.py:init():687] updated telemetry
+2023-02-24 12:34:51,638 INFO    MainThread:9368 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 12:34:52,002 INFO    MainThread:9368 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 12:34:52,086 INFO    MainThread:9368 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 12:34:52,086 INFO    MainThread:9368 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 12:34:52,264 INFO    MainThread:9368 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 12:34:52,264 INFO    MainThread:9368 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 12:34:52,264 INFO    MainThread:9368 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 12:34:52,265 INFO    MainThread:9368 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 12:34:52,265 INFO    MainThread:9368 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 12:35:09,498 INFO    MainThread:9368 [wandb_run.py:_finish():1854] finishing run g4nlp/heterogeneous-GAT-model/o6eekle7
+2023-02-24 12:35:09,498 INFO    MainThread:9368 [wandb_run.py:_atexit_cleanup():2083] got exitcode: 0
+2023-02-24 12:35:09,499 INFO    MainThread:9368 [wandb_run.py:_restore():2066] restore
+2023-02-24 12:35:09,499 INFO    MainThread:9368 [wandb_run.py:_restore():2072] restore done
diff --git a/embeddings/wandb/run-20230224_123451-o6eekle7/run-o6eekle7.wandb b/embeddings/wandb/run-20230224_123451-o6eekle7/run-o6eekle7.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..642b0dd3fac36e3b6551633db757b7da1ddff639
Binary files /dev/null and b/embeddings/wandb/run-20230224_123451-o6eekle7/run-o6eekle7.wandb differ
diff --git a/embeddings/wandb/run-20230224_123626-57neoiah/files/config.yaml b/embeddings/wandb/run-20230224_123626-57neoiah/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..cd4345e0d8878b73caeb489fbfd83facb7356622
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123626-57neoiah/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677242186.399291
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_123626-57neoiah/files/media/table/data_1_83bbf864290b80cf8624.table.json b/embeddings/wandb/run-20230224_123626-57neoiah/files/media/table/data_1_83bbf864290b80cf8624.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..8bcfad55bae51e5e9981553433c33755fe1ea836
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123626-57neoiah/files/media/table/data_1_83bbf864290b80cf8624.table.json
@@ -0,0 +1 @@
+{"columns": ["Graph", "Number of Nodes", "Number of Edges", "Label"], "data": [["Html", 5, 8, 1], ["Html", 74, 118, 1], ["Html", 3, 4, 1], ["Html", 70, 120, 1], ["Html", 41, 86, 1], ["Html", 11, 14, 1], ["Html", 17, 22, 1], ["Html", 51, 94, 1], ["Html", 58, 90, 1], ["Html", 39, 74, 1], ["Html", 74, 118, 1], ["Html", 38, 68, 1], ["Html", 4, 6, 1], ["Html", 4, 6, 1], ["Html", 84, 130, 1], ["Html", 21, 36, 1], ["Html", 18, 30, 1], ["Html", 55, 84, 1], ["Html", 74, 142, 1], ["Html", 26, 38, 1], ["Html", 3, 4, 1], ["Html", 73, 120, 1], ["Html", 34, 50, 1], ["Html", 48, 86, 1], ["Html", 62, 106, 1], ["Html", 44, 82, 1], ["Html", 10, 16, 1], ["Html", 9, 12, 1], ["Html", 52, 88, 0], ["Html", 16, 28, 1], ["Html", 70, 120, 1], ["Html", 29, 40, 1], ["Html", 78, 110, 1], ["Html", 32, 42, 1], ["Html", 46, 66, 1], ["Html", 11, 18, 1], ["Html", 75, 132, 1], ["Html", 56, 92, 1], ["Html", 45, 92, 1], ["Html", 48, 106, 1], ["Html", 41, 86, 1], ["Html", 4, 6, 1], ["Html", 26, 46, 1], ["Html", 21, 32, 1], ["Html", 61, 96, 1], ["Html", 51, 80, 1]]}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_123626-57neoiah/files/output.log b/embeddings/wandb/run-20230224_123626-57neoiah/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..4bce79c9ace7ef47c24d91bf6431f943a1a54bfd
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123626-57neoiah/files/output.log
@@ -0,0 +1,6 @@
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 159, in <module>
+    dataset_artifact.add_dir("dataset")
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_artifacts.py", line 438, in add_dir
+    raise ValueError("Path is not a directory: %s" % local_path)
+ValueError: Path is not a directory: dataset
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_123626-57neoiah/files/requirements.txt b/embeddings/wandb/run-20230224_123626-57neoiah/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123626-57neoiah/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_123626-57neoiah/files/wandb-metadata.json b/embeddings/wandb/run-20230224_123626-57neoiah/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..b4560900a0b434dce6ddf4fa0620ec18c8bae76c
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123626-57neoiah/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T12:36:27.003307",
+    "startedAt": "2023-02-24T12:36:26.385293",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 353.6946105957031
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_123626-57neoiah/files/wandb-summary.json b/embeddings/wandb/run-20230224_123626-57neoiah/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..ccc20fe68355026ab20a784ee9bc0517000a1e06
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123626-57neoiah/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677242197.1499362, "_runtime": 10.750645160675049, "_step": 1, "data": {"_type": "table-file", "sha256": "83bbf864290b80cf8624948cb39add689e6cf983395c372d7f2e0d6c0428060e", "size": 1043, "artifact_path": "wandb-client-artifact://9rgscyw9ndpwlef4nm421inq07u15fhsyeel02d56lvd9kwslgdtjfcb8ibsy1rgtmpyo65dtnbd3y3vy4fa3v7wu5vt24ph3oi1c3cawiw25drnmtxhzf85opgy4upk:latest/data.table.json", "_latest_artifact_path": "wandb-client-artifact://9rgscyw9ndpwlef4nm421inq07u15fhsyeel02d56lvd9kwslgdtjfcb8ibsy1rgtmpyo65dtnbd3y3vy4fa3v7wu5vt24ph3oi1c3cawiw25drnmtxhzf85opgy4upk:latest/data.table.json", "path": "media/table/data_1_83bbf864290b80cf8624.table.json", "ncols": 4, "nrows": 46}, "_wandb": {"runtime": 10}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_123626-57neoiah/logs/debug-internal.log b/embeddings/wandb/run-20230224_123626-57neoiah/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..861184f7caea88d1cbb3a83d61e02fe6125e80ed
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123626-57neoiah/logs/debug-internal.log
@@ -0,0 +1,240 @@
+2023-02-24 12:36:26,399 INFO    StreamThr :12268 [internal.py:wandb_internal():87] W&B internal server running at pid: 12268, started at: 2023-02-24 12:36:26.398291
+2023-02-24 12:36:26,401 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: status
+2023-02-24 12:36:26,402 INFO    WriterThread:12268 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\run-57neoiah.wandb
+2023-02-24 12:36:26,407 DEBUG   SenderThread:12268 [sender.py:send():336] send: header
+2023-02-24 12:36:26,459 DEBUG   SenderThread:12268 [sender.py:send():336] send: run
+2023-02-24 12:36:26,894 INFO    SenderThread:12268 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files
+2023-02-24 12:36:26,894 INFO    SenderThread:12268 [sender.py:_start_run_threads():1067] run started: 57neoiah with start time 1677242186.399291
+2023-02-24 12:36:26,894 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:36:26,895 INFO    SenderThread:12268 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:36:26,895 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 12:36:26,895 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: check_version
+2023-02-24 12:36:26,979 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 12:36:26,998 DEBUG   HandlerThread:12268 [system_info.py:__init__():31] System info init
+2023-02-24 12:36:26,998 DEBUG   HandlerThread:12268 [system_info.py:__init__():46] System info init done
+2023-02-24 12:36:26,998 INFO    HandlerThread:12268 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 12:36:26,998 INFO    SystemMonitor:12268 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 12:36:26,999 INFO    HandlerThread:12268 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 12:36:27,002 INFO    SystemMonitor:12268 [interfaces.py:start():168] Started cpu
+2023-02-24 12:36:27,003 DEBUG   HandlerThread:12268 [system_info.py:probe():195] Probing system
+2023-02-24 12:36:27,003 INFO    SystemMonitor:12268 [interfaces.py:start():168] Started disk
+2023-02-24 12:36:27,004 INFO    SystemMonitor:12268 [interfaces.py:start():168] Started memory
+2023-02-24 12:36:27,020 INFO    SystemMonitor:12268 [interfaces.py:start():168] Started network
+2023-02-24 12:36:27,021 DEBUG   HandlerThread:12268 [system_info.py:_probe_git():180] Probing git
+2023-02-24 12:36:27,123 DEBUG   HandlerThread:12268 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 12:36:27,123 DEBUG   HandlerThread:12268 [system_info.py:probe():241] Probing system done
+2023-02-24 12:36:27,123 DEBUG   HandlerThread:12268 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T12:36:27.003307', 'startedAt': '2023-02-24T12:36:26.385293', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 353.6946105957031}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 12:36:27,123 INFO    HandlerThread:12268 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 12:36:27,124 INFO    HandlerThread:12268 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 12:36:27,124 DEBUG   HandlerThread:12268 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 12:36:27,125 DEBUG   HandlerThread:12268 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 12:36:27,127 INFO    HandlerThread:12268 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 12:36:27,138 DEBUG   SenderThread:12268 [sender.py:send():336] send: files
+2023-02-24 12:36:27,138 INFO    SenderThread:12268 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 12:36:27,146 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 12:36:27,146 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 12:36:27,149 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 12:36:27,311 DEBUG   SenderThread:12268 [sender.py:send():336] send: telemetry
+2023-02-24 12:36:27,311 DEBUG   SenderThread:12268 [sender.py:send():336] send: history
+2023-02-24 12:36:27,311 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:36:27,312 INFO    SenderThread:12268 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:36:27,734 INFO    wandb-upload_0:12268 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpotclp870wandb\phn3bl48-wandb-metadata.json
+2023-02-24 12:36:27,918 INFO    Thread-17 :12268 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\wandb-metadata.json
+2023-02-24 12:36:27,919 INFO    Thread-17 :12268 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\wandb-summary.json
+2023-02-24 12:36:27,919 INFO    Thread-17 :12268 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\requirements.txt
+2023-02-24 12:36:32,368 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:36:36,821 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 12:36:36,821 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 12:36:37,036 INFO    Thread-17 :12268 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\media\table\data_1_83bbf864290b80cf8624.table.json
+2023-02-24 12:36:37,037 INFO    Thread-17 :12268 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\media
+2023-02-24 12:36:37,037 INFO    Thread-17 :12268 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\media\table
+2023-02-24 12:36:37,164 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 12:36:38,170 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:36:38,799 INFO    wandb-upload_0:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp1cbvc24d
+2023-02-24 12:36:43,597 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:36:48,651 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:36:49,136 INFO    wandb-upload_2:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpquksjg3s
+2023-02-24 12:36:49,165 INFO    wandb-upload_4:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpelt5b40_
+2023-02-24 12:36:49,306 INFO    wandb-upload_5:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpv6jg4pkm
+2023-02-24 12:36:49,564 INFO    wandb-upload_9:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpj5lfb8j2
+2023-02-24 12:36:50,123 INFO    wandb-upload_8:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpm7j77z98
+2023-02-24 12:36:50,572 INFO    wandb-upload_6:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpwkcjhrn_
+2023-02-24 12:36:50,947 INFO    wandb-upload_1:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpcyp_6d5o
+2023-02-24 12:36:51,291 INFO    wandb-upload_3:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp7wew2goo
+2023-02-24 12:36:51,864 INFO    wandb-upload_38:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpe_yaqe1_
+2023-02-24 12:36:52,494 INFO    wandb-upload_13:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp57ejuqb8
+2023-02-24 12:36:52,703 INFO    wandb-upload_11:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp5qe1l6s9
+2023-02-24 12:36:52,720 INFO    wandb-upload_46:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpqeyex9th
+2023-02-24 12:36:52,855 INFO    wandb-upload_41:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp3x5746s8
+2023-02-24 12:36:52,855 INFO    wandb-upload_30:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpga86w4yl
+2023-02-24 12:36:52,890 INFO    wandb-upload_43:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp0gkfwzx9
+2023-02-24 12:36:53,136 INFO    wandb-upload_31:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp2mbkkmhc
+2023-02-24 12:36:53,166 INFO    wandb-upload_25:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpdduww_7l
+2023-02-24 12:36:53,458 INFO    wandb-upload_23:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpqi7qws5n
+2023-02-24 12:36:53,714 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:36:53,727 INFO    wandb-upload_7:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpyp2tw0kv
+2023-02-24 12:36:53,759 INFO    wandb-upload_40:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpbgi3e7n7
+2023-02-24 12:36:53,792 INFO    wandb-upload_35:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp03rag5dk
+2023-02-24 12:36:53,803 INFO    wandb-upload_39:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp8vw1y6lk
+2023-02-24 12:36:53,848 INFO    wandb-upload_42:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmppdiisoz4
+2023-02-24 12:36:53,849 INFO    wandb-upload_15:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp_ugz2no7
+2023-02-24 12:36:53,849 INFO    wandb-upload_16:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmppee8mqr6
+2023-02-24 12:36:53,868 INFO    wandb-upload_12:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpzed77svk
+2023-02-24 12:36:53,915 INFO    wandb-upload_22:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp200dlgs4
+2023-02-24 12:36:53,921 INFO    wandb-upload_37:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp2y92wol4
+2023-02-24 12:36:53,927 INFO    wandb-upload_14:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpwht4tn2v
+2023-02-24 12:36:53,930 INFO    wandb-upload_21:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp2y3jc1ar
+2023-02-24 12:36:53,932 INFO    wandb-upload_28:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp73o9iy4_
+2023-02-24 12:36:53,935 INFO    wandb-upload_10:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpduyr60gi
+2023-02-24 12:36:53,935 INFO    wandb-upload_29:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpavxyp9ot
+2023-02-24 12:36:53,935 INFO    wandb-upload_24:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpca0mirlv
+2023-02-24 12:36:53,946 INFO    wandb-upload_18:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp24ntdzqn
+2023-02-24 12:36:53,947 INFO    wandb-upload_19:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpscji2apr
+2023-02-24 12:36:53,959 INFO    wandb-upload_36:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpvjl0h34a
+2023-02-24 12:36:53,960 INFO    wandb-upload_45:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpbs59o8yu
+2023-02-24 12:36:53,975 INFO    wandb-upload_20:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpe6mc1_zi
+2023-02-24 12:36:54,011 INFO    wandb-upload_44:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpu3xt3wj_
+2023-02-24 12:36:54,014 INFO    wandb-upload_26:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpy7tanw80
+2023-02-24 12:36:54,024 INFO    wandb-upload_27:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp1waabtf_
+2023-02-24 12:36:54,025 INFO    wandb-upload_17:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpwljka1_3
+2023-02-24 12:36:54,046 INFO    wandb-upload_34:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmprbgfzhnn
+2023-02-24 12:36:54,086 INFO    wandb-upload_32:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpwbowb73a
+2023-02-24 12:36:54,371 INFO    wandb-upload_33:12268 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpvxqpnob7
+2023-02-24 12:36:55,414 INFO    SenderThread:12268 [sender.py:send_request_log_artifact():1381] logged artifact run-57neoiah-data - {'id': 'QXJ0aWZhY3Q6MzgwNDAyMTk5', 'digest': '276807336a0d5710b9c19ab76dcb773f', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTkzNDg3', 'latestArtifact': None}, 'version': 'latest'}
+2023-02-24 12:36:55,415 DEBUG   SenderThread:12268 [sender.py:send():336] send: files
+2023-02-24 12:36:55,415 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:36:55,415 INFO    SenderThread:12268 [sender.py:_save_file():1321] saving file media\table\data_1_83bbf864290b80cf8624.table.json with policy now
+2023-02-24 12:36:55,416 DEBUG   SenderThread:12268 [sender.py:send():336] send: history
+2023-02-24 12:36:55,417 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 12:36:55,418 INFO    SenderThread:12268 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:36:55,421 DEBUG   SenderThread:12268 [sender.py:send():336] send: exit
+2023-02-24 12:36:55,422 INFO    SenderThread:12268 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 12:36:55,422 INFO    SenderThread:12268 [sender.py:send_exit():561] handling runtime: 10
+2023-02-24 12:36:55,426 INFO    SenderThread:12268 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:36:55,426 INFO    SenderThread:12268 [sender.py:send_exit():567] send defer
+2023-02-24 12:36:55,426 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:36:55,427 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:55,427 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 12:36:55,427 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:55,428 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 12:36:55,428 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 1
+2023-02-24 12:36:55,428 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:55,428 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 12:36:55,428 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:55,428 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 12:36:55,428 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 2
+2023-02-24 12:36:55,428 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:55,429 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 12:36:55,429 INFO    HandlerThread:12268 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 12:36:55,429 DEBUG   SystemMonitor:12268 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 12:36:55,429 INFO    HandlerThread:12268 [interfaces.py:finish():175] Joined cpu
+2023-02-24 12:36:55,430 DEBUG   SystemMonitor:12268 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 12:36:55,430 INFO    HandlerThread:12268 [interfaces.py:finish():175] Joined disk
+2023-02-24 12:36:55,430 DEBUG   SystemMonitor:12268 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 12:36:55,430 INFO    HandlerThread:12268 [interfaces.py:finish():175] Joined memory
+2023-02-24 12:36:55,431 INFO    HandlerThread:12268 [interfaces.py:finish():175] Joined network
+2023-02-24 12:36:55,432 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:55,432 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 12:36:55,432 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 3
+2023-02-24 12:36:55,432 DEBUG   SenderThread:12268 [sender.py:send():336] send: stats
+2023-02-24 12:36:55,432 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:55,432 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 12:36:55,433 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:55,433 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 12:36:55,433 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 4
+2023-02-24 12:36:55,433 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:55,433 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 12:36:55,434 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:55,434 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 12:36:55,434 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 5
+2023-02-24 12:36:55,434 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:55,434 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 12:36:55,435 DEBUG   SenderThread:12268 [sender.py:send():336] send: summary
+2023-02-24 12:36:55,436 INFO    SenderThread:12268 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 12:36:55,437 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:55,437 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 12:36:55,437 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 6
+2023-02-24 12:36:55,437 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:55,437 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 12:36:55,437 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:55,437 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 12:36:55,441 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 12:36:55,634 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 7
+2023-02-24 12:36:55,634 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:55,634 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 12:36:55,634 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:55,634 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 12:36:55,929 INFO    wandb-upload_0:12268 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpotclp870wandb\3lnm91wn-media/table/data_1_83bbf864290b80cf8624.table.json
+2023-02-24 12:36:56,331 INFO    Thread-17 :12268 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\config.yaml
+2023-02-24 12:36:56,331 INFO    Thread-17 :12268 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\wandb-summary.json
+2023-02-24 12:36:56,332 INFO    Thread-17 :12268 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\output.log
+2023-02-24 12:36:57,438 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 8
+2023-02-24 12:36:57,439 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:57,439 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 12:36:57,440 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:57,440 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 12:36:57,450 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 9
+2023-02-24 12:36:57,451 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:57,451 DEBUG   SenderThread:12268 [sender.py:send():336] send: artifact
+2023-02-24 12:36:57,451 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 12:36:58,282 INFO    SenderThread:12268 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'digest': '8077f65decb82fd65dc9936bbf393b39', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v2'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v2'}
+2023-02-24 12:36:58,282 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:58,282 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 12:36:58,282 INFO    SenderThread:12268 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 12:36:58,345 INFO    SenderThread:12268 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\output.log
+2023-02-24 12:36:58,345 INFO    SenderThread:12268 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files
+2023-02-24 12:36:58,345 INFO    SenderThread:12268 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\config.yaml config.yaml
+2023-02-24 12:36:58,346 INFO    SenderThread:12268 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\output.log output.log
+2023-02-24 12:36:58,348 INFO    SenderThread:12268 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\requirements.txt requirements.txt
+2023-02-24 12:36:58,352 INFO    SenderThread:12268 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 12:36:58,353 INFO    SenderThread:12268 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\wandb-summary.json wandb-summary.json
+2023-02-24 12:36:58,360 INFO    SenderThread:12268 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\media\table\data_1_83bbf864290b80cf8624.table.json media\table\data_1_83bbf864290b80cf8624.table.json
+2023-02-24 12:36:58,360 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 10
+2023-02-24 12:36:58,360 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:58,360 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 12:36:58,361 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:58,361 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 12:36:58,361 INFO    SenderThread:12268 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:36:58,778 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 12:36:58,887 INFO    wandb-upload_4:12268 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\config.yaml
+2023-02-24 12:36:58,914 INFO    wandb-upload_6:12268 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\requirements.txt
+2023-02-24 12:36:58,920 INFO    wandb-upload_9:12268 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\output.log
+2023-02-24 12:36:58,957 INFO    wandb-upload_3:12268 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\files\wandb-summary.json
+2023-02-24 12:36:59,169 INFO    Thread-16 :12268 [sender.py:transition_state():587] send defer: 11
+2023-02-24 12:36:59,169 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:59,170 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 12:36:59,170 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:59,170 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 12:36:59,170 INFO    SenderThread:12268 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 12:36:59,170 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 12
+2023-02-24 12:36:59,170 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:59,171 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 12:36:59,171 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:59,171 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 12:36:59,313 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 13
+2023-02-24 12:36:59,313 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:59,313 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 12:36:59,313 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:59,313 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 12:36:59,313 INFO    SenderThread:12268 [sender.py:transition_state():587] send defer: 14
+2023-02-24 12:36:59,314 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 12:36:59,314 INFO    HandlerThread:12268 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 12:36:59,314 DEBUG   SenderThread:12268 [sender.py:send():336] send: final
+2023-02-24 12:36:59,314 DEBUG   SenderThread:12268 [sender.py:send():336] send: footer
+2023-02-24 12:36:59,315 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: defer
+2023-02-24 12:36:59,315 INFO    SenderThread:12268 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 12:36:59,315 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 12:36:59,316 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 12:36:59,316 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 12:36:59,316 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 12:36:59,317 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 12:36:59,317 DEBUG   SenderThread:12268 [sender.py:send_request():363] send_request: server_info
+2023-02-24 12:36:59,485 INFO    MainThread:12268 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 12:36:59,486 INFO    MainThread:12268 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 12:36:59,486 INFO    MainThread:12268 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 12:36:59,486 DEBUG   HandlerThread:12268 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 12:36:59,486 INFO    HandlerThread:12268 [handler.py:finish():841] shutting down handler
+2023-02-24 12:37:00,319 INFO    WriterThread:12268 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\run-57neoiah.wandb
+2023-02-24 12:37:00,490 INFO    SenderThread:12268 [sender.py:finish():1493] shutting down sender
+2023-02-24 12:37:00,490 INFO    SenderThread:12268 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 12:37:00,490 INFO    SenderThread:12268 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_123626-57neoiah/logs/debug.log b/embeddings/wandb/run-20230224_123626-57neoiah/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..5a432d177833bc7a30aef21e3022befbf2a84720
--- /dev/null
+++ b/embeddings/wandb/run-20230224_123626-57neoiah/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 12:36:26,389 INFO    MainThread:3364 [wandb_setup.py:_flush():68] Configure stats pid to 3364
+2023-02-24 12:36:26,389 INFO    MainThread:3364 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 12:36:26,389 INFO    MainThread:3364 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 12:36:26,389 INFO    MainThread:3364 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 12:36:26,389 INFO    MainThread:3364 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 12:36:26,390 INFO    MainThread:3364 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\logs\debug.log
+2023-02-24 12:36:26,390 INFO    MainThread:3364 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_123626-57neoiah\logs\debug-internal.log
+2023-02-24 12:36:26,390 INFO    MainThread:3364 [wandb_init.py:init():532] calling init triggers
+2023-02-24 12:36:26,391 INFO    MainThread:3364 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 12:36:26,391 INFO    MainThread:3364 [wandb_init.py:init():588] starting backend
+2023-02-24 12:36:26,391 INFO    MainThread:3364 [wandb_init.py:init():592] setting up manager
+2023-02-24 12:36:26,393 INFO    MainThread:3364 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 12:36:26,398 INFO    MainThread:3364 [wandb_init.py:init():599] backend started and connected
+2023-02-24 12:36:26,400 INFO    MainThread:3364 [wandb_init.py:init():687] updated telemetry
+2023-02-24 12:36:26,458 INFO    MainThread:3364 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 12:36:26,894 INFO    MainThread:3364 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 12:36:26,971 INFO    MainThread:3364 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 12:36:26,972 INFO    MainThread:3364 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 12:36:27,146 INFO    MainThread:3364 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 12:36:27,146 INFO    MainThread:3364 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 12:36:27,147 INFO    MainThread:3364 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 12:36:27,147 INFO    MainThread:3364 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 12:36:27,148 INFO    MainThread:3364 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 12:37:00,581 WARNING MsgRouterThr:3364 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_123626-57neoiah/run-57neoiah.wandb b/embeddings/wandb/run-20230224_123626-57neoiah/run-57neoiah.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..53d8be59d2811d6bb9d2f9fef75805da4accce23
Binary files /dev/null and b/embeddings/wandb/run-20230224_123626-57neoiah/run-57neoiah.wandb differ
diff --git a/embeddings/wandb/run-20230224_162029-vccd62aj/files/config.yaml b/embeddings/wandb/run-20230224_162029-vccd62aj/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1a4cf545fb10071e02e9a99f55ff45f60e7299e8
--- /dev/null
+++ b/embeddings/wandb/run-20230224_162029-vccd62aj/files/config.yaml
@@ -0,0 +1,40 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677255630.003534
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_162029-vccd62aj/files/media/table/data_1_c3cb11fdddd10bb92618.table.json b/embeddings/wandb/run-20230224_162029-vccd62aj/files/media/table/data_1_c3cb11fdddd10bb92618.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..4802c81e15b183b7389e61da73caca83d1c6c92f
Binary files /dev/null and b/embeddings/wandb/run-20230224_162029-vccd62aj/files/media/table/data_1_c3cb11fdddd10bb92618.table.json differ
diff --git a/embeddings/wandb/run-20230224_162029-vccd62aj/files/output.log b/embeddings/wandb/run-20230224_162029-vccd62aj/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..f1a2c6cf325ad58fef060615987c802e0eb862e3
--- /dev/null
+++ b/embeddings/wandb/run-20230224_162029-vccd62aj/files/output.log
@@ -0,0 +1,54 @@
+wandb: WARNING Serializing object of type str that is 7167192 bytes
+wandb: WARNING Serializing object of type str that is 7193074 bytes
+wandb: WARNING Serializing object of type str that is 7166332 bytes
+wandb: WARNING Serializing object of type str that is 7193014 bytes
+wandb: WARNING Serializing object of type str that is 7184570 bytes
+wandb: WARNING Serializing object of type str that is 7168810 bytes
+wandb: WARNING Serializing object of type str that is 7170722 bytes
+wandb: WARNING Serializing object of type str that is 7186894 bytes
+wandb: WARNING Serializing object of type str that is 7186296 bytes
+wandb: WARNING Serializing object of type str that is 7182036 bytes
+wandb: WARNING Serializing object of type str that is 7193014 bytes
+wandb: WARNING Serializing object of type str that is 7180782 bytes
+wandb: WARNING Serializing object of type str that is 7166880 bytes
+wandb: WARNING Serializing object of type str that is 7166790 bytes
+wandb: WARNING Serializing object of type str that is 7195332 bytes
+wandb: WARNING Serializing object of type str that is 7173532 bytes
+wandb: WARNING Serializing object of type str that is 7172372 bytes
+wandb: WARNING Serializing object of type str that is 7185368 bytes
+wandb: WARNING Serializing object of type str that is 7197418 bytes
+wandb: WARNING Serializing object of type str that is 7174376 bytes
+wandb: WARNING Serializing object of type str that is 7166324 bytes
+wandb: WARNING Serializing object of type str that is 7192582 bytes
+wandb: WARNING Serializing object of type str that is 7177106 bytes
+wandb: WARNING Serializing object of type str that is 7185132 bytes
+wandb: WARNING Serializing object of type str that is 7189810 bytes
+wandb: WARNING Serializing object of type str that is 7183714 bytes
+wandb: WARNING Serializing object of type str that is 7169090 bytes
+wandb: WARNING Serializing object of type str that is 7168212 bytes
+wandb: WARNING Serializing object of type str that is 7185824 bytes
+wandb: WARNING Serializing object of type str that is 7171744 bytes
+wandb: WARNING Serializing object of type str that is 7192858 bytes
+wandb: WARNING Serializing object of type str that is 7175106 bytes
+wandb: WARNING Serializing object of type str that is 7191694 bytes
+wandb: WARNING Serializing object of type str that is 7175566 bytes
+wandb: WARNING Serializing object of type str that is 7181202 bytes
+wandb: WARNING Serializing object of type str that is 7169486 bytes
+wandb: WARNING Serializing object of type str that is 7195820 bytes
+wandb: WARNING Serializing object of type str that is 7186730 bytes
+wandb: WARNING Serializing object of type str that is 7185806 bytes
+wandb: WARNING Serializing object of type str that is 7188832 bytes
+wandb: WARNING Serializing object of type str that is 7184894 bytes
+wandb: WARNING Serializing object of type str that is 7166812 bytes
+wandb: WARNING Serializing object of type str that is 7175956 bytes
+wandb: WARNING Serializing object of type str that is 7172754 bytes
+wandb: WARNING Serializing object of type str that is 7188010 bytes
+wandb: WARNING Serializing object of type str that is 7184168 bytes
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 180, in <module>
+    init_wandb(wandb_project_name, wandb_run_name, dataset)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 151, in init_wandb
+    dataset_artifact.add_dir("static-dataset/")
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_artifacts.py", line 438, in add_dir
+    raise ValueError("Path is not a directory: %s" % local_path)
+ValueError: Path is not a directory: static-dataset/
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_162029-vccd62aj/files/requirements.txt b/embeddings/wandb/run-20230224_162029-vccd62aj/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_162029-vccd62aj/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_162029-vccd62aj/files/wandb-metadata.json b/embeddings/wandb/run-20230224_162029-vccd62aj/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..0bd5912f471321c5a7341d3aed9c4b901458198a
--- /dev/null
+++ b/embeddings/wandb/run-20230224_162029-vccd62aj/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T16:20:30.514694",
+    "startedAt": "2023-02-24T16:20:29.989535",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 354.44274520874023
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_162029-vccd62aj/files/wandb-summary.json b/embeddings/wandb/run-20230224_162029-vccd62aj/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..34239708ccff9f41c67c7ed2f841bb15c4123c46
--- /dev/null
+++ b/embeddings/wandb/run-20230224_162029-vccd62aj/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677255644.4992826, "_runtime": 14.495748519897461, "_step": 1, "data": {"_type": "table-file", "sha256": "c3cb11fdddd10bb926187c1e0c577457c5848c76e7e6e36c65175a0b52b6a67c", "size": 168983021, "artifact_path": "wandb-client-artifact://jcpflidy4f2acr68iwevu1albzd7qp5vhsk53nldictwi72u920bs15akxysoh2f5kiomuutv8gmcx8qdkizl9g1ion9xyv6w8t4sy4s8q0wzvlkgwt450z4a61gqpc9:latest/data.table.json", "_latest_artifact_path": "wandb-client-artifact://jcpflidy4f2acr68iwevu1albzd7qp5vhsk53nldictwi72u920bs15akxysoh2f5kiomuutv8gmcx8qdkizl9g1ion9xyv6w8t4sy4s8q0wzvlkgwt450z4a61gqpc9:latest/data.table.json", "path": "media/table/data_1_c3cb11fdddd10bb92618.table.json", "ncols": 4, "nrows": 46}, "_wandb": {"runtime": 14}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_162029-vccd62aj/logs/debug-internal.log b/embeddings/wandb/run-20230224_162029-vccd62aj/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..037d811230d730725014e74a1b195c6c0bd32ef2
--- /dev/null
+++ b/embeddings/wandb/run-20230224_162029-vccd62aj/logs/debug-internal.log
@@ -0,0 +1,233 @@
+2023-02-24 16:20:30,002 INFO    StreamThr :9776 [internal.py:wandb_internal():87] W&B internal server running at pid: 9776, started at: 2023-02-24 16:20:30.002535
+2023-02-24 16:20:30,004 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status
+2023-02-24 16:20:30,006 INFO    WriterThread:9776 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\run-vccd62aj.wandb
+2023-02-24 16:20:30,010 DEBUG   SenderThread:9776 [sender.py:send():336] send: header
+2023-02-24 16:20:30,058 DEBUG   SenderThread:9776 [sender.py:send():336] send: run
+2023-02-24 16:20:30,414 INFO    SenderThread:9776 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files
+2023-02-24 16:20:30,414 INFO    SenderThread:9776 [sender.py:_start_run_threads():1067] run started: vccd62aj with start time 1677255630.003534
+2023-02-24 16:20:30,414 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:20:30,415 INFO    SenderThread:9776 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:20:30,416 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 16:20:30,416 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: check_version
+2023-02-24 16:20:30,492 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 16:20:30,510 DEBUG   HandlerThread:9776 [system_info.py:__init__():31] System info init
+2023-02-24 16:20:30,510 DEBUG   HandlerThread:9776 [system_info.py:__init__():46] System info init done
+2023-02-24 16:20:30,510 INFO    HandlerThread:9776 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 16:20:30,510 INFO    SystemMonitor:9776 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 16:20:30,511 INFO    HandlerThread:9776 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 16:20:30,513 INFO    SystemMonitor:9776 [interfaces.py:start():168] Started cpu
+2023-02-24 16:20:30,514 DEBUG   HandlerThread:9776 [system_info.py:probe():195] Probing system
+2023-02-24 16:20:30,514 INFO    SystemMonitor:9776 [interfaces.py:start():168] Started disk
+2023-02-24 16:20:30,515 INFO    SystemMonitor:9776 [interfaces.py:start():168] Started memory
+2023-02-24 16:20:30,524 INFO    SystemMonitor:9776 [interfaces.py:start():168] Started network
+2023-02-24 16:20:30,533 DEBUG   HandlerThread:9776 [system_info.py:_probe_git():180] Probing git
+2023-02-24 16:20:30,626 DEBUG   HandlerThread:9776 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 16:20:30,626 DEBUG   HandlerThread:9776 [system_info.py:probe():241] Probing system done
+2023-02-24 16:20:30,626 DEBUG   HandlerThread:9776 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T16:20:30.514694', 'startedAt': '2023-02-24T16:20:29.989535', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 354.44274520874023}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 16:20:30,627 INFO    HandlerThread:9776 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 16:20:30,627 INFO    HandlerThread:9776 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 16:20:30,627 DEBUG   HandlerThread:9776 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 16:20:30,627 DEBUG   HandlerThread:9776 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 16:20:30,630 INFO    HandlerThread:9776 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 16:20:30,641 DEBUG   SenderThread:9776 [sender.py:send():336] send: files
+2023-02-24 16:20:30,642 INFO    SenderThread:9776 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 16:20:30,650 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 16:20:30,650 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 16:20:30,653 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 16:20:30,805 DEBUG   SenderThread:9776 [sender.py:send():336] send: telemetry
+2023-02-24 16:20:30,806 DEBUG   SenderThread:9776 [sender.py:send():336] send: history
+2023-02-24 16:20:30,806 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:20:30,807 INFO    SenderThread:9776 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:20:31,281 INFO    wandb-upload_0:9776 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpp9fhlrg0wandb\dlzsklpk-wandb-metadata.json
+2023-02-24 16:20:31,431 INFO    Thread-17 :9776 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\requirements.txt
+2023-02-24 16:20:31,431 INFO    Thread-17 :9776 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\wandb-metadata.json
+2023-02-24 16:20:31,431 INFO    Thread-17 :9776 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\wandb-summary.json
+2023-02-24 16:20:32,453 INFO    Thread-17 :9776 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\output.log
+2023-02-24 16:20:34,474 INFO    Thread-17 :9776 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\output.log
+2023-02-24 16:20:35,488 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:20:39,053 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 16:20:39,053 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 16:20:44,499 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 16:20:44,592 INFO    Thread-17 :9776 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\media\table\data_1_c3cb11fdddd10bb92618.table.json
+2023-02-24 16:20:44,592 INFO    Thread-17 :9776 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\media\table
+2023-02-24 16:20:44,593 INFO    Thread-17 :9776 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\media
+2023-02-24 16:20:45,510 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:20:50,544 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:20:55,608 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:00,643 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:05,714 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:10,760 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:15,797 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:20,862 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:25,922 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:30,536 DEBUG   SystemMonitor:9776 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 16:21:30,958 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:36,008 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:41,060 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:41,289 INFO    wandb-upload_0:9776 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpzgmyocx5
+2023-02-24 16:21:43,004 INFO    SenderThread:9776 [sender.py:send_request_log_artifact():1381] logged artifact run-vccd62aj-data - {'id': 'QXJ0aWZhY3Q6MzgwNTQ4OTA0', 'digest': 'e88bf598e75abc4df93d2db273aac03f', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjIwNTE3', 'latestArtifact': None}, 'version': 'latest'}
+2023-02-24 16:21:43,008 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:21:43,189 DEBUG   SenderThread:9776 [sender.py:send():336] send: files
+2023-02-24 16:21:43,189 INFO    SenderThread:9776 [sender.py:_save_file():1321] saving file media\table\data_1_c3cb11fdddd10bb92618.table.json with policy now
+2023-02-24 16:21:43,190 DEBUG   SenderThread:9776 [sender.py:send():336] send: history
+2023-02-24 16:21:43,190 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:21:43,192 INFO    SenderThread:9776 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:21:43,193 DEBUG   SenderThread:9776 [sender.py:send():336] send: exit
+2023-02-24 16:21:43,193 INFO    SenderThread:9776 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 16:21:43,194 INFO    SenderThread:9776 [sender.py:send_exit():561] handling runtime: 14
+2023-02-24 16:21:43,194 INFO    SenderThread:9776 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:21:43,195 INFO    SenderThread:9776 [sender.py:send_exit():567] send defer
+2023-02-24 16:21:43,195 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:21:43,195 DEBUG   SenderThread:9776 [sender.py:send():336] send: stats
+2023-02-24 16:21:43,196 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:21:43,196 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 16:21:43,196 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:21:43,197 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 16:21:43,197 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 1
+2023-02-24 16:21:43,197 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:21:43,197 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 16:21:43,197 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:21:43,198 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 16:21:43,198 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 2
+2023-02-24 16:21:43,198 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:21:43,198 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 16:21:43,198 INFO    HandlerThread:9776 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 16:21:43,199 DEBUG   SystemMonitor:9776 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 16:21:43,199 INFO    HandlerThread:9776 [interfaces.py:finish():175] Joined cpu
+2023-02-24 16:21:43,199 DEBUG   SystemMonitor:9776 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 16:21:43,200 INFO    HandlerThread:9776 [interfaces.py:finish():175] Joined disk
+2023-02-24 16:21:43,200 INFO    HandlerThread:9776 [interfaces.py:finish():175] Joined memory
+2023-02-24 16:21:43,200 INFO    HandlerThread:9776 [interfaces.py:finish():175] Joined network
+2023-02-24 16:21:43,201 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:21:43,201 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 16:21:43,201 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 3
+2023-02-24 16:21:43,201 DEBUG   SenderThread:9776 [sender.py:send():336] send: stats
+2023-02-24 16:21:43,202 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:21:43,202 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 16:21:43,202 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:21:43,202 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 16:21:43,202 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 4
+2023-02-24 16:21:43,202 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:21:43,203 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 16:21:43,203 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:21:43,203 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 16:21:43,203 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 5
+2023-02-24 16:21:43,203 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:21:43,204 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 16:21:43,204 DEBUG   SenderThread:9776 [sender.py:send():336] send: summary
+2023-02-24 16:21:43,205 INFO    SenderThread:9776 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:21:43,205 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:21:43,206 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 16:21:43,206 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 6
+2023-02-24 16:21:43,206 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:21:43,206 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 16:21:43,206 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:21:43,207 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 16:21:43,207 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 7
+2023-02-24 16:21:43,207 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:21:43,207 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:21:43,207 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 16:21:43,208 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:21:43,208 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 16:21:43,292 INFO    Thread-17 :9776 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\config.yaml
+2023-02-24 16:21:43,292 INFO    Thread-17 :9776 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\wandb-summary.json
+2023-02-24 16:21:44,824 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 8
+2023-02-24 16:21:44,824 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:21:44,824 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 16:21:44,825 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:21:44,825 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 16:21:44,839 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 9
+2023-02-24 16:21:44,839 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:21:44,839 DEBUG   SenderThread:9776 [sender.py:send():336] send: artifact
+2023-02-24 16:21:44,839 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 16:21:45,322 INFO    Thread-17 :9776 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\output.log
+2023-02-24 16:21:45,663 INFO    SenderThread:9776 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'digest': '8077f65decb82fd65dc9936bbf393b39', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v2'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v2'}
+2023-02-24 16:21:45,663 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:21:45,664 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 16:21:45,664 INFO    SenderThread:9776 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 16:21:46,132 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:46,337 INFO    SenderThread:9776 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files
+2023-02-24 16:21:46,337 INFO    SenderThread:9776 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\config.yaml config.yaml
+2023-02-24 16:21:46,338 INFO    SenderThread:9776 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\output.log output.log
+2023-02-24 16:21:46,339 INFO    SenderThread:9776 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\requirements.txt requirements.txt
+2023-02-24 16:21:46,345 INFO    SenderThread:9776 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 16:21:46,345 INFO    SenderThread:9776 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\wandb-summary.json wandb-summary.json
+2023-02-24 16:21:46,357 INFO    SenderThread:9776 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\media\table\data_1_c3cb11fdddd10bb92618.table.json media\table\data_1_c3cb11fdddd10bb92618.table.json
+2023-02-24 16:21:46,357 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 10
+2023-02-24 16:21:46,358 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:21:46,358 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 16:21:46,359 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:21:46,359 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 16:21:46,359 INFO    SenderThread:9776 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:21:46,822 INFO    wandb-upload_2:9776 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\output.log
+2023-02-24 16:21:46,877 INFO    wandb-upload_1:9776 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\config.yaml
+2023-02-24 16:21:46,906 INFO    wandb-upload_4:9776 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\wandb-summary.json
+2023-02-24 16:21:46,906 INFO    wandb-upload_3:9776 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\files\requirements.txt
+2023-02-24 16:21:48,377 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:21:51,170 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:53,444 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:21:56,230 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:21:58,489 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:22:01,291 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:22:03,539 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:22:06,319 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:22:08,590 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:22:11,382 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:22:13,645 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:22:16,452 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:22:18,695 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:22:21,516 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:22:23,750 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:22:26,554 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:22:28,800 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:22:31,612 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:22:33,852 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:22:36,667 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:22:38,890 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:22:41,719 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:22:43,934 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:22:46,767 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:22:48,980 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:22:51,828 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:22:54,034 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:22:56,880 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:22:59,071 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:23:00,376 INFO    wandb-upload_0:9776 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpp9fhlrg0wandb\ds0ziaam-media/table/data_1_c3cb11fdddd10bb92618.table.json
+2023-02-24 16:23:00,597 INFO    Thread-16 :9776 [sender.py:transition_state():587] send defer: 11
+2023-02-24 16:23:00,597 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:23:00,598 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 16:23:00,598 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:23:00,598 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 16:23:00,598 INFO    SenderThread:9776 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 16:23:00,598 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 12
+2023-02-24 16:23:00,598 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:23:00,598 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 16:23:00,599 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:23:00,599 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 16:23:00,736 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 13
+2023-02-24 16:23:00,736 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:23:00,736 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 16:23:00,736 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:23:00,736 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 16:23:00,736 INFO    SenderThread:9776 [sender.py:transition_state():587] send defer: 14
+2023-02-24 16:23:00,737 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:23:00,737 INFO    HandlerThread:9776 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 16:23:00,737 DEBUG   SenderThread:9776 [sender.py:send():336] send: final
+2023-02-24 16:23:00,737 DEBUG   SenderThread:9776 [sender.py:send():336] send: footer
+2023-02-24 16:23:00,738 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:23:00,738 INFO    SenderThread:9776 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 16:23:00,739 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:23:00,739 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 16:23:00,739 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 16:23:00,739 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 16:23:00,740 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:23:00,740 DEBUG   SenderThread:9776 [sender.py:send_request():363] send_request: server_info
+2023-02-24 16:23:00,906 INFO    MainThread:9776 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 16:23:00,906 INFO    MainThread:9776 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 16:23:00,907 INFO    MainThread:9776 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 16:23:00,907 DEBUG   HandlerThread:9776 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 16:23:00,907 INFO    HandlerThread:9776 [handler.py:finish():841] shutting down handler
+2023-02-24 16:23:01,754 INFO    WriterThread:9776 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\run-vccd62aj.wandb
+2023-02-24 16:23:01,912 INFO    SenderThread:9776 [sender.py:finish():1493] shutting down sender
+2023-02-24 16:23:01,912 INFO    SenderThread:9776 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:23:01,912 INFO    SenderThread:9776 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_162029-vccd62aj/logs/debug.log b/embeddings/wandb/run-20230224_162029-vccd62aj/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..03c1503d12942f92c28fb9ab8de9d077dbac7145
--- /dev/null
+++ b/embeddings/wandb/run-20230224_162029-vccd62aj/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 16:20:29,993 INFO    MainThread:10732 [wandb_setup.py:_flush():68] Configure stats pid to 10732
+2023-02-24 16:20:29,993 INFO    MainThread:10732 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 16:20:29,993 INFO    MainThread:10732 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 16:20:29,993 INFO    MainThread:10732 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 16:20:29,993 INFO    MainThread:10732 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 16:20:29,994 INFO    MainThread:10732 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\logs\debug.log
+2023-02-24 16:20:29,994 INFO    MainThread:10732 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_162029-vccd62aj\logs\debug-internal.log
+2023-02-24 16:20:29,994 INFO    MainThread:10732 [wandb_init.py:init():532] calling init triggers
+2023-02-24 16:20:29,994 INFO    MainThread:10732 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 16:20:29,994 INFO    MainThread:10732 [wandb_init.py:init():588] starting backend
+2023-02-24 16:20:29,994 INFO    MainThread:10732 [wandb_init.py:init():592] setting up manager
+2023-02-24 16:20:29,998 INFO    MainThread:10732 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 16:20:30,002 INFO    MainThread:10732 [wandb_init.py:init():599] backend started and connected
+2023-02-24 16:20:30,005 INFO    MainThread:10732 [wandb_init.py:init():687] updated telemetry
+2023-02-24 16:20:30,057 INFO    MainThread:10732 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 16:20:30,415 INFO    MainThread:10732 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 16:20:30,484 INFO    MainThread:10732 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 16:20:30,485 INFO    MainThread:10732 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 16:20:30,650 INFO    MainThread:10732 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 16:20:30,650 INFO    MainThread:10732 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 16:20:30,651 INFO    MainThread:10732 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 16:20:30,651 INFO    MainThread:10732 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 16:20:30,652 INFO    MainThread:10732 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 16:23:01,983 WARNING MsgRouterThr:10732 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_162029-vccd62aj/run-vccd62aj.wandb b/embeddings/wandb/run-20230224_162029-vccd62aj/run-vccd62aj.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..6b95c984687a6c0da98087aad70d8168d8db161c
Binary files /dev/null and b/embeddings/wandb/run-20230224_162029-vccd62aj/run-vccd62aj.wandb differ
diff --git a/embeddings/wandb/run-20230224_163621-cq006t1g/files/config.yaml b/embeddings/wandb/run-20230224_163621-cq006t1g/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..83e12de7a213b43318617b148be2f3aa203b89d4
--- /dev/null
+++ b/embeddings/wandb/run-20230224_163621-cq006t1g/files/config.yaml
@@ -0,0 +1,41 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677256581.387735
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 2
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_163621-cq006t1g/files/media/table/data_1_cfb2fac0b416dfd45d67.table.json b/embeddings/wandb/run-20230224_163621-cq006t1g/files/media/table/data_1_cfb2fac0b416dfd45d67.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..4f1746805e2f6d63a6613dd731baf8832f2907d7
Binary files /dev/null and b/embeddings/wandb/run-20230224_163621-cq006t1g/files/media/table/data_1_cfb2fac0b416dfd45d67.table.json differ
diff --git a/embeddings/wandb/run-20230224_163621-cq006t1g/files/output.log b/embeddings/wandb/run-20230224_163621-cq006t1g/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..f421b1cc2d4bcfc060e51b40b8e5f73fdb6a3c03
--- /dev/null
+++ b/embeddings/wandb/run-20230224_163621-cq006t1g/files/output.log
@@ -0,0 +1,47 @@
+wandb: WARNING Serializing object of type str that is 7167180 bytes
+wandb: WARNING Serializing object of type str that is 7193040 bytes
+wandb: WARNING Serializing object of type str that is 7166344 bytes
+wandb: WARNING Serializing object of type str that is 7192918 bytes
+wandb: WARNING Serializing object of type str that is 7184758 bytes
+wandb: WARNING Serializing object of type str that is 7168736 bytes
+wandb: WARNING Serializing object of type str that is 7170710 bytes
+wandb: WARNING Serializing object of type str that is 7186420 bytes
+wandb: WARNING Serializing object of type str that is 7186232 bytes
+wandb: WARNING Serializing object of type str that is 7181940 bytes
+wandb: WARNING Serializing object of type str that is 7192906 bytes
+wandb: WARNING Serializing object of type str that is 7180782 bytes
+wandb: WARNING Serializing object of type str that is 7166756 bytes
+wandb: WARNING Serializing object of type str that is 7166762 bytes
+wandb: WARNING Serializing object of type str that is 7195156 bytes
+wandb: WARNING Serializing object of type str that is 7173652 bytes
+wandb: WARNING Serializing object of type str that is 7172140 bytes
+wandb: WARNING Serializing object of type str that is 7185064 bytes
+wandb: WARNING Serializing object of type str that is 7197074 bytes
+wandb: WARNING Serializing object of type str that is 7174424 bytes
+wandb: WARNING Serializing object of type str that is 7166338 bytes
+wandb: WARNING Serializing object of type str that is 7192476 bytes
+wandb: WARNING Serializing object of type str that is 7177290 bytes
+wandb: WARNING Serializing object of type str that is 7184958 bytes
+wandb: WARNING Serializing object of type str that is 7189934 bytes
+wandb: WARNING Serializing object of type str that is 7183814 bytes
+wandb: WARNING Serializing object of type str that is 7169134 bytes
+wandb: WARNING Serializing object of type str that is 7168180 bytes
+wandb: WARNING Serializing object of type str that is 7185738 bytes
+wandb: WARNING Serializing object of type str that is 7171688 bytes
+wandb: WARNING Serializing object of type str that is 7192982 bytes
+wandb: WARNING Serializing object of type str that is 7174994 bytes
+wandb: WARNING Serializing object of type str that is 7191682 bytes
+wandb: WARNING Serializing object of type str that is 7175542 bytes
+wandb: WARNING Serializing object of type str that is 7181120 bytes
+wandb: WARNING Serializing object of type str that is 7169476 bytes
+wandb: WARNING Serializing object of type str that is 7195502 bytes
+wandb: WARNING Serializing object of type str that is 7186868 bytes
+wandb: WARNING Serializing object of type str that is 7185886 bytes
+wandb: WARNING Serializing object of type str that is 7188908 bytes
+wandb: WARNING Serializing object of type str that is 7184760 bytes
+wandb: WARNING Serializing object of type str that is 7166782 bytes
+wandb: WARNING Serializing object of type str that is 7176028 bytes
+wandb: WARNING Serializing object of type str that is 7172986 bytes
+wandb: WARNING Serializing object of type str that is 7187948 bytes
+wandb: WARNING Serializing object of type str that is 7184040 bytes
+wandb: Adding directory to artifact (.\..\data)... Done. 3.1s
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_163621-cq006t1g/files/requirements.txt b/embeddings/wandb/run-20230224_163621-cq006t1g/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_163621-cq006t1g/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_163621-cq006t1g/files/wandb-metadata.json b/embeddings/wandb/run-20230224_163621-cq006t1g/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..1ea60e28efd013a5a6dc47b2bf9469c6e36a6a88
--- /dev/null
+++ b/embeddings/wandb/run-20230224_163621-cq006t1g/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T16:36:21.941766",
+    "startedAt": "2023-02-24T16:36:21.373773",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 354.9479217529297
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_163621-cq006t1g/files/wandb-summary.json b/embeddings/wandb/run-20230224_163621-cq006t1g/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..70e1a1fd27d822c974e2457f592c16fd3e883a32
--- /dev/null
+++ b/embeddings/wandb/run-20230224_163621-cq006t1g/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677256596.095906, "_runtime": 14.708171129226685, "_step": 1, "data": {"_type": "table-file", "sha256": "cfb2fac0b416dfd45d67631cfd7479c3bd34c5cc336d0fa334085f46e026a5f0", "size": 168982027, "artifact_path": "wandb-client-artifact://n6idszh62xsljlmli4takciqj8jmnzh2u6mdl6swftgzc8p25qlirm52y03u35w2n33vw2ibrjv1cbd6drsbqwvy7q3zhujfpdaz04dyna2l6kmnqzex1uvj1i7zo34z:latest/data.table.json", "_latest_artifact_path": "wandb-client-artifact://n6idszh62xsljlmli4takciqj8jmnzh2u6mdl6swftgzc8p25qlirm52y03u35w2n33vw2ibrjv1cbd6drsbqwvy7q3zhujfpdaz04dyna2l6kmnqzex1uvj1i7zo34z:latest/data.table.json", "path": "media/table/data_1_cfb2fac0b416dfd45d67.table.json", "ncols": 4, "nrows": 46}, "_wandb": {"runtime": 17}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_163621-cq006t1g/logs/debug-internal.log b/embeddings/wandb/run-20230224_163621-cq006t1g/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..e2bb86e0788ff555d2c25c2b1074e606f389d06b
--- /dev/null
+++ b/embeddings/wandb/run-20230224_163621-cq006t1g/logs/debug-internal.log
@@ -0,0 +1,319 @@
+2023-02-24 16:36:21,386 INFO    StreamThr :1632 [internal.py:wandb_internal():87] W&B internal server running at pid: 1632, started at: 2023-02-24 16:36:21.385740
+2023-02-24 16:36:21,388 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: status
+2023-02-24 16:36:21,390 INFO    WriterThread:1632 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\run-cq006t1g.wandb
+2023-02-24 16:36:21,393 DEBUG   SenderThread:1632 [sender.py:send():336] send: header
+2023-02-24 16:36:21,443 DEBUG   SenderThread:1632 [sender.py:send():336] send: run
+2023-02-24 16:36:21,848 INFO    SenderThread:1632 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files
+2023-02-24 16:36:21,848 INFO    SenderThread:1632 [sender.py:_start_run_threads():1067] run started: cq006t1g with start time 1677256581.387735
+2023-02-24 16:36:21,848 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:36:21,848 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 16:36:21,849 INFO    SenderThread:1632 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:36:21,849 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: check_version
+2023-02-24 16:36:21,923 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 16:36:21,940 DEBUG   HandlerThread:1632 [system_info.py:__init__():31] System info init
+2023-02-24 16:36:21,940 DEBUG   HandlerThread:1632 [system_info.py:__init__():46] System info init done
+2023-02-24 16:36:21,940 INFO    HandlerThread:1632 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 16:36:21,941 INFO    SystemMonitor:1632 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 16:36:21,941 INFO    HandlerThread:1632 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 16:36:21,941 DEBUG   HandlerThread:1632 [system_info.py:probe():195] Probing system
+2023-02-24 16:36:21,944 INFO    SystemMonitor:1632 [interfaces.py:start():168] Started cpu
+2023-02-24 16:36:21,945 INFO    SystemMonitor:1632 [interfaces.py:start():168] Started disk
+2023-02-24 16:36:21,945 INFO    SystemMonitor:1632 [interfaces.py:start():168] Started memory
+2023-02-24 16:36:21,962 INFO    SystemMonitor:1632 [interfaces.py:start():168] Started network
+2023-02-24 16:36:21,963 DEBUG   HandlerThread:1632 [system_info.py:_probe_git():180] Probing git
+2023-02-24 16:36:22,057 DEBUG   HandlerThread:1632 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 16:36:22,057 DEBUG   HandlerThread:1632 [system_info.py:probe():241] Probing system done
+2023-02-24 16:36:22,057 DEBUG   HandlerThread:1632 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T16:36:21.941766', 'startedAt': '2023-02-24T16:36:21.373773', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 354.9479217529297}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 16:36:22,057 INFO    HandlerThread:1632 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 16:36:22,057 INFO    HandlerThread:1632 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 16:36:22,057 DEBUG   HandlerThread:1632 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 16:36:22,058 DEBUG   HandlerThread:1632 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 16:36:22,059 INFO    HandlerThread:1632 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 16:36:22,068 DEBUG   SenderThread:1632 [sender.py:send():336] send: files
+2023-02-24 16:36:22,068 INFO    SenderThread:1632 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 16:36:22,076 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 16:36:22,077 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 16:36:22,079 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 16:36:22,236 DEBUG   SenderThread:1632 [sender.py:send():336] send: telemetry
+2023-02-24 16:36:22,237 DEBUG   SenderThread:1632 [sender.py:send():336] send: history
+2023-02-24 16:36:22,237 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:36:22,238 INFO    SenderThread:1632 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:36:22,660 INFO    wandb-upload_0:1632 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp3i4_ckmhwandb\xru7c8ec-wandb-metadata.json
+2023-02-24 16:36:22,863 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\wandb-metadata.json
+2023-02-24 16:36:22,864 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\requirements.txt
+2023-02-24 16:36:22,864 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\wandb-summary.json
+2023-02-24 16:36:23,877 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\output.log
+2023-02-24 16:36:25,891 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\output.log
+2023-02-24 16:36:26,749 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:36:30,492 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 16:36:30,493 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 16:36:35,998 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\media\table\data_1_cfb2fac0b416dfd45d67.table.json
+2023-02-24 16:36:35,998 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\media
+2023-02-24 16:36:35,999 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\media\table
+2023-02-24 16:36:36,096 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 16:36:37,090 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:36:37,091 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:36:39,406 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 16:36:40,414 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:36:45,463 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:36:50,516 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:36:55,579 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:37:00,642 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:37:05,695 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:37:10,748 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:37:15,790 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:37:20,848 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:37:21,972 DEBUG   SystemMonitor:1632 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 16:37:25,919 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:37:28,676 INFO    wandb-upload_0:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpga4869wz
+2023-02-24 16:37:29,606 INFO    SenderThread:1632 [sender.py:send_request_log_artifact():1381] logged artifact run-cq006t1g-data - {'id': 'QXJ0aWZhY3Q6MzgwNTYzNzg3', 'digest': '8bd595700cb0ca2c01ac794484418a09', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjIzMDU5', 'latestArtifact': None}, 'version': 'latest'}
+2023-02-24 16:37:29,611 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:37:29,798 DEBUG   SenderThread:1632 [sender.py:send():336] send: files
+2023-02-24 16:37:29,798 INFO    SenderThread:1632 [sender.py:_save_file():1321] saving file media\table\data_1_cfb2fac0b416dfd45d67.table.json with policy now
+2023-02-24 16:37:29,798 DEBUG   SenderThread:1632 [sender.py:send():336] send: history
+2023-02-24 16:37:29,799 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:37:29,801 INFO    SenderThread:1632 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:37:29,801 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 16:37:30,603 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\wandb-summary.json
+2023-02-24 16:37:30,604 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\config.yaml
+2023-02-24 16:37:30,977 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:37:31,762 INFO    wandb-upload_4:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp2zbrdy_o
+2023-02-24 16:37:31,902 INFO    wandb-upload_52:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp4td1n2h6
+2023-02-24 16:37:31,903 INFO    wandb-upload_7:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp89gvaa2n
+2023-02-24 16:37:31,943 INFO    wandb-upload_20:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpgtgqrnb7
+2023-02-24 16:37:31,947 INFO    wandb-upload_3:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp9g4ppung
+2023-02-24 16:37:31,985 INFO    wandb-upload_10:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp0seg915u
+2023-02-24 16:37:31,986 INFO    wandb-upload_9:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp2rmc_uu7
+2023-02-24 16:37:32,024 INFO    wandb-upload_12:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpzssaggje
+2023-02-24 16:37:32,027 INFO    wandb-upload_16:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpe8atr9pd
+2023-02-24 16:37:32,030 INFO    wandb-upload_8:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmprcqdcpcw
+2023-02-24 16:37:32,030 INFO    wandb-upload_6:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpfppm9e5f
+2023-02-24 16:37:32,051 INFO    wandb-upload_46:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpqxxzs0yi
+2023-02-24 16:37:32,059 INFO    wandb-upload_2:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpcjki6i7q
+2023-02-24 16:37:32,079 INFO    wandb-upload_48:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpdz8m974x
+2023-02-24 16:37:32,097 INFO    wandb-upload_22:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpkoiqh81x
+2023-02-24 16:37:32,107 INFO    wandb-upload_14:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmphfssez3z
+2023-02-24 16:37:32,120 INFO    wandb-upload_18:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpwag4jbqj
+2023-02-24 16:37:32,140 INFO    wandb-upload_44:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp25hq6bk9
+2023-02-24 16:37:32,143 INFO    wandb-upload_38:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpvlrv9n_t
+2023-02-24 16:37:32,155 INFO    wandb-upload_24:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpc7h8nrb5
+2023-02-24 16:37:32,163 INFO    wandb-upload_5:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmppbk2jyi5
+2023-02-24 16:37:32,187 INFO    wandb-upload_1:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp64p28q41
+2023-02-24 16:37:32,188 INFO    wandb-upload_26:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpnb1bxad_
+2023-02-24 16:37:32,196 INFO    wandb-upload_43:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpvjw5p5h3
+2023-02-24 16:37:32,202 INFO    wandb-upload_11:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpge9hqwlz
+2023-02-24 16:37:32,213 INFO    wandb-upload_28:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp0sff4x8o
+2023-02-24 16:37:32,213 INFO    wandb-upload_32:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpwkn8w1xw
+2023-02-24 16:37:32,214 INFO    wandb-upload_42:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpz1c9z_9j
+2023-02-24 16:37:32,227 INFO    wandb-upload_23:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp9si60xcs
+2023-02-24 16:37:32,236 INFO    wandb-upload_30:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp7w_jbeot
+2023-02-24 16:37:32,255 INFO    wandb-upload_19:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpu8bfdxv9
+2023-02-24 16:37:32,255 INFO    wandb-upload_15:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpule1u6du
+2023-02-24 16:37:32,256 INFO    wandb-upload_35:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpnm339b41
+2023-02-24 16:37:32,278 INFO    wandb-upload_36:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmphodwvep9
+2023-02-24 16:37:32,279 INFO    wandb-upload_34:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpwowbaa25
+2023-02-24 16:37:32,287 INFO    wandb-upload_40:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpuxctboyq
+2023-02-24 16:37:32,307 INFO    wandb-upload_27:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmprcarr128
+2023-02-24 16:37:32,325 INFO    wandb-upload_17:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpcsy493vl
+2023-02-24 16:37:32,344 INFO    wandb-upload_13:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpwq637lrd
+2023-02-24 16:37:32,365 INFO    wandb-upload_37:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpzu8jjeep
+2023-02-24 16:37:32,366 INFO    wandb-upload_47:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpv97xr9mh
+2023-02-24 16:37:32,416 INFO    wandb-upload_45:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpes1qk0qj
+2023-02-24 16:37:32,417 INFO    wandb-upload_29:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpkg1yhz9s
+2023-02-24 16:37:32,440 INFO    wandb-upload_39:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpv0eixqsp
+2023-02-24 16:37:32,492 INFO    wandb-upload_31:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpd47qiitj
+2023-02-24 16:37:32,505 INFO    wandb-upload_33:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpsmzq6dpr
+2023-02-24 16:37:32,529 INFO    wandb-upload_41:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpjfd1r9g0
+2023-02-24 16:37:32,546 INFO    wandb-upload_25:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpxj_kyx_9
+2023-02-24 16:37:32,566 INFO    wandb-upload_21:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp8ymn1h8i
+2023-02-24 16:37:32,652 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\output.log
+2023-02-24 16:37:32,750 INFO    wandb-upload_51:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpesol_azu
+2023-02-24 16:37:36,034 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:37:40,039 INFO    wandb-upload_50:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpdb4zh8sg
+2023-02-24 16:37:41,093 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:37:46,133 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:37:51,195 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:37:56,247 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:38:01,312 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:38:06,364 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:38:11,427 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:38:16,489 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:38:21,534 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:38:26,584 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:38:31,632 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:38:32,865 INFO    wandb-upload_0:1632 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp3i4_ckmhwandb\iwszd2xo-media/table/data_1_cfb2fac0b416dfd45d67.table.json
+2023-02-24 16:38:36,689 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:38:41,742 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:38:46,797 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:38:51,861 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:38:56,904 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:39:01,944 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:39:06,998 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:39:12,043 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:39:17,091 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:39:22,162 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:39:27,195 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:39:32,253 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:39:37,306 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:39:42,364 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:39:47,431 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:39:52,548 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:39:57,606 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:40:02,649 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:40:07,699 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:40:12,757 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:40:17,796 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:40:22,866 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:40:27,913 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:40:32,966 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:40:38,028 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:40:43,091 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:40:48,144 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:40:53,203 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:40:58,260 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:41:03,321 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:41:08,387 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:41:13,449 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:41:18,505 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:41:23,568 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:41:28,624 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:41:33,679 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:41:38,740 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:41:43,793 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:41:44,017 INFO    wandb-upload_49:1632 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp7mt7w2fo
+2023-02-24 16:41:45,027 INFO    SenderThread:1632 [sender.py:send_request_log_artifact():1381] logged artifact static-graphs - {'id': 'QXJ0aWZhY3Q6MzgwNTY0ODAy', 'digest': '64a712122c812b4423fcf560ca60f704', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjIzMTU5', 'latestArtifact': None}, 'version': 'latest'}
+2023-02-24 16:41:45,027 DEBUG   SenderThread:1632 [sender.py:send():336] send: telemetry
+2023-02-24 16:41:45,027 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:41:45,028 DEBUG   SenderThread:1632 [sender.py:send():336] send: exit
+2023-02-24 16:41:45,028 INFO    SenderThread:1632 [sender.py:send_exit():559] handling exit code: 0
+2023-02-24 16:41:45,028 INFO    SenderThread:1632 [sender.py:send_exit():561] handling runtime: 17
+2023-02-24 16:41:45,030 INFO    SenderThread:1632 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:41:45,031 INFO    SenderThread:1632 [sender.py:send_exit():567] send defer
+2023-02-24 16:41:45,031 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:41:45,031 DEBUG   SenderThread:1632 [sender.py:send():336] send: stats
+2023-02-24 16:41:45,031 DEBUG   SenderThread:1632 [sender.py:send():336] send: stats
+2023-02-24 16:41:45,032 DEBUG   SenderThread:1632 [sender.py:send():336] send: stats
+2023-02-24 16:41:45,032 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:45,032 DEBUG   SenderThread:1632 [sender.py:send():336] send: stats
+2023-02-24 16:41:45,032 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 16:41:45,033 DEBUG   SenderThread:1632 [sender.py:send():336] send: stats
+2023-02-24 16:41:45,033 DEBUG   SenderThread:1632 [sender.py:send():336] send: stats
+2023-02-24 16:41:45,033 DEBUG   SenderThread:1632 [sender.py:send():336] send: stats
+2023-02-24 16:41:45,034 DEBUG   SenderThread:1632 [sender.py:send():336] send: stats
+2023-02-24 16:41:45,034 DEBUG   SenderThread:1632 [sender.py:send():336] send: stats
+2023-02-24 16:41:45,034 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:45,034 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 16:41:45,034 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 1
+2023-02-24 16:41:45,035 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:45,035 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 16:41:45,035 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:45,035 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 16:41:45,035 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 2
+2023-02-24 16:41:45,035 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:45,035 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 16:41:45,035 INFO    HandlerThread:1632 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 16:41:45,037 DEBUG   SystemMonitor:1632 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 16:41:45,037 INFO    HandlerThread:1632 [interfaces.py:finish():175] Joined cpu
+2023-02-24 16:41:45,037 DEBUG   SystemMonitor:1632 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 16:41:45,038 INFO    HandlerThread:1632 [interfaces.py:finish():175] Joined disk
+2023-02-24 16:41:45,038 INFO    HandlerThread:1632 [interfaces.py:finish():175] Joined memory
+2023-02-24 16:41:45,038 INFO    HandlerThread:1632 [interfaces.py:finish():175] Joined network
+2023-02-24 16:41:45,039 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:45,039 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 16:41:45,039 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 3
+2023-02-24 16:41:45,039 DEBUG   SenderThread:1632 [sender.py:send():336] send: stats
+2023-02-24 16:41:45,039 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:45,039 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 16:41:45,040 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:45,040 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 16:41:45,040 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 4
+2023-02-24 16:41:45,040 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:45,040 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 16:41:45,040 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:45,040 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 16:41:45,040 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 5
+2023-02-24 16:41:45,040 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:45,041 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 16:41:45,041 DEBUG   SenderThread:1632 [sender.py:send():336] send: summary
+2023-02-24 16:41:45,042 INFO    SenderThread:1632 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:41:45,042 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:45,042 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 16:41:45,042 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 6
+2023-02-24 16:41:45,042 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:45,043 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 16:41:45,043 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:45,043 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 16:41:45,047 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:41:45,267 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 7
+2023-02-24 16:41:45,267 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:45,267 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 16:41:45,268 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:45,268 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 16:41:45,556 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 8
+2023-02-24 16:41:45,556 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:45,556 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 16:41:45,556 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:45,556 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 16:41:45,566 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 9
+2023-02-24 16:41:45,567 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:45,567 DEBUG   SenderThread:1632 [sender.py:send():336] send: artifact
+2023-02-24 16:41:45,567 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 16:41:45,572 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\wandb-summary.json
+2023-02-24 16:41:45,572 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\config.yaml
+2023-02-24 16:41:45,573 INFO    Thread-17 :1632 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\output.log
+2023-02-24 16:41:46,293 INFO    SenderThread:1632 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'digest': '8077f65decb82fd65dc9936bbf393b39', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v2'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v2'}
+2023-02-24 16:41:46,293 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:46,293 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 16:41:46,293 INFO    SenderThread:1632 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 16:41:46,575 INFO    SenderThread:1632 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files
+2023-02-24 16:41:46,575 INFO    SenderThread:1632 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\config.yaml config.yaml
+2023-02-24 16:41:46,575 INFO    SenderThread:1632 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\output.log output.log
+2023-02-24 16:41:46,576 INFO    SenderThread:1632 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\requirements.txt requirements.txt
+2023-02-24 16:41:46,579 INFO    SenderThread:1632 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 16:41:46,581 INFO    SenderThread:1632 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\wandb-summary.json wandb-summary.json
+2023-02-24 16:41:46,588 INFO    SenderThread:1632 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\media\table\data_1_cfb2fac0b416dfd45d67.table.json media\table\data_1_cfb2fac0b416dfd45d67.table.json
+2023-02-24 16:41:46,588 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 10
+2023-02-24 16:41:46,589 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:46,589 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 16:41:46,590 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:46,590 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 16:41:46,590 INFO    SenderThread:1632 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:41:47,092 INFO    wandb-upload_7:1632 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\output.log
+2023-02-24 16:41:47,138 INFO    wandb-upload_9:1632 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\wandb-summary.json
+2023-02-24 16:41:47,148 INFO    wandb-upload_4:1632 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\config.yaml
+2023-02-24 16:41:47,171 INFO    wandb-upload_3:1632 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\files\requirements.txt
+2023-02-24 16:41:47,380 INFO    Thread-16 :1632 [sender.py:transition_state():587] send defer: 11
+2023-02-24 16:41:47,380 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:47,381 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 16:41:47,381 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:47,381 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 16:41:47,381 INFO    SenderThread:1632 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 16:41:47,381 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 12
+2023-02-24 16:41:47,381 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:47,381 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 16:41:47,382 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:47,382 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 16:41:47,833 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 13
+2023-02-24 16:41:47,834 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:47,834 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 16:41:47,834 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:47,834 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 16:41:47,834 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 14
+2023-02-24 16:41:47,835 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:47,835 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 16:41:47,835 DEBUG   SenderThread:1632 [sender.py:send():336] send: final
+2023-02-24 16:41:47,835 DEBUG   SenderThread:1632 [sender.py:send():336] send: footer
+2023-02-24 16:41:47,835 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:47,835 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 16:41:47,836 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:41:47,837 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 16:41:47,837 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 16:41:47,837 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 16:41:47,838 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:41:47,838 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: server_info
+2023-02-24 16:41:47,986 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 16:41:47,986 INFO    HandlerThread:1632 [handler.py:finish():841] shutting down handler
+2023-02-24 16:41:48,847 INFO    WriterThread:1632 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\run-cq006t1g.wandb
+2023-02-24 16:41:48,987 INFO    SenderThread:1632 [sender.py:finish():1493] shutting down sender
+2023-02-24 16:41:48,987 INFO    SenderThread:1632 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:41:48,987 INFO    SenderThread:1632 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_163621-cq006t1g/logs/debug.log b/embeddings/wandb/run-20230224_163621-cq006t1g/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..884a5471be8b3a503d65d45ccfb5493e9a5d2f17
--- /dev/null
+++ b/embeddings/wandb/run-20230224_163621-cq006t1g/logs/debug.log
@@ -0,0 +1,31 @@
+2023-02-24 16:36:21,376 INFO    MainThread:17260 [wandb_setup.py:_flush():68] Configure stats pid to 17260
+2023-02-24 16:36:21,376 INFO    MainThread:17260 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 16:36:21,376 INFO    MainThread:17260 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 16:36:21,376 INFO    MainThread:17260 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 16:36:21,376 INFO    MainThread:17260 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 16:36:21,377 INFO    MainThread:17260 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\logs\debug.log
+2023-02-24 16:36:21,378 INFO    MainThread:17260 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_163621-cq006t1g\logs\debug-internal.log
+2023-02-24 16:36:21,378 INFO    MainThread:17260 [wandb_init.py:init():532] calling init triggers
+2023-02-24 16:36:21,378 INFO    MainThread:17260 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 16:36:21,378 INFO    MainThread:17260 [wandb_init.py:init():588] starting backend
+2023-02-24 16:36:21,378 INFO    MainThread:17260 [wandb_init.py:init():592] setting up manager
+2023-02-24 16:36:21,381 INFO    MainThread:17260 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 16:36:21,386 INFO    MainThread:17260 [wandb_init.py:init():599] backend started and connected
+2023-02-24 16:36:21,388 INFO    MainThread:17260 [wandb_init.py:init():687] updated telemetry
+2023-02-24 16:36:21,442 INFO    MainThread:17260 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 16:36:21,848 INFO    MainThread:17260 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 16:36:21,915 INFO    MainThread:17260 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 16:36:21,915 INFO    MainThread:17260 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 16:36:22,077 INFO    MainThread:17260 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 16:36:22,077 INFO    MainThread:17260 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 16:36:22,077 INFO    MainThread:17260 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 16:36:22,078 INFO    MainThread:17260 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 16:36:22,078 INFO    MainThread:17260 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 16:36:39,409 INFO    MainThread:17260 [wandb_run.py:_finish():1854] finishing run g4nlp/heterogeneous-GAT-model/cq006t1g
+2023-02-24 16:36:39,409 INFO    MainThread:17260 [wandb_run.py:_atexit_cleanup():2083] got exitcode: 0
+2023-02-24 16:36:39,409 INFO    MainThread:17260 [wandb_run.py:_restore():2066] restore
+2023-02-24 16:36:39,409 INFO    MainThread:17260 [wandb_run.py:_restore():2072] restore done
+2023-02-24 16:41:48,987 INFO    MainThread:17260 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 16:41:48,988 INFO    MainThread:17260 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 16:41:48,994 INFO    MainThread:17260 [wandb_run.py:_footer_sync_info():3398] logging synced files
diff --git a/embeddings/wandb/run-20230224_163621-cq006t1g/run-cq006t1g.wandb b/embeddings/wandb/run-20230224_163621-cq006t1g/run-cq006t1g.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..004f9efc6d76cbb79d6a52cb4db60bfc7d3d03c8
Binary files /dev/null and b/embeddings/wandb/run-20230224_163621-cq006t1g/run-cq006t1g.wandb differ
diff --git a/embeddings/wandb/run-20230224_164149-piz6xg4i/files/config.yaml b/embeddings/wandb/run-20230224_164149-piz6xg4i/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e6354fa6d12359c10f96193164bfe7aa036966c8
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164149-piz6xg4i/files/config.yaml
@@ -0,0 +1,39 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677256909.015496
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_164149-piz6xg4i/files/output.log b/embeddings/wandb/run-20230224_164149-piz6xg4i/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..e9fc6bc8e4301f0c3e78e6322f92e601b444b22f
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164149-piz6xg4i/files/output.log
@@ -0,0 +1,32 @@
+wandb: ERROR Project g4nlp/static-dataset does not contain artifact: "static-graphs"
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\normalize.py", line 26, in wrapper
+    return func(*args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 955, in artifact
+    artifact = Artifact(self.client, entity, project, artifact_name)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 4368, in __init__
+    self._load()
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 5097, in _load
+    raise ValueError(
+ValueError: Project g4nlp/static-dataset does not contain artifact: "static-graphs"
+During handling of the above exception, another exception occurred:
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 181, in <module>
+    start_wandb_for_training(wandb_project_name)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 159, in start_wandb_for_training
+    wandb.use_artifact("static-dataset/static-graphs")
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 334, in wrapper
+    return func(self, *args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 2635, in use_artifact
+    artifact = public_api.artifact(type=type, name=name)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\normalize.py", line 64, in wrapper
+    raise CommError(message, err).with_traceback(sys.exc_info()[2])
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\normalize.py", line 26, in wrapper
+    return func(*args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 955, in artifact
+    artifact = Artifact(self.client, entity, project, artifact_name)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 4368, in __init__
+    self._load()
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 5097, in _load
+    raise ValueError(
+wandb.errors.CommError: Project g4nlp/static-dataset does not contain artifact: "static-graphs"
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_164149-piz6xg4i/files/requirements.txt b/embeddings/wandb/run-20230224_164149-piz6xg4i/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164149-piz6xg4i/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_164149-piz6xg4i/files/wandb-metadata.json b/embeddings/wandb/run-20230224_164149-piz6xg4i/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..80e224fad4df66ff101559bc60447b2f9326ce2c
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164149-piz6xg4i/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T16:41:50.462020",
+    "startedAt": "2023-02-24T16:41:49.004498",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 355.65296936035156
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_164149-piz6xg4i/files/wandb-summary.json b/embeddings/wandb/run-20230224_164149-piz6xg4i/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..fe9e22cf416d08fa3b43b9f0c278f2270e8d86cd
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164149-piz6xg4i/files/wandb-summary.json
@@ -0,0 +1 @@
+{"_wandb": {"runtime": 0}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_164149-piz6xg4i/logs/debug-internal.log b/embeddings/wandb/run-20230224_164149-piz6xg4i/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..3364e5fc2b309bd61691168d3fdb4a439b3d2095
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164149-piz6xg4i/logs/debug-internal.log
@@ -0,0 +1,169 @@
+2023-02-24 16:41:50,004 INFO    StreamThr :1632 [internal.py:wandb_internal():87] W&B internal server running at pid: 1632, started at: 2023-02-24 16:41:50.003429
+2023-02-24 16:41:50,006 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: status
+2023-02-24 16:41:50,007 INFO    WriterThread:1632 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\run-piz6xg4i.wandb
+2023-02-24 16:41:50,009 DEBUG   SenderThread:1632 [sender.py:send():336] send: header
+2023-02-24 16:41:50,009 DEBUG   SenderThread:1632 [sender.py:send():336] send: run
+2023-02-24 16:41:50,354 INFO    SenderThread:1632 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files
+2023-02-24 16:41:50,354 INFO    SenderThread:1632 [sender.py:_start_run_threads():1067] run started: piz6xg4i with start time 1677256909.015496
+2023-02-24 16:41:50,354 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:41:50,355 INFO    SenderThread:1632 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:41:50,358 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 16:41:50,358 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: check_version
+2023-02-24 16:41:50,442 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 16:41:50,457 DEBUG   HandlerThread:1632 [system_info.py:__init__():31] System info init
+2023-02-24 16:41:50,457 DEBUG   HandlerThread:1632 [system_info.py:__init__():46] System info init done
+2023-02-24 16:41:50,458 INFO    HandlerThread:1632 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 16:41:50,458 INFO    SystemMonitor:1632 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 16:41:50,458 INFO    HandlerThread:1632 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 16:41:50,461 INFO    SystemMonitor:1632 [interfaces.py:start():168] Started cpu
+2023-02-24 16:41:50,462 DEBUG   HandlerThread:1632 [system_info.py:probe():195] Probing system
+2023-02-24 16:41:50,462 INFO    SystemMonitor:1632 [interfaces.py:start():168] Started disk
+2023-02-24 16:41:50,463 INFO    SystemMonitor:1632 [interfaces.py:start():168] Started memory
+2023-02-24 16:41:50,478 INFO    SystemMonitor:1632 [interfaces.py:start():168] Started network
+2023-02-24 16:41:50,479 DEBUG   HandlerThread:1632 [system_info.py:_probe_git():180] Probing git
+2023-02-24 16:41:50,576 DEBUG   HandlerThread:1632 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 16:41:50,576 DEBUG   HandlerThread:1632 [system_info.py:probe():241] Probing system done
+2023-02-24 16:41:50,576 DEBUG   HandlerThread:1632 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T16:41:50.462020', 'startedAt': '2023-02-24T16:41:49.004498', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 355.65296936035156}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 16:41:50,576 INFO    HandlerThread:1632 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 16:41:50,576 INFO    HandlerThread:1632 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 16:41:50,576 DEBUG   HandlerThread:1632 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 16:41:50,577 DEBUG   HandlerThread:1632 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 16:41:50,579 INFO    HandlerThread:1632 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 16:41:50,580 DEBUG   SenderThread:1632 [sender.py:send():336] send: files
+2023-02-24 16:41:50,580 INFO    SenderThread:1632 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 16:41:50,589 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 16:41:50,589 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 16:41:50,748 DEBUG   SenderThread:1632 [sender.py:send():336] send: telemetry
+2023-02-24 16:41:50,801 DEBUG   SenderThread:1632 [sender.py:send():336] send: exit
+2023-02-24 16:41:50,802 INFO    SenderThread:1632 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 16:41:50,802 INFO    SenderThread:1632 [sender.py:send_exit():561] handling runtime: 0
+2023-02-24 16:41:50,802 INFO    SenderThread:1632 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:41:50,803 INFO    SenderThread:1632 [sender.py:send_exit():567] send defer
+2023-02-24 16:41:50,803 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:50,804 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 16:41:50,804 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:50,804 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 16:41:50,804 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 1
+2023-02-24 16:41:50,805 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:50,805 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 16:41:50,805 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:50,805 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 16:41:50,805 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 2
+2023-02-24 16:41:50,805 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:50,805 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 16:41:50,806 INFO    HandlerThread:1632 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 16:41:50,806 DEBUG   SystemMonitor:1632 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 16:41:50,806 DEBUG   SystemMonitor:1632 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 16:41:50,806 DEBUG   SystemMonitor:1632 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 16:41:50,807 INFO    HandlerThread:1632 [interfaces.py:finish():175] Joined cpu
+2023-02-24 16:41:50,807 INFO    HandlerThread:1632 [interfaces.py:finish():175] Joined disk
+2023-02-24 16:41:50,807 INFO    HandlerThread:1632 [interfaces.py:finish():175] Joined memory
+2023-02-24 16:41:50,807 INFO    HandlerThread:1632 [interfaces.py:finish():175] Joined network
+2023-02-24 16:41:50,808 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:50,808 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 16:41:50,808 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 3
+2023-02-24 16:41:50,808 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:50,808 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 16:41:50,808 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:50,808 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 16:41:50,808 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 4
+2023-02-24 16:41:50,809 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:50,809 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 16:41:50,809 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:50,809 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 16:41:50,809 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 5
+2023-02-24 16:41:50,809 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:50,809 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 16:41:50,810 DEBUG   SenderThread:1632 [sender.py:send():336] send: summary
+2023-02-24 16:41:50,810 INFO    SenderThread:1632 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:41:50,810 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:50,811 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 16:41:50,811 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 6
+2023-02-24 16:41:50,811 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:50,811 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 16:41:50,811 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:50,811 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 16:41:50,815 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:41:51,016 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 7
+2023-02-24 16:41:51,016 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:51,016 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 16:41:51,017 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:51,017 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 16:41:51,118 INFO    wandb-upload_0:1632 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpm_qvevnmwandb\m5hac12f-wandb-metadata.json
+2023-02-24 16:41:51,361 INFO    Thread-33 :1632 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\config.yaml
+2023-02-24 16:41:51,362 INFO    Thread-33 :1632 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\requirements.txt
+2023-02-24 16:41:51,362 INFO    Thread-33 :1632 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\output.log
+2023-02-24 16:41:51,362 INFO    Thread-33 :1632 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\wandb-summary.json
+2023-02-24 16:41:51,362 INFO    Thread-33 :1632 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\wandb-metadata.json
+2023-02-24 16:41:51,814 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:41:52,803 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 8
+2023-02-24 16:41:52,803 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:41:52,804 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:52,804 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 16:41:52,805 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:52,805 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 16:41:52,819 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 9
+2023-02-24 16:41:52,819 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:52,819 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 16:41:52,820 DEBUG   SenderThread:1632 [sender.py:send():336] send: artifact
+2023-02-24 16:41:52,828 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:41:53,392 INFO    Thread-33 :1632 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\output.log
+2023-02-24 16:41:53,829 INFO    SenderThread:1632 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'digest': 'dbe34f6e8b990dacc5d7c5e1ab1d02a4', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v0'}
+2023-02-24 16:41:53,829 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:53,829 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 16:41:53,829 INFO    SenderThread:1632 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 16:41:54,408 INFO    SenderThread:1632 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files
+2023-02-24 16:41:54,408 INFO    SenderThread:1632 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\config.yaml config.yaml
+2023-02-24 16:41:54,409 INFO    SenderThread:1632 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\output.log output.log
+2023-02-24 16:41:54,412 INFO    SenderThread:1632 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\requirements.txt requirements.txt
+2023-02-24 16:41:54,413 INFO    SenderThread:1632 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 16:41:54,413 INFO    SenderThread:1632 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\wandb-summary.json wandb-summary.json
+2023-02-24 16:41:54,419 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 10
+2023-02-24 16:41:54,419 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:41:54,419 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:54,421 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 16:41:54,424 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:54,424 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 16:41:54,425 INFO    SenderThread:1632 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:41:54,939 INFO    wandb-upload_0:1632 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\config.yaml
+2023-02-24 16:41:54,951 INFO    wandb-upload_3:1632 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\wandb-summary.json
+2023-02-24 16:41:54,954 INFO    wandb-upload_2:1632 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\requirements.txt
+2023-02-24 16:41:54,984 INFO    wandb-upload_1:1632 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\files\output.log
+2023-02-24 16:41:55,187 INFO    Thread-32 :1632 [sender.py:transition_state():587] send defer: 11
+2023-02-24 16:41:55,187 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:55,187 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 16:41:55,188 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:55,188 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 16:41:55,188 INFO    SenderThread:1632 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 16:41:55,188 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 12
+2023-02-24 16:41:55,188 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:55,188 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 16:41:55,189 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:55,189 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 16:41:55,336 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 13
+2023-02-24 16:41:55,336 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:55,336 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 16:41:55,336 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:55,336 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 16:41:55,337 INFO    SenderThread:1632 [sender.py:transition_state():587] send defer: 14
+2023-02-24 16:41:55,337 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:41:55,337 INFO    HandlerThread:1632 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 16:41:55,337 DEBUG   SenderThread:1632 [sender.py:send():336] send: final
+2023-02-24 16:41:55,337 DEBUG   SenderThread:1632 [sender.py:send():336] send: footer
+2023-02-24 16:41:55,338 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:41:55,338 INFO    SenderThread:1632 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 16:41:55,338 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:41:55,338 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 16:41:55,339 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 16:41:55,339 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 16:41:55,339 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:41:55,339 DEBUG   SenderThread:1632 [sender.py:send_request():363] send_request: server_info
+2023-02-24 16:41:55,499 INFO    MainThread:1632 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 16:41:55,499 INFO    MainThread:1632 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 16:41:55,499 INFO    MainThread:1632 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 16:41:55,500 DEBUG   HandlerThread:1632 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 16:41:55,500 INFO    HandlerThread:1632 [handler.py:finish():841] shutting down handler
+2023-02-24 16:41:56,341 INFO    WriterThread:1632 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\run-piz6xg4i.wandb
+2023-02-24 16:41:56,512 INFO    SenderThread:1632 [sender.py:finish():1493] shutting down sender
+2023-02-24 16:41:56,512 INFO    SenderThread:1632 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:41:56,513 INFO    SenderThread:1632 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_164149-piz6xg4i/logs/debug.log b/embeddings/wandb/run-20230224_164149-piz6xg4i/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..579d99b8712cc179ac906c202c963ea293bae003
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164149-piz6xg4i/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 16:41:49,008 INFO    MainThread:17260 [wandb_setup.py:_flush():68] Configure stats pid to 17260
+2023-02-24 16:41:49,008 INFO    MainThread:17260 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 16:41:49,008 INFO    MainThread:17260 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 16:41:49,008 INFO    MainThread:17260 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 16:41:49,008 INFO    MainThread:17260 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 16:41:49,009 INFO    MainThread:17260 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\logs\debug.log
+2023-02-24 16:41:49,009 INFO    MainThread:17260 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164149-piz6xg4i\logs\debug-internal.log
+2023-02-24 16:41:49,009 INFO    MainThread:17260 [wandb_init.py:init():532] calling init triggers
+2023-02-24 16:41:49,009 INFO    MainThread:17260 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 16:41:49,009 INFO    MainThread:17260 [wandb_init.py:init():588] starting backend
+2023-02-24 16:41:49,009 INFO    MainThread:17260 [wandb_init.py:init():592] setting up manager
+2023-02-24 16:41:49,012 INFO    MainThread:17260 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 16:41:49,014 INFO    MainThread:17260 [wandb_init.py:init():599] backend started and connected
+2023-02-24 16:41:49,016 INFO    MainThread:17260 [wandb_init.py:init():687] updated telemetry
+2023-02-24 16:41:49,076 INFO    MainThread:17260 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 16:41:50,357 INFO    MainThread:17260 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 16:41:50,434 INFO    MainThread:17260 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 16:41:50,435 INFO    MainThread:17260 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 16:41:50,589 INFO    MainThread:17260 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 16:41:50,589 INFO    MainThread:17260 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 16:41:50,589 INFO    MainThread:17260 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 16:41:50,589 INFO    MainThread:17260 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 16:41:50,590 INFO    MainThread:17260 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 16:41:56,581 WARNING MsgRouterThr:17260 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_164149-piz6xg4i/run-piz6xg4i.wandb b/embeddings/wandb/run-20230224_164149-piz6xg4i/run-piz6xg4i.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..b2c5f272ae709df149214a931fe8316c9e7218a3
Binary files /dev/null and b/embeddings/wandb/run-20230224_164149-piz6xg4i/run-piz6xg4i.wandb differ
diff --git a/embeddings/wandb/run-20230224_164532-4prg0lm3/files/config.yaml b/embeddings/wandb/run-20230224_164532-4prg0lm3/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3d53700990d66f8a40fecf15cbf8230eb9357e1e
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164532-4prg0lm3/files/config.yaml
@@ -0,0 +1,41 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677257132.674723
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 2
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_164532-4prg0lm3/files/media/table/data_1_29ffdf69c605ad25c568.table.json b/embeddings/wandb/run-20230224_164532-4prg0lm3/files/media/table/data_1_29ffdf69c605ad25c568.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..dcdcdcb1281737ad84deaa6f596e57e98426a729
Binary files /dev/null and b/embeddings/wandb/run-20230224_164532-4prg0lm3/files/media/table/data_1_29ffdf69c605ad25c568.table.json differ
diff --git a/embeddings/wandb/run-20230224_164532-4prg0lm3/files/output.log b/embeddings/wandb/run-20230224_164532-4prg0lm3/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..4a68024bfeaefc5c589d68d457535bbc6bd4b98b
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164532-4prg0lm3/files/output.log
@@ -0,0 +1,47 @@
+wandb: WARNING Serializing object of type str that is 7167210 bytes
+wandb: WARNING Serializing object of type str that is 7193184 bytes
+wandb: WARNING Serializing object of type str that is 7166316 bytes
+wandb: WARNING Serializing object of type str that is 7192908 bytes
+wandb: WARNING Serializing object of type str that is 7184352 bytes
+wandb: WARNING Serializing object of type str that is 7168728 bytes
+wandb: WARNING Serializing object of type str that is 7170702 bytes
+wandb: WARNING Serializing object of type str that is 7186804 bytes
+wandb: WARNING Serializing object of type str that is 7186182 bytes
+wandb: WARNING Serializing object of type str that is 7181986 bytes
+wandb: WARNING Serializing object of type str that is 7193224 bytes
+wandb: WARNING Serializing object of type str that is 7180788 bytes
+wandb: WARNING Serializing object of type str that is 7166748 bytes
+wandb: WARNING Serializing object of type str that is 7166894 bytes
+wandb: WARNING Serializing object of type str that is 7195328 bytes
+wandb: WARNING Serializing object of type str that is 7173618 bytes
+wandb: WARNING Serializing object of type str that is 7172138 bytes
+wandb: WARNING Serializing object of type str that is 7185170 bytes
+wandb: WARNING Serializing object of type str that is 7197364 bytes
+wandb: WARNING Serializing object of type str that is 7174342 bytes
+wandb: WARNING Serializing object of type str that is 7166328 bytes
+wandb: WARNING Serializing object of type str that is 7192620 bytes
+wandb: WARNING Serializing object of type str that is 7177292 bytes
+wandb: WARNING Serializing object of type str that is 7184990 bytes
+wandb: WARNING Serializing object of type str that is 7189766 bytes
+wandb: WARNING Serializing object of type str that is 7184020 bytes
+wandb: WARNING Serializing object of type str that is 7169006 bytes
+wandb: WARNING Serializing object of type str that is 7168204 bytes
+wandb: WARNING Serializing object of type str that is 7185538 bytes
+wandb: WARNING Serializing object of type str that is 7171740 bytes
+wandb: WARNING Serializing object of type str that is 7192984 bytes
+wandb: WARNING Serializing object of type str that is 7174958 bytes
+wandb: WARNING Serializing object of type str that is 7191714 bytes
+wandb: WARNING Serializing object of type str that is 7175696 bytes
+wandb: WARNING Serializing object of type str that is 7181152 bytes
+wandb: WARNING Serializing object of type str that is 7169458 bytes
+wandb: WARNING Serializing object of type str that is 7195588 bytes
+wandb: WARNING Serializing object of type str that is 7186896 bytes
+wandb: WARNING Serializing object of type str that is 7185682 bytes
+wandb: WARNING Serializing object of type str that is 7189014 bytes
+wandb: WARNING Serializing object of type str that is 7184504 bytes
+wandb: WARNING Serializing object of type str that is 7166882 bytes
+wandb: WARNING Serializing object of type str that is 7175922 bytes
+wandb: WARNING Serializing object of type str that is 7172838 bytes
+wandb: WARNING Serializing object of type str that is 7187896 bytes
+wandb: WARNING Serializing object of type str that is 7183920 bytes
+wandb: Adding directory to artifact (.\..\data)... Done. 1.7s
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_164532-4prg0lm3/files/requirements.txt b/embeddings/wandb/run-20230224_164532-4prg0lm3/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164532-4prg0lm3/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_164532-4prg0lm3/files/wandb-metadata.json b/embeddings/wandb/run-20230224_164532-4prg0lm3/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..aa14445e4682da423613cf0cca0e74450810aa41
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164532-4prg0lm3/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T16:45:33.228557",
+    "startedAt": "2023-02-24T16:45:32.661722",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 355.49903106689453
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_164532-4prg0lm3/files/wandb-summary.json b/embeddings/wandb/run-20230224_164532-4prg0lm3/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..8aecb7b32643b29f1575db98a4296eec3f1a7a20
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164532-4prg0lm3/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677257147.1664267, "_runtime": 14.491703748703003, "_step": 1, "data": {"_type": "table-file", "sha256": "29ffdf69c605ad25c568e779e3c7a36885702bc4d890795e5df8e28aa2c47436", "size": 168982300, "artifact_path": "wandb-client-artifact://kiwdrfa9gak8ffqeftmhzcte6nzzwqikff46x8eox7vspzgbfaxis9qmht3s6285hr7r9cvyjbryvy2de47rxkn4erv377r18gt81prmpmiiio14u1zw4td5zyavaevm:latest/data.table.json", "_latest_artifact_path": "wandb-client-artifact://kiwdrfa9gak8ffqeftmhzcte6nzzwqikff46x8eox7vspzgbfaxis9qmht3s6285hr7r9cvyjbryvy2de47rxkn4erv377r18gt81prmpmiiio14u1zw4td5zyavaevm:latest/data.table.json", "path": "media/table/data_1_29ffdf69c605ad25c568.table.json", "ncols": 4, "nrows": 46}, "_wandb": {"runtime": 15}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_164532-4prg0lm3/logs/debug-internal.log b/embeddings/wandb/run-20230224_164532-4prg0lm3/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..f10319ae83790dfab7f5d3df65342ff0f279f1ca
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164532-4prg0lm3/logs/debug-internal.log
@@ -0,0 +1,227 @@
+2023-02-24 16:45:32,675 INFO    StreamThr :9052 [internal.py:wandb_internal():87] W&B internal server running at pid: 9052, started at: 2023-02-24 16:45:32.674723
+2023-02-24 16:45:32,677 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status
+2023-02-24 16:45:32,679 INFO    WriterThread:9052 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\run-4prg0lm3.wandb
+2023-02-24 16:45:32,683 DEBUG   SenderThread:9052 [sender.py:send():336] send: header
+2023-02-24 16:45:32,726 DEBUG   SenderThread:9052 [sender.py:send():336] send: run
+2023-02-24 16:45:33,136 INFO    SenderThread:9052 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files
+2023-02-24 16:45:33,137 INFO    SenderThread:9052 [sender.py:_start_run_threads():1067] run started: 4prg0lm3 with start time 1677257132.674723
+2023-02-24 16:45:33,137 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:45:33,137 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 16:45:33,138 INFO    SenderThread:9052 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:45:33,138 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: check_version
+2023-02-24 16:45:33,206 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 16:45:33,224 DEBUG   HandlerThread:9052 [system_info.py:__init__():31] System info init
+2023-02-24 16:45:33,224 DEBUG   HandlerThread:9052 [system_info.py:__init__():46] System info init done
+2023-02-24 16:45:33,224 INFO    HandlerThread:9052 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 16:45:33,225 INFO    SystemMonitor:9052 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 16:45:33,225 INFO    HandlerThread:9052 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 16:45:33,228 INFO    SystemMonitor:9052 [interfaces.py:start():168] Started cpu
+2023-02-24 16:45:33,228 DEBUG   HandlerThread:9052 [system_info.py:probe():195] Probing system
+2023-02-24 16:45:33,228 INFO    SystemMonitor:9052 [interfaces.py:start():168] Started disk
+2023-02-24 16:45:33,229 INFO    SystemMonitor:9052 [interfaces.py:start():168] Started memory
+2023-02-24 16:45:33,246 INFO    SystemMonitor:9052 [interfaces.py:start():168] Started network
+2023-02-24 16:45:33,247 DEBUG   HandlerThread:9052 [system_info.py:_probe_git():180] Probing git
+2023-02-24 16:45:33,343 DEBUG   HandlerThread:9052 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 16:45:33,343 DEBUG   HandlerThread:9052 [system_info.py:probe():241] Probing system done
+2023-02-24 16:45:33,343 DEBUG   HandlerThread:9052 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T16:45:33.228557', 'startedAt': '2023-02-24T16:45:32.661722', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 355.49903106689453}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 16:45:33,343 INFO    HandlerThread:9052 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 16:45:33,344 INFO    HandlerThread:9052 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 16:45:33,344 DEBUG   HandlerThread:9052 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 16:45:33,345 DEBUG   HandlerThread:9052 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 16:45:33,346 INFO    HandlerThread:9052 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 16:45:33,355 DEBUG   SenderThread:9052 [sender.py:send():336] send: files
+2023-02-24 16:45:33,355 INFO    SenderThread:9052 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 16:45:33,362 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 16:45:33,363 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 16:45:33,365 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 16:45:33,563 DEBUG   SenderThread:9052 [sender.py:send():336] send: telemetry
+2023-02-24 16:45:33,563 DEBUG   SenderThread:9052 [sender.py:send():336] send: history
+2023-02-24 16:45:33,563 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:45:33,564 INFO    SenderThread:9052 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:45:33,934 INFO    wandb-upload_0:9052 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpyily8wv6wandb\xozxdusd-wandb-metadata.json
+2023-02-24 16:45:34,148 INFO    Thread-17 :9052 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\requirements.txt
+2023-02-24 16:45:34,149 INFO    Thread-17 :9052 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\wandb-metadata.json
+2023-02-24 16:45:34,149 INFO    Thread-17 :9052 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\wandb-summary.json
+2023-02-24 16:45:35,159 INFO    Thread-17 :9052 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\output.log
+2023-02-24 16:45:37,174 INFO    Thread-17 :9052 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\output.log
+2023-02-24 16:45:38,079 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:45:41,744 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 16:45:41,745 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 16:45:47,166 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 16:45:47,319 INFO    Thread-17 :9052 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\media\table\data_1_29ffdf69c605ad25c568.table.json
+2023-02-24 16:45:47,320 INFO    Thread-17 :9052 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\media\table
+2023-02-24 16:45:47,320 INFO    Thread-17 :9052 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\media
+2023-02-24 16:45:48,361 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:45:49,027 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 16:45:50,043 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:45:55,093 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:00,156 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:05,218 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:10,249 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:15,296 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:20,348 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:25,402 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:30,455 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:33,257 DEBUG   SystemMonitor:9052 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 16:46:34,041 INFO    wandb-upload_0:9052 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpz0oqhef3
+2023-02-24 16:46:34,939 INFO    SenderThread:9052 [sender.py:send_request_log_artifact():1381] logged artifact run-4prg0lm3-data - {'id': 'QXJ0aWZhY3Q6MzgwNTczMDU0', 'digest': '35b537a00d2e621c5d51fe57404c4cd2', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjI0Mjk5', 'latestArtifact': None}, 'version': 'latest'}
+2023-02-24 16:46:34,943 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:46:35,126 DEBUG   SenderThread:9052 [sender.py:send():336] send: files
+2023-02-24 16:46:35,126 INFO    SenderThread:9052 [sender.py:_save_file():1321] saving file media\table\data_1_29ffdf69c605ad25c568.table.json with policy now
+2023-02-24 16:46:35,127 DEBUG   SenderThread:9052 [sender.py:send():336] send: history
+2023-02-24 16:46:35,127 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:46:35,129 INFO    SenderThread:9052 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:46:35,130 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 16:46:35,514 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:35,619 INFO    SenderThread:9052 [sender.py:send_request_log_artifact():1381] logged artifact static-graphs - {'id': 'QXJ0aWZhY3Q6MzgwNTY0ODAy', 'digest': '64a712122c812b4423fcf560ca60f704', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'static-graphs', 'alias': 'latest'}, {'artifactCollectionName': 'static-graphs', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjIzMTU5', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwNTY0ODAy', 'versionIndex': 0}}, 'version': 'v0'}
+2023-02-24 16:46:35,619 DEBUG   SenderThread:9052 [sender.py:send():336] send: telemetry
+2023-02-24 16:46:35,619 DEBUG   SenderThread:9052 [sender.py:send():336] send: exit
+2023-02-24 16:46:35,619 INFO    SenderThread:9052 [sender.py:send_exit():559] handling exit code: 0
+2023-02-24 16:46:35,619 INFO    SenderThread:9052 [sender.py:send_exit():561] handling runtime: 15
+2023-02-24 16:46:35,620 INFO    SenderThread:9052 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:46:35,621 INFO    SenderThread:9052 [sender.py:send_exit():567] send defer
+2023-02-24 16:46:35,621 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:46:35,621 DEBUG   SenderThread:9052 [sender.py:send():336] send: stats
+2023-02-24 16:46:35,622 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:46:35,622 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 16:46:35,622 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:46:35,622 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 16:46:35,622 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 1
+2023-02-24 16:46:35,622 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:46:35,623 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 16:46:35,623 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:46:35,623 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 16:46:35,623 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 2
+2023-02-24 16:46:35,623 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:46:35,623 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 16:46:35,623 INFO    HandlerThread:9052 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 16:46:35,624 DEBUG   SystemMonitor:9052 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 16:46:35,624 DEBUG   SystemMonitor:9052 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 16:46:35,624 INFO    HandlerThread:9052 [interfaces.py:finish():175] Joined cpu
+2023-02-24 16:46:35,625 INFO    HandlerThread:9052 [interfaces.py:finish():175] Joined disk
+2023-02-24 16:46:35,625 INFO    HandlerThread:9052 [interfaces.py:finish():175] Joined memory
+2023-02-24 16:46:35,625 INFO    HandlerThread:9052 [interfaces.py:finish():175] Joined network
+2023-02-24 16:46:35,625 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:46:35,625 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 16:46:35,625 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 3
+2023-02-24 16:46:35,625 DEBUG   SenderThread:9052 [sender.py:send():336] send: stats
+2023-02-24 16:46:35,625 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:46:35,626 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 16:46:35,626 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:46:35,626 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 16:46:35,626 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 4
+2023-02-24 16:46:35,626 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:46:35,626 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 16:46:35,627 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:46:35,627 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 16:46:35,627 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 5
+2023-02-24 16:46:35,627 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:46:35,627 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 16:46:35,627 DEBUG   SenderThread:9052 [sender.py:send():336] send: summary
+2023-02-24 16:46:35,628 INFO    SenderThread:9052 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:46:35,628 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:46:35,628 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 16:46:35,628 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 6
+2023-02-24 16:46:35,629 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:46:35,629 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 16:46:35,629 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:46:35,629 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 16:46:35,636 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:46:35,832 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 7
+2023-02-24 16:46:35,832 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:46:35,832 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 16:46:35,832 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:46:35,832 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 16:46:35,889 INFO    Thread-17 :9052 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\wandb-summary.json
+2023-02-24 16:46:35,889 INFO    Thread-17 :9052 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\config.yaml
+2023-02-24 16:46:37,297 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 8
+2023-02-24 16:46:37,297 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:46:37,297 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 16:46:37,297 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:46:37,297 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 16:46:37,309 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 9
+2023-02-24 16:46:37,309 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:46:37,310 DEBUG   SenderThread:9052 [sender.py:send():336] send: artifact
+2023-02-24 16:46:37,310 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 16:46:37,893 INFO    Thread-17 :9052 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\output.log
+2023-02-24 16:46:38,157 INFO    SenderThread:9052 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'digest': '8077f65decb82fd65dc9936bbf393b39', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v2'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v2'}
+2023-02-24 16:46:38,158 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:46:38,158 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 16:46:38,158 INFO    SenderThread:9052 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 16:46:38,910 INFO    SenderThread:9052 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files
+2023-02-24 16:46:38,910 INFO    SenderThread:9052 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\config.yaml config.yaml
+2023-02-24 16:46:38,911 INFO    SenderThread:9052 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\output.log output.log
+2023-02-24 16:46:38,915 INFO    SenderThread:9052 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\requirements.txt requirements.txt
+2023-02-24 16:46:38,917 INFO    SenderThread:9052 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 16:46:38,917 INFO    SenderThread:9052 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\wandb-summary.json wandb-summary.json
+2023-02-24 16:46:38,936 INFO    SenderThread:9052 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\media\table\data_1_29ffdf69c605ad25c568.table.json media\table\data_1_29ffdf69c605ad25c568.table.json
+2023-02-24 16:46:38,936 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 10
+2023-02-24 16:46:38,937 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:46:38,937 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 16:46:38,939 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:46:38,939 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 16:46:38,940 INFO    SenderThread:9052 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:46:39,427 INFO    wandb-upload_1:9052 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\config.yaml
+2023-02-24 16:46:39,464 INFO    wandb-upload_3:9052 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\requirements.txt
+2023-02-24 16:46:39,478 INFO    wandb-upload_2:9052 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\output.log
+2023-02-24 16:46:39,595 INFO    wandb-upload_4:9052 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\files\wandb-summary.json
+2023-02-24 16:46:40,556 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:40,960 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:46:45,603 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:46,008 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:46:50,663 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:51,067 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:46:55,720 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:46:56,122 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:47:00,771 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:47:01,177 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:47:05,838 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:47:06,227 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:47:10,892 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:47:11,282 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:47:15,947 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:47:16,336 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:47:20,999 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:47:21,386 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:47:26,043 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:47:26,449 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:47:31,107 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:47:31,497 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:47:36,157 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:47:36,518 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:47:37,694 INFO    wandb-upload_0:9052 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpyily8wv6wandb\u694d322-media/table/data_1_29ffdf69c605ad25c568.table.json
+2023-02-24 16:47:37,922 INFO    Thread-16 :9052 [sender.py:transition_state():587] send defer: 11
+2023-02-24 16:47:37,922 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:37,922 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 16:47:37,923 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:37,923 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 16:47:37,923 INFO    SenderThread:9052 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 16:47:37,923 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 12
+2023-02-24 16:47:37,923 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:37,923 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 16:47:37,924 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:37,924 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 16:47:38,078 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 13
+2023-02-24 16:47:38,079 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:38,079 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 16:47:38,079 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:38,079 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 16:47:38,079 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 14
+2023-02-24 16:47:38,080 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:38,080 DEBUG   SenderThread:9052 [sender.py:send():336] send: final
+2023-02-24 16:47:38,080 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 16:47:38,080 DEBUG   SenderThread:9052 [sender.py:send():336] send: footer
+2023-02-24 16:47:38,080 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:38,080 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 16:47:38,081 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:47:38,081 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 16:47:38,082 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 16:47:38,082 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:47:38,082 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 16:47:38,082 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: server_info
+2023-02-24 16:47:38,260 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 16:47:38,260 INFO    HandlerThread:9052 [handler.py:finish():841] shutting down handler
+2023-02-24 16:47:39,091 INFO    WriterThread:9052 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\run-4prg0lm3.wandb
+2023-02-24 16:47:39,262 INFO    SenderThread:9052 [sender.py:finish():1493] shutting down sender
+2023-02-24 16:47:39,262 INFO    SenderThread:9052 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:47:39,262 INFO    SenderThread:9052 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_164532-4prg0lm3/logs/debug.log b/embeddings/wandb/run-20230224_164532-4prg0lm3/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..55e155defa41313f031c0c59a391d0d7d4046599
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164532-4prg0lm3/logs/debug.log
@@ -0,0 +1,31 @@
+2023-02-24 16:45:32,666 INFO    MainThread:756 [wandb_setup.py:_flush():68] Configure stats pid to 756
+2023-02-24 16:45:32,666 INFO    MainThread:756 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 16:45:32,666 INFO    MainThread:756 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 16:45:32,666 INFO    MainThread:756 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 16:45:32,666 INFO    MainThread:756 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 16:45:32,667 INFO    MainThread:756 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\logs\debug.log
+2023-02-24 16:45:32,667 INFO    MainThread:756 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164532-4prg0lm3\logs\debug-internal.log
+2023-02-24 16:45:32,667 INFO    MainThread:756 [wandb_init.py:init():532] calling init triggers
+2023-02-24 16:45:32,667 INFO    MainThread:756 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 16:45:32,667 INFO    MainThread:756 [wandb_init.py:init():588] starting backend
+2023-02-24 16:45:32,667 INFO    MainThread:756 [wandb_init.py:init():592] setting up manager
+2023-02-24 16:45:32,670 INFO    MainThread:756 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 16:45:32,674 INFO    MainThread:756 [wandb_init.py:init():599] backend started and connected
+2023-02-24 16:45:32,676 INFO    MainThread:756 [wandb_init.py:init():687] updated telemetry
+2023-02-24 16:45:32,725 INFO    MainThread:756 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 16:45:33,136 INFO    MainThread:756 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 16:45:33,199 INFO    MainThread:756 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 16:45:33,199 INFO    MainThread:756 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 16:45:33,363 INFO    MainThread:756 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 16:45:33,363 INFO    MainThread:756 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 16:45:33,363 INFO    MainThread:756 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 16:45:33,363 INFO    MainThread:756 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 16:45:33,364 INFO    MainThread:756 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 16:45:49,029 INFO    MainThread:756 [wandb_run.py:_finish():1854] finishing run g4nlp/heterogeneous-GAT-model/4prg0lm3
+2023-02-24 16:45:49,029 INFO    MainThread:756 [wandb_run.py:_atexit_cleanup():2083] got exitcode: 0
+2023-02-24 16:45:49,029 INFO    MainThread:756 [wandb_run.py:_restore():2066] restore
+2023-02-24 16:45:49,030 INFO    MainThread:756 [wandb_run.py:_restore():2072] restore done
+2023-02-24 16:47:39,262 INFO    MainThread:756 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 16:47:39,263 INFO    MainThread:756 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 16:47:39,269 INFO    MainThread:756 [wandb_run.py:_footer_sync_info():3398] logging synced files
diff --git a/embeddings/wandb/run-20230224_164532-4prg0lm3/run-4prg0lm3.wandb b/embeddings/wandb/run-20230224_164532-4prg0lm3/run-4prg0lm3.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..4b91ec466437e9d0f10e4fd2c09971dd686f9d35
Binary files /dev/null and b/embeddings/wandb/run-20230224_164532-4prg0lm3/run-4prg0lm3.wandb differ
diff --git a/embeddings/wandb/run-20230224_164739-0prcbjc3/files/config.yaml b/embeddings/wandb/run-20230224_164739-0prcbjc3/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7e32b681af886ce5b248b35dd8a1709888156f80
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164739-0prcbjc3/files/config.yaml
@@ -0,0 +1,39 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677257259.294688
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_164739-0prcbjc3/files/output.log b/embeddings/wandb/run-20230224_164739-0prcbjc3/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..d461e9b49486270445a78711b77e4d830187c449
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164739-0prcbjc3/files/output.log
@@ -0,0 +1,51 @@
+wandb: ERROR Attempted to fetch artifact without alias (e.g. "<artifact_name>:v3" or "<artifact_name>:latest")
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 5077, in _load
+    response = self.client.execute(
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\lib\retry.py", line 212, in wrapped_fn
+    return retrier(*args, **kargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\lib\retry.py", line 131, in __call__
+    result = self._call_fn(*args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 246, in execute
+    return self._client.execute(*args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\vendor\gql-0.2.0\wandb_gql\client.py", line 52, in execute
+    result = self._get_result(document, *args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\vendor\gql-0.2.0\wandb_gql\client.py", line 60, in _get_result
+    return self.transport.execute(document, *args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\vendor\gql-0.2.0\wandb_gql\transport\requests.py", line 39, in execute
+    request.raise_for_status()
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\requests\models.py", line 1021, in raise_for_status
+    raise HTTPError(http_error_msg, response=self)
+requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://api.wandb.ai/graphql
+During handling of the above exception, another exception occurred:
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\normalize.py", line 26, in wrapper
+    return func(*args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 955, in artifact
+    artifact = Artifact(self.client, entity, project, artifact_name)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 4368, in __init__
+    self._load()
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 5089, in _load
+    raise ValueError(
+ValueError: Attempted to fetch artifact without alias (e.g. "<artifact_name>:v3" or "<artifact_name>:latest")
+During handling of the above exception, another exception occurred:
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 182, in <module>
+    start_wandb_for_training(wandb_project_name)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 160, in start_wandb_for_training
+    wandb.use_artifact("static-graphs")
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 334, in wrapper
+    return func(self, *args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\wandb_run.py", line 2635, in use_artifact
+    artifact = public_api.artifact(type=type, name=name)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\normalize.py", line 64, in wrapper
+    raise CommError(message, err).with_traceback(sys.exc_info()[2])
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\normalize.py", line 26, in wrapper
+    return func(*args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 955, in artifact
+    artifact = Artifact(self.client, entity, project, artifact_name)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 4368, in __init__
+    self._load()
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\apis\public.py", line 5089, in _load
+    raise ValueError(
+wandb.errors.CommError: Attempted to fetch artifact without alias (e.g. "<artifact_name>:v3" or "<artifact_name>:latest")
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_164739-0prcbjc3/files/requirements.txt b/embeddings/wandb/run-20230224_164739-0prcbjc3/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164739-0prcbjc3/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_164739-0prcbjc3/files/wandb-metadata.json b/embeddings/wandb/run-20230224_164739-0prcbjc3/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..10f2fb422862bca20132c42ec9b34510a4191d73
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164739-0prcbjc3/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T16:47:40.783585",
+    "startedAt": "2023-02-24T16:47:39.280688",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 356.12910079956055
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_164739-0prcbjc3/files/wandb-summary.json b/embeddings/wandb/run-20230224_164739-0prcbjc3/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..fe9e22cf416d08fa3b43b9f0c278f2270e8d86cd
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164739-0prcbjc3/files/wandb-summary.json
@@ -0,0 +1 @@
+{"_wandb": {"runtime": 0}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_164739-0prcbjc3/logs/debug-internal.log b/embeddings/wandb/run-20230224_164739-0prcbjc3/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..f0ece91a4440c80b89b7297f41d8b67b92661bd1
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164739-0prcbjc3/logs/debug-internal.log
@@ -0,0 +1,170 @@
+2023-02-24 16:47:40,274 INFO    StreamThr :9052 [internal.py:wandb_internal():87] W&B internal server running at pid: 9052, started at: 2023-02-24 16:47:40.273584
+2023-02-24 16:47:40,276 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status
+2023-02-24 16:47:40,277 INFO    WriterThread:9052 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\run-0prcbjc3.wandb
+2023-02-24 16:47:40,280 DEBUG   SenderThread:9052 [sender.py:send():336] send: header
+2023-02-24 16:47:40,280 DEBUG   SenderThread:9052 [sender.py:send():336] send: run
+2023-02-24 16:47:40,676 INFO    SenderThread:9052 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files
+2023-02-24 16:47:40,677 INFO    SenderThread:9052 [sender.py:_start_run_threads():1067] run started: 0prcbjc3 with start time 1677257259.294688
+2023-02-24 16:47:40,677 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:47:40,677 INFO    SenderThread:9052 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:47:40,683 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 16:47:40,683 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: check_version
+2023-02-24 16:47:40,759 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 16:47:40,781 DEBUG   HandlerThread:9052 [system_info.py:__init__():31] System info init
+2023-02-24 16:47:40,781 DEBUG   HandlerThread:9052 [system_info.py:__init__():46] System info init done
+2023-02-24 16:47:40,781 INFO    HandlerThread:9052 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 16:47:40,782 INFO    SystemMonitor:9052 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 16:47:40,782 INFO    HandlerThread:9052 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 16:47:40,783 DEBUG   HandlerThread:9052 [system_info.py:probe():195] Probing system
+2023-02-24 16:47:40,789 INFO    SystemMonitor:9052 [interfaces.py:start():168] Started cpu
+2023-02-24 16:47:40,789 INFO    SystemMonitor:9052 [interfaces.py:start():168] Started disk
+2023-02-24 16:47:40,790 INFO    SystemMonitor:9052 [interfaces.py:start():168] Started memory
+2023-02-24 16:47:40,791 INFO    SystemMonitor:9052 [interfaces.py:start():168] Started network
+2023-02-24 16:47:40,809 DEBUG   HandlerThread:9052 [system_info.py:_probe_git():180] Probing git
+2023-02-24 16:47:40,946 DEBUG   HandlerThread:9052 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 16:47:40,946 DEBUG   HandlerThread:9052 [system_info.py:probe():241] Probing system done
+2023-02-24 16:47:40,946 DEBUG   HandlerThread:9052 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T16:47:40.783585', 'startedAt': '2023-02-24T16:47:39.280688', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 356.12910079956055}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 16:47:40,946 INFO    HandlerThread:9052 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 16:47:40,946 INFO    HandlerThread:9052 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 16:47:40,946 DEBUG   HandlerThread:9052 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 16:47:40,948 DEBUG   HandlerThread:9052 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 16:47:40,950 INFO    HandlerThread:9052 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 16:47:40,950 DEBUG   SenderThread:9052 [sender.py:send():336] send: files
+2023-02-24 16:47:40,951 INFO    SenderThread:9052 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 16:47:40,961 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 16:47:40,962 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 16:47:41,122 DEBUG   SenderThread:9052 [sender.py:send():336] send: telemetry
+2023-02-24 16:47:41,176 DEBUG   SenderThread:9052 [sender.py:send():336] send: exit
+2023-02-24 16:47:41,176 INFO    SenderThread:9052 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 16:47:41,176 INFO    SenderThread:9052 [sender.py:send_exit():561] handling runtime: 0
+2023-02-24 16:47:41,177 INFO    SenderThread:9052 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:47:41,177 INFO    SenderThread:9052 [sender.py:send_exit():567] send defer
+2023-02-24 16:47:41,178 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:41,178 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 16:47:41,178 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:41,178 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 16:47:41,178 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 1
+2023-02-24 16:47:41,178 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:41,178 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 16:47:41,179 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:41,179 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 16:47:41,179 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 2
+2023-02-24 16:47:41,179 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:41,179 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 16:47:41,179 INFO    HandlerThread:9052 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 16:47:41,180 DEBUG   SystemMonitor:9052 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 16:47:41,180 DEBUG   SystemMonitor:9052 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 16:47:41,180 DEBUG   SystemMonitor:9052 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 16:47:41,180 INFO    HandlerThread:9052 [interfaces.py:finish():175] Joined cpu
+2023-02-24 16:47:41,181 INFO    HandlerThread:9052 [interfaces.py:finish():175] Joined disk
+2023-02-24 16:47:41,181 INFO    HandlerThread:9052 [interfaces.py:finish():175] Joined memory
+2023-02-24 16:47:41,181 INFO    HandlerThread:9052 [interfaces.py:finish():175] Joined network
+2023-02-24 16:47:41,182 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:41,182 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 16:47:41,182 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 3
+2023-02-24 16:47:41,182 DEBUG   SenderThread:9052 [sender.py:send():336] send: stats
+2023-02-24 16:47:41,182 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:41,182 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 16:47:41,183 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:41,183 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 16:47:41,183 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 4
+2023-02-24 16:47:41,183 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:41,183 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 16:47:41,183 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:41,184 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 16:47:41,184 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 5
+2023-02-24 16:47:41,184 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:41,184 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 16:47:41,184 DEBUG   SenderThread:9052 [sender.py:send():336] send: summary
+2023-02-24 16:47:41,185 INFO    SenderThread:9052 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:47:41,185 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:41,185 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 16:47:41,185 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 6
+2023-02-24 16:47:41,186 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:41,186 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 16:47:41,186 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:41,187 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 16:47:41,194 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:47:41,365 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 7
+2023-02-24 16:47:41,365 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:41,365 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 16:47:41,366 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:41,366 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 16:47:41,505 INFO    wandb-upload_0:9052 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp9pv1rl8mwandb\9qfex5ed-wandb-metadata.json
+2023-02-24 16:47:41,689 INFO    Thread-32 :9052 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\config.yaml
+2023-02-24 16:47:41,690 INFO    Thread-32 :9052 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\wandb-metadata.json
+2023-02-24 16:47:41,690 INFO    Thread-32 :9052 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\output.log
+2023-02-24 16:47:41,691 INFO    Thread-32 :9052 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\wandb-summary.json
+2023-02-24 16:47:41,691 INFO    Thread-32 :9052 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\requirements.txt
+2023-02-24 16:47:42,185 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:47:43,178 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 8
+2023-02-24 16:47:43,178 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:47:43,178 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:43,178 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 16:47:43,179 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:43,179 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 16:47:43,189 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 9
+2023-02-24 16:47:43,189 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:43,189 DEBUG   SenderThread:9052 [sender.py:send():336] send: artifact
+2023-02-24 16:47:43,189 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 16:47:43,199 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:47:43,702 INFO    Thread-32 :9052 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\output.log
+2023-02-24 16:47:44,141 INFO    SenderThread:9052 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'digest': 'dbe34f6e8b990dacc5d7c5e1ab1d02a4', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v0'}
+2023-02-24 16:47:44,141 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:44,141 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 16:47:44,141 INFO    SenderThread:9052 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 16:47:44,710 INFO    SenderThread:9052 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files
+2023-02-24 16:47:44,710 INFO    SenderThread:9052 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\config.yaml config.yaml
+2023-02-24 16:47:44,710 INFO    SenderThread:9052 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\output.log output.log
+2023-02-24 16:47:44,713 INFO    SenderThread:9052 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\requirements.txt requirements.txt
+2023-02-24 16:47:44,714 INFO    SenderThread:9052 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 16:47:44,714 INFO    SenderThread:9052 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\wandb-summary.json wandb-summary.json
+2023-02-24 16:47:44,718 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 10
+2023-02-24 16:47:44,722 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:47:44,723 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:44,723 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 16:47:44,727 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:44,727 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 16:47:44,727 INFO    SenderThread:9052 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:47:45,235 INFO    wandb-upload_1:9052 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\output.log
+2023-02-24 16:47:45,263 INFO    wandb-upload_2:9052 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\requirements.txt
+2023-02-24 16:47:45,271 INFO    wandb-upload_3:9052 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\wandb-summary.json
+2023-02-24 16:47:45,346 INFO    wandb-upload_0:9052 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\files\config.yaml
+2023-02-24 16:47:45,549 INFO    Thread-31 :9052 [sender.py:transition_state():587] send defer: 11
+2023-02-24 16:47:45,549 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:45,549 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 16:47:45,550 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:45,550 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 16:47:45,550 INFO    SenderThread:9052 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 16:47:45,550 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 12
+2023-02-24 16:47:45,550 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:45,550 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 16:47:45,551 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:45,551 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 16:47:45,684 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 13
+2023-02-24 16:47:45,684 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:45,684 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 16:47:45,685 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:45,685 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 16:47:45,685 INFO    SenderThread:9052 [sender.py:transition_state():587] send defer: 14
+2023-02-24 16:47:45,685 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:47:45,685 INFO    HandlerThread:9052 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 16:47:45,686 DEBUG   SenderThread:9052 [sender.py:send():336] send: final
+2023-02-24 16:47:45,686 DEBUG   SenderThread:9052 [sender.py:send():336] send: footer
+2023-02-24 16:47:45,686 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:47:45,686 INFO    SenderThread:9052 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 16:47:45,687 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:47:45,687 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 16:47:45,687 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 16:47:45,687 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:47:45,688 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 16:47:45,688 DEBUG   SenderThread:9052 [sender.py:send_request():363] send_request: server_info
+2023-02-24 16:47:45,856 INFO    MainThread:9052 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 16:47:45,856 INFO    MainThread:9052 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 16:47:45,856 INFO    MainThread:9052 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 16:47:45,857 DEBUG   HandlerThread:9052 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 16:47:45,857 INFO    HandlerThread:9052 [handler.py:finish():841] shutting down handler
+2023-02-24 16:47:46,703 INFO    WriterThread:9052 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\run-0prcbjc3.wandb
+2023-02-24 16:47:46,859 INFO    SenderThread:9052 [sender.py:finish():1493] shutting down sender
+2023-02-24 16:47:46,859 INFO    SenderThread:9052 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:47:46,859 INFO    SenderThread:9052 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_164739-0prcbjc3/logs/debug.log b/embeddings/wandb/run-20230224_164739-0prcbjc3/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..114e34e0fe0c3fe8396fcd84e6456d52c166630a
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164739-0prcbjc3/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 16:47:39,283 INFO    MainThread:756 [wandb_setup.py:_flush():68] Configure stats pid to 756
+2023-02-24 16:47:39,284 INFO    MainThread:756 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 16:47:39,284 INFO    MainThread:756 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 16:47:39,284 INFO    MainThread:756 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 16:47:39,284 INFO    MainThread:756 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 16:47:39,284 INFO    MainThread:756 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\logs\debug.log
+2023-02-24 16:47:39,285 INFO    MainThread:756 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164739-0prcbjc3\logs\debug-internal.log
+2023-02-24 16:47:39,285 INFO    MainThread:756 [wandb_init.py:init():532] calling init triggers
+2023-02-24 16:47:39,285 INFO    MainThread:756 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 16:47:39,285 INFO    MainThread:756 [wandb_init.py:init():588] starting backend
+2023-02-24 16:47:39,285 INFO    MainThread:756 [wandb_init.py:init():592] setting up manager
+2023-02-24 16:47:39,290 INFO    MainThread:756 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 16:47:39,294 INFO    MainThread:756 [wandb_init.py:init():599] backend started and connected
+2023-02-24 16:47:39,295 INFO    MainThread:756 [wandb_init.py:init():687] updated telemetry
+2023-02-24 16:47:39,358 INFO    MainThread:756 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 16:47:40,682 INFO    MainThread:756 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 16:47:40,750 INFO    MainThread:756 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 16:47:40,750 INFO    MainThread:756 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 16:47:40,962 INFO    MainThread:756 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 16:47:40,962 INFO    MainThread:756 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 16:47:40,962 INFO    MainThread:756 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 16:47:40,962 INFO    MainThread:756 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 16:47:40,963 INFO    MainThread:756 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 16:47:46,931 WARNING MsgRouterThr:756 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_164739-0prcbjc3/run-0prcbjc3.wandb b/embeddings/wandb/run-20230224_164739-0prcbjc3/run-0prcbjc3.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..f185fa667a8d4a26903aaf611f22070f64e68333
Binary files /dev/null and b/embeddings/wandb/run-20230224_164739-0prcbjc3/run-0prcbjc3.wandb differ
diff --git a/embeddings/wandb/run-20230224_164912-n80nxlmy/files/config.yaml b/embeddings/wandb/run-20230224_164912-n80nxlmy/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..2f4ab914ff3ddac11a1eb8abbd544a024012a04b
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164912-n80nxlmy/files/config.yaml
@@ -0,0 +1,41 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677257352.898465
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 2
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_164912-n80nxlmy/files/media/table/data_1_c6f93943b18e073269a2.table.json b/embeddings/wandb/run-20230224_164912-n80nxlmy/files/media/table/data_1_c6f93943b18e073269a2.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..5bc091eb61cb3aa24bd80dcc0682bdcfc12ef834
Binary files /dev/null and b/embeddings/wandb/run-20230224_164912-n80nxlmy/files/media/table/data_1_c6f93943b18e073269a2.table.json differ
diff --git a/embeddings/wandb/run-20230224_164912-n80nxlmy/files/output.log b/embeddings/wandb/run-20230224_164912-n80nxlmy/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..2c0bec1fde13ffd416d7853357171fe7255264af
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164912-n80nxlmy/files/output.log
@@ -0,0 +1,47 @@
+wandb: WARNING Serializing object of type str that is 7167154 bytes
+wandb: WARNING Serializing object of type str that is 7192958 bytes
+wandb: WARNING Serializing object of type str that is 7166304 bytes
+wandb: WARNING Serializing object of type str that is 7192782 bytes
+wandb: WARNING Serializing object of type str that is 7184318 bytes
+wandb: WARNING Serializing object of type str that is 7168778 bytes
+wandb: WARNING Serializing object of type str that is 7170696 bytes
+wandb: WARNING Serializing object of type str that is 7186904 bytes
+wandb: WARNING Serializing object of type str that is 7186150 bytes
+wandb: WARNING Serializing object of type str that is 7181932 bytes
+wandb: WARNING Serializing object of type str that is 7193002 bytes
+wandb: WARNING Serializing object of type str that is 7180792 bytes
+wandb: WARNING Serializing object of type str that is 7166798 bytes
+wandb: WARNING Serializing object of type str that is 7166908 bytes
+wandb: WARNING Serializing object of type str that is 7195138 bytes
+wandb: WARNING Serializing object of type str that is 7173490 bytes
+wandb: WARNING Serializing object of type str that is 7172296 bytes
+wandb: WARNING Serializing object of type str that is 7185018 bytes
+wandb: WARNING Serializing object of type str that is 7197198 bytes
+wandb: WARNING Serializing object of type str that is 7174494 bytes
+wandb: WARNING Serializing object of type str that is 7166324 bytes
+wandb: WARNING Serializing object of type str that is 7192438 bytes
+wandb: WARNING Serializing object of type str that is 7177302 bytes
+wandb: WARNING Serializing object of type str that is 7184966 bytes
+wandb: WARNING Serializing object of type str that is 7189898 bytes
+wandb: WARNING Serializing object of type str that is 7183756 bytes
+wandb: WARNING Serializing object of type str that is 7169084 bytes
+wandb: WARNING Serializing object of type str that is 7168140 bytes
+wandb: WARNING Serializing object of type str that is 7185624 bytes
+wandb: WARNING Serializing object of type str that is 7171732 bytes
+wandb: WARNING Serializing object of type str that is 7192902 bytes
+wandb: WARNING Serializing object of type str that is 7175028 bytes
+wandb: WARNING Serializing object of type str that is 7191890 bytes
+wandb: WARNING Serializing object of type str that is 7175536 bytes
+wandb: WARNING Serializing object of type str that is 7181190 bytes
+wandb: WARNING Serializing object of type str that is 7169496 bytes
+wandb: WARNING Serializing object of type str that is 7195596 bytes
+wandb: WARNING Serializing object of type str that is 7186764 bytes
+wandb: WARNING Serializing object of type str that is 7185678 bytes
+wandb: WARNING Serializing object of type str that is 7189154 bytes
+wandb: WARNING Serializing object of type str that is 7184582 bytes
+wandb: WARNING Serializing object of type str that is 7166804 bytes
+wandb: WARNING Serializing object of type str that is 7175934 bytes
+wandb: WARNING Serializing object of type str that is 7172834 bytes
+wandb: WARNING Serializing object of type str that is 7187712 bytes
+wandb: WARNING Serializing object of type str that is 7183950 bytes
+wandb: Adding directory to artifact (.\..\data)... Done. 1.7s
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_164912-n80nxlmy/files/requirements.txt b/embeddings/wandb/run-20230224_164912-n80nxlmy/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164912-n80nxlmy/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_164912-n80nxlmy/files/wandb-metadata.json b/embeddings/wandb/run-20230224_164912-n80nxlmy/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..f201c25f6d0b665e22224fc15c4551e6a2f1a4aa
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164912-n80nxlmy/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T16:49:13.425547",
+    "startedAt": "2023-02-24T16:49:12.884466",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 355.97283935546875
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_164912-n80nxlmy/files/wandb-summary.json b/embeddings/wandb/run-20230224_164912-n80nxlmy/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..02b32adb2d280442b77ef25253bbad10a7804a50
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164912-n80nxlmy/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677257367.3117383, "_runtime": 14.413273334503174, "_step": 1, "data": {"_type": "table-file", "sha256": "c6f93943b18e073269a2d1d6628dcff11004c50c31997b85db1c38eb4d3ee705", "size": 168981715, "artifact_path": "wandb-client-artifact://hv6lz548u75ee8heqp2ydqp1se95hy6zvi90gh0ruta1wkubqll9d5zfgw3wa1ivpxy7xposf3m8cu8d3gk78bap3xksmydvpg062g8pqcdwxqv4yjt2pule4k9zjh1r:latest/data.table.json", "_latest_artifact_path": "wandb-client-artifact://hv6lz548u75ee8heqp2ydqp1se95hy6zvi90gh0ruta1wkubqll9d5zfgw3wa1ivpxy7xposf3m8cu8d3gk78bap3xksmydvpg062g8pqcdwxqv4yjt2pule4k9zjh1r:latest/data.table.json", "path": "media/table/data_1_c6f93943b18e073269a2.table.json", "ncols": 4, "nrows": 46}, "_wandb": {"runtime": 15}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_164912-n80nxlmy/logs/debug-internal.log b/embeddings/wandb/run-20230224_164912-n80nxlmy/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..d4f4ba74eacebbfb9c9013266595abf721c9fa64
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164912-n80nxlmy/logs/debug-internal.log
@@ -0,0 +1,226 @@
+2023-02-24 16:49:12,899 INFO    StreamThr :12764 [internal.py:wandb_internal():87] W&B internal server running at pid: 12764, started at: 2023-02-24 16:49:12.898465
+2023-02-24 16:49:12,901 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status
+2023-02-24 16:49:12,902 INFO    WriterThread:12764 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\run-n80nxlmy.wandb
+2023-02-24 16:49:12,906 DEBUG   SenderThread:12764 [sender.py:send():336] send: header
+2023-02-24 16:49:12,952 DEBUG   SenderThread:12764 [sender.py:send():336] send: run
+2023-02-24 16:49:13,327 INFO    SenderThread:12764 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files
+2023-02-24 16:49:13,327 INFO    SenderThread:12764 [sender.py:_start_run_threads():1067] run started: n80nxlmy with start time 1677257352.898465
+2023-02-24 16:49:13,328 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:49:13,328 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 16:49:13,329 INFO    SenderThread:12764 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:49:13,329 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: check_version
+2023-02-24 16:49:13,404 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 16:49:13,421 DEBUG   HandlerThread:12764 [system_info.py:__init__():31] System info init
+2023-02-24 16:49:13,421 DEBUG   HandlerThread:12764 [system_info.py:__init__():46] System info init done
+2023-02-24 16:49:13,421 INFO    HandlerThread:12764 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 16:49:13,422 INFO    SystemMonitor:12764 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 16:49:13,422 INFO    HandlerThread:12764 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 16:49:13,425 INFO    SystemMonitor:12764 [interfaces.py:start():168] Started cpu
+2023-02-24 16:49:13,425 DEBUG   HandlerThread:12764 [system_info.py:probe():195] Probing system
+2023-02-24 16:49:13,426 INFO    SystemMonitor:12764 [interfaces.py:start():168] Started disk
+2023-02-24 16:49:13,426 INFO    SystemMonitor:12764 [interfaces.py:start():168] Started memory
+2023-02-24 16:49:13,443 INFO    SystemMonitor:12764 [interfaces.py:start():168] Started network
+2023-02-24 16:49:13,444 DEBUG   HandlerThread:12764 [system_info.py:_probe_git():180] Probing git
+2023-02-24 16:49:13,539 DEBUG   HandlerThread:12764 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 16:49:13,539 DEBUG   HandlerThread:12764 [system_info.py:probe():241] Probing system done
+2023-02-24 16:49:13,539 DEBUG   HandlerThread:12764 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T16:49:13.425547', 'startedAt': '2023-02-24T16:49:12.884466', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 355.97283935546875}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 16:49:13,539 INFO    HandlerThread:12764 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 16:49:13,539 INFO    HandlerThread:12764 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 16:49:13,539 DEBUG   HandlerThread:12764 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 16:49:13,540 DEBUG   HandlerThread:12764 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 16:49:13,542 INFO    HandlerThread:12764 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 16:49:13,550 DEBUG   SenderThread:12764 [sender.py:send():336] send: files
+2023-02-24 16:49:13,550 INFO    SenderThread:12764 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 16:49:13,558 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 16:49:13,559 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 16:49:13,561 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 16:49:13,735 DEBUG   SenderThread:12764 [sender.py:send():336] send: telemetry
+2023-02-24 16:49:13,736 DEBUG   SenderThread:12764 [sender.py:send():336] send: history
+2023-02-24 16:49:13,736 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:49:13,737 INFO    SenderThread:12764 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:49:14,077 INFO    wandb-upload_0:12764 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpxztu_fn4wandb\2tbnhk8w-wandb-metadata.json
+2023-02-24 16:49:14,333 INFO    Thread-17 :12764 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\requirements.txt
+2023-02-24 16:49:14,333 INFO    Thread-17 :12764 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\wandb-metadata.json
+2023-02-24 16:49:14,333 INFO    Thread-17 :12764 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\wandb-summary.json
+2023-02-24 16:49:15,331 INFO    Thread-17 :12764 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\output.log
+2023-02-24 16:49:17,362 INFO    Thread-17 :12764 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\output.log
+2023-02-24 16:49:18,283 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:49:21,877 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 16:49:21,877 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 16:49:27,312 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 16:49:27,463 INFO    Thread-17 :12764 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\media\table\data_1_c6f93943b18e073269a2.table.json
+2023-02-24 16:49:27,463 INFO    Thread-17 :12764 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\media\table
+2023-02-24 16:49:27,464 INFO    Thread-17 :12764 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\media
+2023-02-24 16:49:28,570 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:49:28,570 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:49:29,186 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 16:49:30,192 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:49:35,241 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:49:40,291 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:49:45,352 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:49:50,398 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:49:55,463 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:50:00,516 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:50:05,570 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:50:10,618 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:50:13,453 DEBUG   SystemMonitor:12764 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 16:50:15,667 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:50:18,325 INFO    wandb-upload_0:12764 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmphw_n1v6u
+2023-02-24 16:50:19,203 INFO    SenderThread:12764 [sender.py:send_request_log_artifact():1381] logged artifact run-n80nxlmy-data - {'id': 'QXJ0aWZhY3Q6MzgwNTc3MDk2', 'digest': 'd052815eda20fa078df10db758f45868', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjI1MDc3', 'latestArtifact': None}, 'version': 'latest'}
+2023-02-24 16:50:19,209 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:50:19,394 DEBUG   SenderThread:12764 [sender.py:send():336] send: files
+2023-02-24 16:50:19,394 INFO    SenderThread:12764 [sender.py:_save_file():1321] saving file media\table\data_1_c6f93943b18e073269a2.table.json with policy now
+2023-02-24 16:50:19,395 DEBUG   SenderThread:12764 [sender.py:send():336] send: history
+2023-02-24 16:50:19,395 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:50:19,397 INFO    SenderThread:12764 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:50:19,398 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 16:50:19,854 INFO    SenderThread:12764 [sender.py:send_request_log_artifact():1381] logged artifact static-graphs - {'id': 'QXJ0aWZhY3Q6MzgwNTY0ODAy', 'digest': '64a712122c812b4423fcf560ca60f704', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'static-graphs', 'alias': 'latest'}, {'artifactCollectionName': 'static-graphs', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjIzMTU5', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwNTY0ODAy', 'versionIndex': 0}}, 'version': 'v0'}
+2023-02-24 16:50:19,854 DEBUG   SenderThread:12764 [sender.py:send():336] send: telemetry
+2023-02-24 16:50:19,854 DEBUG   SenderThread:12764 [sender.py:send():336] send: exit
+2023-02-24 16:50:19,854 INFO    SenderThread:12764 [sender.py:send_exit():559] handling exit code: 0
+2023-02-24 16:50:19,854 INFO    SenderThread:12764 [sender.py:send_exit():561] handling runtime: 15
+2023-02-24 16:50:19,855 INFO    SenderThread:12764 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:50:19,855 INFO    SenderThread:12764 [sender.py:send_exit():567] send defer
+2023-02-24 16:50:19,855 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:50:19,855 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:50:19,856 DEBUG   SenderThread:12764 [sender.py:send():336] send: stats
+2023-02-24 16:50:19,856 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 16:50:19,857 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:50:19,857 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 16:50:19,857 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 1
+2023-02-24 16:50:19,857 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:50:19,857 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 16:50:19,857 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:50:19,857 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 16:50:19,857 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 2
+2023-02-24 16:50:19,858 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:50:19,858 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 16:50:19,858 INFO    HandlerThread:12764 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 16:50:19,859 DEBUG   SystemMonitor:12764 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 16:50:19,859 DEBUG   SystemMonitor:12764 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 16:50:19,859 INFO    HandlerThread:12764 [interfaces.py:finish():175] Joined cpu
+2023-02-24 16:50:19,859 INFO    HandlerThread:12764 [interfaces.py:finish():175] Joined disk
+2023-02-24 16:50:19,859 INFO    HandlerThread:12764 [interfaces.py:finish():175] Joined memory
+2023-02-24 16:50:19,859 INFO    HandlerThread:12764 [interfaces.py:finish():175] Joined network
+2023-02-24 16:50:19,860 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:50:19,860 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 16:50:19,860 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 3
+2023-02-24 16:50:19,860 DEBUG   SenderThread:12764 [sender.py:send():336] send: stats
+2023-02-24 16:50:19,860 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:50:19,861 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 16:50:19,861 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:50:19,861 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 16:50:19,861 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 4
+2023-02-24 16:50:19,861 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:50:19,861 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 16:50:19,861 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:50:19,861 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 16:50:19,862 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 5
+2023-02-24 16:50:19,862 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:50:19,862 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 16:50:19,862 DEBUG   SenderThread:12764 [sender.py:send():336] send: summary
+2023-02-24 16:50:19,863 INFO    SenderThread:12764 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:50:19,863 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:50:19,863 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 16:50:19,864 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 6
+2023-02-24 16:50:19,864 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:50:19,864 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 16:50:19,864 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:50:19,864 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 16:50:19,867 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:50:20,112 INFO    Thread-17 :12764 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\wandb-summary.json
+2023-02-24 16:50:20,112 INFO    Thread-17 :12764 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\config.yaml
+2023-02-24 16:50:20,142 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 7
+2023-02-24 16:50:20,143 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:50:20,143 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 16:50:20,143 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:50:20,143 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 16:50:20,719 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:50:21,126 INFO    Thread-17 :12764 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\config.yaml
+2023-02-24 16:50:21,593 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 8
+2023-02-24 16:50:21,593 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:50:21,593 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 16:50:21,593 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:50:21,594 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 16:50:21,602 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 9
+2023-02-24 16:50:21,603 DEBUG   SenderThread:12764 [sender.py:send():336] send: artifact
+2023-02-24 16:50:21,605 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:50:21,605 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 16:50:22,140 INFO    Thread-17 :12764 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\output.log
+2023-02-24 16:50:22,373 INFO    SenderThread:12764 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'digest': '8077f65decb82fd65dc9936bbf393b39', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v2'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v2'}
+2023-02-24 16:50:22,373 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:50:22,373 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 16:50:22,373 INFO    SenderThread:12764 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 16:50:23,143 INFO    SenderThread:12764 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files
+2023-02-24 16:50:23,144 INFO    SenderThread:12764 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\config.yaml config.yaml
+2023-02-24 16:50:23,144 INFO    SenderThread:12764 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\output.log output.log
+2023-02-24 16:50:23,147 INFO    SenderThread:12764 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\requirements.txt requirements.txt
+2023-02-24 16:50:23,153 INFO    SenderThread:12764 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 16:50:23,153 INFO    SenderThread:12764 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\wandb-summary.json wandb-summary.json
+2023-02-24 16:50:23,162 INFO    SenderThread:12764 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\media\table\data_1_c6f93943b18e073269a2.table.json media\table\data_1_c6f93943b18e073269a2.table.json
+2023-02-24 16:50:23,163 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 10
+2023-02-24 16:50:23,163 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:50:23,163 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 16:50:23,164 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:50:23,164 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 16:50:23,164 INFO    SenderThread:12764 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:50:23,681 INFO    wandb-upload_1:12764 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\config.yaml
+2023-02-24 16:50:23,715 INFO    wandb-upload_4:12764 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\wandb-summary.json
+2023-02-24 16:50:23,730 INFO    wandb-upload_3:12764 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\requirements.txt
+2023-02-24 16:50:23,885 INFO    wandb-upload_2:12764 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\files\output.log
+2023-02-24 16:50:25,183 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:50:25,774 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:50:30,231 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:50:30,835 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:50:35,283 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:50:35,892 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:50:40,322 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:50:40,945 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:50:45,376 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:50:45,996 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:50:50,433 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:50:51,054 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:50:55,489 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:50:56,112 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:51:00,542 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:51:01,152 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:51:05,594 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:51:06,218 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:51:10,648 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:51:11,270 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 16:51:14,371 INFO    wandb-upload_0:12764 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpxztu_fn4wandb\7oeproiy-media/table/data_1_c6f93943b18e073269a2.table.json
+2023-02-24 16:51:14,589 INFO    Thread-16 :12764 [sender.py:transition_state():587] send defer: 11
+2023-02-24 16:51:14,589 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:14,589 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 16:51:14,590 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:14,590 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 16:51:14,590 INFO    SenderThread:12764 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 16:51:14,590 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 12
+2023-02-24 16:51:14,590 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:14,591 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 16:51:14,591 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:14,591 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 16:51:14,744 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 13
+2023-02-24 16:51:14,744 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:14,744 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 16:51:14,744 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:14,744 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 16:51:14,745 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 14
+2023-02-24 16:51:14,745 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:14,745 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 16:51:14,745 DEBUG   SenderThread:12764 [sender.py:send():336] send: final
+2023-02-24 16:51:14,746 DEBUG   SenderThread:12764 [sender.py:send():336] send: footer
+2023-02-24 16:51:14,746 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:14,746 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 16:51:14,747 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:51:14,747 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:51:14,748 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 16:51:14,748 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 16:51:14,748 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 16:51:14,749 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: server_info
+2023-02-24 16:51:14,907 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 16:51:14,908 INFO    HandlerThread:12764 [handler.py:finish():841] shutting down handler
+2023-02-24 16:51:15,758 INFO    WriterThread:12764 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\run-n80nxlmy.wandb
+2023-02-24 16:51:15,914 INFO    SenderThread:12764 [sender.py:finish():1493] shutting down sender
+2023-02-24 16:51:15,914 INFO    SenderThread:12764 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:51:15,915 INFO    SenderThread:12764 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_164912-n80nxlmy/logs/debug.log b/embeddings/wandb/run-20230224_164912-n80nxlmy/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..fdcb45d8b04954c6fd64f3b7036593417d4736ac
--- /dev/null
+++ b/embeddings/wandb/run-20230224_164912-n80nxlmy/logs/debug.log
@@ -0,0 +1,31 @@
+2023-02-24 16:49:12,888 INFO    MainThread:1692 [wandb_setup.py:_flush():68] Configure stats pid to 1692
+2023-02-24 16:49:12,888 INFO    MainThread:1692 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 16:49:12,888 INFO    MainThread:1692 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 16:49:12,888 INFO    MainThread:1692 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 16:49:12,889 INFO    MainThread:1692 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 16:49:12,890 INFO    MainThread:1692 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\logs\debug.log
+2023-02-24 16:49:12,890 INFO    MainThread:1692 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_164912-n80nxlmy\logs\debug-internal.log
+2023-02-24 16:49:12,890 INFO    MainThread:1692 [wandb_init.py:init():532] calling init triggers
+2023-02-24 16:49:12,890 INFO    MainThread:1692 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 16:49:12,890 INFO    MainThread:1692 [wandb_init.py:init():588] starting backend
+2023-02-24 16:49:12,890 INFO    MainThread:1692 [wandb_init.py:init():592] setting up manager
+2023-02-24 16:49:12,894 INFO    MainThread:1692 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 16:49:12,898 INFO    MainThread:1692 [wandb_init.py:init():599] backend started and connected
+2023-02-24 16:49:12,900 INFO    MainThread:1692 [wandb_init.py:init():687] updated telemetry
+2023-02-24 16:49:12,951 INFO    MainThread:1692 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 16:49:13,327 INFO    MainThread:1692 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 16:49:13,396 INFO    MainThread:1692 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 16:49:13,396 INFO    MainThread:1692 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 16:49:13,559 INFO    MainThread:1692 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 16:49:13,559 INFO    MainThread:1692 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 16:49:13,559 INFO    MainThread:1692 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 16:49:13,559 INFO    MainThread:1692 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 16:49:13,560 INFO    MainThread:1692 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 16:49:29,188 INFO    MainThread:1692 [wandb_run.py:_finish():1854] finishing run g4nlp/heterogeneous-GAT-model/n80nxlmy
+2023-02-24 16:49:29,188 INFO    MainThread:1692 [wandb_run.py:_atexit_cleanup():2083] got exitcode: 0
+2023-02-24 16:49:29,189 INFO    MainThread:1692 [wandb_run.py:_restore():2066] restore
+2023-02-24 16:49:29,189 INFO    MainThread:1692 [wandb_run.py:_restore():2072] restore done
+2023-02-24 16:51:15,914 INFO    MainThread:1692 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 16:51:15,915 INFO    MainThread:1692 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 16:51:15,920 INFO    MainThread:1692 [wandb_run.py:_footer_sync_info():3398] logging synced files
diff --git a/embeddings/wandb/run-20230224_164912-n80nxlmy/run-n80nxlmy.wandb b/embeddings/wandb/run-20230224_164912-n80nxlmy/run-n80nxlmy.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..91476dab018684e212629c0ec328fbab50d75cfa
Binary files /dev/null and b/embeddings/wandb/run-20230224_164912-n80nxlmy/run-n80nxlmy.wandb differ
diff --git a/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/config.yaml b/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f387a3a8afc3bc94c5bc790d8d685c3b7189635e
--- /dev/null
+++ b/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/config.yaml
@@ -0,0 +1,39 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677257475.939229
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/output.log b/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..e8f5bf96a072eb93755657d17ba9549eaeff3e62
--- /dev/null
+++ b/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/output.log
@@ -0,0 +1,101 @@
+BatchedHeteroDataBatch(
+  question_emb=[16, 1536],
+  answer_emb=[16, 1536],
+  label=[16, 1],
+  question={
+    x=[73, 1536],
+    batch=[73],
+    ptr=[17]
+  },
+  answer={
+    x=[110, 1536],
+    batch=[110],
+    ptr=[17]
+  },
+  comment={
+    x=[105, 768],
+    batch=[105],
+    ptr=[17]
+  },
+  tag={
+    x=[455, 50],
+    batch=[455],
+    ptr=[17]
+  },
+  module={
+    x=[20, 30],
+    batch=[20],
+    ptr=[17]
+  },
+  (tag, describes, question)={ edge_index=[2, 155] },
+  (tag, describes, answer)={ edge_index=[2, 234] },
+  (tag, describes, comment)={ edge_index=[2, 229] },
+  (module, imported_in, question)={ edge_index=[2, 1] },
+  (module, imported_in, answer)={ edge_index=[2, 26] },
+  (question, rev_describes, tag)={ edge_index=[2, 155] },
+  (answer, rev_describes, tag)={ edge_index=[2, 234] },
+  (comment, rev_describes, tag)={ edge_index=[2, 229] },
+  (question, rev_imported_in, module)={ edge_index=[2, 1] },
+  (answer, rev_imported_in, module)={ edge_index=[2, 26] }
+)
+DATA IN torch.Size([16, 1536]) torch.Size([16, 1536])
+IN torch.Size([16, 3072])
+B4 LINEAR torch.Size([16, 3392])
+BatchedHeteroDataBatch(
+  question_emb=[12, 1536],
+  answer_emb=[12, 1536],
+  label=[12, 1],
+  question={
+    x=[33, 1536],
+    batch=[33],
+    ptr=[13]
+  },
+  answer={
+    x=[84, 1536],
+    batch=[84],
+    ptr=[13]
+  },
+  comment={
+    x=[70, 768],
+    batch=[70],
+    ptr=[13]
+  },
+  tag={
+    x=[255, 50],
+    batch=[255],
+    ptr=[13]
+  },
+  module={
+    x=[13, 30],
+    batch=[13],
+    ptr=[13]
+  },
+  (tag, describes, question)={ edge_index=[2, 73] },
+  (tag, describes, answer)={ edge_index=[2, 172] },
+  (tag, describes, comment)={ edge_index=[2, 133] },
+  (module, imported_in, question)={ edge_index=[2, 0] },
+  (module, imported_in, answer)={ edge_index=[2, 16] },
+  (question, rev_describes, tag)={ edge_index=[2, 73] },
+  (answer, rev_describes, tag)={ edge_index=[2, 172] },
+  (comment, rev_describes, tag)={ edge_index=[2, 133] },
+  (question, rev_imported_in, module)={ edge_index=[2, 0] },
+  (answer, rev_imported_in, module)={ edge_index=[2, 16] }
+)
+DATA IN torch.Size([12, 1536]) torch.Size([12, 1536])
+IN torch.Size([12, 3072])
+B4 LINEAR torch.Size([12, 3392])
+IN torch.Size([16, 3072])
+B4 LINEAR torch.Size([16, 3392])
+INFO:heterogeneous-GAT-model:[1] Loss: 0.00034426033496856687
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 204, in <module>
+    train_acc, train_f1, train_loss, train_table = test(train_loader)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 112, in test
+    loss = criterion(out, data.label)  # Compute the loss.
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\torch\nn\modules\module.py", line 1190, in _call_impl
+    return forward_call(*input, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\torch\nn\modules\loss.py", line 1174, in forward
+    return F.cross_entropy(input, target, weight=self.weight,
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\torch\nn\functional.py", line 3026, in cross_entropy
+    return torch._C._nn.cross_entropy_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index, label_smoothing)
+RuntimeError: 0D or 1D target tensor expected, multi-target not supported
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/requirements.txt b/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/wandb-metadata.json b/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..bc936c88e10aff3ab009c8436a044a84c73aa517
--- /dev/null
+++ b/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T16:51:17.379313",
+    "startedAt": "2023-02-24T16:51:15.928236",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 356.60274505615234
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/wandb-summary.json b/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..971d47939227bae0ec95239d24debe3d22478dc7
--- /dev/null
+++ b/embeddings/wandb/run-20230224_165115-qg3l5jjk/files/wandb-summary.json
@@ -0,0 +1 @@
+{"_wandb": {"runtime": 1}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_165115-qg3l5jjk/logs/debug-internal.log b/embeddings/wandb/run-20230224_165115-qg3l5jjk/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..9f0e41aed1e63f617570e204cfe88139bfb94df4
--- /dev/null
+++ b/embeddings/wandb/run-20230224_165115-qg3l5jjk/logs/debug-internal.log
@@ -0,0 +1,173 @@
+2023-02-24 16:51:16,926 INFO    StreamThr :12764 [internal.py:wandb_internal():87] W&B internal server running at pid: 12764, started at: 2023-02-24 16:51:16.925258
+2023-02-24 16:51:16,927 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status
+2023-02-24 16:51:16,929 INFO    WriterThread:12764 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\run-qg3l5jjk.wandb
+2023-02-24 16:51:16,930 DEBUG   SenderThread:12764 [sender.py:send():336] send: header
+2023-02-24 16:51:16,931 DEBUG   SenderThread:12764 [sender.py:send():336] send: run
+2023-02-24 16:51:17,279 INFO    SenderThread:12764 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files
+2023-02-24 16:51:17,279 INFO    SenderThread:12764 [sender.py:_start_run_threads():1067] run started: qg3l5jjk with start time 1677257475.939229
+2023-02-24 16:51:17,279 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 16:51:17,280 INFO    SenderThread:12764 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:51:17,283 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 16:51:17,284 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: check_version
+2023-02-24 16:51:17,354 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 16:51:17,374 DEBUG   HandlerThread:12764 [system_info.py:__init__():31] System info init
+2023-02-24 16:51:17,375 DEBUG   HandlerThread:12764 [system_info.py:__init__():46] System info init done
+2023-02-24 16:51:17,375 INFO    HandlerThread:12764 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 16:51:17,375 INFO    SystemMonitor:12764 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 16:51:17,375 INFO    HandlerThread:12764 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 16:51:17,378 INFO    SystemMonitor:12764 [interfaces.py:start():168] Started cpu
+2023-02-24 16:51:17,379 DEBUG   HandlerThread:12764 [system_info.py:probe():195] Probing system
+2023-02-24 16:51:17,379 INFO    SystemMonitor:12764 [interfaces.py:start():168] Started disk
+2023-02-24 16:51:17,379 INFO    SystemMonitor:12764 [interfaces.py:start():168] Started memory
+2023-02-24 16:51:17,395 INFO    SystemMonitor:12764 [interfaces.py:start():168] Started network
+2023-02-24 16:51:17,396 DEBUG   HandlerThread:12764 [system_info.py:_probe_git():180] Probing git
+2023-02-24 16:51:17,489 DEBUG   HandlerThread:12764 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 16:51:17,489 DEBUG   HandlerThread:12764 [system_info.py:probe():241] Probing system done
+2023-02-24 16:51:17,489 DEBUG   HandlerThread:12764 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T16:51:17.379313', 'startedAt': '2023-02-24T16:51:15.928236', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 356.60274505615234}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 16:51:17,490 INFO    HandlerThread:12764 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 16:51:17,490 INFO    HandlerThread:12764 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 16:51:17,490 DEBUG   HandlerThread:12764 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 16:51:17,491 DEBUG   HandlerThread:12764 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 16:51:17,492 INFO    HandlerThread:12764 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 16:51:17,493 DEBUG   SenderThread:12764 [sender.py:send():336] send: files
+2023-02-24 16:51:17,493 INFO    SenderThread:12764 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 16:51:17,501 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 16:51:17,502 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 16:51:17,653 DEBUG   SenderThread:12764 [sender.py:send():336] send: telemetry
+2023-02-24 16:51:18,029 DEBUG   SenderThread:12764 [sender.py:send():336] send: use_artifact
+2023-02-24 16:51:18,086 INFO    wandb-upload_0:12764 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpgck2d792wandb\66r8xkyj-wandb-metadata.json
+2023-02-24 16:51:18,283 INFO    Thread-32 :12764 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\requirements.txt
+2023-02-24 16:51:18,284 INFO    Thread-32 :12764 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\output.log
+2023-02-24 16:51:18,284 INFO    Thread-32 :12764 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\wandb-metadata.json
+2023-02-24 16:51:18,284 INFO    Thread-32 :12764 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\wandb-summary.json
+2023-02-24 16:51:19,176 DEBUG   SenderThread:12764 [sender.py:send():336] send: exit
+2023-02-24 16:51:19,176 INFO    SenderThread:12764 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 16:51:19,176 INFO    SenderThread:12764 [sender.py:send_exit():561] handling runtime: 1
+2023-02-24 16:51:19,176 INFO    SenderThread:12764 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:51:19,177 INFO    SenderThread:12764 [sender.py:send_exit():567] send defer
+2023-02-24 16:51:19,177 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:19,177 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 16:51:19,177 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:19,177 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 16:51:19,177 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 1
+2023-02-24 16:51:19,178 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:19,178 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 16:51:19,178 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:19,178 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 16:51:19,178 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 2
+2023-02-24 16:51:19,178 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:19,179 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 16:51:19,179 INFO    HandlerThread:12764 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 16:51:19,179 DEBUG   SystemMonitor:12764 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 16:51:19,179 DEBUG   SystemMonitor:12764 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 16:51:19,180 DEBUG   SystemMonitor:12764 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 16:51:19,180 INFO    HandlerThread:12764 [interfaces.py:finish():175] Joined cpu
+2023-02-24 16:51:19,180 INFO    HandlerThread:12764 [interfaces.py:finish():175] Joined disk
+2023-02-24 16:51:19,180 INFO    HandlerThread:12764 [interfaces.py:finish():175] Joined memory
+2023-02-24 16:51:19,180 INFO    HandlerThread:12764 [interfaces.py:finish():175] Joined network
+2023-02-24 16:51:19,181 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:19,181 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 16:51:19,181 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 3
+2023-02-24 16:51:19,181 DEBUG   SenderThread:12764 [sender.py:send():336] send: stats
+2023-02-24 16:51:19,181 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:19,182 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 16:51:19,182 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:19,182 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 16:51:19,182 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 4
+2023-02-24 16:51:19,182 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:19,182 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 16:51:19,183 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:19,183 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 16:51:19,183 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 5
+2023-02-24 16:51:19,183 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:19,183 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 16:51:19,183 DEBUG   SenderThread:12764 [sender.py:send():336] send: summary
+2023-02-24 16:51:19,184 INFO    SenderThread:12764 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 16:51:19,184 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:19,184 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 16:51:19,184 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 6
+2023-02-24 16:51:19,185 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:19,185 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 16:51:19,185 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:19,185 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 16:51:19,190 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 16:51:19,285 INFO    Thread-32 :12764 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\wandb-summary.json
+2023-02-24 16:51:19,386 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 7
+2023-02-24 16:51:19,387 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:19,387 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 16:51:19,388 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:19,388 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 16:51:20,189 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:51:20,298 INFO    Thread-32 :12764 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\output.log
+2023-02-24 16:51:20,298 INFO    Thread-32 :12764 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\config.yaml
+2023-02-24 16:51:20,408 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 8
+2023-02-24 16:51:20,408 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:51:20,408 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:20,408 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 16:51:20,409 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:20,409 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 16:51:20,419 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 9
+2023-02-24 16:51:20,419 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:20,419 DEBUG   SenderThread:12764 [sender.py:send():336] send: artifact
+2023-02-24 16:51:20,419 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 16:51:21,202 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:51:21,312 INFO    Thread-32 :12764 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\output.log
+2023-02-24 16:51:21,607 INFO    SenderThread:12764 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'digest': 'dbe34f6e8b990dacc5d7c5e1ab1d02a4', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v0'}
+2023-02-24 16:51:21,607 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:21,607 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 16:51:21,607 INFO    SenderThread:12764 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 16:51:22,315 INFO    SenderThread:12764 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files
+2023-02-24 16:51:22,315 INFO    SenderThread:12764 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\config.yaml config.yaml
+2023-02-24 16:51:22,316 INFO    SenderThread:12764 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\output.log output.log
+2023-02-24 16:51:22,318 INFO    SenderThread:12764 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\requirements.txt requirements.txt
+2023-02-24 16:51:22,323 INFO    SenderThread:12764 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 16:51:22,323 INFO    SenderThread:12764 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\wandb-summary.json wandb-summary.json
+2023-02-24 16:51:22,327 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 10
+2023-02-24 16:51:22,327 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:51:22,327 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:22,328 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 16:51:22,331 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:22,331 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 16:51:22,331 INFO    SenderThread:12764 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:51:22,811 INFO    wandb-upload_1:12764 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\output.log
+2023-02-24 16:51:22,919 INFO    wandb-upload_3:12764 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\wandb-summary.json
+2023-02-24 16:51:22,920 INFO    wandb-upload_0:12764 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\config.yaml
+2023-02-24 16:51:22,981 INFO    wandb-upload_2:12764 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\files\requirements.txt
+2023-02-24 16:51:23,187 INFO    Thread-31 :12764 [sender.py:transition_state():587] send defer: 11
+2023-02-24 16:51:23,187 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:23,187 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 16:51:23,188 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:23,188 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 16:51:23,188 INFO    SenderThread:12764 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 16:51:23,188 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 12
+2023-02-24 16:51:23,188 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:23,188 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 16:51:23,189 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:23,189 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 16:51:23,332 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 13
+2023-02-24 16:51:23,332 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:23,332 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 16:51:23,332 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:23,332 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 16:51:23,332 INFO    SenderThread:12764 [sender.py:transition_state():587] send defer: 14
+2023-02-24 16:51:23,333 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 16:51:23,333 INFO    HandlerThread:12764 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 16:51:23,333 DEBUG   SenderThread:12764 [sender.py:send():336] send: final
+2023-02-24 16:51:23,333 DEBUG   SenderThread:12764 [sender.py:send():336] send: footer
+2023-02-24 16:51:23,334 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: defer
+2023-02-24 16:51:23,334 INFO    SenderThread:12764 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 16:51:23,335 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 16:51:23,335 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 16:51:23,335 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 16:51:23,335 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 16:51:23,335 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 16:51:23,336 DEBUG   SenderThread:12764 [sender.py:send_request():363] send_request: server_info
+2023-02-24 16:51:23,494 INFO    MainThread:12764 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 16:51:23,494 INFO    MainThread:12764 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 16:51:23,494 INFO    MainThread:12764 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 16:51:23,495 DEBUG   HandlerThread:12764 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 16:51:23,495 INFO    HandlerThread:12764 [handler.py:finish():841] shutting down handler
+2023-02-24 16:51:24,342 INFO    WriterThread:12764 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\run-qg3l5jjk.wandb
+2023-02-24 16:51:24,498 INFO    SenderThread:12764 [sender.py:finish():1493] shutting down sender
+2023-02-24 16:51:24,498 INFO    SenderThread:12764 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 16:51:24,498 INFO    SenderThread:12764 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_165115-qg3l5jjk/logs/debug.log b/embeddings/wandb/run-20230224_165115-qg3l5jjk/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..d1f9828960444c4dc1acafd230f2e00d453bcd3d
--- /dev/null
+++ b/embeddings/wandb/run-20230224_165115-qg3l5jjk/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 16:51:15,932 INFO    MainThread:1692 [wandb_setup.py:_flush():68] Configure stats pid to 1692
+2023-02-24 16:51:15,932 INFO    MainThread:1692 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 16:51:15,932 INFO    MainThread:1692 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 16:51:15,932 INFO    MainThread:1692 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 16:51:15,933 INFO    MainThread:1692 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 16:51:15,933 INFO    MainThread:1692 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\logs\debug.log
+2023-02-24 16:51:15,934 INFO    MainThread:1692 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_165115-qg3l5jjk\logs\debug-internal.log
+2023-02-24 16:51:15,934 INFO    MainThread:1692 [wandb_init.py:init():532] calling init triggers
+2023-02-24 16:51:15,934 INFO    MainThread:1692 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 16:51:15,934 INFO    MainThread:1692 [wandb_init.py:init():588] starting backend
+2023-02-24 16:51:15,934 INFO    MainThread:1692 [wandb_init.py:init():592] setting up manager
+2023-02-24 16:51:15,937 INFO    MainThread:1692 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 16:51:15,939 INFO    MainThread:1692 [wandb_init.py:init():599] backend started and connected
+2023-02-24 16:51:15,940 INFO    MainThread:1692 [wandb_init.py:init():687] updated telemetry
+2023-02-24 16:51:15,997 INFO    MainThread:1692 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 16:51:17,283 INFO    MainThread:1692 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 16:51:17,346 INFO    MainThread:1692 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 16:51:17,346 INFO    MainThread:1692 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 16:51:17,502 INFO    MainThread:1692 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 16:51:17,502 INFO    MainThread:1692 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 16:51:17,502 INFO    MainThread:1692 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 16:51:17,502 INFO    MainThread:1692 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 16:51:17,503 INFO    MainThread:1692 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 16:51:24,567 WARNING MsgRouterThr:1692 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_165115-qg3l5jjk/run-qg3l5jjk.wandb b/embeddings/wandb/run-20230224_165115-qg3l5jjk/run-qg3l5jjk.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..c7c6ba523c89b7623c24bc406cb64517cf3cff3f
Binary files /dev/null and b/embeddings/wandb/run-20230224_165115-qg3l5jjk/run-qg3l5jjk.wandb differ
diff --git a/embeddings/wandb/run-20230224_172836-ct30ziya/files/config.yaml b/embeddings/wandb/run-20230224_172836-ct30ziya/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0ad0323e8177eb388f4d8e37c02ac5c5a6ff12b3
--- /dev/null
+++ b/embeddings/wandb/run-20230224_172836-ct30ziya/files/config.yaml
@@ -0,0 +1,41 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677259716.5706
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 2
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_172836-ct30ziya/files/media/table/data_1_c824f28347eb76ab18a3.table.json b/embeddings/wandb/run-20230224_172836-ct30ziya/files/media/table/data_1_c824f28347eb76ab18a3.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..1571cab1eea0c3e22644460838216083361d6dff
Binary files /dev/null and b/embeddings/wandb/run-20230224_172836-ct30ziya/files/media/table/data_1_c824f28347eb76ab18a3.table.json differ
diff --git a/embeddings/wandb/run-20230224_172836-ct30ziya/files/output.log b/embeddings/wandb/run-20230224_172836-ct30ziya/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..028940023f75d1e2ee4809162292f4d7ba96b2d5
--- /dev/null
+++ b/embeddings/wandb/run-20230224_172836-ct30ziya/files/output.log
@@ -0,0 +1,47 @@
+wandb: WARNING Serializing object of type str that is 7167182 bytes
+wandb: WARNING Serializing object of type str that is 7193130 bytes
+wandb: WARNING Serializing object of type str that is 7166322 bytes
+wandb: WARNING Serializing object of type str that is 7192794 bytes
+wandb: WARNING Serializing object of type str that is 7184752 bytes
+wandb: WARNING Serializing object of type str that is 7168764 bytes
+wandb: WARNING Serializing object of type str that is 7170706 bytes
+wandb: WARNING Serializing object of type str that is 7186792 bytes
+wandb: WARNING Serializing object of type str that is 7186128 bytes
+wandb: WARNING Serializing object of type str that is 7181962 bytes
+wandb: WARNING Serializing object of type str that is 7193106 bytes
+wandb: WARNING Serializing object of type str that is 7180746 bytes
+wandb: WARNING Serializing object of type str that is 7166742 bytes
+wandb: WARNING Serializing object of type str that is 7166810 bytes
+wandb: WARNING Serializing object of type str that is 7195236 bytes
+wandb: WARNING Serializing object of type str that is 7173484 bytes
+wandb: WARNING Serializing object of type str that is 7172210 bytes
+wandb: WARNING Serializing object of type str that is 7185004 bytes
+wandb: WARNING Serializing object of type str that is 7197296 bytes
+wandb: WARNING Serializing object of type str that is 7174316 bytes
+wandb: WARNING Serializing object of type str that is 7166316 bytes
+wandb: WARNING Serializing object of type str that is 7192550 bytes
+wandb: WARNING Serializing object of type str that is 7177286 bytes
+wandb: WARNING Serializing object of type str that is 7184884 bytes
+wandb: WARNING Serializing object of type str that is 7189864 bytes
+wandb: WARNING Serializing object of type str that is 7183646 bytes
+wandb: WARNING Serializing object of type str that is 7169010 bytes
+wandb: WARNING Serializing object of type str that is 7168230 bytes
+wandb: WARNING Serializing object of type str that is 7185598 bytes
+wandb: WARNING Serializing object of type str that is 7171782 bytes
+wandb: WARNING Serializing object of type str that is 7192846 bytes
+wandb: WARNING Serializing object of type str that is 7175110 bytes
+wandb: WARNING Serializing object of type str that is 7191916 bytes
+wandb: WARNING Serializing object of type str that is 7175616 bytes
+wandb: WARNING Serializing object of type str that is 7181008 bytes
+wandb: WARNING Serializing object of type str that is 7169510 bytes
+wandb: WARNING Serializing object of type str that is 7195602 bytes
+wandb: WARNING Serializing object of type str that is 7186816 bytes
+wandb: WARNING Serializing object of type str that is 7186030 bytes
+wandb: WARNING Serializing object of type str that is 7189306 bytes
+wandb: WARNING Serializing object of type str that is 7184856 bytes
+wandb: WARNING Serializing object of type str that is 7166804 bytes
+wandb: WARNING Serializing object of type str that is 7175704 bytes
+wandb: WARNING Serializing object of type str that is 7172890 bytes
+wandb: WARNING Serializing object of type str that is 7187782 bytes
+wandb: WARNING Serializing object of type str that is 7184198 bytes
+wandb: Adding directory to artifact (.\..\data)... Done. 1.7s
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_172836-ct30ziya/files/requirements.txt b/embeddings/wandb/run-20230224_172836-ct30ziya/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_172836-ct30ziya/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_172836-ct30ziya/files/wandb-metadata.json b/embeddings/wandb/run-20230224_172836-ct30ziya/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..763286670b037ae29ce6080b578e8b856a68e16f
--- /dev/null
+++ b/embeddings/wandb/run-20230224_172836-ct30ziya/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T17:28:37.277774",
+    "startedAt": "2023-02-24T17:28:36.558596",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 356.45372009277344
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_172836-ct30ziya/files/wandb-summary.json b/embeddings/wandb/run-20230224_172836-ct30ziya/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..fc37f4b96ed6e305ae7aa89d335b10bd63dfdb67
--- /dev/null
+++ b/embeddings/wandb/run-20230224_172836-ct30ziya/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677259731.1669502, "_runtime": 14.596350193023682, "_step": 1, "data": {"_type": "table-file", "sha256": "c824f28347eb76ab18a30043974ef7027cd5613b60f8cd01ca93c020c188dee3", "size": 168982324, "artifact_path": "wandb-client-artifact://qvm4zp4z6zfx0it2qzxikk6646lwlmklt2kbn2o2watmntrqhqz62shck4mf76zxgayb04jjdm8w2ki1llfcy7s51ahte7ssk7jbqohmwabklecdmp7iay8jha5vwzw9:latest/data.table.json", "_latest_artifact_path": "wandb-client-artifact://qvm4zp4z6zfx0it2qzxikk6646lwlmklt2kbn2o2watmntrqhqz62shck4mf76zxgayb04jjdm8w2ki1llfcy7s51ahte7ssk7jbqohmwabklecdmp7iay8jha5vwzw9:latest/data.table.json", "path": "media/table/data_1_c824f28347eb76ab18a3.table.json", "ncols": 4, "nrows": 46}, "_wandb": {"runtime": 15}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_172836-ct30ziya/logs/debug-internal.log b/embeddings/wandb/run-20230224_172836-ct30ziya/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..e595fbba4c37f2dcaab840cf072941a47a83e438
--- /dev/null
+++ b/embeddings/wandb/run-20230224_172836-ct30ziya/logs/debug-internal.log
@@ -0,0 +1,248 @@
+2023-02-24 17:28:36,571 INFO    StreamThr :15480 [internal.py:wandb_internal():87] W&B internal server running at pid: 15480, started at: 2023-02-24 17:28:36.570600
+2023-02-24 17:28:36,573 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status
+2023-02-24 17:28:36,574 INFO    WriterThread:15480 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\run-ct30ziya.wandb
+2023-02-24 17:28:36,578 DEBUG   SenderThread:15480 [sender.py:send():336] send: header
+2023-02-24 17:28:36,625 DEBUG   SenderThread:15480 [sender.py:send():336] send: run
+2023-02-24 17:28:37,150 INFO    SenderThread:15480 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files
+2023-02-24 17:28:37,151 INFO    SenderThread:15480 [sender.py:_start_run_threads():1067] run started: ct30ziya with start time 1677259716.5706
+2023-02-24 17:28:37,151 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:28:37,151 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 17:28:37,152 INFO    SenderThread:15480 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:28:37,152 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: check_version
+2023-02-24 17:28:37,255 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 17:28:37,273 DEBUG   HandlerThread:15480 [system_info.py:__init__():31] System info init
+2023-02-24 17:28:37,273 DEBUG   HandlerThread:15480 [system_info.py:__init__():46] System info init done
+2023-02-24 17:28:37,273 INFO    HandlerThread:15480 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 17:28:37,274 INFO    SystemMonitor:15480 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 17:28:37,274 INFO    HandlerThread:15480 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 17:28:37,274 INFO    SystemMonitor:15480 [interfaces.py:start():168] Started cpu
+2023-02-24 17:28:37,277 DEBUG   HandlerThread:15480 [system_info.py:probe():195] Probing system
+2023-02-24 17:28:37,278 INFO    SystemMonitor:15480 [interfaces.py:start():168] Started disk
+2023-02-24 17:28:37,278 INFO    SystemMonitor:15480 [interfaces.py:start():168] Started memory
+2023-02-24 17:28:37,296 INFO    SystemMonitor:15480 [interfaces.py:start():168] Started network
+2023-02-24 17:28:37,297 DEBUG   HandlerThread:15480 [system_info.py:_probe_git():180] Probing git
+2023-02-24 17:28:37,397 DEBUG   HandlerThread:15480 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 17:28:37,397 DEBUG   HandlerThread:15480 [system_info.py:probe():241] Probing system done
+2023-02-24 17:28:37,397 DEBUG   HandlerThread:15480 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T17:28:37.277774', 'startedAt': '2023-02-24T17:28:36.558596', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 356.45372009277344}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 17:28:37,397 INFO    HandlerThread:15480 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 17:28:37,397 INFO    HandlerThread:15480 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 17:28:37,397 DEBUG   HandlerThread:15480 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 17:28:37,398 DEBUG   HandlerThread:15480 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 17:28:37,400 INFO    HandlerThread:15480 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 17:28:37,410 DEBUG   SenderThread:15480 [sender.py:send():336] send: files
+2023-02-24 17:28:37,410 INFO    SenderThread:15480 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 17:28:37,417 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 17:28:37,418 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 17:28:37,420 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 17:28:37,763 DEBUG   SenderThread:15480 [sender.py:send():336] send: telemetry
+2023-02-24 17:28:37,764 DEBUG   SenderThread:15480 [sender.py:send():336] send: history
+2023-02-24 17:28:37,764 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:28:37,765 INFO    SenderThread:15480 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:28:37,954 INFO    wandb-upload_0:15480 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpjsxbyw98wandb\5oem9qxp-wandb-metadata.json
+2023-02-24 17:28:38,168 INFO    Thread-17 :15480 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\wandb-metadata.json
+2023-02-24 17:28:38,168 INFO    Thread-17 :15480 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\requirements.txt
+2023-02-24 17:28:38,168 INFO    Thread-17 :15480 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\wandb-summary.json
+2023-02-24 17:28:39,166 INFO    Thread-17 :15480 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\output.log
+2023-02-24 17:28:41,182 INFO    Thread-17 :15480 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\output.log
+2023-02-24 17:28:42,182 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:28:45,738 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 17:28:45,738 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 17:28:51,166 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 17:28:51,296 INFO    Thread-17 :15480 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\media\table\data_1_c824f28347eb76ab18a3.table.json
+2023-02-24 17:28:51,296 INFO    Thread-17 :15480 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\media\table
+2023-02-24 17:28:51,296 INFO    Thread-17 :15480 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\media
+2023-02-24 17:28:52,421 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:28:52,421 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:28:53,061 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 17:28:54,074 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:28:59,113 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:29:04,191 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:29:09,339 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:29:14,367 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:29:19,409 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:29:24,465 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:29:29,516 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:29:34,586 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:29:37,298 DEBUG   SystemMonitor:15480 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 17:29:39,631 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:29:44,681 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:29:49,734 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:29:54,802 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:29:59,831 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:30:04,876 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:30:09,919 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:30:14,969 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:30:20,026 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:30:25,095 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:30:30,152 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:30:35,209 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:30:40,265 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:30:41,888 INFO    wandb-upload_0:15480 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpdnbp15da
+2023-02-24 17:30:42,767 INFO    SenderThread:15480 [sender.py:send_request_log_artifact():1381] logged artifact run-ct30ziya-data - {'id': 'QXJ0aWZhY3Q6MzgwNjA4NDQ5', 'digest': 'cd1847f7b0a04e8a88606c355475d973', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjMwODkz', 'latestArtifact': None}, 'version': 'latest'}
+2023-02-24 17:30:42,771 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:30:42,958 DEBUG   SenderThread:15480 [sender.py:send():336] send: files
+2023-02-24 17:30:42,958 INFO    SenderThread:15480 [sender.py:_save_file():1321] saving file media\table\data_1_c824f28347eb76ab18a3.table.json with policy now
+2023-02-24 17:30:42,959 DEBUG   SenderThread:15480 [sender.py:send():336] send: history
+2023-02-24 17:30:42,959 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:30:42,961 INFO    SenderThread:15480 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:30:42,962 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 17:30:43,441 INFO    SenderThread:15480 [sender.py:send_request_log_artifact():1381] logged artifact static-graphs - {'id': 'QXJ0aWZhY3Q6MzgwNTY0ODAy', 'digest': '64a712122c812b4423fcf560ca60f704', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'static-graphs', 'alias': 'latest'}, {'artifactCollectionName': 'static-graphs', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjIzMTU5', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwNTY0ODAy', 'versionIndex': 0}}, 'version': 'v0'}
+2023-02-24 17:30:43,441 DEBUG   SenderThread:15480 [sender.py:send():336] send: telemetry
+2023-02-24 17:30:43,442 DEBUG   SenderThread:15480 [sender.py:send():336] send: exit
+2023-02-24 17:30:43,442 INFO    SenderThread:15480 [sender.py:send_exit():559] handling exit code: 0
+2023-02-24 17:30:43,442 INFO    SenderThread:15480 [sender.py:send_exit():561] handling runtime: 15
+2023-02-24 17:30:43,443 INFO    SenderThread:15480 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:30:43,443 INFO    SenderThread:15480 [sender.py:send_exit():567] send defer
+2023-02-24 17:30:43,443 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:30:43,443 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:30:43,443 DEBUG   SenderThread:15480 [sender.py:send():336] send: stats
+2023-02-24 17:30:43,444 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 17:30:43,444 DEBUG   SenderThread:15480 [sender.py:send():336] send: stats
+2023-02-24 17:30:43,445 DEBUG   SenderThread:15480 [sender.py:send():336] send: stats
+2023-02-24 17:30:43,445 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:30:43,445 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 17:30:43,445 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 1
+2023-02-24 17:30:43,445 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:30:43,445 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 17:30:43,446 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:30:43,446 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 17:30:43,446 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 2
+2023-02-24 17:30:43,446 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:30:43,446 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 17:30:43,446 INFO    HandlerThread:15480 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 17:30:43,447 DEBUG   SystemMonitor:15480 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 17:30:43,447 INFO    HandlerThread:15480 [interfaces.py:finish():175] Joined cpu
+2023-02-24 17:30:43,447 DEBUG   SystemMonitor:15480 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 17:30:43,447 INFO    HandlerThread:15480 [interfaces.py:finish():175] Joined disk
+2023-02-24 17:30:43,448 INFO    HandlerThread:15480 [interfaces.py:finish():175] Joined memory
+2023-02-24 17:30:43,448 INFO    HandlerThread:15480 [interfaces.py:finish():175] Joined network
+2023-02-24 17:30:43,448 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:30:43,448 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 17:30:43,448 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 3
+2023-02-24 17:30:43,448 DEBUG   SenderThread:15480 [sender.py:send():336] send: stats
+2023-02-24 17:30:43,449 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:30:43,449 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 17:30:43,449 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:30:43,449 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 17:30:43,449 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 4
+2023-02-24 17:30:43,449 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:30:43,449 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 17:30:43,450 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:30:43,450 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 17:30:43,450 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 5
+2023-02-24 17:30:43,450 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:30:43,450 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 17:30:43,451 DEBUG   SenderThread:15480 [sender.py:send():336] send: summary
+2023-02-24 17:30:43,451 INFO    SenderThread:15480 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:30:43,451 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:30:43,452 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 17:30:43,452 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 6
+2023-02-24 17:30:43,452 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:30:43,452 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 17:30:43,452 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:30:43,452 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 17:30:43,456 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:30:43,668 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 7
+2023-02-24 17:30:43,668 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:30:43,668 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 17:30:43,668 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:30:43,668 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 17:30:43,677 INFO    Thread-17 :15480 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\config.yaml
+2023-02-24 17:30:43,677 INFO    Thread-17 :15480 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\wandb-summary.json
+2023-02-24 17:30:43,802 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 8
+2023-02-24 17:30:43,802 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:30:43,802 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 17:30:43,802 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:30:43,802 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 17:30:43,811 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 9
+2023-02-24 17:30:43,811 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:30:43,811 DEBUG   SenderThread:15480 [sender.py:send():336] send: artifact
+2023-02-24 17:30:43,811 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 17:30:44,691 INFO    Thread-17 :15480 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\output.log
+2023-02-24 17:30:44,815 INFO    SenderThread:15480 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'digest': '8077f65decb82fd65dc9936bbf393b39', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v2'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v2'}
+2023-02-24 17:30:44,815 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:30:44,815 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 17:30:44,815 INFO    SenderThread:15480 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 17:30:45,301 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:30:45,693 INFO    SenderThread:15480 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files
+2023-02-24 17:30:45,693 INFO    SenderThread:15480 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\config.yaml config.yaml
+2023-02-24 17:30:45,693 INFO    SenderThread:15480 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\output.log output.log
+2023-02-24 17:30:45,696 INFO    SenderThread:15480 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\requirements.txt requirements.txt
+2023-02-24 17:30:45,701 INFO    SenderThread:15480 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 17:30:45,702 INFO    SenderThread:15480 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\wandb-summary.json wandb-summary.json
+2023-02-24 17:30:45,710 INFO    SenderThread:15480 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\media\table\data_1_c824f28347eb76ab18a3.table.json media\table\data_1_c824f28347eb76ab18a3.table.json
+2023-02-24 17:30:45,711 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 10
+2023-02-24 17:30:45,711 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:30:45,711 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 17:30:45,711 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:30:45,711 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 17:30:45,711 INFO    SenderThread:15480 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:30:46,201 INFO    wandb-upload_2:15480 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\output.log
+2023-02-24 17:30:46,251 INFO    wandb-upload_3:15480 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\requirements.txt
+2023-02-24 17:30:46,253 INFO    wandb-upload_1:15480 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\config.yaml
+2023-02-24 17:30:46,688 INFO    wandb-upload_4:15480 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\files\wandb-summary.json
+2023-02-24 17:30:48,743 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:30:50,344 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:30:53,796 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:30:55,395 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:30:58,844 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:00,446 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:31:03,899 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:05,494 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:31:08,924 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:10,540 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:31:13,976 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:15,592 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:31:19,030 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:20,632 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:31:24,079 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:25,685 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:31:29,137 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:30,741 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:31:34,190 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:35,791 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:31:39,228 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:40,828 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:31:44,285 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:45,887 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:31:49,333 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:50,937 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:31:54,387 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:55,987 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:31:59,249 INFO    wandb-upload_0:15480 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpjsxbyw98wandb\8836sjrw-media/table/data_1_c824f28347eb76ab18a3.table.json
+2023-02-24 17:31:59,430 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:31:59,477 INFO    Thread-16 :15480 [sender.py:transition_state():587] send defer: 11
+2023-02-24 17:31:59,477 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:31:59,477 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 17:31:59,478 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:31:59,478 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 17:31:59,478 INFO    SenderThread:15480 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 17:31:59,478 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 12
+2023-02-24 17:31:59,478 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:31:59,478 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 17:31:59,479 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:31:59,479 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 17:31:59,633 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 13
+2023-02-24 17:31:59,633 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:31:59,633 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 17:31:59,634 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:31:59,634 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 17:31:59,634 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 14
+2023-02-24 17:31:59,634 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:31:59,634 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 17:31:59,635 DEBUG   SenderThread:15480 [sender.py:send():336] send: final
+2023-02-24 17:31:59,635 DEBUG   SenderThread:15480 [sender.py:send():336] send: footer
+2023-02-24 17:31:59,635 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:31:59,635 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 17:31:59,636 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:31:59,636 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 17:31:59,636 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 17:31:59,637 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 17:31:59,637 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:31:59,638 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: server_info
+2023-02-24 17:31:59,801 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 17:31:59,801 INFO    HandlerThread:15480 [handler.py:finish():841] shutting down handler
+2023-02-24 17:32:00,643 INFO    WriterThread:15480 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\run-ct30ziya.wandb
+2023-02-24 17:32:00,800 INFO    SenderThread:15480 [sender.py:finish():1493] shutting down sender
+2023-02-24 17:32:00,800 INFO    SenderThread:15480 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:32:00,800 INFO    SenderThread:15480 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_172836-ct30ziya/logs/debug.log b/embeddings/wandb/run-20230224_172836-ct30ziya/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..bc7e5856bfa44848db9820a072ac3bbfeb3b01c7
--- /dev/null
+++ b/embeddings/wandb/run-20230224_172836-ct30ziya/logs/debug.log
@@ -0,0 +1,31 @@
+2023-02-24 17:28:36,561 INFO    MainThread:5948 [wandb_setup.py:_flush():68] Configure stats pid to 5948
+2023-02-24 17:28:36,561 INFO    MainThread:5948 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 17:28:36,561 INFO    MainThread:5948 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 17:28:36,561 INFO    MainThread:5948 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 17:28:36,561 INFO    MainThread:5948 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 17:28:36,562 INFO    MainThread:5948 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\logs\debug.log
+2023-02-24 17:28:36,562 INFO    MainThread:5948 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_172836-ct30ziya\logs\debug-internal.log
+2023-02-24 17:28:36,562 INFO    MainThread:5948 [wandb_init.py:init():532] calling init triggers
+2023-02-24 17:28:36,562 INFO    MainThread:5948 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 17:28:36,562 INFO    MainThread:5948 [wandb_init.py:init():588] starting backend
+2023-02-24 17:28:36,562 INFO    MainThread:5948 [wandb_init.py:init():592] setting up manager
+2023-02-24 17:28:36,565 INFO    MainThread:5948 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 17:28:36,570 INFO    MainThread:5948 [wandb_init.py:init():599] backend started and connected
+2023-02-24 17:28:36,573 INFO    MainThread:5948 [wandb_init.py:init():687] updated telemetry
+2023-02-24 17:28:36,624 INFO    MainThread:5948 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 17:28:37,150 INFO    MainThread:5948 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 17:28:37,247 INFO    MainThread:5948 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 17:28:37,247 INFO    MainThread:5948 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 17:28:37,418 INFO    MainThread:5948 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 17:28:37,418 INFO    MainThread:5948 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 17:28:37,418 INFO    MainThread:5948 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 17:28:37,418 INFO    MainThread:5948 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 17:28:37,419 INFO    MainThread:5948 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 17:28:53,063 INFO    MainThread:5948 [wandb_run.py:_finish():1854] finishing run g4nlp/heterogeneous-GAT-model/ct30ziya
+2023-02-24 17:28:53,064 INFO    MainThread:5948 [wandb_run.py:_atexit_cleanup():2083] got exitcode: 0
+2023-02-24 17:28:53,064 INFO    MainThread:5948 [wandb_run.py:_restore():2066] restore
+2023-02-24 17:28:53,064 INFO    MainThread:5948 [wandb_run.py:_restore():2072] restore done
+2023-02-24 17:32:00,816 INFO    MainThread:5948 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 17:32:00,816 INFO    MainThread:5948 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 17:32:00,821 INFO    MainThread:5948 [wandb_run.py:_footer_sync_info():3398] logging synced files
diff --git a/embeddings/wandb/run-20230224_172836-ct30ziya/run-ct30ziya.wandb b/embeddings/wandb/run-20230224_172836-ct30ziya/run-ct30ziya.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..cc28458b1ac6d315f57896b02e76a2ec67a9eb1d
Binary files /dev/null and b/embeddings/wandb/run-20230224_172836-ct30ziya/run-ct30ziya.wandb differ
diff --git a/embeddings/wandb/run-20230224_173200-3ofoabdq/files/config.yaml b/embeddings/wandb/run-20230224_173200-3ofoabdq/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..434656bafd036f11bfcbe51bc57d711f53c2d67f
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173200-3ofoabdq/files/config.yaml
@@ -0,0 +1,39 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677259920.838449
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_173200-3ofoabdq/files/output.log b/embeddings/wandb/run-20230224_173200-3ofoabdq/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..e2c7926391ffa14ffbafed98e84b8fcca76a6baa
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173200-3ofoabdq/files/output.log
@@ -0,0 +1,11 @@
+OUT torch.Size([16, 2]) torch.Size([16]) tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
+OUT torch.Size([12, 2]) torch.Size([12]) tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
+INFO:heterogeneous-GAT-model:[1] Loss: 0.0003421618938446045
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 207, in <module>
+    train_acc, train_f1, train_loss, train_table = test(train_loader)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 121, in test
+    table.add_data(wandb.Html(create_graph_vis(data.graph).to_html(full_html=False)), data.label.item(), pred.item())
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\torch_geometric\data\hetero_data.py", line 138, in __getattr__
+    raise AttributeError(f"'{self.__class__.__name__}' has no "
+AttributeError: 'BatchedHeteroDataBatch' has no attribute 'graph'
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_173200-3ofoabdq/files/requirements.txt b/embeddings/wandb/run-20230224_173200-3ofoabdq/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173200-3ofoabdq/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_173200-3ofoabdq/files/wandb-metadata.json b/embeddings/wandb/run-20230224_173200-3ofoabdq/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..89f86c992b176a1c02c0c6a53526d4ad785e51dc
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173200-3ofoabdq/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T17:32:02.531012",
+    "startedAt": "2023-02-24T17:32:00.828449",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 356.96102142333984
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_173200-3ofoabdq/files/wandb-summary.json b/embeddings/wandb/run-20230224_173200-3ofoabdq/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..971d47939227bae0ec95239d24debe3d22478dc7
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173200-3ofoabdq/files/wandb-summary.json
@@ -0,0 +1 @@
+{"_wandb": {"runtime": 1}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_173200-3ofoabdq/logs/debug-internal.log b/embeddings/wandb/run-20230224_173200-3ofoabdq/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..e82b36b45e3ff1c3276c2d98e0426449765d76fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173200-3ofoabdq/logs/debug-internal.log
@@ -0,0 +1,172 @@
+2023-02-24 17:32:01,848 INFO    StreamThr :15480 [internal.py:wandb_internal():87] W&B internal server running at pid: 15480, started at: 2023-02-24 17:32:01.847372
+2023-02-24 17:32:01,850 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status
+2023-02-24 17:32:01,851 INFO    WriterThread:15480 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\run-3ofoabdq.wandb
+2023-02-24 17:32:01,853 DEBUG   SenderThread:15480 [sender.py:send():336] send: header
+2023-02-24 17:32:01,853 DEBUG   SenderThread:15480 [sender.py:send():336] send: run
+2023-02-24 17:32:02,334 INFO    SenderThread:15480 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files
+2023-02-24 17:32:02,334 INFO    SenderThread:15480 [sender.py:_start_run_threads():1067] run started: 3ofoabdq with start time 1677259920.838449
+2023-02-24 17:32:02,334 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:32:02,335 INFO    SenderThread:15480 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:32:02,339 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 17:32:02,340 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: check_version
+2023-02-24 17:32:02,511 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 17:32:02,526 DEBUG   HandlerThread:15480 [system_info.py:__init__():31] System info init
+2023-02-24 17:32:02,526 DEBUG   HandlerThread:15480 [system_info.py:__init__():46] System info init done
+2023-02-24 17:32:02,526 INFO    HandlerThread:15480 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 17:32:02,527 INFO    SystemMonitor:15480 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 17:32:02,527 INFO    HandlerThread:15480 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 17:32:02,531 INFO    SystemMonitor:15480 [interfaces.py:start():168] Started cpu
+2023-02-24 17:32:02,531 DEBUG   HandlerThread:15480 [system_info.py:probe():195] Probing system
+2023-02-24 17:32:02,531 INFO    SystemMonitor:15480 [interfaces.py:start():168] Started disk
+2023-02-24 17:32:02,531 INFO    SystemMonitor:15480 [interfaces.py:start():168] Started memory
+2023-02-24 17:32:02,546 INFO    SystemMonitor:15480 [interfaces.py:start():168] Started network
+2023-02-24 17:32:02,547 DEBUG   HandlerThread:15480 [system_info.py:_probe_git():180] Probing git
+2023-02-24 17:32:02,640 DEBUG   HandlerThread:15480 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 17:32:02,640 DEBUG   HandlerThread:15480 [system_info.py:probe():241] Probing system done
+2023-02-24 17:32:02,640 DEBUG   HandlerThread:15480 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T17:32:02.531012', 'startedAt': '2023-02-24T17:32:00.828449', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 356.96102142333984}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 17:32:02,640 INFO    HandlerThread:15480 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 17:32:02,640 INFO    HandlerThread:15480 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 17:32:02,641 DEBUG   HandlerThread:15480 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 17:32:02,641 DEBUG   HandlerThread:15480 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 17:32:02,644 INFO    HandlerThread:15480 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 17:32:02,645 DEBUG   SenderThread:15480 [sender.py:send():336] send: files
+2023-02-24 17:32:02,645 INFO    SenderThread:15480 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 17:32:02,652 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 17:32:02,653 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 17:32:02,837 DEBUG   SenderThread:15480 [sender.py:send():336] send: telemetry
+2023-02-24 17:32:03,272 INFO    wandb-upload_0:15480 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpem8e_y6ywandb\tm33tf0h-wandb-metadata.json
+2023-02-24 17:32:03,318 DEBUG   SenderThread:15480 [sender.py:send():336] send: use_artifact
+2023-02-24 17:32:03,336 INFO    Thread-32 :15480 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\requirements.txt
+2023-02-24 17:32:03,337 INFO    Thread-32 :15480 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\wandb-summary.json
+2023-02-24 17:32:03,337 INFO    Thread-32 :15480 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\wandb-metadata.json
+2023-02-24 17:32:03,695 DEBUG   SenderThread:15480 [sender.py:send():336] send: exit
+2023-02-24 17:32:03,695 INFO    SenderThread:15480 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 17:32:03,695 INFO    SenderThread:15480 [sender.py:send_exit():561] handling runtime: 1
+2023-02-24 17:32:03,696 INFO    SenderThread:15480 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:32:03,696 INFO    SenderThread:15480 [sender.py:send_exit():567] send defer
+2023-02-24 17:32:03,696 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:03,697 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 17:32:03,697 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:03,697 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 17:32:03,697 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 1
+2023-02-24 17:32:03,697 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:03,697 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 17:32:03,697 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:03,697 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 17:32:03,697 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 2
+2023-02-24 17:32:03,698 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:03,698 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 17:32:03,698 INFO    HandlerThread:15480 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 17:32:03,698 DEBUG   SystemMonitor:15480 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 17:32:03,698 DEBUG   SystemMonitor:15480 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 17:32:03,699 DEBUG   SystemMonitor:15480 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 17:32:03,699 INFO    HandlerThread:15480 [interfaces.py:finish():175] Joined cpu
+2023-02-24 17:32:03,699 INFO    HandlerThread:15480 [interfaces.py:finish():175] Joined disk
+2023-02-24 17:32:03,699 INFO    HandlerThread:15480 [interfaces.py:finish():175] Joined memory
+2023-02-24 17:32:03,699 INFO    HandlerThread:15480 [interfaces.py:finish():175] Joined network
+2023-02-24 17:32:03,700 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:03,700 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 17:32:03,700 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 3
+2023-02-24 17:32:03,700 DEBUG   SenderThread:15480 [sender.py:send():336] send: stats
+2023-02-24 17:32:03,700 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:03,700 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 17:32:03,701 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:03,701 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 17:32:03,701 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 4
+2023-02-24 17:32:03,701 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:03,701 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 17:32:03,701 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:03,701 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 17:32:03,701 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 5
+2023-02-24 17:32:03,701 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:03,702 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 17:32:03,702 DEBUG   SenderThread:15480 [sender.py:send():336] send: summary
+2023-02-24 17:32:03,702 INFO    SenderThread:15480 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:32:03,703 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:03,703 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 17:32:03,703 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 6
+2023-02-24 17:32:03,703 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:03,704 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 17:32:03,704 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:03,704 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 17:32:03,707 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:32:03,932 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 7
+2023-02-24 17:32:03,933 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:03,933 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 17:32:03,933 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:03,933 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 17:32:04,351 INFO    Thread-32 :15480 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\config.yaml
+2023-02-24 17:32:04,351 INFO    Thread-32 :15480 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\wandb-summary.json
+2023-02-24 17:32:04,351 INFO    Thread-32 :15480 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\output.log
+2023-02-24 17:32:04,708 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:32:05,555 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 8
+2023-02-24 17:32:05,556 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:32:05,556 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:05,556 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 17:32:05,556 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:05,557 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 17:32:05,569 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 9
+2023-02-24 17:32:05,570 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:05,570 DEBUG   SenderThread:15480 [sender.py:send():336] send: artifact
+2023-02-24 17:32:05,570 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 17:32:05,723 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:32:06,376 INFO    Thread-32 :15480 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\output.log
+2023-02-24 17:32:06,570 INFO    SenderThread:15480 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'digest': 'dbe34f6e8b990dacc5d7c5e1ab1d02a4', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v0'}
+2023-02-24 17:32:06,570 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:06,570 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 17:32:06,570 INFO    SenderThread:15480 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 17:32:07,387 INFO    SenderThread:15480 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files
+2023-02-24 17:32:07,387 INFO    SenderThread:15480 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\config.yaml config.yaml
+2023-02-24 17:32:07,388 INFO    SenderThread:15480 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\output.log output.log
+2023-02-24 17:32:07,391 INFO    SenderThread:15480 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\requirements.txt requirements.txt
+2023-02-24 17:32:07,395 INFO    SenderThread:15480 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 17:32:07,397 INFO    SenderThread:15480 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\wandb-summary.json wandb-summary.json
+2023-02-24 17:32:07,401 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 10
+2023-02-24 17:32:07,401 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:32:07,403 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:07,408 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 17:32:07,409 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:07,410 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 17:32:07,410 INFO    SenderThread:15480 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:32:07,883 INFO    wandb-upload_0:15480 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\config.yaml
+2023-02-24 17:32:08,001 INFO    wandb-upload_2:15480 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\requirements.txt
+2023-02-24 17:32:08,032 INFO    wandb-upload_3:15480 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\wandb-summary.json
+2023-02-24 17:32:08,045 INFO    wandb-upload_1:15480 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\files\output.log
+2023-02-24 17:32:08,253 INFO    Thread-31 :15480 [sender.py:transition_state():587] send defer: 11
+2023-02-24 17:32:08,253 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:08,254 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 17:32:08,254 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:08,254 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 17:32:08,254 INFO    SenderThread:15480 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 17:32:08,255 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 12
+2023-02-24 17:32:08,255 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:08,255 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 17:32:08,255 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:08,255 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 17:32:08,393 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 13
+2023-02-24 17:32:08,394 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:08,394 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 17:32:08,394 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:08,394 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 17:32:08,394 INFO    SenderThread:15480 [sender.py:transition_state():587] send defer: 14
+2023-02-24 17:32:08,394 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:32:08,395 INFO    HandlerThread:15480 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 17:32:08,396 DEBUG   SenderThread:15480 [sender.py:send():336] send: final
+2023-02-24 17:32:08,396 DEBUG   SenderThread:15480 [sender.py:send():336] send: footer
+2023-02-24 17:32:08,396 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:32:08,396 INFO    SenderThread:15480 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 17:32:08,397 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:32:08,397 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 17:32:08,397 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 17:32:08,397 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 17:32:08,398 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:32:08,398 DEBUG   SenderThread:15480 [sender.py:send_request():363] send_request: server_info
+2023-02-24 17:32:08,583 INFO    MainThread:15480 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 17:32:08,583 INFO    MainThread:15480 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 17:32:08,583 INFO    MainThread:15480 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 17:32:08,583 DEBUG   HandlerThread:15480 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 17:32:08,583 INFO    HandlerThread:15480 [handler.py:finish():841] shutting down handler
+2023-02-24 17:32:09,405 INFO    WriterThread:15480 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\run-3ofoabdq.wandb
+2023-02-24 17:32:09,592 INFO    SenderThread:15480 [sender.py:finish():1493] shutting down sender
+2023-02-24 17:32:09,592 INFO    SenderThread:15480 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:32:09,592 INFO    SenderThread:15480 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_173200-3ofoabdq/logs/debug.log b/embeddings/wandb/run-20230224_173200-3ofoabdq/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..87bae23b35af6b1607390538fe48d80dd19b1627
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173200-3ofoabdq/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 17:32:00,831 INFO    MainThread:5948 [wandb_setup.py:_flush():68] Configure stats pid to 5948
+2023-02-24 17:32:00,831 INFO    MainThread:5948 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 17:32:00,831 INFO    MainThread:5948 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 17:32:00,831 INFO    MainThread:5948 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 17:32:00,831 INFO    MainThread:5948 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 17:32:00,832 INFO    MainThread:5948 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\logs\debug.log
+2023-02-24 17:32:00,832 INFO    MainThread:5948 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173200-3ofoabdq\logs\debug-internal.log
+2023-02-24 17:32:00,832 INFO    MainThread:5948 [wandb_init.py:init():532] calling init triggers
+2023-02-24 17:32:00,832 INFO    MainThread:5948 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 17:32:00,832 INFO    MainThread:5948 [wandb_init.py:init():588] starting backend
+2023-02-24 17:32:00,832 INFO    MainThread:5948 [wandb_init.py:init():592] setting up manager
+2023-02-24 17:32:00,835 INFO    MainThread:5948 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 17:32:00,837 INFO    MainThread:5948 [wandb_init.py:init():599] backend started and connected
+2023-02-24 17:32:00,840 INFO    MainThread:5948 [wandb_init.py:init():687] updated telemetry
+2023-02-24 17:32:00,899 INFO    MainThread:5948 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 17:32:02,338 INFO    MainThread:5948 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 17:32:02,504 INFO    MainThread:5948 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 17:32:02,504 INFO    MainThread:5948 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 17:32:02,653 INFO    MainThread:5948 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 17:32:02,653 INFO    MainThread:5948 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 17:32:02,653 INFO    MainThread:5948 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 17:32:02,653 INFO    MainThread:5948 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 17:32:02,654 INFO    MainThread:5948 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 17:32:09,673 WARNING MsgRouterThr:5948 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_173200-3ofoabdq/run-3ofoabdq.wandb b/embeddings/wandb/run-20230224_173200-3ofoabdq/run-3ofoabdq.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..7cb6a825bdd72f8e32f9aebf75afdf412ef288cb
Binary files /dev/null and b/embeddings/wandb/run-20230224_173200-3ofoabdq/run-3ofoabdq.wandb differ
diff --git a/embeddings/wandb/run-20230224_173309-b1hp9ady/files/config.yaml b/embeddings/wandb/run-20230224_173309-b1hp9ady/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..839e51f1673a48a4ccdbfcb8c58e061feb2a53d7
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173309-b1hp9ady/files/config.yaml
@@ -0,0 +1,41 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677259989.672138
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 2
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_173309-b1hp9ady/files/media/table/data_1_be2b7661523f5213a694.table.json b/embeddings/wandb/run-20230224_173309-b1hp9ady/files/media/table/data_1_be2b7661523f5213a694.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..4c5b433c679592a36ab0b72e6f19f82fe33e308f
Binary files /dev/null and b/embeddings/wandb/run-20230224_173309-b1hp9ady/files/media/table/data_1_be2b7661523f5213a694.table.json differ
diff --git a/embeddings/wandb/run-20230224_173309-b1hp9ady/files/output.log b/embeddings/wandb/run-20230224_173309-b1hp9ady/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..3e008fc624cf5203620c9bbe0dea67a999b9b597
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173309-b1hp9ady/files/output.log
@@ -0,0 +1,47 @@
+wandb: WARNING Serializing object of type str that is 7167176 bytes
+wandb: WARNING Serializing object of type str that is 7193010 bytes
+wandb: WARNING Serializing object of type str that is 7166428 bytes
+wandb: WARNING Serializing object of type str that is 7192960 bytes
+wandb: WARNING Serializing object of type str that is 7184498 bytes
+wandb: WARNING Serializing object of type str that is 7168728 bytes
+wandb: WARNING Serializing object of type str that is 7170654 bytes
+wandb: WARNING Serializing object of type str that is 7186626 bytes
+wandb: WARNING Serializing object of type str that is 7186024 bytes
+wandb: WARNING Serializing object of type str that is 7182134 bytes
+wandb: WARNING Serializing object of type str that is 7192958 bytes
+wandb: WARNING Serializing object of type str that is 7180820 bytes
+wandb: WARNING Serializing object of type str that is 7166802 bytes
+wandb: WARNING Serializing object of type str that is 7166784 bytes
+wandb: WARNING Serializing object of type str that is 7195422 bytes
+wandb: WARNING Serializing object of type str that is 7173758 bytes
+wandb: WARNING Serializing object of type str that is 7172258 bytes
+wandb: WARNING Serializing object of type str that is 7185052 bytes
+wandb: WARNING Serializing object of type str that is 7197532 bytes
+wandb: WARNING Serializing object of type str that is 7174450 bytes
+wandb: WARNING Serializing object of type str that is 7166340 bytes
+wandb: WARNING Serializing object of type str that is 7192430 bytes
+wandb: WARNING Serializing object of type str that is 7177216 bytes
+wandb: WARNING Serializing object of type str that is 7184938 bytes
+wandb: WARNING Serializing object of type str that is 7189554 bytes
+wandb: WARNING Serializing object of type str that is 7183892 bytes
+wandb: WARNING Serializing object of type str that is 7169112 bytes
+wandb: WARNING Serializing object of type str that is 7168264 bytes
+wandb: WARNING Serializing object of type str that is 7185666 bytes
+wandb: WARNING Serializing object of type str that is 7171724 bytes
+wandb: WARNING Serializing object of type str that is 7193012 bytes
+wandb: WARNING Serializing object of type str that is 7174976 bytes
+wandb: WARNING Serializing object of type str that is 7191632 bytes
+wandb: WARNING Serializing object of type str that is 7175584 bytes
+wandb: WARNING Serializing object of type str that is 7181066 bytes
+wandb: WARNING Serializing object of type str that is 7169478 bytes
+wandb: WARNING Serializing object of type str that is 7195648 bytes
+wandb: WARNING Serializing object of type str that is 7186908 bytes
+wandb: WARNING Serializing object of type str that is 7185848 bytes
+wandb: WARNING Serializing object of type str that is 7188752 bytes
+wandb: WARNING Serializing object of type str that is 7184766 bytes
+wandb: WARNING Serializing object of type str that is 7166824 bytes
+wandb: WARNING Serializing object of type str that is 7175804 bytes
+wandb: WARNING Serializing object of type str that is 7172860 bytes
+wandb: WARNING Serializing object of type str that is 7187938 bytes
+wandb: WARNING Serializing object of type str that is 7183974 bytes
+wandb: Adding directory to artifact (.\..\data)... Done. 1.9s
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_173309-b1hp9ady/files/requirements.txt b/embeddings/wandb/run-20230224_173309-b1hp9ady/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173309-b1hp9ady/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_173309-b1hp9ady/files/wandb-metadata.json b/embeddings/wandb/run-20230224_173309-b1hp9ady/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..1b8288820f987d9dfd7765a1b5eda93a2810e451
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173309-b1hp9ady/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T17:33:10.203282",
+    "startedAt": "2023-02-24T17:33:09.659172",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 356.8035125732422
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_173309-b1hp9ady/files/wandb-summary.json b/embeddings/wandb/run-20230224_173309-b1hp9ady/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..dff80e82f530c01de6a8bc6999910a028f92328c
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173309-b1hp9ady/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677260004.7470796, "_runtime": 15.074941635131836, "_step": 1, "data": {"_type": "table-file", "sha256": "be2b7661523f5213a69463b36a40a363d0c7acb45a8e4d68e9f869ca8da2475e", "size": 168982143, "artifact_path": "wandb-client-artifact://1pbywywmnhm8tp64uqo4bkyfos5rsno238s0jijwndnz2thr9dpvj7ygpawvh6p26c54meq2lk8ovc69appuq8jlgsz8fi2g13odayrmdq3q2vqo4y54068tgtsi3k7u:latest/data.table.json", "_latest_artifact_path": "wandb-client-artifact://1pbywywmnhm8tp64uqo4bkyfos5rsno238s0jijwndnz2thr9dpvj7ygpawvh6p26c54meq2lk8ovc69appuq8jlgsz8fi2g13odayrmdq3q2vqo4y54068tgtsi3k7u:latest/data.table.json", "path": "media/table/data_1_be2b7661523f5213a694.table.json", "ncols": 4, "nrows": 46}, "_wandb": {"runtime": 16}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_173309-b1hp9ady/logs/debug-internal.log b/embeddings/wandb/run-20230224_173309-b1hp9ady/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..ba35d2b52198b6cc4700e3fabafe7b8c1ec3d1ad
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173309-b1hp9ady/logs/debug-internal.log
@@ -0,0 +1,244 @@
+2023-02-24 17:33:09,673 INFO    StreamThr :1712 [internal.py:wandb_internal():87] W&B internal server running at pid: 1712, started at: 2023-02-24 17:33:09.672138
+2023-02-24 17:33:09,675 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status
+2023-02-24 17:33:09,676 INFO    WriterThread:1712 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\run-b1hp9ady.wandb
+2023-02-24 17:33:09,680 DEBUG   SenderThread:1712 [sender.py:send():336] send: header
+2023-02-24 17:33:09,724 DEBUG   SenderThread:1712 [sender.py:send():336] send: run
+2023-02-24 17:33:10,104 INFO    SenderThread:1712 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files
+2023-02-24 17:33:10,104 INFO    SenderThread:1712 [sender.py:_start_run_threads():1067] run started: b1hp9ady with start time 1677259989.672138
+2023-02-24 17:33:10,104 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:33:10,104 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 17:33:10,105 INFO    SenderThread:1712 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:33:10,106 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: check_version
+2023-02-24 17:33:10,180 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 17:33:10,199 DEBUG   HandlerThread:1712 [system_info.py:__init__():31] System info init
+2023-02-24 17:33:10,199 DEBUG   HandlerThread:1712 [system_info.py:__init__():46] System info init done
+2023-02-24 17:33:10,199 INFO    HandlerThread:1712 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 17:33:10,200 INFO    SystemMonitor:1712 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 17:33:10,200 INFO    HandlerThread:1712 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 17:33:10,203 INFO    SystemMonitor:1712 [interfaces.py:start():168] Started cpu
+2023-02-24 17:33:10,203 DEBUG   HandlerThread:1712 [system_info.py:probe():195] Probing system
+2023-02-24 17:33:10,203 INFO    SystemMonitor:1712 [interfaces.py:start():168] Started disk
+2023-02-24 17:33:10,204 INFO    SystemMonitor:1712 [interfaces.py:start():168] Started memory
+2023-02-24 17:33:10,204 INFO    SystemMonitor:1712 [interfaces.py:start():168] Started network
+2023-02-24 17:33:10,221 DEBUG   HandlerThread:1712 [system_info.py:_probe_git():180] Probing git
+2023-02-24 17:33:10,313 DEBUG   HandlerThread:1712 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 17:33:10,313 DEBUG   HandlerThread:1712 [system_info.py:probe():241] Probing system done
+2023-02-24 17:33:10,313 DEBUG   HandlerThread:1712 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T17:33:10.203282', 'startedAt': '2023-02-24T17:33:09.659172', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 356.8035125732422}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 17:33:10,313 INFO    HandlerThread:1712 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 17:33:10,313 INFO    HandlerThread:1712 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 17:33:10,313 DEBUG   HandlerThread:1712 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 17:33:10,314 DEBUG   HandlerThread:1712 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 17:33:10,316 INFO    HandlerThread:1712 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 17:33:10,324 DEBUG   SenderThread:1712 [sender.py:send():336] send: files
+2023-02-24 17:33:10,325 INFO    SenderThread:1712 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 17:33:10,333 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 17:33:10,334 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 17:33:10,336 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 17:33:10,555 DEBUG   SenderThread:1712 [sender.py:send():336] send: telemetry
+2023-02-24 17:33:10,556 DEBUG   SenderThread:1712 [sender.py:send():336] send: history
+2023-02-24 17:33:10,556 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:33:10,557 INFO    SenderThread:1712 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:33:10,884 INFO    wandb-upload_0:1712 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp3yw2l1uewandb\6cjte3b2-wandb-metadata.json
+2023-02-24 17:33:11,106 INFO    Thread-17 :1712 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\requirements.txt
+2023-02-24 17:33:11,106 INFO    Thread-17 :1712 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\wandb-metadata.json
+2023-02-24 17:33:11,106 INFO    Thread-17 :1712 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\wandb-summary.json
+2023-02-24 17:33:12,118 INFO    Thread-17 :1712 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\output.log
+2023-02-24 17:33:14,120 INFO    Thread-17 :1712 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\output.log
+2023-02-24 17:33:14,980 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:33:18,683 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 17:33:18,684 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 17:33:24,748 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 17:33:25,226 INFO    Thread-17 :1712 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\media\table\data_1_be2b7661523f5213a694.table.json
+2023-02-24 17:33:25,226 INFO    Thread-17 :1712 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\media
+2023-02-24 17:33:25,227 INFO    Thread-17 :1712 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\media\table
+2023-02-24 17:33:25,351 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:33:25,352 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:33:26,798 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 17:33:27,815 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:33:32,879 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:33:37,931 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:33:42,984 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:33:48,049 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:33:53,098 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:33:58,147 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:34:03,198 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:34:08,239 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:34:10,223 DEBUG   SystemMonitor:1712 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 17:34:13,287 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:34:18,345 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:34:23,397 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:34:28,445 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:34:33,495 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:34:38,544 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:34:43,597 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:34:48,648 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:34:53,699 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:34:58,747 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:35:01,097 INFO    wandb-upload_0:1712 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpj9dhdem4
+2023-02-24 17:35:02,061 INFO    SenderThread:1712 [sender.py:send_request_log_artifact():1381] logged artifact run-b1hp9ady-data - {'id': 'QXJ0aWZhY3Q6MzgwNjExOTg5', 'digest': '9cd5e4561f72b8d96c9739dff408e93d', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjMxNDU3', 'latestArtifact': None}, 'version': 'latest'}
+2023-02-24 17:35:02,065 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:35:02,259 DEBUG   SenderThread:1712 [sender.py:send():336] send: files
+2023-02-24 17:35:02,259 INFO    SenderThread:1712 [sender.py:_save_file():1321] saving file media\table\data_1_be2b7661523f5213a694.table.json with policy now
+2023-02-24 17:35:02,260 DEBUG   SenderThread:1712 [sender.py:send():336] send: history
+2023-02-24 17:35:02,260 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:35:02,262 INFO    SenderThread:1712 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:35:02,263 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 17:35:02,677 INFO    SenderThread:1712 [sender.py:send_request_log_artifact():1381] logged artifact static-graphs - {'id': 'QXJ0aWZhY3Q6MzgwNTY0ODAy', 'digest': '64a712122c812b4423fcf560ca60f704', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'static-graphs', 'alias': 'latest'}, {'artifactCollectionName': 'static-graphs', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjIzMTU5', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwNTY0ODAy', 'versionIndex': 0}}, 'version': 'v0'}
+2023-02-24 17:35:02,677 DEBUG   SenderThread:1712 [sender.py:send():336] send: telemetry
+2023-02-24 17:35:02,677 DEBUG   SenderThread:1712 [sender.py:send():336] send: exit
+2023-02-24 17:35:02,677 INFO    SenderThread:1712 [sender.py:send_exit():559] handling exit code: 0
+2023-02-24 17:35:02,677 INFO    SenderThread:1712 [sender.py:send_exit():561] handling runtime: 16
+2023-02-24 17:35:02,678 INFO    SenderThread:1712 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:35:02,678 INFO    SenderThread:1712 [sender.py:send_exit():567] send defer
+2023-02-24 17:35:02,679 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:35:02,679 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:35:02,679 DEBUG   SenderThread:1712 [sender.py:send():336] send: stats
+2023-02-24 17:35:02,679 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 17:35:02,680 DEBUG   SenderThread:1712 [sender.py:send():336] send: stats
+2023-02-24 17:35:02,680 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:35:02,681 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 17:35:02,681 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 1
+2023-02-24 17:35:02,681 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:35:02,681 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 17:35:02,681 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:35:02,681 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 17:35:02,681 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 2
+2023-02-24 17:35:02,681 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:35:02,681 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 17:35:02,681 INFO    HandlerThread:1712 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 17:35:02,682 DEBUG   SystemMonitor:1712 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 17:35:02,683 DEBUG   SystemMonitor:1712 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 17:35:02,683 INFO    HandlerThread:1712 [interfaces.py:finish():175] Joined cpu
+2023-02-24 17:35:02,683 INFO    HandlerThread:1712 [interfaces.py:finish():175] Joined disk
+2023-02-24 17:35:02,683 INFO    HandlerThread:1712 [interfaces.py:finish():175] Joined memory
+2023-02-24 17:35:02,683 INFO    HandlerThread:1712 [interfaces.py:finish():175] Joined network
+2023-02-24 17:35:02,684 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:35:02,684 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 17:35:02,684 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 3
+2023-02-24 17:35:02,684 DEBUG   SenderThread:1712 [sender.py:send():336] send: stats
+2023-02-24 17:35:02,684 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:35:02,684 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 17:35:02,685 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:35:02,685 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 17:35:02,685 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 4
+2023-02-24 17:35:02,685 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:35:02,685 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 17:35:02,685 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:35:02,685 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 17:35:02,685 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 5
+2023-02-24 17:35:02,685 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:35:02,685 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 17:35:02,686 DEBUG   SenderThread:1712 [sender.py:send():336] send: summary
+2023-02-24 17:35:02,687 INFO    SenderThread:1712 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:35:02,687 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:35:02,687 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 17:35:02,687 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 6
+2023-02-24 17:35:02,687 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:35:02,687 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 17:35:02,687 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:35:02,688 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 17:35:02,691 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:35:02,875 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 7
+2023-02-24 17:35:02,875 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:35:02,876 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 17:35:02,876 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:35:02,876 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 17:35:03,225 INFO    Thread-17 :1712 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\config.yaml
+2023-02-24 17:35:03,225 INFO    Thread-17 :1712 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\wandb-summary.json
+2023-02-24 17:35:03,801 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:35:04,381 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 8
+2023-02-24 17:35:04,381 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:35:04,381 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 17:35:04,381 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:35:04,381 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 17:35:04,389 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 9
+2023-02-24 17:35:04,390 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:35:04,390 DEBUG   SenderThread:1712 [sender.py:send():336] send: artifact
+2023-02-24 17:35:04,390 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 17:35:05,099 INFO    SenderThread:1712 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'digest': '8077f65decb82fd65dc9936bbf393b39', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v2'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v2'}
+2023-02-24 17:35:05,099 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:35:05,099 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 17:35:05,099 INFO    SenderThread:1712 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 17:35:05,250 INFO    SenderThread:1712 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\output.log
+2023-02-24 17:35:05,251 INFO    SenderThread:1712 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files
+2023-02-24 17:35:05,251 INFO    SenderThread:1712 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\config.yaml config.yaml
+2023-02-24 17:35:05,251 INFO    SenderThread:1712 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\output.log output.log
+2023-02-24 17:35:05,255 INFO    SenderThread:1712 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\requirements.txt requirements.txt
+2023-02-24 17:35:05,256 INFO    SenderThread:1712 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 17:35:05,260 INFO    SenderThread:1712 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\wandb-summary.json wandb-summary.json
+2023-02-24 17:35:05,268 INFO    SenderThread:1712 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\media\table\data_1_be2b7661523f5213a694.table.json media\table\data_1_be2b7661523f5213a694.table.json
+2023-02-24 17:35:05,268 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 10
+2023-02-24 17:35:05,273 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:35:05,274 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 17:35:05,274 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:35:05,275 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 17:35:05,275 INFO    SenderThread:1712 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:35:05,774 INFO    wandb-upload_3:1712 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\requirements.txt
+2023-02-24 17:35:05,825 INFO    wandb-upload_2:1712 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\output.log
+2023-02-24 17:35:05,847 INFO    wandb-upload_4:1712 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\wandb-summary.json
+2023-02-24 17:35:05,859 INFO    wandb-upload_1:1712 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\files\config.yaml
+2023-02-24 17:35:08,853 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:35:12,347 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:35:13,901 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:35:17,393 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:35:18,949 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:35:22,453 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:35:23,994 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:35:27,493 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:35:29,048 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:35:32,550 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:35:34,108 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:35:37,604 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:35:39,159 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:35:42,656 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:35:44,208 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:35:47,710 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:35:49,259 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:35:52,763 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:35:54,319 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:35:57,818 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:35:59,374 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:36:02,868 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:36:04,423 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:36:07,911 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:36:09,485 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:36:12,965 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:36:14,537 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:36:18,019 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:36:19,588 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:36:20,299 INFO    wandb-upload_0:1712 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp3yw2l1uewandb\2rde7avd-media/table/data_1_be2b7661523f5213a694.table.json
+2023-02-24 17:36:20,526 INFO    Thread-16 :1712 [sender.py:transition_state():587] send defer: 11
+2023-02-24 17:36:20,526 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:20,526 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 17:36:20,527 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:20,527 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 17:36:20,527 INFO    SenderThread:1712 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 17:36:20,527 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 12
+2023-02-24 17:36:20,527 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:20,528 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 17:36:20,528 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:20,528 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 17:36:20,684 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 13
+2023-02-24 17:36:20,684 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:20,684 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 17:36:20,685 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:20,685 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 17:36:20,685 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 14
+2023-02-24 17:36:20,685 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:20,685 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 17:36:20,686 DEBUG   SenderThread:1712 [sender.py:send():336] send: final
+2023-02-24 17:36:20,686 DEBUG   SenderThread:1712 [sender.py:send():336] send: footer
+2023-02-24 17:36:20,686 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:20,686 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 17:36:20,687 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:36:20,687 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 17:36:20,687 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 17:36:20,688 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 17:36:20,688 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:36:20,688 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: server_info
+2023-02-24 17:36:20,879 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 17:36:20,879 INFO    HandlerThread:1712 [handler.py:finish():841] shutting down handler
+2023-02-24 17:36:21,692 INFO    WriterThread:1712 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\run-b1hp9ady.wandb
+2023-02-24 17:36:21,880 INFO    SenderThread:1712 [sender.py:finish():1493] shutting down sender
+2023-02-24 17:36:21,880 INFO    SenderThread:1712 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:36:21,881 INFO    SenderThread:1712 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_173309-b1hp9ady/logs/debug.log b/embeddings/wandb/run-20230224_173309-b1hp9ady/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..625f34f39a41717dc47afb38b24a537386cd0f6b
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173309-b1hp9ady/logs/debug.log
@@ -0,0 +1,31 @@
+2023-02-24 17:33:09,662 INFO    MainThread:3400 [wandb_setup.py:_flush():68] Configure stats pid to 3400
+2023-02-24 17:33:09,662 INFO    MainThread:3400 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 17:33:09,663 INFO    MainThread:3400 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 17:33:09,663 INFO    MainThread:3400 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 17:33:09,663 INFO    MainThread:3400 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 17:33:09,664 INFO    MainThread:3400 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\logs\debug.log
+2023-02-24 17:33:09,665 INFO    MainThread:3400 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173309-b1hp9ady\logs\debug-internal.log
+2023-02-24 17:33:09,665 INFO    MainThread:3400 [wandb_init.py:init():532] calling init triggers
+2023-02-24 17:33:09,665 INFO    MainThread:3400 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 17:33:09,665 INFO    MainThread:3400 [wandb_init.py:init():588] starting backend
+2023-02-24 17:33:09,665 INFO    MainThread:3400 [wandb_init.py:init():592] setting up manager
+2023-02-24 17:33:09,668 INFO    MainThread:3400 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 17:33:09,672 INFO    MainThread:3400 [wandb_init.py:init():599] backend started and connected
+2023-02-24 17:33:09,674 INFO    MainThread:3400 [wandb_init.py:init():687] updated telemetry
+2023-02-24 17:33:09,723 INFO    MainThread:3400 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 17:33:10,103 INFO    MainThread:3400 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 17:33:10,173 INFO    MainThread:3400 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 17:33:10,173 INFO    MainThread:3400 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 17:33:10,334 INFO    MainThread:3400 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 17:33:10,334 INFO    MainThread:3400 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 17:33:10,334 INFO    MainThread:3400 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 17:33:10,334 INFO    MainThread:3400 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 17:33:10,335 INFO    MainThread:3400 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 17:33:26,801 INFO    MainThread:3400 [wandb_run.py:_finish():1854] finishing run g4nlp/heterogeneous-GAT-model/b1hp9ady
+2023-02-24 17:33:26,801 INFO    MainThread:3400 [wandb_run.py:_atexit_cleanup():2083] got exitcode: 0
+2023-02-24 17:33:26,802 INFO    MainThread:3400 [wandb_run.py:_restore():2066] restore
+2023-02-24 17:33:26,802 INFO    MainThread:3400 [wandb_run.py:_restore():2072] restore done
+2023-02-24 17:36:21,880 INFO    MainThread:3400 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 17:36:21,881 INFO    MainThread:3400 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 17:36:21,887 INFO    MainThread:3400 [wandb_run.py:_footer_sync_info():3398] logging synced files
diff --git a/embeddings/wandb/run-20230224_173309-b1hp9ady/run-b1hp9ady.wandb b/embeddings/wandb/run-20230224_173309-b1hp9ady/run-b1hp9ady.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..973bf03470ba641087b4f42a1260e38823b38bd8
Binary files /dev/null and b/embeddings/wandb/run-20230224_173309-b1hp9ady/run-b1hp9ady.wandb differ
diff --git a/embeddings/wandb/run-20230224_173621-37xg7qqy/files/config.yaml b/embeddings/wandb/run-20230224_173621-37xg7qqy/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d2c53488b14d39f4a9a48bd0cf98e9824817704b
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173621-37xg7qqy/files/config.yaml
@@ -0,0 +1,39 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677260181.906517
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_173621-37xg7qqy/files/output.log b/embeddings/wandb/run-20230224_173621-37xg7qqy/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..224b265df48d52c294c13da45b1c9376efeb9b21
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173621-37xg7qqy/files/output.log
@@ -0,0 +1,12 @@
+
+INFO:heterogeneous-GAT-model:[1] Loss: 0.00034855717420578005
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 206, in <module>
+    train_acc, train_f1, train_loss, train_table = test(train_loader)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 120, in test
+    table.add_data(wandb.Html(create_graph_vis(data).to_html(full_html=False)), data.label.item(), pred.item())
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\data_types\html.py", line 55, in __init__
+    out.write(self.html)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\encodings\cp1252.py", line 19, in encode
+    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+UnicodeEncodeError: 'charmap' codec can't encode character '\u25c4' in position 276441: character maps to <undefined>
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_173621-37xg7qqy/files/requirements.txt b/embeddings/wandb/run-20230224_173621-37xg7qqy/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173621-37xg7qqy/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_173621-37xg7qqy/files/wandb-metadata.json b/embeddings/wandb/run-20230224_173621-37xg7qqy/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..72dfdbf97b151edf218c5efa658efd42bd7ff9f4
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173621-37xg7qqy/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T17:36:23.375895",
+    "startedAt": "2023-02-24T17:36:21.895518",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 357.4333038330078
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_173621-37xg7qqy/files/wandb-summary.json b/embeddings/wandb/run-20230224_173621-37xg7qqy/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..4ac1ba993956be52f459e677e193218ff2cddc76
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173621-37xg7qqy/files/wandb-summary.json
@@ -0,0 +1 @@
+{"_wandb": {"runtime": 3}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_173621-37xg7qqy/logs/debug-internal.log b/embeddings/wandb/run-20230224_173621-37xg7qqy/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..4b6f53c337084a3ed75ead3784441de485b2d740
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173621-37xg7qqy/logs/debug-internal.log
@@ -0,0 +1,173 @@
+2023-02-24 17:36:22,891 INFO    StreamThr :1712 [internal.py:wandb_internal():87] W&B internal server running at pid: 1712, started at: 2023-02-24 17:36:22.891530
+2023-02-24 17:36:22,893 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status
+2023-02-24 17:36:22,895 INFO    WriterThread:1712 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\run-37xg7qqy.wandb
+2023-02-24 17:36:22,897 DEBUG   SenderThread:1712 [sender.py:send():336] send: header
+2023-02-24 17:36:22,897 DEBUG   SenderThread:1712 [sender.py:send():336] send: run
+2023-02-24 17:36:23,274 INFO    SenderThread:1712 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files
+2023-02-24 17:36:23,274 INFO    SenderThread:1712 [sender.py:_start_run_threads():1067] run started: 37xg7qqy with start time 1677260181.906517
+2023-02-24 17:36:23,274 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:36:23,275 INFO    SenderThread:1712 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:36:23,278 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 17:36:23,279 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: check_version
+2023-02-24 17:36:23,356 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 17:36:23,371 DEBUG   HandlerThread:1712 [system_info.py:__init__():31] System info init
+2023-02-24 17:36:23,371 DEBUG   HandlerThread:1712 [system_info.py:__init__():46] System info init done
+2023-02-24 17:36:23,371 INFO    HandlerThread:1712 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 17:36:23,371 INFO    SystemMonitor:1712 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 17:36:23,372 INFO    HandlerThread:1712 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 17:36:23,375 INFO    SystemMonitor:1712 [interfaces.py:start():168] Started cpu
+2023-02-24 17:36:23,375 DEBUG   HandlerThread:1712 [system_info.py:probe():195] Probing system
+2023-02-24 17:36:23,375 INFO    SystemMonitor:1712 [interfaces.py:start():168] Started disk
+2023-02-24 17:36:23,376 INFO    SystemMonitor:1712 [interfaces.py:start():168] Started memory
+2023-02-24 17:36:23,377 INFO    SystemMonitor:1712 [interfaces.py:start():168] Started network
+2023-02-24 17:36:23,392 DEBUG   HandlerThread:1712 [system_info.py:_probe_git():180] Probing git
+2023-02-24 17:36:23,484 DEBUG   HandlerThread:1712 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 17:36:23,485 DEBUG   HandlerThread:1712 [system_info.py:probe():241] Probing system done
+2023-02-24 17:36:23,485 DEBUG   HandlerThread:1712 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T17:36:23.375895', 'startedAt': '2023-02-24T17:36:21.895518', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 357.4333038330078}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 17:36:23,485 INFO    HandlerThread:1712 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 17:36:23,485 INFO    HandlerThread:1712 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 17:36:23,485 DEBUG   HandlerThread:1712 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 17:36:23,486 DEBUG   HandlerThread:1712 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 17:36:23,488 INFO    HandlerThread:1712 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 17:36:23,489 DEBUG   SenderThread:1712 [sender.py:send():336] send: files
+2023-02-24 17:36:23,489 INFO    SenderThread:1712 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 17:36:23,497 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 17:36:23,497 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 17:36:23,665 DEBUG   SenderThread:1712 [sender.py:send():336] send: telemetry
+2023-02-24 17:36:24,060 INFO    wandb-upload_0:1712 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp_jp1zcuiwandb\b39hy6hi-wandb-metadata.json
+2023-02-24 17:36:24,277 INFO    Thread-32 :1712 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\wandb-metadata.json
+2023-02-24 17:36:24,278 INFO    Thread-32 :1712 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\requirements.txt
+2023-02-24 17:36:24,278 INFO    Thread-32 :1712 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\wandb-summary.json
+2023-02-24 17:36:24,412 DEBUG   SenderThread:1712 [sender.py:send():336] send: use_artifact
+2023-02-24 17:36:25,289 INFO    Thread-32 :1712 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\output.log
+2023-02-24 17:36:27,127 DEBUG   SenderThread:1712 [sender.py:send():336] send: exit
+2023-02-24 17:36:27,127 INFO    SenderThread:1712 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 17:36:27,127 INFO    SenderThread:1712 [sender.py:send_exit():561] handling runtime: 3
+2023-02-24 17:36:27,127 INFO    SenderThread:1712 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:36:27,128 INFO    SenderThread:1712 [sender.py:send_exit():567] send defer
+2023-02-24 17:36:27,128 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:27,128 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 17:36:27,128 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:27,128 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 17:36:27,128 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 1
+2023-02-24 17:36:27,129 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:27,129 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 17:36:27,129 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:27,129 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 17:36:27,129 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 2
+2023-02-24 17:36:27,129 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:27,129 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 17:36:27,129 INFO    HandlerThread:1712 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 17:36:27,130 DEBUG   SystemMonitor:1712 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 17:36:27,130 INFO    HandlerThread:1712 [interfaces.py:finish():175] Joined cpu
+2023-02-24 17:36:27,130 DEBUG   SystemMonitor:1712 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 17:36:27,131 DEBUG   SystemMonitor:1712 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 17:36:27,131 INFO    HandlerThread:1712 [interfaces.py:finish():175] Joined disk
+2023-02-24 17:36:27,131 INFO    HandlerThread:1712 [interfaces.py:finish():175] Joined memory
+2023-02-24 17:36:27,132 INFO    HandlerThread:1712 [interfaces.py:finish():175] Joined network
+2023-02-24 17:36:27,132 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:27,132 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 17:36:27,132 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 3
+2023-02-24 17:36:27,132 DEBUG   SenderThread:1712 [sender.py:send():336] send: stats
+2023-02-24 17:36:27,133 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:27,133 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 17:36:27,133 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:27,133 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 17:36:27,133 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 4
+2023-02-24 17:36:27,133 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:27,133 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 17:36:27,134 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:27,134 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 17:36:27,134 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 5
+2023-02-24 17:36:27,134 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:27,134 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 17:36:27,134 DEBUG   SenderThread:1712 [sender.py:send():336] send: summary
+2023-02-24 17:36:27,135 INFO    SenderThread:1712 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:36:27,135 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:27,135 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 17:36:27,135 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 6
+2023-02-24 17:36:27,136 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:27,136 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 17:36:27,136 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:27,136 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 17:36:27,140 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:36:27,319 INFO    Thread-32 :1712 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\output.log
+2023-02-24 17:36:27,319 INFO    Thread-32 :1712 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\wandb-summary.json
+2023-02-24 17:36:27,342 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 7
+2023-02-24 17:36:27,343 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:27,343 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 17:36:27,343 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:27,343 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 17:36:28,140 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:36:28,328 INFO    Thread-32 :1712 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\config.yaml
+2023-02-24 17:36:28,626 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 8
+2023-02-24 17:36:28,626 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:36:28,627 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:28,627 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 17:36:28,628 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:28,628 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 17:36:28,636 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 9
+2023-02-24 17:36:28,637 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:28,637 DEBUG   SenderThread:1712 [sender.py:send():336] send: artifact
+2023-02-24 17:36:28,637 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 17:36:29,151 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:36:29,340 INFO    Thread-32 :1712 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\output.log
+2023-02-24 17:36:29,796 INFO    SenderThread:1712 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'digest': 'dbe34f6e8b990dacc5d7c5e1ab1d02a4', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v0'}
+2023-02-24 17:36:29,796 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:29,796 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 17:36:29,796 INFO    SenderThread:1712 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 17:36:30,348 INFO    SenderThread:1712 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files
+2023-02-24 17:36:30,348 INFO    SenderThread:1712 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\config.yaml config.yaml
+2023-02-24 17:36:30,349 INFO    SenderThread:1712 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\output.log output.log
+2023-02-24 17:36:30,351 INFO    SenderThread:1712 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\requirements.txt requirements.txt
+2023-02-24 17:36:30,355 INFO    SenderThread:1712 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 17:36:30,355 INFO    SenderThread:1712 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\wandb-summary.json wandb-summary.json
+2023-02-24 17:36:30,359 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 10
+2023-02-24 17:36:30,359 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:36:30,359 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:30,359 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 17:36:30,360 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:30,360 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 17:36:30,360 INFO    SenderThread:1712 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:36:30,851 INFO    wandb-upload_1:1712 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\output.log
+2023-02-24 17:36:30,946 INFO    wandb-upload_3:1712 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\wandb-summary.json
+2023-02-24 17:36:30,955 INFO    wandb-upload_0:1712 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\config.yaml
+2023-02-24 17:36:31,166 INFO    wandb-upload_2:1712 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\files\requirements.txt
+2023-02-24 17:36:31,374 INFO    Thread-31 :1712 [sender.py:transition_state():587] send defer: 11
+2023-02-24 17:36:31,375 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:31,375 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 17:36:31,375 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:31,375 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 17:36:31,375 INFO    SenderThread:1712 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 17:36:31,375 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 12
+2023-02-24 17:36:31,375 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:31,375 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 17:36:31,376 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:31,376 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 17:36:31,568 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 13
+2023-02-24 17:36:31,568 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:31,568 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 17:36:31,569 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:31,569 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 17:36:31,569 INFO    SenderThread:1712 [sender.py:transition_state():587] send defer: 14
+2023-02-24 17:36:31,570 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:36:31,570 INFO    HandlerThread:1712 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 17:36:31,570 DEBUG   SenderThread:1712 [sender.py:send():336] send: final
+2023-02-24 17:36:31,570 DEBUG   SenderThread:1712 [sender.py:send():336] send: footer
+2023-02-24 17:36:31,570 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:36:31,570 INFO    SenderThread:1712 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 17:36:31,571 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:36:31,571 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 17:36:31,571 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 17:36:31,571 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 17:36:31,572 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:36:31,572 DEBUG   SenderThread:1712 [sender.py:send_request():363] send_request: server_info
+2023-02-24 17:36:31,750 INFO    MainThread:1712 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 17:36:31,750 INFO    MainThread:1712 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 17:36:31,750 INFO    MainThread:1712 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 17:36:31,750 DEBUG   HandlerThread:1712 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 17:36:31,750 INFO    HandlerThread:1712 [handler.py:finish():841] shutting down handler
+2023-02-24 17:36:32,585 INFO    WriterThread:1712 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\run-37xg7qqy.wandb
+2023-02-24 17:36:32,755 INFO    SenderThread:1712 [sender.py:finish():1493] shutting down sender
+2023-02-24 17:36:32,755 INFO    SenderThread:1712 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:36:32,755 INFO    SenderThread:1712 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_173621-37xg7qqy/logs/debug.log b/embeddings/wandb/run-20230224_173621-37xg7qqy/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..dabd3bf12ac3cd4aeb9b059fac2faaa0e6db7927
--- /dev/null
+++ b/embeddings/wandb/run-20230224_173621-37xg7qqy/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 17:36:21,899 INFO    MainThread:3400 [wandb_setup.py:_flush():68] Configure stats pid to 3400
+2023-02-24 17:36:21,900 INFO    MainThread:3400 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 17:36:21,900 INFO    MainThread:3400 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 17:36:21,900 INFO    MainThread:3400 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 17:36:21,900 INFO    MainThread:3400 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 17:36:21,901 INFO    MainThread:3400 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\logs\debug.log
+2023-02-24 17:36:21,901 INFO    MainThread:3400 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_173621-37xg7qqy\logs\debug-internal.log
+2023-02-24 17:36:21,901 INFO    MainThread:3400 [wandb_init.py:init():532] calling init triggers
+2023-02-24 17:36:21,901 INFO    MainThread:3400 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 17:36:21,901 INFO    MainThread:3400 [wandb_init.py:init():588] starting backend
+2023-02-24 17:36:21,901 INFO    MainThread:3400 [wandb_init.py:init():592] setting up manager
+2023-02-24 17:36:21,904 INFO    MainThread:3400 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 17:36:21,906 INFO    MainThread:3400 [wandb_init.py:init():599] backend started and connected
+2023-02-24 17:36:21,908 INFO    MainThread:3400 [wandb_init.py:init():687] updated telemetry
+2023-02-24 17:36:21,968 INFO    MainThread:3400 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 17:36:23,278 INFO    MainThread:3400 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 17:36:23,349 INFO    MainThread:3400 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 17:36:23,349 INFO    MainThread:3400 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 17:36:23,498 INFO    MainThread:3400 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 17:36:23,498 INFO    MainThread:3400 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 17:36:23,498 INFO    MainThread:3400 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 17:36:23,498 INFO    MainThread:3400 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 17:36:23,498 INFO    MainThread:3400 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 17:36:32,821 WARNING MsgRouterThr:3400 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_173621-37xg7qqy/run-37xg7qqy.wandb b/embeddings/wandb/run-20230224_173621-37xg7qqy/run-37xg7qqy.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..5619d04adabe2597a1ab560056fc7315f895b435
Binary files /dev/null and b/embeddings/wandb/run-20230224_173621-37xg7qqy/run-37xg7qqy.wandb differ
diff --git a/embeddings/wandb/run-20230224_174005-yuy5rmce/files/config.yaml b/embeddings/wandb/run-20230224_174005-yuy5rmce/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6f3040112ce07e04518659e769963458aff9dc2f
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174005-yuy5rmce/files/config.yaml
@@ -0,0 +1,41 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677260405.585859
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 2
+      - 13
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_174005-yuy5rmce/files/media/table/data_1_bd46f8c867852194ff48.table.json b/embeddings/wandb/run-20230224_174005-yuy5rmce/files/media/table/data_1_bd46f8c867852194ff48.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..5b6f32181a5a82093754c1266ff3a8bedac02f0e
Binary files /dev/null and b/embeddings/wandb/run-20230224_174005-yuy5rmce/files/media/table/data_1_bd46f8c867852194ff48.table.json differ
diff --git a/embeddings/wandb/run-20230224_174005-yuy5rmce/files/output.log b/embeddings/wandb/run-20230224_174005-yuy5rmce/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..8131c8b8db35fc387a6e26d7e09e1ca583c2d1c9
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174005-yuy5rmce/files/output.log
@@ -0,0 +1,47 @@
+wandb: WARNING Serializing object of type str that is 7167166 bytes
+wandb: WARNING Serializing object of type str that is 7193162 bytes
+wandb: WARNING Serializing object of type str that is 7166348 bytes
+wandb: WARNING Serializing object of type str that is 7192890 bytes
+wandb: WARNING Serializing object of type str that is 7184436 bytes
+wandb: WARNING Serializing object of type str that is 7168708 bytes
+wandb: WARNING Serializing object of type str that is 7170742 bytes
+wandb: WARNING Serializing object of type str that is 7186768 bytes
+wandb: WARNING Serializing object of type str that is 7186192 bytes
+wandb: WARNING Serializing object of type str that is 7181972 bytes
+wandb: WARNING Serializing object of type str that is 7192940 bytes
+wandb: WARNING Serializing object of type str that is 7180818 bytes
+wandb: WARNING Serializing object of type str that is 7166792 bytes
+wandb: WARNING Serializing object of type str that is 7166798 bytes
+wandb: WARNING Serializing object of type str that is 7195110 bytes
+wandb: WARNING Serializing object of type str that is 7173508 bytes
+wandb: WARNING Serializing object of type str that is 7172084 bytes
+wandb: WARNING Serializing object of type str that is 7185084 bytes
+wandb: WARNING Serializing object of type str that is 7197186 bytes
+wandb: WARNING Serializing object of type str that is 7174280 bytes
+wandb: WARNING Serializing object of type str that is 7166402 bytes
+wandb: WARNING Serializing object of type str that is 7192432 bytes
+wandb: WARNING Serializing object of type str that is 7177400 bytes
+wandb: WARNING Serializing object of type str that is 7184834 bytes
+wandb: WARNING Serializing object of type str that is 7189718 bytes
+wandb: WARNING Serializing object of type str that is 7183828 bytes
+wandb: WARNING Serializing object of type str that is 7169028 bytes
+wandb: WARNING Serializing object of type str that is 7168198 bytes
+wandb: WARNING Serializing object of type str that is 7185644 bytes
+wandb: WARNING Serializing object of type str that is 7171770 bytes
+wandb: WARNING Serializing object of type str that is 7192916 bytes
+wandb: WARNING Serializing object of type str that is 7175026 bytes
+wandb: WARNING Serializing object of type str that is 7191994 bytes
+wandb: WARNING Serializing object of type str that is 7175628 bytes
+wandb: WARNING Serializing object of type str that is 7181206 bytes
+wandb: WARNING Serializing object of type str that is 7169494 bytes
+wandb: WARNING Serializing object of type str that is 7195530 bytes
+wandb: WARNING Serializing object of type str that is 7187058 bytes
+wandb: WARNING Serializing object of type str that is 7185746 bytes
+wandb: WARNING Serializing object of type str that is 7189144 bytes
+wandb: WARNING Serializing object of type str that is 7184440 bytes
+wandb: WARNING Serializing object of type str that is 7166790 bytes
+wandb: WARNING Serializing object of type str that is 7175882 bytes
+wandb: WARNING Serializing object of type str that is 7172828 bytes
+wandb: WARNING Serializing object of type str that is 7187934 bytes
+wandb: WARNING Serializing object of type str that is 7184042 bytes
+wandb: Adding directory to artifact (.\..\data)... Done. 1.9s
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_174005-yuy5rmce/files/requirements.txt b/embeddings/wandb/run-20230224_174005-yuy5rmce/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174005-yuy5rmce/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_174005-yuy5rmce/files/wandb-metadata.json b/embeddings/wandb/run-20230224_174005-yuy5rmce/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..2c349edbe02345f30f2bda9f84b0850f0581372d
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174005-yuy5rmce/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T17:40:07.291001",
+    "startedAt": "2023-02-24T17:40:05.571860",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 357.31800842285156
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_174005-yuy5rmce/files/wandb-summary.json b/embeddings/wandb/run-20230224_174005-yuy5rmce/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..c52628af49206635e6b7d28131c42d637603d68f
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174005-yuy5rmce/files/wandb-summary.json
@@ -0,0 +1 @@
+{"num_node_features": {"question": 1536, "answer": 1536, "comment": 768, "tag": 50, "module": 30}, "num_classes": 2, "_timestamp": 1677260424.5856166, "_runtime": 18.999757528305054, "_step": 1, "data": {"_type": "table-file", "sha256": "bd46f8c867852194ff48d33cc88300db5531679767c840983c0a2ea35e2039bb", "size": 168981951, "artifact_path": "wandb-client-artifact://4nakilaxnbfhec0sr6p5q2mo15l2pb8cqx1uf44zjsi6ehlz4jr84sv0chd7m2i1kt6ncxobds6cgdntevezg058cmbbtqkeq2gyy96tx99n6aqbzxz6xt6e408s16vp:latest/data.table.json", "_latest_artifact_path": "wandb-client-artifact://4nakilaxnbfhec0sr6p5q2mo15l2pb8cqx1uf44zjsi6ehlz4jr84sv0chd7m2i1kt6ncxobds6cgdntevezg058cmbbtqkeq2gyy96tx99n6aqbzxz6xt6e408s16vp:latest/data.table.json", "path": "media/table/data_1_bd46f8c867852194ff48.table.json", "ncols": 4, "nrows": 46}, "_wandb": {"runtime": 19}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_174005-yuy5rmce/logs/debug-internal.log b/embeddings/wandb/run-20230224_174005-yuy5rmce/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..9dc259f391a4c197751db13c1a47b3fcb81a0861
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174005-yuy5rmce/logs/debug-internal.log
@@ -0,0 +1,271 @@
+2023-02-24 17:40:05,587 INFO    StreamThr :1724 [internal.py:wandb_internal():87] W&B internal server running at pid: 1724, started at: 2023-02-24 17:40:05.585859
+2023-02-24 17:40:05,590 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status
+2023-02-24 17:40:05,591 INFO    WriterThread:1724 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\run-yuy5rmce.wandb
+2023-02-24 17:40:05,595 DEBUG   SenderThread:1724 [sender.py:send():336] send: header
+2023-02-24 17:40:05,647 DEBUG   SenderThread:1724 [sender.py:send():336] send: run
+2023-02-24 17:40:07,032 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 17:40:07,104 INFO    SenderThread:1724 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files
+2023-02-24 17:40:07,105 INFO    SenderThread:1724 [sender.py:_start_run_threads():1067] run started: yuy5rmce with start time 1677260405.585859
+2023-02-24 17:40:07,105 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:40:07,105 INFO    SenderThread:1724 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:40:07,106 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: check_version
+2023-02-24 17:40:07,260 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 17:40:07,283 DEBUG   HandlerThread:1724 [system_info.py:__init__():31] System info init
+2023-02-24 17:40:07,284 DEBUG   HandlerThread:1724 [system_info.py:__init__():46] System info init done
+2023-02-24 17:40:07,284 INFO    HandlerThread:1724 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 17:40:07,284 INFO    SystemMonitor:1724 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 17:40:07,284 INFO    HandlerThread:1724 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 17:40:07,290 INFO    SystemMonitor:1724 [interfaces.py:start():168] Started cpu
+2023-02-24 17:40:07,291 DEBUG   HandlerThread:1724 [system_info.py:probe():195] Probing system
+2023-02-24 17:40:07,291 INFO    SystemMonitor:1724 [interfaces.py:start():168] Started disk
+2023-02-24 17:40:07,292 INFO    SystemMonitor:1724 [interfaces.py:start():168] Started memory
+2023-02-24 17:40:07,314 INFO    SystemMonitor:1724 [interfaces.py:start():168] Started network
+2023-02-24 17:40:07,315 DEBUG   HandlerThread:1724 [system_info.py:_probe_git():180] Probing git
+2023-02-24 17:40:07,513 DEBUG   HandlerThread:1724 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 17:40:07,513 DEBUG   HandlerThread:1724 [system_info.py:probe():241] Probing system done
+2023-02-24 17:40:07,513 DEBUG   HandlerThread:1724 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T17:40:07.291001', 'startedAt': '2023-02-24T17:40:05.571860', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 357.31800842285156}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 17:40:07,513 INFO    HandlerThread:1724 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 17:40:07,514 INFO    HandlerThread:1724 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 17:40:07,514 DEBUG   HandlerThread:1724 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 17:40:07,514 DEBUG   HandlerThread:1724 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 17:40:07,518 INFO    HandlerThread:1724 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 17:40:07,534 DEBUG   SenderThread:1724 [sender.py:send():336] send: files
+2023-02-24 17:40:07,534 INFO    SenderThread:1724 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 17:40:07,548 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 17:40:07,548 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 17:40:07,552 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 17:40:07,933 DEBUG   SenderThread:1724 [sender.py:send():336] send: telemetry
+2023-02-24 17:40:07,933 DEBUG   SenderThread:1724 [sender.py:send():336] send: history
+2023-02-24 17:40:07,933 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:40:07,933 INFO    SenderThread:1724 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:40:08,115 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\wandb-summary.json
+2023-02-24 17:40:08,115 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\wandb-metadata.json
+2023-02-24 17:40:08,115 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\requirements.txt
+2023-02-24 17:40:08,762 INFO    wandb-upload_0:1724 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp4_8t_18cwandb\t11fbe7h-wandb-metadata.json
+2023-02-24 17:40:10,113 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\output.log
+2023-02-24 17:40:10,719 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:40:12,126 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\output.log
+2023-02-24 17:40:15,739 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:40:17,929 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 17:40:17,930 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 17:40:22,544 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:40:22,544 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:40:24,231 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\media\table\data_1_bd46f8c867852194ff48.table.json
+2023-02-24 17:40:24,231 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\media\table
+2023-02-24 17:40:24,231 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\media
+2023-02-24 17:40:24,586 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-24 17:40:26,618 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-24 17:40:27,626 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:40:32,675 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:40:37,724 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:40:42,767 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:40:47,827 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:40:52,880 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:40:57,944 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:41:03,004 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:41:07,329 DEBUG   SystemMonitor:1724 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 17:41:08,063 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:41:13,109 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:41:18,177 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:41:23,220 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:41:28,267 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:41:33,323 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:41:38,368 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:41:43,434 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:41:48,485 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:41:53,544 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:41:58,606 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:42:03,664 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:42:08,724 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:42:11,972 INFO    wandb-upload_0:1724 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpu0l_ev3w
+2023-02-24 17:42:13,717 INFO    SenderThread:1724 [sender.py:send_request_log_artifact():1381] logged artifact run-yuy5rmce-data - {'id': 'QXJ0aWZhY3Q6MzgwNjE2MjIw', 'digest': '6bdd4c6181b1d76e5a6a7b61580da18c', 'state': 'PENDING', 'aliases': [], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjMxODkx', 'latestArtifact': None}, 'version': 'latest'}
+2023-02-24 17:42:13,722 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:42:13,782 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:42:14,989 DEBUG   SenderThread:1724 [sender.py:send():336] send: files
+2023-02-24 17:42:14,990 INFO    SenderThread:1724 [sender.py:_save_file():1321] saving file media\table\data_1_bd46f8c867852194ff48.table.json with policy now
+2023-02-24 17:42:14,990 DEBUG   SenderThread:1724 [sender.py:send():336] send: history
+2023-02-24 17:42:14,990 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:42:14,993 INFO    SenderThread:1724 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:42:14,993 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: log_artifact
+2023-02-24 17:42:15,524 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\wandb-summary.json
+2023-02-24 17:42:15,524 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\config.yaml
+2023-02-24 17:42:16,036 INFO    SenderThread:1724 [sender.py:send_request_log_artifact():1381] logged artifact static-graphs - {'id': 'QXJ0aWZhY3Q6MzgwNTY0ODAy', 'digest': '64a712122c812b4423fcf560ca60f704', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'static-graphs', 'alias': 'latest'}, {'artifactCollectionName': 'static-graphs', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NjIzMTU5', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwNTY0ODAy', 'versionIndex': 0}}, 'version': 'v0'}
+2023-02-24 17:42:16,036 DEBUG   SenderThread:1724 [sender.py:send():336] send: telemetry
+2023-02-24 17:42:16,036 DEBUG   SenderThread:1724 [sender.py:send():336] send: exit
+2023-02-24 17:42:16,036 INFO    SenderThread:1724 [sender.py:send_exit():559] handling exit code: 0
+2023-02-24 17:42:16,036 INFO    SenderThread:1724 [sender.py:send_exit():561] handling runtime: 19
+2023-02-24 17:42:16,037 INFO    SenderThread:1724 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:42:16,038 INFO    SenderThread:1724 [sender.py:send_exit():567] send defer
+2023-02-24 17:42:16,038 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:42:16,039 DEBUG   SenderThread:1724 [sender.py:send():336] send: stats
+2023-02-24 17:42:16,039 DEBUG   SenderThread:1724 [sender.py:send():336] send: stats
+2023-02-24 17:42:16,039 DEBUG   SenderThread:1724 [sender.py:send():336] send: stats
+2023-02-24 17:42:16,040 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:42:16,040 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 17:42:16,040 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:42:16,040 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 17:42:16,040 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 1
+2023-02-24 17:42:16,041 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:42:16,041 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 17:42:16,041 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:42:16,041 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 17:42:16,041 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 2
+2023-02-24 17:42:16,041 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:42:16,041 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 17:42:16,041 INFO    HandlerThread:1724 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 17:42:16,042 DEBUG   SystemMonitor:1724 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 17:42:16,042 DEBUG   SystemMonitor:1724 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 17:42:16,043 INFO    HandlerThread:1724 [interfaces.py:finish():175] Joined cpu
+2023-02-24 17:42:16,043 INFO    HandlerThread:1724 [interfaces.py:finish():175] Joined disk
+2023-02-24 17:42:16,043 INFO    HandlerThread:1724 [interfaces.py:finish():175] Joined memory
+2023-02-24 17:42:16,043 INFO    HandlerThread:1724 [interfaces.py:finish():175] Joined network
+2023-02-24 17:42:16,043 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:42:16,043 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 17:42:16,044 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 3
+2023-02-24 17:42:16,044 DEBUG   SenderThread:1724 [sender.py:send():336] send: stats
+2023-02-24 17:42:16,044 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:42:16,044 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 17:42:16,044 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:42:16,044 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 17:42:16,044 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 4
+2023-02-24 17:42:16,045 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:42:16,045 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 17:42:16,045 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:42:16,045 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 17:42:16,045 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 5
+2023-02-24 17:42:16,045 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:42:16,045 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 17:42:16,046 DEBUG   SenderThread:1724 [sender.py:send():336] send: summary
+2023-02-24 17:42:16,046 INFO    SenderThread:1724 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:42:16,047 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:42:16,047 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 17:42:16,047 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 6
+2023-02-24 17:42:16,047 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:42:16,047 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 17:42:16,047 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:42:16,047 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 17:42:16,051 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:42:16,247 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 7
+2023-02-24 17:42:16,247 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:42:16,247 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 17:42:16,247 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:42:16,248 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 17:42:16,494 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 8
+2023-02-24 17:42:16,494 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:42:16,494 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 17:42:16,494 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:42:16,494 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 17:42:16,503 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 9
+2023-02-24 17:42:16,504 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:42:16,504 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 17:42:16,504 DEBUG   SenderThread:1724 [sender.py:send():336] send: artifact
+2023-02-24 17:42:16,526 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\wandb-summary.json
+2023-02-24 17:42:16,526 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\config.yaml
+2023-02-24 17:42:16,527 INFO    Thread-17 :1724 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\output.log
+2023-02-24 17:42:17,260 INFO    SenderThread:1724 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'digest': '8077f65decb82fd65dc9936bbf393b39', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v2'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v2'}
+2023-02-24 17:42:17,260 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:42:17,261 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 17:42:17,261 INFO    SenderThread:1724 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 17:42:17,540 INFO    SenderThread:1724 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files
+2023-02-24 17:42:17,540 INFO    SenderThread:1724 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\config.yaml config.yaml
+2023-02-24 17:42:17,541 INFO    SenderThread:1724 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\output.log output.log
+2023-02-24 17:42:17,541 INFO    SenderThread:1724 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\requirements.txt requirements.txt
+2023-02-24 17:42:17,546 INFO    SenderThread:1724 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 17:42:17,547 INFO    SenderThread:1724 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\wandb-summary.json wandb-summary.json
+2023-02-24 17:42:17,557 INFO    SenderThread:1724 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\media\table\data_1_bd46f8c867852194ff48.table.json media\table\data_1_bd46f8c867852194ff48.table.json
+2023-02-24 17:42:17,557 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 10
+2023-02-24 17:42:17,558 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:42:17,558 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 17:42:17,558 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:42:17,558 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 17:42:17,558 INFO    SenderThread:1724 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:42:18,051 INFO    wandb-upload_1:1724 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\config.yaml
+2023-02-24 17:42:18,098 INFO    wandb-upload_3:1724 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\requirements.txt
+2023-02-24 17:42:18,099 INFO    wandb-upload_4:1724 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\wandb-summary.json
+2023-02-24 17:42:18,365 INFO    wandb-upload_2:1724 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\files\output.log
+2023-02-24 17:42:18,820 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:42:23,873 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:42:25,649 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:42:28,919 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:42:30,688 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:42:33,975 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:42:35,752 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:42:39,034 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:42:40,807 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:42:44,083 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:42:45,857 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:42:49,142 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:42:50,915 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:42:54,183 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:42:55,974 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:42:59,248 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:43:01,033 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:43:04,296 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:43:06,089 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:43:09,361 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:43:11,153 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:43:14,411 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:43:16,201 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:43:19,456 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:43:21,243 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:43:24,513 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:43:26,304 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:43:29,565 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:43:31,356 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:43:34,607 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:43:36,403 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:43:39,653 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:43:41,459 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:43:44,697 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:43:46,496 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:43:49,744 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:43:51,549 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:43:54,806 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:43:56,613 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:43:59,855 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:44:01,658 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:44:04,907 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:44:06,707 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:44:09,954 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:44:11,751 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:44:15,007 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:44:16,814 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:44:20,065 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:44:21,865 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:44:25,114 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-24 17:44:26,173 INFO    wandb-upload_0:1724 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp4_8t_18cwandb\p4y5mglj-media/table/data_1_bd46f8c867852194ff48.table.json
+2023-02-24 17:44:26,391 INFO    Thread-16 :1724 [sender.py:transition_state():587] send defer: 11
+2023-02-24 17:44:26,391 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:26,391 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 17:44:26,391 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:26,391 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 17:44:26,391 INFO    SenderThread:1724 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 17:44:26,391 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 12
+2023-02-24 17:44:26,391 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:26,392 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 17:44:26,392 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:26,392 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 17:44:26,541 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 13
+2023-02-24 17:44:26,541 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:26,541 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 17:44:26,541 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:26,541 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 17:44:26,542 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 14
+2023-02-24 17:44:26,542 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:26,542 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 17:44:26,542 DEBUG   SenderThread:1724 [sender.py:send():336] send: final
+2023-02-24 17:44:26,543 DEBUG   SenderThread:1724 [sender.py:send():336] send: footer
+2023-02-24 17:44:26,543 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:26,543 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 17:44:26,544 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:44:26,544 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 17:44:26,544 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 17:44:26,545 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 17:44:26,545 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:44:26,546 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: server_info
+2023-02-24 17:44:26,744 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 17:44:26,744 INFO    HandlerThread:1724 [handler.py:finish():841] shutting down handler
+2023-02-24 17:44:27,555 INFO    WriterThread:1724 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\run-yuy5rmce.wandb
+2023-02-24 17:44:27,744 INFO    SenderThread:1724 [sender.py:finish():1493] shutting down sender
+2023-02-24 17:44:27,744 INFO    SenderThread:1724 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:44:27,744 INFO    SenderThread:1724 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_174005-yuy5rmce/logs/debug.log b/embeddings/wandb/run-20230224_174005-yuy5rmce/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..7901783fcfce3a6ec4146be332a3e349fd603fe7
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174005-yuy5rmce/logs/debug.log
@@ -0,0 +1,31 @@
+2023-02-24 17:40:05,574 INFO    MainThread:15696 [wandb_setup.py:_flush():68] Configure stats pid to 15696
+2023-02-24 17:40:05,574 INFO    MainThread:15696 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 17:40:05,574 INFO    MainThread:15696 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 17:40:05,574 INFO    MainThread:15696 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 17:40:05,574 INFO    MainThread:15696 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 17:40:05,576 INFO    MainThread:15696 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\logs\debug.log
+2023-02-24 17:40:05,576 INFO    MainThread:15696 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174005-yuy5rmce\logs\debug-internal.log
+2023-02-24 17:40:05,576 INFO    MainThread:15696 [wandb_init.py:init():532] calling init triggers
+2023-02-24 17:40:05,577 INFO    MainThread:15696 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 17:40:05,577 INFO    MainThread:15696 [wandb_init.py:init():588] starting backend
+2023-02-24 17:40:05,577 INFO    MainThread:15696 [wandb_init.py:init():592] setting up manager
+2023-02-24 17:40:05,581 INFO    MainThread:15696 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 17:40:05,585 INFO    MainThread:15696 [wandb_init.py:init():599] backend started and connected
+2023-02-24 17:40:05,589 INFO    MainThread:15696 [wandb_init.py:init():687] updated telemetry
+2023-02-24 17:40:05,646 INFO    MainThread:15696 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 17:40:07,031 INFO    MainThread:15696 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 17:40:07,249 INFO    MainThread:15696 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 17:40:07,249 INFO    MainThread:15696 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 17:40:07,548 INFO    MainThread:15696 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 17:40:07,548 INFO    MainThread:15696 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 17:40:07,549 INFO    MainThread:15696 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 17:40:07,549 INFO    MainThread:15696 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 17:40:07,550 INFO    MainThread:15696 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 17:40:26,623 INFO    MainThread:15696 [wandb_run.py:_finish():1854] finishing run g4nlp/heterogeneous-GAT-model/yuy5rmce
+2023-02-24 17:40:26,623 INFO    MainThread:15696 [wandb_run.py:_atexit_cleanup():2083] got exitcode: 0
+2023-02-24 17:40:26,624 INFO    MainThread:15696 [wandb_run.py:_restore():2066] restore
+2023-02-24 17:40:26,625 INFO    MainThread:15696 [wandb_run.py:_restore():2072] restore done
+2023-02-24 17:44:27,760 INFO    MainThread:15696 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 17:44:27,760 INFO    MainThread:15696 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 17:44:27,764 INFO    MainThread:15696 [wandb_run.py:_footer_sync_info():3398] logging synced files
diff --git a/embeddings/wandb/run-20230224_174005-yuy5rmce/run-yuy5rmce.wandb b/embeddings/wandb/run-20230224_174005-yuy5rmce/run-yuy5rmce.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..40175e9210135a173bebbadd810b6b56ea6b9930
Binary files /dev/null and b/embeddings/wandb/run-20230224_174005-yuy5rmce/run-yuy5rmce.wandb differ
diff --git a/embeddings/wandb/run-20230224_174427-7auiigtt/files/config.yaml b/embeddings/wandb/run-20230224_174427-7auiigtt/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..41d7b9922d91c57aff47f5fccd5ad5b790f8deb3
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174427-7auiigtt/files/config.yaml
@@ -0,0 +1,39 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677260667.783779
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_174427-7auiigtt/files/output.log b/embeddings/wandb/run-20230224_174427-7auiigtt/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..d9f6cef524166d0d42cb13377fa8092731bd98b6
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174427-7auiigtt/files/output.log
@@ -0,0 +1,8 @@
+
+INFO:heterogeneous-GAT-model:[1] Loss: 0.000350596010684967
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 206, in <module>
+    train_acc, train_f1, train_loss, train_table = test(train_loader)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 120, in test
+    table.add_data(wandb.Html(create_graph_vis(data).to_html(full_html=False)), data.label.item(), pred.item())
+ValueError: only one element tensors can be converted to Python scalars
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_174427-7auiigtt/files/requirements.txt b/embeddings/wandb/run-20230224_174427-7auiigtt/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174427-7auiigtt/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_174427-7auiigtt/files/wandb-metadata.json b/embeddings/wandb/run-20230224_174427-7auiigtt/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..2639a10dc33f44cd956a3a4819051b7d3df55fa7
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174427-7auiigtt/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T17:44:30.121879",
+    "startedAt": "2023-02-24T17:44:27.772784",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 357.90655517578125
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_174427-7auiigtt/files/wandb-summary.json b/embeddings/wandb/run-20230224_174427-7auiigtt/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..13ed209ce59c23ca7857cb54916c6cd691e4764e
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174427-7auiigtt/files/wandb-summary.json
@@ -0,0 +1 @@
+{"_wandb": {"runtime": 7}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_174427-7auiigtt/logs/debug-internal.log b/embeddings/wandb/run-20230224_174427-7auiigtt/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..833d06750a22707c4e0ac491cae37aa8d8dc814a
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174427-7auiigtt/logs/debug-internal.log
@@ -0,0 +1,172 @@
+2023-02-24 17:44:28,758 INFO    StreamThr :1724 [internal.py:wandb_internal():87] W&B internal server running at pid: 1724, started at: 2023-02-24 17:44:28.758254
+2023-02-24 17:44:28,760 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status
+2023-02-24 17:44:28,762 INFO    WriterThread:1724 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\run-7auiigtt.wandb
+2023-02-24 17:44:28,763 DEBUG   SenderThread:1724 [sender.py:send():336] send: header
+2023-02-24 17:44:28,764 DEBUG   SenderThread:1724 [sender.py:send():336] send: run
+2023-02-24 17:44:29,498 INFO    SenderThread:1724 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files
+2023-02-24 17:44:29,498 INFO    SenderThread:1724 [sender.py:_start_run_threads():1067] run started: 7auiigtt with start time 1677260667.783779
+2023-02-24 17:44:29,498 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:44:29,499 INFO    SenderThread:1724 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:44:29,503 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 17:44:29,503 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: check_version
+2023-02-24 17:44:30,101 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 17:44:30,116 DEBUG   HandlerThread:1724 [system_info.py:__init__():31] System info init
+2023-02-24 17:44:30,117 DEBUG   HandlerThread:1724 [system_info.py:__init__():46] System info init done
+2023-02-24 17:44:30,117 INFO    HandlerThread:1724 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 17:44:30,117 INFO    SystemMonitor:1724 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 17:44:30,118 INFO    HandlerThread:1724 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 17:44:30,121 DEBUG   HandlerThread:1724 [system_info.py:probe():195] Probing system
+2023-02-24 17:44:30,121 INFO    SystemMonitor:1724 [interfaces.py:start():168] Started cpu
+2023-02-24 17:44:30,122 INFO    SystemMonitor:1724 [interfaces.py:start():168] Started disk
+2023-02-24 17:44:30,122 INFO    SystemMonitor:1724 [interfaces.py:start():168] Started memory
+2023-02-24 17:44:30,138 INFO    SystemMonitor:1724 [interfaces.py:start():168] Started network
+2023-02-24 17:44:30,139 DEBUG   HandlerThread:1724 [system_info.py:_probe_git():180] Probing git
+2023-02-24 17:44:30,233 DEBUG   HandlerThread:1724 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 17:44:30,233 DEBUG   HandlerThread:1724 [system_info.py:probe():241] Probing system done
+2023-02-24 17:44:30,233 DEBUG   HandlerThread:1724 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T17:44:30.121879', 'startedAt': '2023-02-24T17:44:27.772784', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 357.90655517578125}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 17:44:30,233 INFO    HandlerThread:1724 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 17:44:30,233 INFO    HandlerThread:1724 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 17:44:30,233 DEBUG   HandlerThread:1724 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 17:44:30,234 DEBUG   HandlerThread:1724 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 17:44:30,237 INFO    HandlerThread:1724 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 17:44:30,237 DEBUG   SenderThread:1724 [sender.py:send():336] send: files
+2023-02-24 17:44:30,237 INFO    SenderThread:1724 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 17:44:30,245 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 17:44:30,246 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 17:44:30,501 INFO    Thread-32 :1724 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\wandb-metadata.json
+2023-02-24 17:44:30,501 INFO    Thread-32 :1724 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\wandb-summary.json
+2023-02-24 17:44:30,501 INFO    Thread-32 :1724 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\requirements.txt
+2023-02-24 17:44:33,660 DEBUG   SenderThread:1724 [sender.py:send():336] send: telemetry
+2023-02-24 17:44:34,366 DEBUG   SenderThread:1724 [sender.py:send():336] send: use_artifact
+2023-02-24 17:44:34,366 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:44:34,450 INFO    wandb-upload_0:1724 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpwdiipg49wandb\tmttc9rn-wandb-metadata.json
+2023-02-24 17:44:35,542 INFO    Thread-32 :1724 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\output.log
+2023-02-24 17:44:37,557 INFO    Thread-32 :1724 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\output.log
+2023-02-24 17:44:37,997 DEBUG   SenderThread:1724 [sender.py:send():336] send: exit
+2023-02-24 17:44:37,997 INFO    SenderThread:1724 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 17:44:37,997 INFO    SenderThread:1724 [sender.py:send_exit():561] handling runtime: 7
+2023-02-24 17:44:37,998 INFO    SenderThread:1724 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:44:37,998 INFO    SenderThread:1724 [sender.py:send_exit():567] send defer
+2023-02-24 17:44:37,999 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:37,999 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 17:44:37,999 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:37,999 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 17:44:37,999 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 1
+2023-02-24 17:44:37,999 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:37,999 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 17:44:38,000 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:38,000 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 17:44:38,000 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 2
+2023-02-24 17:44:38,000 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:38,000 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 17:44:38,000 INFO    HandlerThread:1724 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 17:44:38,001 DEBUG   SystemMonitor:1724 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 17:44:38,001 DEBUG   SystemMonitor:1724 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 17:44:38,001 DEBUG   SystemMonitor:1724 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 17:44:38,002 INFO    HandlerThread:1724 [interfaces.py:finish():175] Joined cpu
+2023-02-24 17:44:38,002 INFO    HandlerThread:1724 [interfaces.py:finish():175] Joined disk
+2023-02-24 17:44:38,002 INFO    HandlerThread:1724 [interfaces.py:finish():175] Joined memory
+2023-02-24 17:44:38,002 INFO    HandlerThread:1724 [interfaces.py:finish():175] Joined network
+2023-02-24 17:44:38,002 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:38,002 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 17:44:38,003 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 3
+2023-02-24 17:44:38,003 DEBUG   SenderThread:1724 [sender.py:send():336] send: stats
+2023-02-24 17:44:38,003 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:38,003 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 17:44:38,003 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:38,004 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 17:44:38,004 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 4
+2023-02-24 17:44:38,004 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:38,004 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 17:44:38,004 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:38,004 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 17:44:38,004 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 5
+2023-02-24 17:44:38,004 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:38,004 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 17:44:38,005 DEBUG   SenderThread:1724 [sender.py:send():336] send: summary
+2023-02-24 17:44:38,005 INFO    SenderThread:1724 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:44:38,006 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:38,006 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 17:44:38,006 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 6
+2023-02-24 17:44:38,006 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:38,006 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 17:44:38,006 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:38,006 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 17:44:38,010 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:44:38,284 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 7
+2023-02-24 17:44:38,284 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:38,284 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 17:44:38,285 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:38,285 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 17:44:38,570 INFO    Thread-32 :1724 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\config.yaml
+2023-02-24 17:44:38,570 INFO    Thread-32 :1724 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\wandb-summary.json
+2023-02-24 17:44:38,648 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 8
+2023-02-24 17:44:38,649 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:38,649 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 17:44:38,650 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:38,650 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 17:44:38,659 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 9
+2023-02-24 17:44:38,659 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:38,660 DEBUG   SenderThread:1724 [sender.py:send():336] send: artifact
+2023-02-24 17:44:38,660 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 17:44:39,003 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:44:39,577 INFO    Thread-32 :1724 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\output.log
+2023-02-24 17:44:39,769 INFO    SenderThread:1724 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'digest': 'dbe34f6e8b990dacc5d7c5e1ab1d02a4', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v0'}
+2023-02-24 17:44:39,769 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:39,770 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 17:44:39,770 INFO    SenderThread:1724 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 17:44:40,583 INFO    SenderThread:1724 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files
+2023-02-24 17:44:40,584 INFO    SenderThread:1724 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\config.yaml config.yaml
+2023-02-24 17:44:40,584 INFO    SenderThread:1724 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\output.log output.log
+2023-02-24 17:44:40,587 INFO    SenderThread:1724 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\requirements.txt requirements.txt
+2023-02-24 17:44:40,588 INFO    SenderThread:1724 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 17:44:40,588 INFO    SenderThread:1724 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\wandb-summary.json wandb-summary.json
+2023-02-24 17:44:40,591 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 10
+2023-02-24 17:44:40,594 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:44:40,595 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:40,595 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 17:44:40,596 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:40,598 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 17:44:40,598 INFO    SenderThread:1724 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:44:41,916 INFO    wandb-upload_0:1724 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\config.yaml
+2023-02-24 17:44:42,195 INFO    wandb-upload_1:1724 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\output.log
+2023-02-24 17:44:42,217 INFO    wandb-upload_2:1724 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\requirements.txt
+2023-02-24 17:44:42,226 INFO    wandb-upload_3:1724 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\files\wandb-summary.json
+2023-02-24 17:44:42,436 INFO    Thread-31 :1724 [sender.py:transition_state():587] send defer: 11
+2023-02-24 17:44:42,436 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:42,436 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 17:44:42,436 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:42,437 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 17:44:42,437 INFO    SenderThread:1724 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 17:44:42,437 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 12
+2023-02-24 17:44:42,437 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:42,437 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 17:44:42,437 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:42,437 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 17:44:42,584 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 13
+2023-02-24 17:44:42,585 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:42,585 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 17:44:42,585 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:42,585 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 17:44:42,585 INFO    SenderThread:1724 [sender.py:transition_state():587] send defer: 14
+2023-02-24 17:44:42,585 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:44:42,586 DEBUG   SenderThread:1724 [sender.py:send():336] send: final
+2023-02-24 17:44:42,586 INFO    HandlerThread:1724 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 17:44:42,586 DEBUG   SenderThread:1724 [sender.py:send():336] send: footer
+2023-02-24 17:44:42,586 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:44:42,586 INFO    SenderThread:1724 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 17:44:42,587 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:44:42,587 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 17:44:42,587 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 17:44:42,587 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:44:42,587 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 17:44:42,587 DEBUG   SenderThread:1724 [sender.py:send_request():363] send_request: server_info
+2023-02-24 17:44:42,790 INFO    MainThread:1724 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 17:44:42,790 INFO    MainThread:1724 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 17:44:42,790 INFO    MainThread:1724 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 17:44:42,791 DEBUG   HandlerThread:1724 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 17:44:42,791 INFO    HandlerThread:1724 [handler.py:finish():841] shutting down handler
+2023-02-24 17:44:43,589 INFO    WriterThread:1724 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\run-7auiigtt.wandb
+2023-02-24 17:44:43,791 INFO    SenderThread:1724 [sender.py:finish():1493] shutting down sender
+2023-02-24 17:44:43,791 INFO    SenderThread:1724 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:44:43,792 INFO    SenderThread:1724 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_174427-7auiigtt/logs/debug.log b/embeddings/wandb/run-20230224_174427-7auiigtt/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..e9b99d33e725b0c4222c3e0ba0a3968c26817a43
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174427-7auiigtt/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 17:44:27,775 INFO    MainThread:15696 [wandb_setup.py:_flush():68] Configure stats pid to 15696
+2023-02-24 17:44:27,775 INFO    MainThread:15696 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 17:44:27,775 INFO    MainThread:15696 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 17:44:27,776 INFO    MainThread:15696 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 17:44:27,776 INFO    MainThread:15696 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 17:44:27,776 INFO    MainThread:15696 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\logs\debug.log
+2023-02-24 17:44:27,777 INFO    MainThread:15696 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174427-7auiigtt\logs\debug-internal.log
+2023-02-24 17:44:27,777 INFO    MainThread:15696 [wandb_init.py:init():532] calling init triggers
+2023-02-24 17:44:27,777 INFO    MainThread:15696 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 17:44:27,777 INFO    MainThread:15696 [wandb_init.py:init():588] starting backend
+2023-02-24 17:44:27,777 INFO    MainThread:15696 [wandb_init.py:init():592] setting up manager
+2023-02-24 17:44:27,781 INFO    MainThread:15696 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 17:44:27,783 INFO    MainThread:15696 [wandb_init.py:init():599] backend started and connected
+2023-02-24 17:44:27,784 INFO    MainThread:15696 [wandb_init.py:init():687] updated telemetry
+2023-02-24 17:44:27,839 INFO    MainThread:15696 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 17:44:29,502 INFO    MainThread:15696 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 17:44:30,094 INFO    MainThread:15696 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 17:44:30,094 INFO    MainThread:15696 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 17:44:30,245 INFO    MainThread:15696 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 17:44:30,246 INFO    MainThread:15696 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 17:44:30,246 INFO    MainThread:15696 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 17:44:30,246 INFO    MainThread:15696 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 17:44:30,246 INFO    MainThread:15696 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 17:44:43,857 WARNING MsgRouterThr:15696 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_174427-7auiigtt/run-7auiigtt.wandb b/embeddings/wandb/run-20230224_174427-7auiigtt/run-7auiigtt.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..e744bf8673b5e4e5ac7ca207cf5d2823b5d9e72d
Binary files /dev/null and b/embeddings/wandb/run-20230224_174427-7auiigtt/run-7auiigtt.wandb differ
diff --git a/embeddings/wandb/run-20230224_174636-zytz60yc/files/config.yaml b/embeddings/wandb/run-20230224_174636-zytz60yc/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ba65299d89b5722155dac3c87dea8d72e2c9973d
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174636-zytz60yc/files/config.yaml
@@ -0,0 +1,39 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677260796.575913
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_174636-zytz60yc/files/output.log b/embeddings/wandb/run-20230224_174636-zytz60yc/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..1509d9b4a769d1e76bb041cb0ff6cb9036d659da
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174636-zytz60yc/files/output.log
@@ -0,0 +1,8 @@
+
+INFO:heterogeneous-GAT-model:[1] Loss: 0.0003576532006263733
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 208, in <module>
+    train_acc, train_f1, train_loss, train_table = test(train_loader)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 120, in test
+    table.add_data(wandb.Html(create_graph_vis(data).to_html(full_html=False)), data.label.item(), pred.item())
+ValueError: only one element tensors can be converted to Python scalars
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_174636-zytz60yc/files/requirements.txt b/embeddings/wandb/run-20230224_174636-zytz60yc/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174636-zytz60yc/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_174636-zytz60yc/files/wandb-metadata.json b/embeddings/wandb/run-20230224_174636-zytz60yc/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..9481a57dd21904668f833cd547cdcb8e234ed8dd
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174636-zytz60yc/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T17:46:37.285832",
+    "startedAt": "2023-02-24T17:46:36.563914",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 357.7491455078125
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_174636-zytz60yc/files/wandb-summary.json b/embeddings/wandb/run-20230224_174636-zytz60yc/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..4ac1ba993956be52f459e677e193218ff2cddc76
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174636-zytz60yc/files/wandb-summary.json
@@ -0,0 +1 @@
+{"_wandb": {"runtime": 3}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_174636-zytz60yc/logs/debug-internal.log b/embeddings/wandb/run-20230224_174636-zytz60yc/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..57c26fd4ca3d3d03a151940b1df5d5b1bccc437c
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174636-zytz60yc/logs/debug-internal.log
@@ -0,0 +1,177 @@
+2023-02-24 17:46:36,576 INFO    StreamThr :4808 [internal.py:wandb_internal():87] W&B internal server running at pid: 4808, started at: 2023-02-24 17:46:36.575913
+2023-02-24 17:46:36,577 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: status
+2023-02-24 17:46:36,579 INFO    WriterThread:4808 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\run-zytz60yc.wandb
+2023-02-24 17:46:36,582 DEBUG   SenderThread:4808 [sender.py:send():336] send: header
+2023-02-24 17:46:36,627 DEBUG   SenderThread:4808 [sender.py:send():336] send: run
+2023-02-24 17:46:37,052 INFO    SenderThread:4808 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files
+2023-02-24 17:46:37,053 INFO    SenderThread:4808 [sender.py:_start_run_threads():1067] run started: zytz60yc with start time 1677260796.575913
+2023-02-24 17:46:37,053 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:46:37,053 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 17:46:37,054 INFO    SenderThread:4808 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:46:37,054 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: check_version
+2023-02-24 17:46:37,264 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 17:46:37,281 DEBUG   HandlerThread:4808 [system_info.py:__init__():31] System info init
+2023-02-24 17:46:37,281 DEBUG   HandlerThread:4808 [system_info.py:__init__():46] System info init done
+2023-02-24 17:46:37,281 INFO    HandlerThread:4808 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 17:46:37,281 INFO    SystemMonitor:4808 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 17:46:37,282 INFO    HandlerThread:4808 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 17:46:37,284 INFO    SystemMonitor:4808 [interfaces.py:start():168] Started cpu
+2023-02-24 17:46:37,285 DEBUG   HandlerThread:4808 [system_info.py:probe():195] Probing system
+2023-02-24 17:46:37,285 INFO    SystemMonitor:4808 [interfaces.py:start():168] Started disk
+2023-02-24 17:46:37,286 INFO    SystemMonitor:4808 [interfaces.py:start():168] Started memory
+2023-02-24 17:46:37,302 INFO    SystemMonitor:4808 [interfaces.py:start():168] Started network
+2023-02-24 17:46:37,303 DEBUG   HandlerThread:4808 [system_info.py:_probe_git():180] Probing git
+2023-02-24 17:46:37,396 DEBUG   HandlerThread:4808 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 17:46:37,396 DEBUG   HandlerThread:4808 [system_info.py:probe():241] Probing system done
+2023-02-24 17:46:37,396 DEBUG   HandlerThread:4808 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T17:46:37.285832', 'startedAt': '2023-02-24T17:46:36.563914', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 357.7491455078125}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 17:46:37,396 INFO    HandlerThread:4808 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 17:46:37,396 INFO    HandlerThread:4808 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 17:46:37,396 DEBUG   HandlerThread:4808 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 17:46:37,397 DEBUG   HandlerThread:4808 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 17:46:37,399 INFO    HandlerThread:4808 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 17:46:37,407 DEBUG   SenderThread:4808 [sender.py:send():336] send: files
+2023-02-24 17:46:37,408 INFO    SenderThread:4808 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 17:46:37,415 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 17:46:37,415 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 17:46:37,581 DEBUG   SenderThread:4808 [sender.py:send():336] send: telemetry
+2023-02-24 17:46:37,922 DEBUG   SenderThread:4808 [sender.py:send():336] send: use_artifact
+2023-02-24 17:46:38,036 INFO    wandb-upload_0:4808 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmph4kbiobowandb\4k889lvt-wandb-metadata.json
+2023-02-24 17:46:38,069 INFO    Thread-17 :4808 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\requirements.txt
+2023-02-24 17:46:38,070 INFO    Thread-17 :4808 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\wandb-summary.json
+2023-02-24 17:46:38,070 INFO    Thread-17 :4808 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\wandb-metadata.json
+2023-02-24 17:46:39,069 INFO    Thread-17 :4808 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\output.log
+2023-02-24 17:46:40,628 DEBUG   SenderThread:4808 [sender.py:send():336] send: exit
+2023-02-24 17:46:40,628 INFO    SenderThread:4808 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 17:46:40,628 INFO    SenderThread:4808 [sender.py:send_exit():561] handling runtime: 3
+2023-02-24 17:46:40,629 INFO    SenderThread:4808 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:46:40,629 INFO    SenderThread:4808 [sender.py:send_exit():567] send defer
+2023-02-24 17:46:40,629 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:40,629 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 17:46:40,630 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:40,630 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 17:46:40,630 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 1
+2023-02-24 17:46:40,630 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:40,630 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 17:46:40,630 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:40,630 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 17:46:40,631 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 2
+2023-02-24 17:46:40,631 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:40,631 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 17:46:40,631 INFO    HandlerThread:4808 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 17:46:40,632 DEBUG   SystemMonitor:4808 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 17:46:40,632 INFO    HandlerThread:4808 [interfaces.py:finish():175] Joined cpu
+2023-02-24 17:46:40,632 DEBUG   SystemMonitor:4808 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 17:46:40,633 INFO    HandlerThread:4808 [interfaces.py:finish():175] Joined disk
+2023-02-24 17:46:40,633 DEBUG   SystemMonitor:4808 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 17:46:40,633 INFO    HandlerThread:4808 [interfaces.py:finish():175] Joined memory
+2023-02-24 17:46:40,633 INFO    HandlerThread:4808 [interfaces.py:finish():175] Joined network
+2023-02-24 17:46:40,634 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:40,634 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 17:46:40,634 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 3
+2023-02-24 17:46:40,634 DEBUG   SenderThread:4808 [sender.py:send():336] send: stats
+2023-02-24 17:46:40,634 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:40,634 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 17:46:40,635 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:40,635 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 17:46:40,635 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 4
+2023-02-24 17:46:40,635 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:40,635 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 17:46:40,635 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:40,635 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 17:46:40,635 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 5
+2023-02-24 17:46:40,636 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:40,636 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 17:46:40,636 DEBUG   SenderThread:4808 [sender.py:send():336] send: summary
+2023-02-24 17:46:40,637 INFO    SenderThread:4808 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:46:40,637 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:40,637 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 17:46:40,637 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 6
+2023-02-24 17:46:40,637 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:40,637 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 17:46:40,638 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:40,638 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 17:46:40,641 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:46:40,853 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 7
+2023-02-24 17:46:40,854 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:40,854 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 17:46:40,854 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:40,854 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 17:46:41,098 INFO    Thread-17 :4808 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\wandb-summary.json
+2023-02-24 17:46:41,098 INFO    Thread-17 :4808 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\output.log
+2023-02-24 17:46:41,099 INFO    Thread-17 :4808 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\config.yaml
+2023-02-24 17:46:41,639 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:46:42,124 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 8
+2023-02-24 17:46:42,124 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:46:42,124 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:42,125 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 17:46:42,125 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:42,125 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 17:46:42,139 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 9
+2023-02-24 17:46:42,140 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:42,140 DEBUG   SenderThread:4808 [sender.py:send():336] send: artifact
+2023-02-24 17:46:42,140 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 17:46:42,651 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:46:42,978 INFO    SenderThread:4808 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'digest': 'dbe34f6e8b990dacc5d7c5e1ab1d02a4', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v0'}
+2023-02-24 17:46:42,978 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:42,978 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 17:46:42,978 INFO    SenderThread:4808 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 17:46:43,117 INFO    SenderThread:4808 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\output.log
+2023-02-24 17:46:43,118 INFO    SenderThread:4808 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files
+2023-02-24 17:46:43,118 INFO    SenderThread:4808 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\config.yaml config.yaml
+2023-02-24 17:46:43,118 INFO    SenderThread:4808 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\output.log output.log
+2023-02-24 17:46:43,121 INFO    SenderThread:4808 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\requirements.txt requirements.txt
+2023-02-24 17:46:43,124 INFO    SenderThread:4808 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 17:46:43,125 INFO    SenderThread:4808 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\wandb-summary.json wandb-summary.json
+2023-02-24 17:46:43,128 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 10
+2023-02-24 17:46:43,128 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:46:43,129 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:43,129 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 17:46:43,133 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:43,133 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 17:46:43,133 INFO    SenderThread:4808 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:46:43,645 INFO    wandb-upload_3:4808 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\wandb-summary.json
+2023-02-24 17:46:43,663 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:46:43,664 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:46:43,724 INFO    wandb-upload_0:4808 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\config.yaml
+2023-02-24 17:46:43,749 INFO    wandb-upload_2:4808 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\requirements.txt
+2023-02-24 17:46:43,762 INFO    wandb-upload_1:4808 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\files\output.log
+2023-02-24 17:46:43,974 INFO    Thread-16 :4808 [sender.py:transition_state():587] send defer: 11
+2023-02-24 17:46:43,974 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:43,974 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 17:46:43,974 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:43,974 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 17:46:43,974 INFO    SenderThread:4808 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 17:46:43,974 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 12
+2023-02-24 17:46:43,974 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:43,974 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 17:46:43,975 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:43,975 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 17:46:44,127 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 13
+2023-02-24 17:46:44,127 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:44,127 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 17:46:44,128 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:44,128 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 17:46:44,128 INFO    SenderThread:4808 [sender.py:transition_state():587] send defer: 14
+2023-02-24 17:46:44,128 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:46:44,128 INFO    HandlerThread:4808 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 17:46:44,129 DEBUG   SenderThread:4808 [sender.py:send():336] send: final
+2023-02-24 17:46:44,129 DEBUG   SenderThread:4808 [sender.py:send():336] send: footer
+2023-02-24 17:46:44,129 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:46:44,129 INFO    SenderThread:4808 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 17:46:44,130 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:46:44,130 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:46:44,130 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 17:46:44,130 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 17:46:44,130 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 17:46:44,131 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:46:44,131 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:46:44,131 DEBUG   SenderThread:4808 [sender.py:send_request():363] send_request: server_info
+2023-02-24 17:46:44,292 INFO    MainThread:4808 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 17:46:44,292 INFO    MainThread:4808 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 17:46:44,293 INFO    MainThread:4808 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 17:46:44,293 DEBUG   HandlerThread:4808 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 17:46:44,293 INFO    HandlerThread:4808 [handler.py:finish():841] shutting down handler
+2023-02-24 17:46:45,140 INFO    WriterThread:4808 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\run-zytz60yc.wandb
+2023-02-24 17:46:45,297 INFO    SenderThread:4808 [sender.py:finish():1493] shutting down sender
+2023-02-24 17:46:45,297 INFO    SenderThread:4808 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:46:45,298 INFO    SenderThread:4808 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_174636-zytz60yc/logs/debug.log b/embeddings/wandb/run-20230224_174636-zytz60yc/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..158b654c1710be7b52be8df4091f6c79b99e4f2f
--- /dev/null
+++ b/embeddings/wandb/run-20230224_174636-zytz60yc/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 17:46:36,566 INFO    MainThread:2956 [wandb_setup.py:_flush():68] Configure stats pid to 2956
+2023-02-24 17:46:36,566 INFO    MainThread:2956 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 17:46:36,566 INFO    MainThread:2956 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 17:46:36,566 INFO    MainThread:2956 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 17:46:36,567 INFO    MainThread:2956 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 17:46:36,567 INFO    MainThread:2956 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\logs\debug.log
+2023-02-24 17:46:36,568 INFO    MainThread:2956 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_174636-zytz60yc\logs\debug-internal.log
+2023-02-24 17:46:36,568 INFO    MainThread:2956 [wandb_init.py:init():532] calling init triggers
+2023-02-24 17:46:36,568 INFO    MainThread:2956 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 17:46:36,568 INFO    MainThread:2956 [wandb_init.py:init():588] starting backend
+2023-02-24 17:46:36,568 INFO    MainThread:2956 [wandb_init.py:init():592] setting up manager
+2023-02-24 17:46:36,571 INFO    MainThread:2956 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 17:46:36,575 INFO    MainThread:2956 [wandb_init.py:init():599] backend started and connected
+2023-02-24 17:46:36,577 INFO    MainThread:2956 [wandb_init.py:init():687] updated telemetry
+2023-02-24 17:46:36,626 INFO    MainThread:2956 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 17:46:37,052 INFO    MainThread:2956 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 17:46:37,257 INFO    MainThread:2956 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 17:46:37,257 INFO    MainThread:2956 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 17:46:37,415 INFO    MainThread:2956 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 17:46:37,416 INFO    MainThread:2956 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 17:46:37,416 INFO    MainThread:2956 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 17:46:37,416 INFO    MainThread:2956 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 17:46:37,416 INFO    MainThread:2956 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 17:46:45,364 WARNING MsgRouterThr:2956 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_174636-zytz60yc/run-zytz60yc.wandb b/embeddings/wandb/run-20230224_174636-zytz60yc/run-zytz60yc.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..2dbe29a03e8e736996275ba125872f31cd097df2
Binary files /dev/null and b/embeddings/wandb/run-20230224_174636-zytz60yc/run-zytz60yc.wandb differ
diff --git a/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/config.yaml b/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..108c3f92ba6125a068f0f34303e84b80ec56c12d
--- /dev/null
+++ b/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/config.yaml
@@ -0,0 +1,39 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677261299.268617
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/output.log b/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..a69390906c5707b3c0abd13cae1e03b8c9fdbdc5
--- /dev/null
+++ b/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/output.log
@@ -0,0 +1,24 @@
+
+INFO:heterogeneous-GAT-model:[1] Loss: 0.0003524474799633026
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 209, in <module>
+    train_acc, train_f1, train_loss, train_table = test(train_loader)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 121, in test
+    table.add_data(wandb.Html(plotly.io.to_html(create_graph_vis(data))), data.label.item(), pred.item())
+ValueError: only one element tensors can be converted to Python scalars
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/requirements.txt b/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/wandb-metadata.json b/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..5f2fec5dbe3cded574cd4340441b274d2ffca8fc
--- /dev/null
+++ b/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-24T17:54:59.781346",
+    "startedAt": "2023-02-24T17:54:59.256617",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 357.75207138061523
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/wandb-summary.json b/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..4ac1ba993956be52f459e677e193218ff2cddc76
--- /dev/null
+++ b/embeddings/wandb/run-20230224_175459-p4h8fzyu/files/wandb-summary.json
@@ -0,0 +1 @@
+{"_wandb": {"runtime": 3}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230224_175459-p4h8fzyu/logs/debug-internal.log b/embeddings/wandb/run-20230224_175459-p4h8fzyu/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..3e2b871cdf5137c369ad84e9c4828dda03d781fa
--- /dev/null
+++ b/embeddings/wandb/run-20230224_175459-p4h8fzyu/logs/debug-internal.log
@@ -0,0 +1,174 @@
+2023-02-24 17:54:59,269 INFO    StreamThr :8756 [internal.py:wandb_internal():87] W&B internal server running at pid: 8756, started at: 2023-02-24 17:54:59.268617
+2023-02-24 17:54:59,271 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: status
+2023-02-24 17:54:59,272 INFO    WriterThread:8756 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\run-p4h8fzyu.wandb
+2023-02-24 17:54:59,276 DEBUG   SenderThread:8756 [sender.py:send():336] send: header
+2023-02-24 17:54:59,322 DEBUG   SenderThread:8756 [sender.py:send():336] send: run
+2023-02-24 17:54:59,686 INFO    SenderThread:8756 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files
+2023-02-24 17:54:59,687 INFO    SenderThread:8756 [sender.py:_start_run_threads():1067] run started: p4h8fzyu with start time 1677261299.268617
+2023-02-24 17:54:59,687 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: summary_record
+2023-02-24 17:54:59,687 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: check_version
+2023-02-24 17:54:59,688 INFO    SenderThread:8756 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:54:59,688 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: check_version
+2023-02-24 17:54:59,759 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: run_start
+2023-02-24 17:54:59,777 DEBUG   HandlerThread:8756 [system_info.py:__init__():31] System info init
+2023-02-24 17:54:59,777 DEBUG   HandlerThread:8756 [system_info.py:__init__():46] System info init done
+2023-02-24 17:54:59,777 INFO    HandlerThread:8756 [system_monitor.py:start():151] Starting system monitor
+2023-02-24 17:54:59,778 INFO    SystemMonitor:8756 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-24 17:54:59,778 INFO    HandlerThread:8756 [system_monitor.py:probe():172] Collecting system info
+2023-02-24 17:54:59,781 INFO    SystemMonitor:8756 [interfaces.py:start():168] Started cpu
+2023-02-24 17:54:59,781 DEBUG   HandlerThread:8756 [system_info.py:probe():195] Probing system
+2023-02-24 17:54:59,781 INFO    SystemMonitor:8756 [interfaces.py:start():168] Started disk
+2023-02-24 17:54:59,782 INFO    SystemMonitor:8756 [interfaces.py:start():168] Started memory
+2023-02-24 17:54:59,798 INFO    SystemMonitor:8756 [interfaces.py:start():168] Started network
+2023-02-24 17:54:59,800 DEBUG   HandlerThread:8756 [system_info.py:_probe_git():180] Probing git
+2023-02-24 17:54:59,893 DEBUG   HandlerThread:8756 [system_info.py:_probe_git():188] Probing git done
+2023-02-24 17:54:59,893 DEBUG   HandlerThread:8756 [system_info.py:probe():241] Probing system done
+2023-02-24 17:54:59,893 DEBUG   HandlerThread:8756 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-24T17:54:59.781346', 'startedAt': '2023-02-24T17:54:59.256617', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 357.75207138061523}, 'memory': {'total': 31.89160919189453}}
+2023-02-24 17:54:59,893 INFO    HandlerThread:8756 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-24 17:54:59,893 INFO    HandlerThread:8756 [system_monitor.py:probe():185] Publishing system info
+2023-02-24 17:54:59,894 DEBUG   HandlerThread:8756 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-24 17:54:59,895 DEBUG   HandlerThread:8756 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-24 17:54:59,897 INFO    HandlerThread:8756 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-24 17:54:59,906 DEBUG   SenderThread:8756 [sender.py:send():336] send: files
+2023-02-24 17:54:59,906 INFO    SenderThread:8756 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-24 17:54:59,914 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-24 17:54:59,915 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: stop_status
+2023-02-24 17:55:00,075 DEBUG   SenderThread:8756 [sender.py:send():336] send: telemetry
+2023-02-24 17:55:00,452 INFO    wandb-upload_0:8756 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpnww_a46vwandb\fmwupw8q-wandb-metadata.json
+2023-02-24 17:55:00,537 DEBUG   SenderThread:8756 [sender.py:send():336] send: use_artifact
+2023-02-24 17:55:00,702 INFO    Thread-17 :8756 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\wandb-summary.json
+2023-02-24 17:55:00,703 INFO    Thread-17 :8756 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\requirements.txt
+2023-02-24 17:55:00,703 INFO    Thread-17 :8756 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\wandb-metadata.json
+2023-02-24 17:55:01,715 INFO    Thread-17 :8756 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\output.log
+2023-02-24 17:55:03,469 DEBUG   SenderThread:8756 [sender.py:send():336] send: exit
+2023-02-24 17:55:03,469 INFO    SenderThread:8756 [sender.py:send_exit():559] handling exit code: 1
+2023-02-24 17:55:03,469 INFO    SenderThread:8756 [sender.py:send_exit():561] handling runtime: 3
+2023-02-24 17:55:03,469 INFO    SenderThread:8756 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:55:03,470 INFO    SenderThread:8756 [sender.py:send_exit():567] send defer
+2023-02-24 17:55:03,470 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:03,470 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-24 17:55:03,470 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:03,470 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-24 17:55:03,470 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 1
+2023-02-24 17:55:03,471 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:03,471 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-24 17:55:03,471 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:03,471 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-24 17:55:03,471 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 2
+2023-02-24 17:55:03,471 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:03,471 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-24 17:55:03,471 INFO    HandlerThread:8756 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-24 17:55:03,472 DEBUG   SystemMonitor:8756 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-24 17:55:03,473 INFO    HandlerThread:8756 [interfaces.py:finish():175] Joined cpu
+2023-02-24 17:55:03,473 DEBUG   SystemMonitor:8756 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-24 17:55:03,473 INFO    HandlerThread:8756 [interfaces.py:finish():175] Joined disk
+2023-02-24 17:55:03,473 DEBUG   SystemMonitor:8756 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-24 17:55:03,473 INFO    HandlerThread:8756 [interfaces.py:finish():175] Joined memory
+2023-02-24 17:55:03,474 INFO    HandlerThread:8756 [interfaces.py:finish():175] Joined network
+2023-02-24 17:55:03,474 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:03,474 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-24 17:55:03,474 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 3
+2023-02-24 17:55:03,475 DEBUG   SenderThread:8756 [sender.py:send():336] send: stats
+2023-02-24 17:55:03,475 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:03,475 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-24 17:55:03,475 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:03,475 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-24 17:55:03,475 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 4
+2023-02-24 17:55:03,476 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:03,476 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-24 17:55:03,476 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:03,476 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-24 17:55:03,476 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 5
+2023-02-24 17:55:03,476 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:03,476 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-24 17:55:03,477 DEBUG   SenderThread:8756 [sender.py:send():336] send: summary
+2023-02-24 17:55:03,477 INFO    SenderThread:8756 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-24 17:55:03,477 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:03,477 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-24 17:55:03,477 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 6
+2023-02-24 17:55:03,478 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:03,478 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-24 17:55:03,478 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:03,478 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-24 17:55:03,482 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: status_report
+2023-02-24 17:55:03,658 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 7
+2023-02-24 17:55:03,659 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:03,659 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-24 17:55:03,659 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:03,659 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-24 17:55:03,728 INFO    Thread-17 :8756 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\output.log
+2023-02-24 17:55:03,729 INFO    Thread-17 :8756 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\config.yaml
+2023-02-24 17:55:03,729 INFO    Thread-17 :8756 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\wandb-summary.json
+2023-02-24 17:55:04,471 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:55:04,738 INFO    Thread-17 :8756 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\output.log
+2023-02-24 17:55:05,001 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 8
+2023-02-24 17:55:05,002 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:55:05,002 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:05,002 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-24 17:55:05,003 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:05,003 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-24 17:55:05,016 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 9
+2023-02-24 17:55:05,017 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:05,017 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-24 17:55:05,017 DEBUG   SenderThread:8756 [sender.py:send():336] send: artifact
+2023-02-24 17:55:05,483 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:55:05,750 INFO    Thread-17 :8756 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\output.log
+2023-02-24 17:55:06,079 INFO    SenderThread:8756 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'digest': 'dbe34f6e8b990dacc5d7c5e1ab1d02a4', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v0'}
+2023-02-24 17:55:06,079 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:06,079 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-24 17:55:06,079 INFO    SenderThread:8756 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-24 17:55:06,760 INFO    SenderThread:8756 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files
+2023-02-24 17:55:06,761 INFO    SenderThread:8756 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\config.yaml config.yaml
+2023-02-24 17:55:06,761 INFO    SenderThread:8756 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\output.log output.log
+2023-02-24 17:55:06,764 INFO    SenderThread:8756 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\requirements.txt requirements.txt
+2023-02-24 17:55:06,767 INFO    SenderThread:8756 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\wandb-metadata.json wandb-metadata.json
+2023-02-24 17:55:06,768 INFO    SenderThread:8756 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\wandb-summary.json wandb-summary.json
+2023-02-24 17:55:06,771 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 10
+2023-02-24 17:55:06,771 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:55:06,772 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:06,772 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-24 17:55:06,775 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:06,777 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-24 17:55:06,777 INFO    SenderThread:8756 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:55:07,274 INFO    wandb-upload_0:8756 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\config.yaml
+2023-02-24 17:55:07,320 INFO    wandb-upload_2:8756 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\requirements.txt
+2023-02-24 17:55:07,362 INFO    wandb-upload_1:8756 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\output.log
+2023-02-24 17:55:07,435 INFO    wandb-upload_3:8756 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\files\wandb-summary.json
+2023-02-24 17:55:07,646 INFO    Thread-16 :8756 [sender.py:transition_state():587] send defer: 11
+2023-02-24 17:55:07,646 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:07,646 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-24 17:55:07,646 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:07,646 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-24 17:55:07,646 INFO    SenderThread:8756 [file_pusher.py:join():167] waiting for file pusher
+2023-02-24 17:55:07,646 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 12
+2023-02-24 17:55:07,646 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:07,646 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-24 17:55:07,647 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:07,647 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-24 17:55:07,780 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 13
+2023-02-24 17:55:07,780 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:07,780 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-24 17:55:07,781 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:07,781 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-24 17:55:07,781 INFO    SenderThread:8756 [sender.py:transition_state():587] send defer: 14
+2023-02-24 17:55:07,781 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: defer
+2023-02-24 17:55:07,781 INFO    HandlerThread:8756 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-24 17:55:07,782 DEBUG   SenderThread:8756 [sender.py:send():336] send: final
+2023-02-24 17:55:07,782 DEBUG   SenderThread:8756 [sender.py:send():336] send: footer
+2023-02-24 17:55:07,782 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: defer
+2023-02-24 17:55:07,782 INFO    SenderThread:8756 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-24 17:55:07,783 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-24 17:55:07,783 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: server_info
+2023-02-24 17:55:07,783 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-24 17:55:07,783 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-24 17:55:07,784 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: poll_exit
+2023-02-24 17:55:07,784 DEBUG   SenderThread:8756 [sender.py:send_request():363] send_request: server_info
+2023-02-24 17:55:07,963 INFO    MainThread:8756 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-24 17:55:07,963 INFO    MainThread:8756 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-24 17:55:07,963 INFO    MainThread:8756 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-24 17:55:07,964 DEBUG   HandlerThread:8756 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-24 17:55:07,964 INFO    HandlerThread:8756 [handler.py:finish():841] shutting down handler
+2023-02-24 17:55:08,795 INFO    WriterThread:8756 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\run-p4h8fzyu.wandb
+2023-02-24 17:55:08,966 INFO    SenderThread:8756 [sender.py:finish():1493] shutting down sender
+2023-02-24 17:55:08,966 INFO    SenderThread:8756 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-24 17:55:08,967 INFO    SenderThread:8756 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230224_175459-p4h8fzyu/logs/debug.log b/embeddings/wandb/run-20230224_175459-p4h8fzyu/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..3e3fdd3879b8b4b463b6207a9d24e7a99bc31e9a
--- /dev/null
+++ b/embeddings/wandb/run-20230224_175459-p4h8fzyu/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-24 17:54:59,259 INFO    MainThread:15412 [wandb_setup.py:_flush():68] Configure stats pid to 15412
+2023-02-24 17:54:59,259 INFO    MainThread:15412 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-24 17:54:59,260 INFO    MainThread:15412 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-24 17:54:59,260 INFO    MainThread:15412 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-24 17:54:59,260 INFO    MainThread:15412 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-24 17:54:59,261 INFO    MainThread:15412 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\logs\debug.log
+2023-02-24 17:54:59,261 INFO    MainThread:15412 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230224_175459-p4h8fzyu\logs\debug-internal.log
+2023-02-24 17:54:59,261 INFO    MainThread:15412 [wandb_init.py:init():532] calling init triggers
+2023-02-24 17:54:59,261 INFO    MainThread:15412 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-24 17:54:59,261 INFO    MainThread:15412 [wandb_init.py:init():588] starting backend
+2023-02-24 17:54:59,261 INFO    MainThread:15412 [wandb_init.py:init():592] setting up manager
+2023-02-24 17:54:59,264 INFO    MainThread:15412 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-24 17:54:59,268 INFO    MainThread:15412 [wandb_init.py:init():599] backend started and connected
+2023-02-24 17:54:59,270 INFO    MainThread:15412 [wandb_init.py:init():687] updated telemetry
+2023-02-24 17:54:59,321 INFO    MainThread:15412 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-24 17:54:59,686 INFO    MainThread:15412 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-24 17:54:59,752 INFO    MainThread:15412 [wandb_run.py:_on_init():2143] got version response 
+2023-02-24 17:54:59,753 INFO    MainThread:15412 [wandb_init.py:init():775] starting run threads in backend
+2023-02-24 17:54:59,915 INFO    MainThread:15412 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-24 17:54:59,915 INFO    MainThread:15412 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-24 17:54:59,915 INFO    MainThread:15412 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-24 17:54:59,915 INFO    MainThread:15412 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-24 17:54:59,916 INFO    MainThread:15412 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-24 17:55:09,033 WARNING MsgRouterThr:15412 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230224_175459-p4h8fzyu/run-p4h8fzyu.wandb b/embeddings/wandb/run-20230224_175459-p4h8fzyu/run-p4h8fzyu.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..f722c93d6faf65ea0864cd006f951588efc26aee
Binary files /dev/null and b/embeddings/wandb/run-20230224_175459-p4h8fzyu/run-p4h8fzyu.wandb differ
diff --git a/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/config.yaml b/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d7e61e97e4235907f1bbcb5b0d4f53f176765f2c
--- /dev/null
+++ b/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/config.yaml
@@ -0,0 +1,39 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677403944.574508
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/output.log b/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..0afe4ae5aaf3681cb3b8499029d13b0f5949764c
--- /dev/null
+++ b/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/output.log
@@ -0,0 +1,39 @@
+
+INFO:heterogeneous-GAT-model:[1] Loss: 0.0003322700262069702
+INFO:heterogeneous-GAT-model:[6] Loss: 0.0012158751487731934
+INFO:heterogeneous-GAT-model:[11] Loss: 0.0012265268117189407
+INFO:heterogeneous-GAT-model:[16] Loss: 0.0012196238040924072
+INFO:heterogeneous-GAT-model:[21] Loss: 0.0011583716422319413
+INFO:heterogeneous-GAT-model:[26] Loss: 0.0010334079563617707
+INFO:heterogeneous-GAT-model:[31] Loss: 0.0009083672314882279
+INFO:heterogeneous-GAT-model:[36] Loss: 0.0011269666999578476
+INFO:heterogeneous-GAT-model:[41] Loss: 0.001064434990286827
+INFO:heterogeneous-GAT-model:[46] Loss: 0.0010646058320999145
+INFO:heterogeneous-GAT-model:[51] Loss: 0.001189259484410286
+INFO:heterogeneous-GAT-model:[56] Loss: 0.0011581224948167801
+INFO:heterogeneous-GAT-model:[61] Loss: 0.0014081674367189408
+INFO:heterogeneous-GAT-model:[66] Loss: 0.0012205281704664231
+INFO:heterogeneous-GAT-model:[71] Loss: 0.0010644963532686234
+INFO:heterogeneous-GAT-model:[76] Loss: 0.001126927450299263
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1]])
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 210, in <module>
+    train_acc, train_f1, train_loss, train_table = test(train_loader)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\embeddings\hetero_GAT.py", line 122, in test
+    table.add_data(wandb.Html(plotly.io.to_html(create_graph_vis(data))), data.label.item(), pred.item())
+ValueError: only one element tensors can be converted to Python scalars
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/requirements.txt b/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/wandb-metadata.json b/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..e91e4751f4e38b7641c0d99ca796f1d313e0d2dc
--- /dev/null
+++ b/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-26T09:32:25.191886",
+    "startedAt": "2023-02-26T09:32:24.559513",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 367.52984619140625
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/wandb-summary.json b/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..24158601fec840e0f3d3b222a9748c490d4223fc
--- /dev/null
+++ b/embeddings/wandb/run-20230226_093224-ehqe5vl7/files/wandb-summary.json
@@ -0,0 +1 @@
+{"_wandb": {"runtime": 45}}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230226_093224-ehqe5vl7/logs/debug-internal.log b/embeddings/wandb/run-20230226_093224-ehqe5vl7/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..b655c32b44ba0794df05e43914ea0e44edde3b87
--- /dev/null
+++ b/embeddings/wandb/run-20230226_093224-ehqe5vl7/logs/debug-internal.log
@@ -0,0 +1,199 @@
+2023-02-26 09:32:24,573 INFO    StreamThr :14076 [internal.py:wandb_internal():87] W&B internal server running at pid: 14076, started at: 2023-02-26 09:32:24.573514
+2023-02-26 09:32:24,575 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: status
+2023-02-26 09:32:24,576 INFO    WriterThread:14076 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\run-ehqe5vl7.wandb
+2023-02-26 09:32:24,581 DEBUG   SenderThread:14076 [sender.py:send():336] send: header
+2023-02-26 09:32:24,628 DEBUG   SenderThread:14076 [sender.py:send():336] send: run
+2023-02-26 09:32:25,058 INFO    SenderThread:14076 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files
+2023-02-26 09:32:25,058 INFO    SenderThread:14076 [sender.py:_start_run_threads():1067] run started: ehqe5vl7 with start time 1677403944.574508
+2023-02-26 09:32:25,058 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: summary_record
+2023-02-26 09:32:25,058 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: check_version
+2023-02-26 09:32:25,059 INFO    SenderThread:14076 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-26 09:32:25,059 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: check_version
+2023-02-26 09:32:25,169 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: run_start
+2023-02-26 09:32:25,187 DEBUG   HandlerThread:14076 [system_info.py:__init__():31] System info init
+2023-02-26 09:32:25,187 DEBUG   HandlerThread:14076 [system_info.py:__init__():46] System info init done
+2023-02-26 09:32:25,187 INFO    HandlerThread:14076 [system_monitor.py:start():151] Starting system monitor
+2023-02-26 09:32:25,188 INFO    SystemMonitor:14076 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-26 09:32:25,188 INFO    HandlerThread:14076 [system_monitor.py:probe():172] Collecting system info
+2023-02-26 09:32:25,191 INFO    SystemMonitor:14076 [interfaces.py:start():168] Started cpu
+2023-02-26 09:32:25,191 DEBUG   HandlerThread:14076 [system_info.py:probe():195] Probing system
+2023-02-26 09:32:25,191 INFO    SystemMonitor:14076 [interfaces.py:start():168] Started disk
+2023-02-26 09:32:25,192 INFO    SystemMonitor:14076 [interfaces.py:start():168] Started memory
+2023-02-26 09:32:25,193 INFO    SystemMonitor:14076 [interfaces.py:start():168] Started network
+2023-02-26 09:32:25,209 DEBUG   HandlerThread:14076 [system_info.py:_probe_git():180] Probing git
+2023-02-26 09:32:25,319 DEBUG   HandlerThread:14076 [system_info.py:_probe_git():188] Probing git done
+2023-02-26 09:32:25,319 DEBUG   HandlerThread:14076 [system_info.py:probe():241] Probing system done
+2023-02-26 09:32:25,320 DEBUG   HandlerThread:14076 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-26T09:32:25.191886', 'startedAt': '2023-02-26T09:32:24.559513', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 367.52984619140625}, 'memory': {'total': 31.89160919189453}}
+2023-02-26 09:32:25,320 INFO    HandlerThread:14076 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-26 09:32:25,320 INFO    HandlerThread:14076 [system_monitor.py:probe():185] Publishing system info
+2023-02-26 09:32:25,320 DEBUG   HandlerThread:14076 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-26 09:32:25,321 DEBUG   HandlerThread:14076 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-26 09:32:25,323 INFO    HandlerThread:14076 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-26 09:32:25,351 DEBUG   SenderThread:14076 [sender.py:send():336] send: files
+2023-02-26 09:32:25,351 INFO    SenderThread:14076 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-26 09:32:25,362 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-26 09:32:25,362 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: stop_status
+2023-02-26 09:32:25,544 DEBUG   SenderThread:14076 [sender.py:send():336] send: telemetry
+2023-02-26 09:32:26,007 INFO    wandb-upload_0:14076 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmpraya0yzmwandb\lbdpgfs7-wandb-metadata.json
+2023-02-26 09:32:26,068 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\wandb-summary.json
+2023-02-26 09:32:26,068 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\requirements.txt
+2023-02-26 09:32:26,068 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\wandb-metadata.json
+2023-02-26 09:32:27,228 DEBUG   SenderThread:14076 [sender.py:send():336] send: use_artifact
+2023-02-26 09:32:30,270 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 09:32:35,334 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 09:32:40,339 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 09:32:40,370 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 09:32:40,370 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 09:32:43,144 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:32:45,160 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:32:45,362 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 09:32:45,408 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 09:32:47,164 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:32:49,170 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:32:50,435 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 09:32:50,545 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 09:32:51,173 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:32:53,175 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:32:55,179 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:32:55,445 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 09:32:55,968 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 09:32:57,182 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\config.yaml
+2023-02-26 09:32:57,182 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:32:59,198 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:33:00,467 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 09:33:01,202 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:33:01,919 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 09:33:03,230 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:33:05,233 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:33:05,527 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 09:33:07,249 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:33:07,513 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 09:33:09,261 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:33:10,376 DEBUG   SenderThread:14076 [sender.py:send():336] send: exit
+2023-02-26 09:33:10,377 INFO    SenderThread:14076 [sender.py:send_exit():559] handling exit code: 1
+2023-02-26 09:33:10,377 INFO    SenderThread:14076 [sender.py:send_exit():561] handling runtime: 45
+2023-02-26 09:33:10,379 INFO    SenderThread:14076 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-26 09:33:10,379 INFO    SenderThread:14076 [sender.py:send_exit():567] send defer
+2023-02-26 09:33:10,380 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:10,380 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 0
+2023-02-26 09:33:10,380 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:10,380 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 0
+2023-02-26 09:33:10,380 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 1
+2023-02-26 09:33:10,381 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:10,381 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 1
+2023-02-26 09:33:10,381 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:10,381 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 1
+2023-02-26 09:33:10,381 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 2
+2023-02-26 09:33:10,381 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:10,381 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 2
+2023-02-26 09:33:10,382 INFO    HandlerThread:14076 [system_monitor.py:finish():161] Stopping system monitor
+2023-02-26 09:33:10,382 DEBUG   SystemMonitor:14076 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-26 09:33:10,382 DEBUG   SystemMonitor:14076 [system_monitor.py:_start():137] Finished system metrics aggregation loop
+2023-02-26 09:33:10,383 INFO    HandlerThread:14076 [interfaces.py:finish():175] Joined cpu
+2023-02-26 09:33:10,383 DEBUG   SystemMonitor:14076 [system_monitor.py:_start():141] Publishing last batch of metrics
+2023-02-26 09:33:10,383 INFO    HandlerThread:14076 [interfaces.py:finish():175] Joined disk
+2023-02-26 09:33:10,383 INFO    HandlerThread:14076 [interfaces.py:finish():175] Joined memory
+2023-02-26 09:33:10,383 INFO    HandlerThread:14076 [interfaces.py:finish():175] Joined network
+2023-02-26 09:33:10,384 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:10,384 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 2
+2023-02-26 09:33:10,384 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 3
+2023-02-26 09:33:10,384 DEBUG   SenderThread:14076 [sender.py:send():336] send: stats
+2023-02-26 09:33:10,384 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:10,385 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 3
+2023-02-26 09:33:10,385 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:10,385 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 3
+2023-02-26 09:33:10,385 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 4
+2023-02-26 09:33:10,385 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:10,385 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 4
+2023-02-26 09:33:10,386 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:10,386 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 4
+2023-02-26 09:33:10,386 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 5
+2023-02-26 09:33:10,386 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:10,386 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 5
+2023-02-26 09:33:10,386 DEBUG   SenderThread:14076 [sender.py:send():336] send: summary
+2023-02-26 09:33:10,387 INFO    SenderThread:14076 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-26 09:33:10,387 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:10,387 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 5
+2023-02-26 09:33:10,387 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 6
+2023-02-26 09:33:10,387 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:10,387 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 6
+2023-02-26 09:33:10,388 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:10,388 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 6
+2023-02-26 09:33:10,388 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 7
+2023-02-26 09:33:10,388 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 09:33:10,388 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:10,388 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 7
+2023-02-26 09:33:10,389 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:10,389 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 7
+2023-02-26 09:33:11,271 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\wandb-summary.json
+2023-02-26 09:33:11,271 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:33:11,381 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-26 09:33:12,539 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 8
+2023-02-26 09:33:12,539 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: poll_exit
+2023-02-26 09:33:12,539 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:12,540 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 8
+2023-02-26 09:33:12,540 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:12,540 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 8
+2023-02-26 09:33:12,558 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 9
+2023-02-26 09:33:12,558 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:12,558 DEBUG   SenderThread:14076 [sender.py:send():336] send: artifact
+2023-02-26 09:33:12,559 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 9
+2023-02-26 09:33:13,286 INFO    Thread-17 :14076 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:33:13,659 INFO    SenderThread:14076 [sender.py:send_artifact():1417] sent artifact job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py - {'id': 'QXJ0aWZhY3Q6MzgwMzY3ODUz', 'digest': 'dbe34f6e8b990dacc5d7c5e1ab1d02a4', 'state': 'COMMITTED', 'aliases': [{'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'latest'}, {'artifactCollectionName': 'job-https___git.soton.ac.uk_lhb1g20_graph4stackoverflow.git_embeddings_hetero_GAT.py', 'alias': 'v0'}], 'artifactSequence': {'id': 'QXJ0aWZhY3RDb2xsZWN0aW9uOjU0NTg3MzU0', 'latestArtifact': {'id': 'QXJ0aWZhY3Q6MzgwMzk2OTM0', 'versionIndex': 2}}, 'version': 'v0'}
+2023-02-26 09:33:13,659 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:13,659 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 9
+2023-02-26 09:33:13,659 INFO    SenderThread:14076 [dir_watcher.py:finish():362] shutting down directory watcher
+2023-02-26 09:33:14,303 INFO    SenderThread:14076 [dir_watcher.py:finish():392] scan: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files
+2023-02-26 09:33:14,304 INFO    SenderThread:14076 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\config.yaml config.yaml
+2023-02-26 09:33:14,304 INFO    SenderThread:14076 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log output.log
+2023-02-26 09:33:14,307 INFO    SenderThread:14076 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\requirements.txt requirements.txt
+2023-02-26 09:33:14,308 INFO    SenderThread:14076 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\wandb-metadata.json wandb-metadata.json
+2023-02-26 09:33:14,310 INFO    SenderThread:14076 [dir_watcher.py:finish():406] scan save: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\wandb-summary.json wandb-summary.json
+2023-02-26 09:33:14,313 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 10
+2023-02-26 09:33:14,314 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:14,314 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 10
+2023-02-26 09:33:14,315 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:14,319 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 10
+2023-02-26 09:33:14,319 INFO    SenderThread:14076 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-26 09:33:15,009 INFO    wandb-upload_0:14076 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\config.yaml
+2023-02-26 09:33:15,302 INFO    wandb-upload_2:14076 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\requirements.txt
+2023-02-26 09:33:15,349 INFO    wandb-upload_1:14076 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\output.log
+2023-02-26 09:33:15,559 INFO    wandb-upload_3:14076 [upload_job.py:push():138] Uploaded file C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\files\wandb-summary.json
+2023-02-26 09:33:15,772 INFO    Thread-16 :14076 [sender.py:transition_state():587] send defer: 11
+2023-02-26 09:33:15,772 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:15,772 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 11
+2023-02-26 09:33:15,772 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:15,773 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 11
+2023-02-26 09:33:15,773 INFO    SenderThread:14076 [file_pusher.py:join():167] waiting for file pusher
+2023-02-26 09:33:15,773 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 12
+2023-02-26 09:33:15,773 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:15,773 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 12
+2023-02-26 09:33:15,774 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:15,774 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 12
+2023-02-26 09:33:15,985 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 13
+2023-02-26 09:33:15,985 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:15,985 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 13
+2023-02-26 09:33:15,985 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:15,985 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 13
+2023-02-26 09:33:15,985 INFO    SenderThread:14076 [sender.py:transition_state():587] send defer: 14
+2023-02-26 09:33:15,986 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: defer
+2023-02-26 09:33:15,986 DEBUG   SenderThread:14076 [sender.py:send():336] send: final
+2023-02-26 09:33:15,986 INFO    HandlerThread:14076 [handler.py:handle_request_defer():170] handle defer: 14
+2023-02-26 09:33:15,986 DEBUG   SenderThread:14076 [sender.py:send():336] send: footer
+2023-02-26 09:33:15,986 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: defer
+2023-02-26 09:33:15,986 INFO    SenderThread:14076 [sender.py:send_request_defer():583] handle sender defer: 14
+2023-02-26 09:33:15,987 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: poll_exit
+2023-02-26 09:33:15,987 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: server_info
+2023-02-26 09:33:15,987 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: get_summary
+2023-02-26 09:33:15,987 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: poll_exit
+2023-02-26 09:33:15,988 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: sampled_history
+2023-02-26 09:33:15,988 DEBUG   SenderThread:14076 [sender.py:send_request():363] send_request: server_info
+2023-02-26 09:33:16,593 INFO    MainThread:14076 [wandb_run.py:_footer_history_summary_info():3442] rendering history
+2023-02-26 09:33:16,593 INFO    MainThread:14076 [wandb_run.py:_footer_history_summary_info():3474] rendering summary
+2023-02-26 09:33:16,593 INFO    MainThread:14076 [wandb_run.py:_footer_sync_info():3398] logging synced files
+2023-02-26 09:33:16,594 DEBUG   HandlerThread:14076 [handler.py:handle_request():144] handle_request: shutdown
+2023-02-26 09:33:16,594 INFO    HandlerThread:14076 [handler.py:finish():841] shutting down handler
+2023-02-26 09:33:16,993 INFO    WriterThread:14076 [datastore.py:close():299] close: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\run-ehqe5vl7.wandb
+2023-02-26 09:33:17,606 INFO    SenderThread:14076 [sender.py:finish():1493] shutting down sender
+2023-02-26 09:33:17,606 INFO    SenderThread:14076 [file_pusher.py:finish():162] shutting down file pusher
+2023-02-26 09:33:17,606 INFO    SenderThread:14076 [file_pusher.py:join():167] waiting for file pusher
diff --git a/embeddings/wandb/run-20230226_093224-ehqe5vl7/logs/debug.log b/embeddings/wandb/run-20230226_093224-ehqe5vl7/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..21873b1ae619ecf5423e860fc6d7424c63f05e79
--- /dev/null
+++ b/embeddings/wandb/run-20230226_093224-ehqe5vl7/logs/debug.log
@@ -0,0 +1,25 @@
+2023-02-26 09:32:24,562 INFO    MainThread:10428 [wandb_setup.py:_flush():68] Configure stats pid to 10428
+2023-02-26 09:32:24,563 INFO    MainThread:10428 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-26 09:32:24,563 INFO    MainThread:10428 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-26 09:32:24,563 INFO    MainThread:10428 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-26 09:32:24,563 INFO    MainThread:10428 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-26 09:32:24,563 INFO    MainThread:10428 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\logs\debug.log
+2023-02-26 09:32:24,564 INFO    MainThread:10428 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_093224-ehqe5vl7\logs\debug-internal.log
+2023-02-26 09:32:24,564 INFO    MainThread:10428 [wandb_init.py:init():532] calling init triggers
+2023-02-26 09:32:24,564 INFO    MainThread:10428 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-26 09:32:24,564 INFO    MainThread:10428 [wandb_init.py:init():588] starting backend
+2023-02-26 09:32:24,564 INFO    MainThread:10428 [wandb_init.py:init():592] setting up manager
+2023-02-26 09:32:24,568 INFO    MainThread:10428 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-26 09:32:24,573 INFO    MainThread:10428 [wandb_init.py:init():599] backend started and connected
+2023-02-26 09:32:24,576 INFO    MainThread:10428 [wandb_init.py:init():687] updated telemetry
+2023-02-26 09:32:24,628 INFO    MainThread:10428 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-26 09:32:25,058 INFO    MainThread:10428 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-26 09:32:25,161 INFO    MainThread:10428 [wandb_run.py:_on_init():2143] got version response 
+2023-02-26 09:32:25,161 INFO    MainThread:10428 [wandb_init.py:init():775] starting run threads in backend
+2023-02-26 09:32:25,362 INFO    MainThread:10428 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-26 09:32:25,362 INFO    MainThread:10428 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-26 09:32:25,363 INFO    MainThread:10428 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-26 09:32:25,363 INFO    MainThread:10428 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-26 09:32:25,364 INFO    MainThread:10428 [wandb_init.py:init():817] run started, returning control to user process
+2023-02-26 09:33:17,698 WARNING MsgRouterThr:10428 [router.py:message_loop():77] message_loop has been closed
diff --git a/embeddings/wandb/run-20230226_093224-ehqe5vl7/run-ehqe5vl7.wandb b/embeddings/wandb/run-20230226_093224-ehqe5vl7/run-ehqe5vl7.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..9ea45a9c5e8013800e5c68126afa93bf585697ec
Binary files /dev/null and b/embeddings/wandb/run-20230226_093224-ehqe5vl7/run-ehqe5vl7.wandb differ
diff --git a/embeddings/wandb/run-20230226_100155-18km5yss/files/config.yaml b/embeddings/wandb/run-20230226_100155-18km5yss/files/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..bf9e9b1d482ca707b40a07f875f1feec7b1d02e5
--- /dev/null
+++ b/embeddings/wandb/run-20230226_100155-18km5yss/files/config.yaml
@@ -0,0 +1,39 @@
+wandb_version: 1
+
+_wandb:
+  desc: null
+  value:
+    cli_version: 0.13.10
+    framework: huggingface
+    huggingface_version: 4.24.0
+    is_jupyter_run: false
+    is_kaggle_kernel: false
+    python_version: 3.8.1
+    start_time: 1677405715.858402
+    t:
+      1:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      2:
+      - 1
+      - 5
+      - 11
+      - 33
+      - 49
+      - 53
+      - 55
+      - 77
+      3:
+      - 23
+      4: 3.8.1
+      5: 0.13.10
+      6: 4.24.0
+      8:
+      - 3
+      - 5
diff --git a/embeddings/wandb/run-20230226_100155-18km5yss/files/media/table/test/table_0_e2cad4daaf2fa5eb0f6d.table.json b/embeddings/wandb/run-20230226_100155-18km5yss/files/media/table/test/table_0_e2cad4daaf2fa5eb0f6d.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..0f32c93bc92a115bc19fbbffd23d971edbe85fc6
--- /dev/null
+++ b/embeddings/wandb/run-20230226_100155-18km5yss/files/media/table/test/table_0_e2cad4daaf2fa5eb0f6d.table.json
@@ -0,0 +1 @@
+{"columns": ["graph", "ground_truth", "prediction"], "data": [["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1]]}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230226_100155-18km5yss/files/media/table/train/table_0_4505be9d3f4b3d003d22.table.json b/embeddings/wandb/run-20230226_100155-18km5yss/files/media/table/train/table_0_4505be9d3f4b3d003d22.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..5f9c08cd6fc209ef85a812bbc19fcb7a3a682c30
--- /dev/null
+++ b/embeddings/wandb/run-20230226_100155-18km5yss/files/media/table/train/table_0_4505be9d3f4b3d003d22.table.json
@@ -0,0 +1 @@
+{"columns": ["graph", "ground_truth", "prediction"], "data": [["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1]]}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230226_100155-18km5yss/files/media/table/val/table_0_fdd06dd19f5b94492d5e.table.json b/embeddings/wandb/run-20230226_100155-18km5yss/files/media/table/val/table_0_fdd06dd19f5b94492d5e.table.json
new file mode 100644
index 0000000000000000000000000000000000000000..eea5e117928606bd17e43680bb561dcf5868152b
--- /dev/null
+++ b/embeddings/wandb/run-20230226_100155-18km5yss/files/media/table/val/table_0_fdd06dd19f5b94492d5e.table.json
@@ -0,0 +1 @@
+{"columns": ["graph", "ground_truth", "prediction"], "data": [["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1], ["Html", 0, 1], ["Html", 1, 1], ["Html", 1, 1], ["Html", 0, 1]]}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230226_100155-18km5yss/files/output.log b/embeddings/wandb/run-20230226_100155-18km5yss/files/output.log
new file mode 100644
index 0000000000000000000000000000000000000000..ed2bbff3e8be53f79105d5c9781c5b013b19edc3
--- /dev/null
+++ b/embeddings/wandb/run-20230226_100155-18km5yss/files/output.log
@@ -0,0 +1,2096 @@
+INFO:heterogeneous-GAT-model:[1] Loss: 0.00037324535846710205
+INFO:heterogeneous-GAT-model:[6] Loss: 0.0012960589677095413
+INFO:heterogeneous-GAT-model:[11] Loss: 0.0012859403043985367
+INFO:heterogeneous-GAT-model:[16] Loss: 0.0011300449818372727
+INFO:heterogeneous-GAT-model:[21] Loss: 0.0010352176576852799
+INFO:heterogeneous-GAT-model:[26] Loss: 0.0011893354207277297
+INFO:heterogeneous-GAT-model:[31] Loss: 0.0011273930668830871
+INFO:heterogeneous-GAT-model:[36] Loss: 0.0011582816243171693
+INFO:heterogeneous-GAT-model:[41] Loss: 0.0011582449078559875
+INFO:heterogeneous-GAT-model:[46] Loss: 0.0012827484011650086
+INFO:heterogeneous-GAT-model:[51] Loss: 0.0010643996447324753
+INFO:heterogeneous-GAT-model:[56] Loss: 0.0009395155310630798
+INFO:heterogeneous-GAT-model:[61] Loss: 0.0012206553369760514
+INFO:heterogeneous-GAT-model:[66] Loss: 0.0009710084348917008
+INFO:heterogeneous-GAT-model:[71] Loss: 0.0012831042408943177
+INFO:heterogeneous-GAT-model:[76] Loss: 0.0012209006249904633
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [0],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [0],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [0],
+        [0],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [0]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [0],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [0],
+        [0],
+        [1],
+        [0],
+        [0]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [0],
+        [0],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [0],
+        [1],
+        [0],
+        [0],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [0],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1],
+        [1]])
+PRED tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) tensor([[0],
+        [1],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1],
+        [0],
+        [1],
+        [0],
+        [0],
+        [1],
+        [1],
+        [0],
+        [1],
+        [0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[0]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
+PRED tensor([1]) tensor([[1]])
diff --git a/embeddings/wandb/run-20230226_100155-18km5yss/files/requirements.txt b/embeddings/wandb/run-20230226_100155-18km5yss/files/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d7de821539624662109e252a91c4907a963ad5fb
--- /dev/null
+++ b/embeddings/wandb/run-20230226_100155-18km5yss/files/requirements.txt
@@ -0,0 +1,170 @@
+absl-py==1.3.0
+anyio==3.6.2
+appdirs==1.4.4
+argon2-cffi-bindings==21.2.0
+argon2-cffi==21.3.0
+asttokens==2.1.0
+astunparse==1.6.3
+attrs==22.1.0
+backcall==0.2.0
+beautifulsoup4==4.11.1
+bleach==5.0.1
+blis==0.7.9
+bs4==0.0.1
+cachetools==5.2.0
+catalogue==2.0.8
+certifi==2022.9.24
+cffi==1.15.1
+charset-normalizer==2.1.1
+click==8.1.3
+colorama==0.4.6
+confection==0.0.3
+contourpy==1.0.6
+cycler==0.11.0
+cymem==2.0.7
+debugpy==1.6.3
+decorator==5.1.1
+defusedxml==0.7.1
+dgl==0.9.1
+docker-pycreds==0.4.0
+en-core-web-sm==3.4.1
+entrypoints==0.4
+executing==1.2.0
+fastjsonschema==2.16.2
+filelock==3.8.0
+fonttools==4.38.0
+gitdb==4.0.10
+gitpython==3.1.31
+google-auth-oauthlib==0.4.6
+google-auth==2.14.0
+graph4nlp==0.5.5
+grpcio==1.50.0
+huggingface-hub==0.10.1
+idna==3.4
+importlib-metadata==5.0.0
+importlib-resources==5.10.0
+ipykernel==6.16.2
+ipython-genutils==0.2.0
+ipython==8.6.0
+ipywidgets==8.0.2
+jedi==0.18.1
+jinja2==3.1.2
+joblib==1.2.0
+jsonschema==4.16.0
+jupyter-client==7.4.4
+jupyter-console==6.4.4
+jupyter-core==4.11.2
+jupyter-server==1.21.0
+jupyter==1.0.0
+jupyterlab-pygments==0.2.2
+jupyterlab-widgets==3.0.3
+kiwisolver==1.4.4
+langcodes==3.3.0
+littleutils==0.2.2
+lxml==4.9.1
+markdown==3.4.1
+markupsafe==2.1.1
+matplotlib-inline==0.1.6
+matplotlib==3.6.2
+mistune==2.0.4
+murmurhash==1.0.9
+nbclassic==0.4.7
+nbclient==0.7.0
+nbconvert==7.2.3
+nbformat==5.7.0
+nest-asyncio==1.5.6
+networkx==2.8.8
+nltk==3.7
+notebook-shim==0.2.0
+notebook==6.5.2
+numpy==1.23.5
+oauthlib==3.2.2
+ogb==1.3.5
+outdated==0.2.2
+packaging==21.3
+pandas==1.5.1
+pandocfilters==1.5.0
+parso==0.8.3
+pathtools==0.1.2
+pathy==0.6.2
+pickleshare==0.7.5
+pillow==9.3.0
+pip==21.3.1
+pkgutil-resolve-name==1.3.10
+plotly==5.13.0
+preshed==3.0.8
+prometheus-client==0.15.0
+prompt-toolkit==3.0.31
+protobuf==3.19.6
+psutil==5.9.3
+pure-eval==0.2.2
+pyasn1-modules==0.2.8
+pyasn1==0.4.8
+pycparser==2.21
+pydantic==1.10.2
+pygments==2.13.0
+pyparsing==3.0.9
+pyrsistent==0.18.1
+python-dateutil==2.8.2
+pythonds==1.2.1
+pytz==2022.5
+pywin32==304
+pywinpty==2.0.9
+pyyaml==6.0
+pyzmq==24.0.1
+qtconsole==5.3.2
+qtpy==2.2.1
+regex==2022.10.31
+requests-oauthlib==1.3.1
+requests==2.28.1
+rsa==4.9
+scikit-learn==1.1.3
+scipy==1.9.3
+send2trash==1.8.0
+sentry-sdk==1.15.0
+setproctitle==1.3.2
+setuptools==60.2.0
+six==1.16.0
+smart-open==5.2.1
+smmap==5.0.0
+sniffio==1.3.0
+soupsieve==2.3.2.post1
+spacy-legacy==3.0.10
+spacy-loggers==1.0.3
+spacy==3.4.2
+srsly==2.4.5
+stack-data==0.6.0
+stanfordcorenlp==3.9.1.1
+tenacity==8.2.1
+tensorboard-data-server==0.6.1
+tensorboard-plugin-wit==1.8.1
+tensorboard==2.10.1
+terminado==0.17.0
+thinc==8.1.5
+threadpoolctl==3.1.0
+tinycss2==1.2.1
+tokenizers==0.13.2
+torch-cluster==1.6.0+pt113cpu
+torch-geometric==2.2.0
+torch-scatter==2.1.0+pt113cpu
+torch-sparse==0.6.16+pt113cpu
+torch-spline-conv==1.2.1+pt113cpu
+torch==1.13.0
+torchsummary==1.5.1
+torchtext==0.14.0
+tornado==6.2
+tqdm==4.64.1
+traitlets==5.5.0
+transformers==4.24.0
+typer==0.4.2
+typing-extensions==4.4.0
+urllib3==1.26.12
+wandb==0.13.10
+wasabi==0.10.1
+wcwidth==0.2.5
+webencodings==0.5.1
+websocket-client==1.4.1
+werkzeug==2.2.2
+wheel==0.37.1
+widgetsnbextension==4.0.3
+zipp==3.10.0
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230226_100155-18km5yss/files/wandb-metadata.json b/embeddings/wandb/run-20230226_100155-18km5yss/files/wandb-metadata.json
new file mode 100644
index 0000000000000000000000000000000000000000..102b66c4a8f329c8321bd97e9a94187041b2cdbd
--- /dev/null
+++ b/embeddings/wandb/run-20230226_100155-18km5yss/files/wandb-metadata.json
@@ -0,0 +1,42 @@
+{
+    "os": "Windows-10-10.0.19041-SP0",
+    "python": "3.8.1",
+    "heartbeatAt": "2023-02-26T10:01:56.482971",
+    "startedAt": "2023-02-26T10:01:55.846407",
+    "docker": null,
+    "cuda": null,
+    "args": [],
+    "state": "running",
+    "program": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py",
+    "codePath": "embeddings\\hetero_GAT.py",
+    "git": {
+        "remote": "https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git",
+        "commit": "ced992d661984f7b87d1a3e76768e4ff7af78245"
+    },
+    "email": "liambyrneh@gmail.com",
+    "root": "C:/Users/liamb/Documents/graph4stackoverflow",
+    "host": "DESKTOP-P7BETFF",
+    "username": "liamb",
+    "executable": "C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe",
+    "cpu_count": 2,
+    "cpu_count_logical": 4,
+    "cpu_freq": {
+        "current": 3504.0,
+        "min": 0.0,
+        "max": 3504.0
+    },
+    "cpu_freq_per_core": [
+        {
+            "current": 3504.0,
+            "min": 0.0,
+            "max": 3504.0
+        }
+    ],
+    "disk": {
+        "total": 475.71581649780273,
+        "used": 368.03625106811523
+    },
+    "memory": {
+        "total": 31.89160919189453
+    }
+}
diff --git a/embeddings/wandb/run-20230226_100155-18km5yss/files/wandb-summary.json b/embeddings/wandb/run-20230226_100155-18km5yss/files/wandb-summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b
--- /dev/null
+++ b/embeddings/wandb/run-20230226_100155-18km5yss/files/wandb-summary.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/embeddings/wandb/run-20230226_100155-18km5yss/logs/debug-internal.log b/embeddings/wandb/run-20230226_100155-18km5yss/logs/debug-internal.log
new file mode 100644
index 0000000000000000000000000000000000000000..8ded23096e988795dec708ea59b61b7a2ece6ff1
--- /dev/null
+++ b/embeddings/wandb/run-20230226_100155-18km5yss/logs/debug-internal.log
@@ -0,0 +1,2173 @@
+2023-02-26 10:01:55,859 INFO    StreamThr :10640 [internal.py:wandb_internal():87] W&B internal server running at pid: 10640, started at: 2023-02-26 10:01:55.858402
+2023-02-26 10:01:55,861 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status
+2023-02-26 10:01:55,862 INFO    WriterThread:10640 [datastore.py:open_for_write():85] open: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\run-18km5yss.wandb
+2023-02-26 10:01:55,865 DEBUG   SenderThread:10640 [sender.py:send():336] send: header
+2023-02-26 10:01:55,908 DEBUG   SenderThread:10640 [sender.py:send():336] send: run
+2023-02-26 10:01:56,306 INFO    SenderThread:10640 [dir_watcher.py:__init__():216] watching files in: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files
+2023-02-26 10:01:56,307 INFO    SenderThread:10640 [sender.py:_start_run_threads():1067] run started: 18km5yss with start time 1677405715.858402
+2023-02-26 10:01:56,307 DEBUG   SenderThread:10640 [sender.py:send_request():363] send_request: summary_record
+2023-02-26 10:01:56,307 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: check_version
+2023-02-26 10:01:56,308 INFO    SenderThread:10640 [sender.py:_save_file():1321] saving file wandb-summary.json with policy end
+2023-02-26 10:01:56,308 DEBUG   SenderThread:10640 [sender.py:send_request():363] send_request: check_version
+2023-02-26 10:01:56,464 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: run_start
+2023-02-26 10:01:56,481 DEBUG   HandlerThread:10640 [system_info.py:__init__():31] System info init
+2023-02-26 10:01:56,481 DEBUG   HandlerThread:10640 [system_info.py:__init__():46] System info init done
+2023-02-26 10:01:56,481 INFO    HandlerThread:10640 [system_monitor.py:start():151] Starting system monitor
+2023-02-26 10:01:56,482 INFO    SystemMonitor:10640 [system_monitor.py:_start():116] Starting system asset monitoring threads
+2023-02-26 10:01:56,482 INFO    HandlerThread:10640 [system_monitor.py:probe():172] Collecting system info
+2023-02-26 10:01:56,482 DEBUG   HandlerThread:10640 [system_info.py:probe():195] Probing system
+2023-02-26 10:01:56,486 INFO    SystemMonitor:10640 [interfaces.py:start():168] Started cpu
+2023-02-26 10:01:56,486 INFO    SystemMonitor:10640 [interfaces.py:start():168] Started disk
+2023-02-26 10:01:56,486 INFO    SystemMonitor:10640 [interfaces.py:start():168] Started memory
+2023-02-26 10:01:56,503 INFO    SystemMonitor:10640 [interfaces.py:start():168] Started network
+2023-02-26 10:01:56,504 DEBUG   HandlerThread:10640 [system_info.py:_probe_git():180] Probing git
+2023-02-26 10:01:56,593 DEBUG   HandlerThread:10640 [system_info.py:_probe_git():188] Probing git done
+2023-02-26 10:01:56,593 DEBUG   HandlerThread:10640 [system_info.py:probe():241] Probing system done
+2023-02-26 10:01:56,594 DEBUG   HandlerThread:10640 [system_monitor.py:probe():181] {'os': 'Windows-10-10.0.19041-SP0', 'python': '3.8.1', 'heartbeatAt': '2023-02-26T10:01:56.482971', 'startedAt': '2023-02-26T10:01:55.846407', 'docker': None, 'cuda': None, 'args': (), 'state': 'running', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py', 'codePath': 'embeddings\\hetero_GAT.py', 'git': {'remote': 'https://git.soton.ac.uk/lhb1g20/graph4stackoverflow.git', 'commit': 'ced992d661984f7b87d1a3e76768e4ff7af78245'}, 'email': 'liambyrneh@gmail.com', 'root': 'C:/Users/liamb/Documents/graph4stackoverflow', 'host': 'DESKTOP-P7BETFF', 'username': 'liamb', 'executable': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\venv\\Scripts\\python.exe', 'cpu_count': 2, 'cpu_count_logical': 4, 'cpu_freq': {'current': 3504.0, 'min': 0.0, 'max': 3504.0}, 'cpu_freq_per_core': [{'current': 3504.0, 'min': 0.0, 'max': 3504.0}], 'disk': {'total': 475.71581649780273, 'used': 368.03625106811523}, 'memory': {'total': 31.89160919189453}}
+2023-02-26 10:01:56,594 INFO    HandlerThread:10640 [system_monitor.py:probe():182] Finished collecting system info
+2023-02-26 10:01:56,594 INFO    HandlerThread:10640 [system_monitor.py:probe():185] Publishing system info
+2023-02-26 10:01:56,594 DEBUG   HandlerThread:10640 [system_info.py:_save_pip():51] Saving list of pip packages installed into the current environment
+2023-02-26 10:01:56,595 DEBUG   HandlerThread:10640 [system_info.py:_save_pip():67] Saving pip packages done
+2023-02-26 10:01:56,596 INFO    HandlerThread:10640 [system_monitor.py:probe():187] Finished publishing system info
+2023-02-26 10:01:56,604 DEBUG   SenderThread:10640 [sender.py:send():336] send: files
+2023-02-26 10:01:56,605 INFO    SenderThread:10640 [sender.py:_save_file():1321] saving file wandb-metadata.json with policy now
+2023-02-26 10:01:56,613 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: stop_status
+2023-02-26 10:01:56,613 DEBUG   SenderThread:10640 [sender.py:send_request():363] send_request: stop_status
+2023-02-26 10:01:56,807 DEBUG   SenderThread:10640 [sender.py:send():336] send: telemetry
+2023-02-26 10:01:57,158 INFO    wandb-upload_0:10640 [upload_job.py:push():138] Uploaded file C:\Users\liamb\AppData\Local\Temp\tmp1ojpi8i5wandb\6rg5hix6-wandb-metadata.json
+2023-02-26 10:01:57,207 DEBUG   SenderThread:10640 [sender.py:send():336] send: use_artifact
+2023-02-26 10:01:57,319 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\requirements.txt
+2023-02-26 10:01:57,320 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\wandb-summary.json
+2023-02-26 10:01:57,320 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\wandb-metadata.json
+2023-02-26 10:02:01,220 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:02:06,233 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:02:10,369 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:11,356 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:02:11,622 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:02:11,622 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:02:12,375 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:14,381 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:16,385 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:16,416 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:02:16,636 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:02:18,390 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:20,397 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:21,599 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:02:21,647 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:02:22,412 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:24,417 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:26,423 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:26,642 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:02:27,585 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:02:28,427 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\config.yaml
+2023-02-26 10:02:28,428 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:30,432 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:31,670 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:02:32,437 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:33,769 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:02:36,709 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:02:38,788 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:02:41,734 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:02:43,801 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:02:46,480 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:02:46,762 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:02:49,110 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:02:51,774 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:02:54,124 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:02:56,505 DEBUG   SystemMonitor:10640 [system_monitor.py:_start():130] Starting system metrics aggregation loop
+2023-02-26 10:02:56,506 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:02:56,787 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:02:59,513 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:03:01,799 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:03:04,524 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:03:06,812 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:03:09,537 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:03:11,840 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:03:14,550 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:03:16,852 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:03:19,561 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:03:21,864 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:03:24,575 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:03:26,517 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:03:26,878 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:03:28,584 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:03:30,478 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:03:31,888 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:03:35,489 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:03:36,898 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:03:40,502 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:03:41,912 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:03:45,514 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:03:46,924 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:03:50,526 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:03:51,936 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:03:55,548 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:03:56,522 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:03:56,959 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:01,535 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:04:01,972 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:06,560 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:04:06,983 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:11,572 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:04:11,995 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:16,586 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:04:17,009 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:21,598 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:04:22,026 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:26,533 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:04:27,034 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:27,536 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:04:28,086 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:04:32,043 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:32,559 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:04:37,054 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:37,571 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:04:42,067 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:42,584 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:04:47,081 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:47,598 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:04:52,094 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:52,611 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:04:56,541 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:04:57,119 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:04:58,546 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:05:02,134 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:05:03,558 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:05:07,145 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:05:08,570 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:05:12,160 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:05:12,549 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:05:13,693 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:05:17,169 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:05:18,705 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:05:22,183 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:05:23,718 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:05:26,554 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:05:27,196 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:05:29,561 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:05:32,208 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:05:34,573 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:05:37,221 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:05:39,586 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:05:42,231 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:05:44,609 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:05:47,240 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:05:49,622 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:05:52,254 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:05:54,635 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:05:56,562 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:05:57,267 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:05:59,022 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:06:00,201 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:06:02,286 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:06:05,216 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:06:07,300 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:06:10,229 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:06:12,323 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:06:15,267 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:06:17,335 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:06:20,280 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:06:22,348 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:06:25,292 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:06:26,563 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:06:27,360 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:06:30,571 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:06:32,387 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:06:35,586 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:06:37,403 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:06:40,614 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:06:42,431 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:06:45,638 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:06:47,467 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:06:50,662 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:06:52,479 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:06:55,675 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:06:56,569 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:06:57,496 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:01,594 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:07:02,518 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:06,604 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:07:07,548 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:11,618 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:07:12,570 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:16,642 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:07:17,583 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:19,227 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:07:22,048 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:07:22,596 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:26,575 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:07:27,579 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:07:27,626 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:32,592 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:07:32,655 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:37,608 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:07:37,670 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:42,621 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:07:42,684 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:47,634 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:07:47,697 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:52,646 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:07:52,714 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:56,577 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:07:57,721 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:07:58,580 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:08:02,743 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:08:03,604 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:08:07,755 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:08:08,617 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:08:12,780 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:08:13,642 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:08:17,793 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:08:18,654 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:08:22,806 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:08:23,667 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:08:26,590 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:08:27,840 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:08:29,610 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:08:32,860 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:08:34,628 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:08:37,888 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:08:39,642 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:08:42,901 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:08:42,902 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:08:43,464 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:08:45,314 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:08:47,914 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:08:50,327 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:08:52,927 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:08:55,339 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:08:56,593 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:08:57,924 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:09:00,604 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:09:02,954 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:09:05,617 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:09:07,967 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:09:10,628 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:09:12,980 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:09:15,643 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:09:17,993 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:09:20,657 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:09:23,006 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:09:24,887 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:09:25,716 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:09:26,607 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:09:28,016 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:09:31,619 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:09:33,029 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:09:36,632 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:09:38,057 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:09:41,644 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:09:43,068 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:09:46,656 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:09:48,098 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:09:51,670 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:09:53,123 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:09:56,617 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:09:57,620 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:09:58,153 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:10:01,255 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:10:03,134 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:10:03,165 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:10:08,161 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:10:08,176 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:10:13,174 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:10:13,190 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:10:18,187 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:10:18,203 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:10:23,200 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:10:23,232 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:10:26,632 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:10:28,245 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:10:28,637 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:10:33,258 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:10:33,649 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:10:38,271 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:10:38,663 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:10:43,282 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:10:43,705 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:10:44,645 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:10:48,295 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:10:49,659 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:10:53,309 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:10:54,672 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:10:56,646 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:10:58,322 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:00,657 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:11:03,348 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:05,683 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:11:08,362 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:10,695 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:11:13,374 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:15,708 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:11:18,386 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:20,721 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:11:23,402 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:25,752 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:11:26,660 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:11:28,426 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:31,684 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:11:33,439 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:37,279 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:11:37,669 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:11:38,452 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:42,682 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:11:43,466 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:47,696 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:11:48,479 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:52,709 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:11:53,493 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:56,674 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:11:58,506 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:11:58,679 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:12:03,519 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:12:03,691 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:12:08,533 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:12:08,704 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:12:13,560 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:12:13,717 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:12:18,586 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:12:18,742 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:12:23,613 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:12:23,757 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:12:26,684 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:12:28,626 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:12:29,648 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:12:31,837 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:12:33,640 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:12:34,674 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:12:38,667 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:12:39,684 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:12:43,675 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:12:44,693 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:12:48,703 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:12:49,707 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:12:53,717 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:12:54,720 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:12:56,694 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:12:58,730 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:13:00,703 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:13:03,743 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:13:05,717 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:13:08,788 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:13:10,729 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:13:13,800 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:13:15,741 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:13:18,822 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:13:20,765 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:13:23,855 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:13:25,776 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:13:26,700 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:13:28,877 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:13:30,443 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:13:30,944 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:13:33,888 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:13:35,956 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:13:38,900 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:13:40,966 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:13:43,923 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:13:45,991 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:13:48,935 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:13:51,003 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:13:53,948 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:13:56,016 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:13:56,712 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:13:58,961 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:14:01,749 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:14:03,973 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:14:06,764 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:14:08,986 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:14:11,775 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:14:13,874 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:14:14,000 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:14:16,962 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:14:19,014 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:14:21,973 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:14:24,041 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:14:26,720 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:14:27,722 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:14:29,052 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:14:32,733 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:14:34,065 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:14:37,745 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:14:39,093 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:14:42,759 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:14:44,106 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:14:47,772 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:14:49,119 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:14:52,785 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:14:54,148 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:14:56,731 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:14:58,737 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:14:59,160 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:03,777 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:15:04,184 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:06,408 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:15:09,205 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:09,472 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:15:14,225 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:14,507 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:15:19,250 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:19,532 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:15:24,263 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:24,545 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:15:26,738 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:15:29,275 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:29,275 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:29,758 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:15:34,286 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:34,772 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:15:39,300 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:39,785 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:15:44,313 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:44,799 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:15:49,352 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:49,854 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:15:54,365 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:54,866 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:15:56,746 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:15:57,936 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:15:59,377 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:15:59,956 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:16:04,390 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:16:04,953 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:16:09,401 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:16:09,966 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:16:14,426 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:16:14,990 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:16:19,439 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:16:20,003 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:16:24,455 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:16:25,019 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:16:26,758 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:16:29,466 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:16:30,794 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:16:34,491 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:16:35,804 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:16:38,345 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:16:39,517 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:16:41,099 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:16:44,531 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:16:46,114 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:16:49,544 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:16:51,139 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:16:54,572 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:16:56,154 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:16:56,765 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:16:59,583 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:17:01,777 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:17:04,608 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:17:06,803 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:17:09,607 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:17:11,816 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:17:14,620 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:17:16,842 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:17:19,645 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:17:21,855 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:17:24,672 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:17:26,770 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:17:26,850 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:17:27,773 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:17:29,684 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:17:32,786 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:17:34,696 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:17:37,795 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:17:39,707 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:17:42,809 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:17:44,720 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:17:47,822 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:17:49,749 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:17:52,836 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:17:54,775 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:17:56,777 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:17:58,782 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:17:59,800 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:18:03,796 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:18:04,815 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:18:08,809 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:18:09,827 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:18:13,822 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:18:14,838 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:18:18,833 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:18:19,852 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:18:23,846 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:18:24,865 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:18:26,793 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:18:29,801 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:18:29,879 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:18:34,816 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:18:34,894 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:18:38,622 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:18:39,906 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:18:40,141 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:18:44,919 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:18:45,154 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:18:49,930 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:18:50,165 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:18:54,944 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:18:55,179 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:18:56,805 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:18:59,970 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:19:00,830 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:19:04,981 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:19:05,858 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:19:09,991 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:19:10,884 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:19:15,005 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:19:15,897 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:19:20,032 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:19:20,910 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:19:25,030 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:19:25,923 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:19:26,816 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:19:30,043 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:19:31,766 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:19:33,160 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:19:35,054 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:19:36,793 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:19:40,082 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:19:41,803 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:19:45,092 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:19:46,957 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:19:47,301 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:19:50,104 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:19:51,967 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:19:55,143 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:19:56,821 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:19:57,823 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:20:00,173 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:20:02,834 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:20:05,199 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:20:07,847 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:20:10,213 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:20:12,859 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:20:15,222 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:20:17,885 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:20:20,236 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:20:22,900 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:20:25,249 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:20:26,711 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:20:26,832 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:20:28,837 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:20:30,263 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:20:33,851 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:20:35,275 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:20:38,863 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:20:40,289 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:20:43,887 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:20:45,296 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:20:48,911 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:20:50,319 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:20:53,977 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:20:55,340 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:20:56,844 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:20:59,851 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:21:00,365 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:21:04,861 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:21:05,378 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:21:09,884 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:21:10,400 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:21:15,185 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:21:15,433 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:21:15,652 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:21:20,446 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:21:20,664 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:21:25,460 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:21:25,678 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:21:26,853 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:21:30,472 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:21:31,207 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:21:31,348 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:21:35,484 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:21:36,221 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:21:40,498 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:21:41,239 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:21:45,518 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:21:46,257 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:21:50,535 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:21:51,271 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:21:55,548 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:21:56,284 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:21:56,863 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:22:00,565 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:22:01,883 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:22:05,580 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:22:06,897 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:22:10,611 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:22:11,911 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:22:15,638 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:22:17,613 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:22:18,914 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:22:20,649 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:22:22,623 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:22:25,662 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:22:26,870 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:22:27,872 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:22:30,678 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:22:32,887 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:22:35,690 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:22:37,899 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:22:40,702 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:22:42,911 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:22:45,716 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:22:47,925 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:22:50,729 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:22:52,939 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:22:55,758 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:22:56,871 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:22:58,876 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:23:00,772 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:03,372 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:23:04,751 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:23:05,785 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:09,764 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:23:10,798 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:14,778 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:23:15,884 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:15,884 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:19,792 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:23:20,904 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:24,801 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:23:25,926 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:26,880 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:23:29,886 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:23:30,952 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:34,900 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:23:35,965 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:39,912 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:23:40,993 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:44,926 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:23:46,007 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:49,939 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:23:51,018 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:54,950 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:23:56,031 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:23:56,894 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:24:00,797 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:24:01,058 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:24:02,030 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:24:05,821 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:24:06,087 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:24:10,834 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:24:11,115 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:24:15,848 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:24:16,114 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:24:20,861 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:24:21,127 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:24:25,878 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:24:26,145 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:24:26,896 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:24:30,905 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:24:31,156 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:24:35,918 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:24:36,168 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:24:39,417 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:24:41,203 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:24:41,356 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:24:46,262 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:24:46,403 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:24:51,323 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:24:51,448 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:24:56,336 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:24:56,461 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:24:56,899 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:25:01,349 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:25:01,913 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:25:06,372 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:25:06,936 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:25:11,387 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:25:11,951 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:25:16,400 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:25:16,964 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:25:21,413 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:25:21,977 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:25:26,427 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:25:26,912 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:25:27,913 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:25:31,442 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:25:32,942 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:25:36,056 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:25:36,478 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:25:38,746 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:25:41,488 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:25:43,759 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:25:46,501 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:25:48,772 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:25:51,513 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:25:53,784 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:25:56,525 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:25:56,914 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:25:58,918 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:26:01,552 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:26:03,932 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:26:06,564 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:26:08,945 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:26:11,576 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:26:13,958 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:26:16,590 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:26:18,975 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:26:21,607 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:26:23,504 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:26:24,503 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:26:26,629 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:26:26,925 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:26:29,946 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:26:31,651 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:26:34,970 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:26:36,662 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:26:39,981 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:26:41,687 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:26:44,992 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:26:46,699 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:26:50,004 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:26:51,713 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:26:55,018 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:26:56,726 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:26:56,929 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:27:00,958 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:27:01,748 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:27:06,000 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:27:06,784 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:27:11,014 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:27:11,813 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:27:16,028 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:27:16,827 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:27:21,041 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:27:21,840 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:27:26,054 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:27:26,854 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:27:26,932 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:27:27,747 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:27:31,868 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:27:31,946 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:27:36,882 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:27:36,960 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:27:41,894 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:27:41,972 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:27:46,907 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:27:46,986 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:27:51,921 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:27:52,000 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:27:56,936 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:27:56,936 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:27:57,938 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:28:01,948 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:02,951 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:28:06,963 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:07,965 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:28:11,976 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:12,979 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:28:16,989 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:16,989 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:17,992 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:28:19,888 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:28:22,002 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:23,319 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:28:26,937 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:28:27,015 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:28,942 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:28:32,029 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:33,956 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:28:37,058 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:38,985 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:28:42,071 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:43,998 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:28:47,085 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:49,012 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:28:52,097 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:54,024 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:28:56,938 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:28:57,111 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:28:59,943 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:29:02,121 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:29:04,956 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:29:07,142 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:29:09,992 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:29:12,154 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:29:15,005 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:29:16,400 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:29:17,166 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:29:20,817 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:29:22,178 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:29:25,825 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:29:26,953 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:29:27,188 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:29:30,964 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:29:32,201 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:29:35,989 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:29:37,242 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:29:41,000 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:29:42,253 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:29:46,013 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:29:47,267 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:29:51,027 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:29:52,279 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:29:56,040 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:29:56,964 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:29:57,293 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:01,978 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:30:02,307 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:06,992 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:30:07,321 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:12,005 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:30:12,334 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:17,020 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:30:17,364 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:21,062 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:30:22,393 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:22,769 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:30:26,968 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:30:27,422 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:27,971 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:30:32,435 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:32,984 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:30:37,448 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:37,997 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:30:42,462 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:43,011 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:30:47,476 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:48,024 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:30:52,487 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:53,035 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:30:56,982 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:30:57,499 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:30:58,988 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:31:02,533 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:31:03,999 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:31:07,556 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:31:08,543 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:31:09,952 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:31:12,567 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:31:14,965 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:31:17,578 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:31:19,990 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:31:22,586 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:31:25,025 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:31:26,985 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:31:27,596 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:31:30,994 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:31:32,608 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:31:36,008 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:31:37,620 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:31:41,019 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:31:42,633 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:31:46,032 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:31:47,646 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:31:48,947 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:31:51,657 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:31:52,659 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:31:56,669 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:31:56,998 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:31:57,687 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:02,013 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:32:02,703 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:07,027 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:32:07,714 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:12,052 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:32:12,725 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:17,101 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:32:17,759 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:22,113 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:32:22,850 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:27,001 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:32:27,864 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:28,004 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:32:32,875 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:33,079 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:32:33,378 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:32:37,919 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:38,093 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:32:42,932 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:43,104 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:32:47,945 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:48,120 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:32:52,959 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:53,131 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:32:57,016 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:32:57,971 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:32:59,021 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:33:02,990 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:33:04,040 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:33:08,005 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:33:09,053 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:33:13,018 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:33:14,067 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:33:18,031 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:33:19,082 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:33:23,043 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:33:23,513 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:33:24,861 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:33:27,024 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:33:28,058 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:33:30,032 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:33:33,069 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:33:35,043 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:33:38,082 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:33:40,056 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:33:43,097 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:33:45,071 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:33:48,111 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:33:50,086 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:33:53,125 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:33:55,100 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:33:57,027 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:33:58,141 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:01,039 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:34:03,154 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:06,051 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:34:08,167 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:11,066 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:34:13,181 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:16,486 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:34:17,661 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:34:18,194 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:21,500 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:34:23,206 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:26,508 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:34:27,041 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:34:28,231 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:32,053 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:34:33,244 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:37,078 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:34:38,267 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:42,099 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:34:43,290 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:47,112 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:34:48,302 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:52,136 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:34:53,327 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:57,055 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:34:58,057 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:34:58,339 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:34:58,339 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:35:03,072 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:35:03,354 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:35:05,031 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:35:08,368 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:35:08,399 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:35:13,382 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:35:13,414 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:35:18,397 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:35:18,428 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:35:23,410 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:35:23,441 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:35:27,060 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:35:28,440 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:35:29,067 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:35:33,451 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:35:34,078 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:35:38,465 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:35:39,091 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:35:43,478 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:35:44,104 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:35:48,488 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:35:49,115 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:35:51,513 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:35:53,503 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:35:54,239 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:35:57,075 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:35:58,532 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:36:00,083 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:36:03,545 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:36:05,096 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:36:08,557 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:36:10,108 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:36:13,571 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:36:15,122 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:36:18,580 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:36:20,130 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:36:23,593 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:36:25,145 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:36:27,088 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:36:28,607 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:36:31,098 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:36:33,633 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:36:36,123 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:36:38,646 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:36:41,137 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:36:43,659 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:36:44,083 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:36:46,883 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:36:48,684 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:36:51,897 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:36:53,699 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:36:56,911 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:36:57,099 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:36:58,713 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:37:02,112 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:37:03,725 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:37:07,126 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:37:08,754 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:37:12,139 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:37:13,769 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:37:17,152 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:37:18,780 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:37:22,164 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:37:23,791 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:37:27,112 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:37:28,114 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:37:28,804 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:37:33,128 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:37:33,817 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:37:37,638 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:37:38,830 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:37:39,097 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:37:43,843 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:37:44,109 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:37:48,853 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:37:49,118 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:37:53,863 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:37:54,130 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:37:57,123 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:37:58,879 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:38:00,132 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:38:03,894 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:38:05,147 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:38:08,922 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:38:10,159 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:38:13,934 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:38:15,172 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:38:18,948 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:38:20,185 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:38:23,961 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:38:24,133 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:38:25,340 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:38:27,126 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:38:28,974 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:38:31,136 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:38:33,985 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:38:36,148 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:38:39,014 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:38:41,160 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:38:44,026 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:38:46,170 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:38:49,037 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:38:51,184 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:38:54,049 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:38:56,195 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:38:57,135 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:38:59,062 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:39:01,287 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:39:01,521 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:39:04,075 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:39:06,312 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:39:09,098 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:39:11,323 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:39:14,113 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:39:16,337 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:39:19,126 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:39:21,351 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:39:24,139 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:39:26,364 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:39:27,147 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:39:29,152 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:39:32,160 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:39:34,165 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:39:37,187 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:39:39,208 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:39:42,781 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:39:43,958 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:39:44,229 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:39:47,795 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:39:49,252 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:39:52,810 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:39:54,267 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:39:57,148 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:39:58,104 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:39:58,151 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:39:59,278 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:40:03,165 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:40:04,291 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:40:08,176 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:40:09,304 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:40:13,191 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:40:14,319 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:40:18,205 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:40:19,334 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:40:23,227 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:40:24,371 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:40:27,155 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:40:29,172 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:40:29,407 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:40:32,477 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:40:34,420 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:40:34,749 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:40:39,433 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:40:39,762 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:40:44,447 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:40:44,776 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:40:49,461 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:40:49,790 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:40:54,474 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:40:54,803 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:40:57,169 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:40:59,486 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:41:00,176 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:41:04,514 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:41:05,188 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:41:09,529 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:41:10,200 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:41:14,539 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:41:15,213 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:41:19,555 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:41:20,227 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:41:24,567 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:41:25,240 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:41:27,181 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:41:29,580 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:41:31,192 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:41:34,122 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:41:34,607 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:41:37,099 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:41:39,621 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:41:42,112 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:41:44,633 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:41:47,151 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:41:49,657 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:41:52,163 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:41:54,670 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:41:57,177 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:41:57,192 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:41:59,683 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:02,206 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:42:04,712 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:07,218 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:42:09,725 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:12,232 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:42:14,739 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:17,246 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:42:19,752 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:22,259 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:42:24,642 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:42:24,766 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:27,192 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:42:28,196 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:42:29,778 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:29,779 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:33,208 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:42:34,802 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:38,217 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:42:39,827 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:43,227 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:42:44,839 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:48,238 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:42:49,852 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:53,250 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:42:54,863 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:42:57,198 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:42:59,201 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:42:59,906 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:43:04,213 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:43:04,934 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:43:09,947 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:43:09,978 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:43:11,111 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:43:14,960 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:43:14,992 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:43:19,975 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:43:20,006 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:43:24,988 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:43:25,020 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:43:27,209 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:43:30,046 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:43:30,241 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:43:35,061 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:43:35,264 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:43:40,091 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:43:40,279 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:43:45,103 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:43:45,291 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:43:50,116 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:43:50,304 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:43:55,130 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:43:55,318 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:43:57,214 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:44:00,146 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:44:01,226 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:44:05,159 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:44:06,679 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:44:06,851 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:44:10,174 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:44:11,866 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:44:15,186 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:44:16,878 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:44:20,199 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:44:21,891 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:44:25,213 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:44:26,903 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:44:27,216 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:44:30,223 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:44:32,227 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:44:35,235 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:44:37,241 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:44:40,249 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:44:42,254 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:44:45,278 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:44:47,268 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:44:50,307 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:44:51,153 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:44:52,422 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:44:55,333 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:44:57,228 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:44:58,245 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:45:00,346 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:45:03,244 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:45:05,358 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:45:08,257 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:45:10,389 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:45:13,269 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:45:15,411 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:45:18,276 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:45:20,450 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:45:23,302 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:45:25,464 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:45:27,234 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:45:29,239 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:45:30,477 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:45:30,586 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:45:34,346 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:45:35,489 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:45:39,358 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:45:40,501 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:45:44,372 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:45:45,514 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:45:49,397 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:45:50,526 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:45:54,412 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:45:55,540 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:45:57,247 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:46:00,254 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:46:00,568 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:46:05,268 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:46:05,581 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:46:10,282 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:46:10,595 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:46:15,295 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:46:15,609 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:46:19,104 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:46:20,591 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:46:20,621 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:46:25,604 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:46:25,635 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:46:27,248 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:46:30,648 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:46:31,259 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:46:35,662 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:46:36,273 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:46:40,675 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:46:41,286 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:46:45,686 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:46:46,297 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:46:50,697 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:46:51,308 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:46:55,727 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:46:56,322 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:46:57,260 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:47:00,753 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:47:02,272 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:47:05,813 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:47:07,316 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:47:07,601 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:47:10,841 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:47:12,329 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:47:15,854 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:47:17,343 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:47:20,866 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:47:22,370 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:47:25,894 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:47:27,272 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:47:28,275 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:47:30,907 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:47:33,287 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:47:35,919 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:47:38,301 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:47:40,929 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:47:43,308 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:47:45,955 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:47:48,321 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:47:50,968 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:47:51,031 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:47:53,928 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:47:55,980 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:47:57,281 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:47:59,286 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:48:00,994 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:48:04,300 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:48:06,007 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:48:09,313 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:48:11,021 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:48:14,328 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:48:16,035 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:48:19,341 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:48:21,064 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:48:24,354 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:48:26,078 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:48:27,284 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:48:30,292 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:48:31,091 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:48:35,306 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:48:36,105 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:48:40,633 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:48:41,134 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:48:41,573 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:48:45,645 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:48:46,147 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:48:50,658 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:48:51,159 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:48:55,671 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:48:56,172 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:48:57,285 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:49:01,183 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:49:01,293 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:49:06,197 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:49:06,307 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:49:11,221 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:49:11,330 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:49:16,232 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:49:16,342 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:49:21,274 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:49:21,368 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:49:26,285 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:49:26,379 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:49:27,288 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:49:30,108 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:49:31,299 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:49:31,612 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:49:36,312 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:49:36,625 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:49:41,322 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:49:41,651 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:49:46,336 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:49:46,665 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:49:51,349 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:49:51,678 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:49:56,361 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:49:56,690 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:49:57,301 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:50:01,375 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:50:02,315 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:50:06,404 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:50:07,329 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:50:11,418 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:50:13,141 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:50:13,550 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:50:16,431 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:50:18,154 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:50:21,444 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:50:23,168 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:50:26,459 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:50:27,305 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:50:28,307 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:50:31,473 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:50:33,321 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:50:36,484 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:50:38,333 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:50:41,529 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:50:43,346 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:50:46,544 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:50:48,362 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:50:51,557 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:50:53,375 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:50:56,569 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:50:57,306 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:50:59,311 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:51:01,582 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:51:04,337 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:51:06,593 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:51:09,350 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:51:11,621 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:51:14,363 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:51:16,649 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:51:19,376 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:51:21,665 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:51:22,280 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:51:24,689 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:51:26,679 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:51:27,321 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:51:30,370 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:51:31,730 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:51:35,365 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:51:36,744 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:51:40,378 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:51:41,757 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:51:45,403 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:51:46,798 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:51:50,418 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:51:51,827 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:51:55,430 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:51:56,839 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:51:57,325 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:52:01,335 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:52:01,852 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:52:06,360 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:52:06,877 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:52:09,775 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:52:11,670 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:52:11,890 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:52:16,683 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:52:16,902 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:52:21,696 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:52:21,915 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:52:26,721 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:52:26,925 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:52:27,332 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:52:31,938 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:52:32,345 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:52:36,951 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:52:37,359 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:52:41,964 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:52:42,371 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:52:46,981 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:52:47,397 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:52:52,001 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:52:52,424 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:52:57,015 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:52:57,344 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:52:58,269 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:52:58,346 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:53:02,028 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:53:03,360 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:53:07,041 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:53:08,373 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:53:10,410 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:53:12,055 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:53:13,432 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:53:17,067 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:53:18,429 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:53:22,079 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:53:23,442 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:53:27,093 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:53:27,359 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:53:29,364 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:53:32,107 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:53:34,378 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:53:37,119 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:53:39,391 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:53:42,132 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:53:44,416 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:53:47,156 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:53:49,428 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:53:52,169 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:53:54,952 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:53:55,894 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:53:57,192 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:53:57,364 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:54:00,372 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:54:02,205 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:54:05,386 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:54:07,219 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:54:10,399 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:54:12,232 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:54:15,411 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:54:17,242 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:54:20,434 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:54:22,267 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:54:25,465 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:54:27,282 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:54:27,376 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:54:31,386 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:54:32,295 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:54:36,398 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:54:37,306 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:54:42,085 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:54:42,319 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:54:42,366 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:54:47,100 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:54:47,335 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:54:52,112 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:54:52,362 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:54:57,125 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:54:57,375 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:54:57,391 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:55:02,386 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:55:02,417 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:55:07,396 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:55:07,427 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:55:12,409 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:55:12,441 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:55:17,423 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:55:17,454 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:55:22,434 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:55:22,465 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:55:27,396 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:55:27,459 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:55:28,399 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:55:28,837 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:55:32,488 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:55:33,412 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:55:37,501 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:55:38,426 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:55:42,515 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:55:43,439 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:55:47,538 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:55:48,462 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:55:52,551 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:55:53,475 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:55:57,408 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:55:57,564 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:55:59,412 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:56:02,593 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:56:04,207 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:56:04,723 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:56:07,605 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:56:09,735 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:56:12,618 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:56:14,749 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:56:17,631 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:56:19,761 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:56:22,656 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:56:24,771 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:56:27,435 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:56:27,678 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:56:30,443 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:56:32,699 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:56:35,455 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:56:37,737 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:56:40,462 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:56:42,767 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:56:45,476 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:56:47,779 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:56:50,491 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:56:52,794 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:56:54,706 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:56:56,492 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:56:57,448 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:56:57,808 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:02,460 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:57:02,821 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:07,475 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:57:07,849 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:12,488 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:57:12,849 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:17,503 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:57:17,863 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:22,515 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:57:22,875 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:27,449 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:57:27,888 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:28,452 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:57:32,902 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:33,466 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:57:37,915 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:38,479 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:57:42,928 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:43,492 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:57:47,942 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:48,506 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:57:52,955 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:53,519 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:57:57,463 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:57:57,980 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:57:59,378 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:58:01,397 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:58:02,994 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:58:04,439 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:58:08,006 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:58:09,432 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:58:13,020 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:58:14,446 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:58:18,034 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:58:19,459 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:58:23,048 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:58:24,474 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:58:27,478 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:58:28,089 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:58:29,482 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:58:33,100 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:58:34,494 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:58:38,112 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:58:40,494 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:58:40,806 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:58:43,126 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:58:45,507 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:58:48,139 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:58:50,521 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:58:53,167 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:58:55,533 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:58:57,492 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:58:58,182 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:59:01,503 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:59:03,195 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:59:06,516 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:59:08,208 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:59:11,529 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:59:13,221 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:59:16,543 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:59:18,235 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:59:21,555 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:59:23,262 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:59:26,568 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:59:27,493 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:59:28,260 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:59:29,325 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 10:59:32,255 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:59:33,274 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:59:37,268 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:59:38,286 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:59:42,292 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:59:43,326 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:59:47,304 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:59:48,339 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:59:52,318 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:59:53,352 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 10:59:57,332 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 10:59:57,504 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 10:59:58,365 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:02,516 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:00:03,378 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:07,530 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:00:08,391 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:12,543 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:00:13,405 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:15,804 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:00:17,824 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:00:18,419 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:22,837 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:00:23,432 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:27,507 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:00:28,447 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:28,509 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:00:33,461 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:33,524 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:00:38,473 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:38,536 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:00:43,485 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:43,547 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:00:48,498 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:48,561 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:00:51,159 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:00:53,508 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:54,199 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:00:57,520 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:00:58,524 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:00:59,526 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:01:03,583 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:01:04,538 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:01:07,326 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:01:08,595 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:01:09,926 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:01:13,608 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:01:14,939 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:01:18,621 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:01:19,953 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:01:23,635 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:01:24,966 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:01:27,520 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:01:28,664 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:01:30,528 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:01:33,677 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:01:35,540 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:01:38,705 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:01:40,554 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:01:43,718 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:01:45,742 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:01:46,290 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:01:48,733 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:01:51,296 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:01:53,756 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:01:56,309 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:01:57,531 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:01:58,776 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:01,541 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:02:03,796 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:06,553 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:02:08,809 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:11,567 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:02:13,821 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:16,577 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:02:18,833 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:21,590 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:02:23,846 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:26,605 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:02:27,541 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:02:28,872 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:31,692 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:02:33,226 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:02:33,898 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:36,718 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:02:38,912 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:41,732 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:02:43,941 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:45,351 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:02:46,885 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:02:47,374 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:02:48,966 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:49,408 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:02:51,426 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:02:52,164 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:02:53,430 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:02:53,993 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:55,434 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:02:57,440 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:02:57,441 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:02:57,550 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:02:59,007 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:02:59,447 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:01,451 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:02,743 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:03:03,457 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:04,036 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:03:05,461 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:07,465 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:07,981 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:03:09,058 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:03:09,471 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:11,477 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:13,300 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:03:13,482 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:14,078 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:03:15,488 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:17,496 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:18,561 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:03:19,091 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:03:19,499 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:21,504 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:23,509 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:23,813 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:03:24,104 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:03:25,512 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:27,518 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:27,565 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:03:29,116 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:03:29,117 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:03:29,524 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:31,529 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:33,535 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:34,121 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:03:34,130 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:03:35,540 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:37,571 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:39,153 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:03:39,371 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:03:39,576 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:41,580 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:43,585 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:44,181 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:03:44,676 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:03:45,591 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:47,596 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:49,193 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:03:49,601 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:49,911 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:03:51,608 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:53,613 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:54,210 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:03:55,206 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:03:55,618 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:57,576 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:03:57,623 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:03:59,221 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:03:59,629 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:00,457 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:04:01,634 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:03,639 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:04,249 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:04:05,654 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:05,725 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:04:07,657 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:09,271 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:04:09,661 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:10,958 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:04:11,668 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:13,673 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:14,284 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:04:15,679 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:16,315 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:04:17,685 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:19,299 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:04:19,690 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:21,631 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:04:21,695 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:23,701 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:24,312 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:04:25,708 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:26,750 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:04:27,588 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:04:27,714 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:29,328 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:04:29,718 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:31,724 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:32,035 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:04:33,729 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:34,341 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:04:35,735 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:37,353 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:04:37,741 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:39,355 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:04:39,747 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:41,752 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:42,607 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:04:43,757 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:44,367 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:04:45,759 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:47,612 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:04:47,765 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:49,379 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:04:49,771 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:51,777 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:52,954 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:04:53,781 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:54,394 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:04:55,787 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:57,589 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:04:57,792 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:04:58,259 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:04:59,406 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:04:59,799 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:01,802 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:03,548 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:05:03,809 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:04,419 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:05:05,813 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:07,850 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:08,801 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:05:09,448 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:05:09,871 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:11,893 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:13,895 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:14,058 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:05:14,477 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:05:15,915 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:17,958 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:19,339 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:05:19,536 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:05:19,990 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:21,993 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:24,014 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:24,561 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:05:24,627 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:05:26,049 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:27,599 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:05:28,054 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:29,586 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:05:29,888 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:05:30,070 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:32,077 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:34,082 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:34,598 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:05:35,166 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:05:36,087 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:38,091 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:39,612 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:05:40,097 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:40,432 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:05:42,116 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:44,123 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:44,641 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:05:45,447 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:05:46,131 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:48,137 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:49,676 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:05:50,142 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:50,727 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:05:52,147 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:54,154 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:54,703 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:05:56,019 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:05:56,161 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:57,615 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:05:58,164 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:05:59,747 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:06:00,169 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:01,304 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:06:02,174 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:04,178 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:04,773 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:06:06,183 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:06,564 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:06:08,186 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:09,784 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:06:10,192 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:11,857 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:06:12,197 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:14,204 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:14,801 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:06:16,211 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:17,107 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:06:18,216 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:19,831 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:06:20,223 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:22,229 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:22,377 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:06:24,234 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:24,845 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:06:26,240 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:27,618 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:06:27,620 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:06:28,245 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:29,857 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:06:30,250 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:32,254 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:32,951 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:06:34,262 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:34,888 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:06:36,267 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:38,286 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:38,292 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:06:39,934 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:06:40,292 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:42,300 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:43,523 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:06:44,305 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:44,955 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:06:46,311 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:48,317 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:48,783 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:06:49,975 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:06:50,320 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:52,324 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:54,083 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:06:54,329 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:54,987 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:06:56,332 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:57,631 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:06:58,336 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:06:59,086 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:06:59,983 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:07:00,342 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:02,348 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:04,338 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:07:04,353 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:05,027 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:07:06,360 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:08,380 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:09,354 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:07:10,039 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:07:10,385 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:12,391 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:14,378 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:07:14,395 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:15,068 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:07:16,401 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:18,408 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:19,724 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:07:20,084 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:07:20,411 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:22,416 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:24,420 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:25,043 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:07:25,094 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:07:26,426 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:27,646 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:07:28,430 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:30,058 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:07:30,106 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:07:30,436 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:32,440 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:34,445 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:35,119 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:07:35,307 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:07:36,452 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:38,457 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:40,150 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:07:40,465 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\output.log
+2023-02-26 11:07:40,526 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:07:45,172 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:07:45,549 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:07:50,201 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:07:50,595 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:07:55,234 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:07:55,596 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:07:57,652 DEBUG   SenderThread:10640 [sender.py:send():336] send: stats
+2023-02-26 11:08:00,258 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:08:00,666 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:08:05,285 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:08:05,693 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: status_report
+2023-02-26 11:08:06,029 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-26 11:08:06,029 DEBUG   SenderThread:10640 [sender.py:send_request():363] send_request: log_artifact
+2023-02-26 11:08:06,792 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\media\table\train\table_0_4505be9d3f4b3d003d22.table.json
+2023-02-26 11:08:06,792 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\media
+2023-02-26 11:08:06,792 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\media\table
+2023-02-26 11:08:06,793 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\media\table\train
+2023-02-26 11:08:10,447 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:08:16,065 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:08:20,767 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-26 11:08:21,212 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:08:21,229 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\media\table\val\table_0_fdd06dd19f5b94492d5e.table.json
+2023-02-26 11:08:21,229 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\media\table
+2023-02-26 11:08:21,229 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\media\table\val
+2023-02-26 11:08:26,236 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:08:31,257 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:08:36,282 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:08:38,005 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-26 11:08:38,036 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: partial_history
+2023-02-26 11:08:38,372 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\media\table\test\table_0_e2cad4daaf2fa5eb0f6d.table.json
+2023-02-26 11:08:38,373 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_modified():292] file/dir modified: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\media\table
+2023-02-26 11:08:38,373 INFO    Thread-17 :10640 [dir_watcher.py:_on_file_created():275] file/dir created: C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\files\media\table\test
+2023-02-26 11:08:39,807 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: log_artifact
+2023-02-26 11:08:41,338 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:08:46,360 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:08:51,393 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:08:56,425 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:09:01,448 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:09:06,476 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:09:11,523 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:09:16,535 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:09:21,548 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:09:26,584 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:09:31,606 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:09:36,615 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:09:40,673 ERROR   wandb-upload_16:10640 [internal_api.py:upload_file():2004] upload_file exception https://storage.googleapis.com/wandb-artifacts-prod/wandb_artifacts/54858417/381843043/031f19b7b298080c76146260c90cb518?Expires=1677496087&GoogleAccessId=wandb-production%40appspot.gserviceaccount.com&Signature=irXTQtlqcnj7JwPFx%2FKgcDau79qJUT83HQvrH4hfihsKciHG8oJhCjC%2BcEOSJdaXUYaGpiOpBIDPuGwAu0EdUB2k9EtuGVY9%2FBKs7bQDSh3L0%2FFB%2BKtQEflNeh7mFpwujmDDhOWdp5GTx04eIWtp6iz%2BFc%2BwsIulcZNxXYXWEL1Qqzq3qkBPI6lxxAJTovNadkRiI9lOmr6P8%2FrBIOv5nXOiaP38KD829SdWl%2BEGzJ88qkDsuVqbm4usCxwpHV4bRzmTX1I4GON4jBL67aPCxJ1b%2FhEhPHjHmap4ysM4Ts2rz0g8EW%2F%2FQWt3D3zoylj%2Fyy7Imvx8MDqsEm7WAXf0Uw%3D%3D: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
+2023-02-26 11:09:40,673 ERROR   wandb-upload_16:10640 [internal_api.py:upload_file():2006] upload_file request headers: {'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-MD5': 'Ax8Zt7KYCAx2FGJgyQy1GA==', 'Content-Type': 'text/html; charset=utf-8', 'Content-Length': '3704066'}
+2023-02-26 11:09:40,673 ERROR   wandb-upload_16:10640 [internal_api.py:upload_file():2008] upload_file response body: 
+2023-02-26 11:09:41,634 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:09:46,644 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:09:51,654 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:09:56,666 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:10:01,693 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:10:06,715 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:10:11,749 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:10:16,774 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:10:21,795 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:10:26,846 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:10:31,879 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:10:32,239 ERROR   wandb-upload_38:10640 [internal_api.py:upload_file():2004] upload_file exception https://storage.googleapis.com/wandb-artifacts-prod/wandb_artifacts/54858417/381843043/071befe7a8091b4e27f1a3551c764945?Expires=1677496087&GoogleAccessId=wandb-production%40appspot.gserviceaccount.com&Signature=XyQ7sHXpYMIW76LqzlG8ZwLICOIU3JRBtl8wK%2BtFrvFGPbBqly%2BvyP1WQ7Y7njwTGFMsfqfUiIh5iYS1wVejW3Ob7IHulpJpAdhiZas%2B6aO92MpD4BtwEJ8fSQ0Xnw8x6Z6apkEmU4aPNF2avG%2FTs%2BVtjma1AaX%2BS2HI9xH4qUDlX2o6i2Om4nGkqt6bJ%2Fv13C91GfDtIjXM7WmHA0HyRwvCFlwofZP7ViKbyO5i6ieBT1hXfo2maE6fYBhD%2FLmQLTXoa2ahddU2G18ym%2FdQaQe3Ty8d0LVDYA%2F4TtWoI4Wu47unty485fJ9Siuci2IVlTIzP1EDT6UxGrxE4WMDew%3D%3D: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
+2023-02-26 11:10:32,239 ERROR   wandb-upload_38:10640 [internal_api.py:upload_file():2006] upload_file request headers: {'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-MD5': 'Bxvv56gJG04n8aNVHHZJRQ==', 'Content-Type': 'text/html; charset=utf-8', 'Content-Length': '3745365'}
+2023-02-26 11:10:32,239 ERROR   wandb-upload_38:10640 [internal_api.py:upload_file():2008] upload_file response body: 
+2023-02-26 11:10:36,887 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:10:41,900 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:10:46,923 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:10:51,960 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:10:56,983 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:11:02,028 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:11:07,038 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:11:10,591 ERROR   wandb-upload_41:10640 [internal_api.py:upload_file():2004] upload_file exception https://storage.googleapis.com/wandb-artifacts-prod/wandb_artifacts/54858417/381843043/07bc530d42f84d654a23ffefc7c068e9?Expires=1677496087&GoogleAccessId=wandb-production%40appspot.gserviceaccount.com&Signature=tBOw6J4XXrT%2BBnpx%2FJQt8EGv9bLFQygGulIKIEp9HALkYtLNfQzkwDIoytmuzwyaifBvXXEfKyBh1MV%2BOm7rt%2FX6nu%2Fzl7dd8VdtcgLU6A0B36kzaNzswLEElBX6svYsC%2FY6wRvtdWY7qSoTiobZtT43K7D%2Bt%2BeMpI7ae9fLS541Wpl50g3GkNOSub4KCTIsIRp9yKVKoUwyTyVrAU%2F06KlHGnubdvn14YvLJnUPBe8XiS9EDXfV3grDHjP8%2BMm1cs6QcVUXLJGXR5pqoKFCRtLvGouMWr%2BbpeH3WueYWRTCSFFDdOCIrY116rnECWgrhZfbS7vD4eDD87gBqg6EJA%3D%3D: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
+2023-02-26 11:11:10,591 ERROR   wandb-upload_41:10640 [internal_api.py:upload_file():2006] upload_file request headers: {'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-MD5': 'B7xTDUL4TWVKI//vx8Bo6Q==', 'Content-Type': 'text/html; charset=utf-8', 'Content-Length': '3696537'}
+2023-02-26 11:11:10,591 ERROR   wandb-upload_41:10640 [internal_api.py:upload_file():2008] upload_file response body: 
+2023-02-26 11:11:10,591 INFO    wandb-upload_41:10640 [retry.py:__call__():172] Retry attempt failed:
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\urllib3\connectionpool.py", line 703, in urlopen
+    httplib_response = self._make_request(
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\urllib3\connectionpool.py", line 398, in _make_request
+    conn.request(method, url, **httplib_request_kw)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\urllib3\connection.py", line 239, in request
+    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1230, in request
+    self._send_request(method, url, body, headers, encode_chunked)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1276, in _send_request
+    self.endheaders(body, encode_chunked=encode_chunked)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1225, in endheaders
+    self._send_output(message_body, encode_chunked=encode_chunked)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1043, in _send_output
+    self.send(chunk)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 965, in send
+    self.sock.sendall(data)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\ssl.py", line 1204, in sendall
+    v = self.send(byte_view[count:])
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\ssl.py", line 1173, in send
+    return self._sslobj.write(data)
+ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
+
+During handling of the above exception, another exception occurred:
+
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\requests\adapters.py", line 489, in send
+    resp = conn.urlopen(
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\urllib3\connectionpool.py", line 787, in urlopen
+    retries = retries.increment(
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\urllib3\util\retry.py", line 550, in increment
+    raise six.reraise(type(error), error, _stacktrace)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\urllib3\packages\six.py", line 769, in reraise
+    raise value.with_traceback(tb)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\urllib3\connectionpool.py", line 703, in urlopen
+    httplib_response = self._make_request(
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\urllib3\connectionpool.py", line 398, in _make_request
+    conn.request(method, url, **httplib_request_kw)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\urllib3\connection.py", line 239, in request
+    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1230, in request
+    self._send_request(method, url, body, headers, encode_chunked)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1276, in _send_request
+    self.endheaders(body, encode_chunked=encode_chunked)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1225, in endheaders
+    self._send_output(message_body, encode_chunked=encode_chunked)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 1043, in _send_output
+    self.send(chunk)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 965, in send
+    self.sock.sendall(data)
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\ssl.py", line 1204, in sendall
+    v = self.send(byte_view[count:])
+  File "C:\Users\liamb\AppData\Local\Programs\Python\Python38\lib\ssl.py", line 1173, in send
+    return self._sslobj.write(data)
+urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
+
+During handling of the above exception, another exception occurred:
+
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\internal\internal_api.py", line 1999, in upload_file
+    response = self._upload_file_session.put(
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\requests\sessions.py", line 647, in put
+    return self.request("PUT", url, data=data, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\requests\sessions.py", line 587, in request
+    resp = self.send(prep, **send_kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\requests\sessions.py", line 701, in send
+    r = adapter.send(request, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\requests\adapters.py", line 547, in send
+    raise ConnectionError(err, request=request)
+requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
+
+During handling of the above exception, another exception occurred:
+
+Traceback (most recent call last):
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\lib\retry.py", line 131, in __call__
+    result = self._call_fn(*args, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\internal\internal_api.py", line 2028, in upload_file
+    raise _e.with_traceback(sys.exc_info()[2])
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\wandb\sdk\internal\internal_api.py", line 1999, in upload_file
+    response = self._upload_file_session.put(
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\requests\sessions.py", line 647, in put
+    return self.request("PUT", url, data=data, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\requests\sessions.py", line 587, in request
+    resp = self.send(prep, **send_kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\requests\sessions.py", line 701, in send
+    r = adapter.send(request, **kwargs)
+  File "C:\Users\liamb\Documents\graph4stackoverflow\venv\lib\site-packages\requests\adapters.py", line 547, in send
+    raise ConnectionError(err, request=request)
+wandb.sdk.lib.retry.TransientError: None
+2023-02-26 11:11:12,046 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:11:17,079 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:11:22,110 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:11:27,135 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:11:32,171 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:11:37,208 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:11:42,220 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:11:47,243 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:11:52,277 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:11:57,289 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:01,524 INFO    wandb-upload_18:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpfx139xwc
+2023-02-26 11:12:02,301 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:07,347 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:12,382 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:17,417 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:20,768 INFO    wandb-upload_54:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpcj1ui9_u
+2023-02-26 11:12:22,431 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:24,091 INFO    wandb-upload_63:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpbvz7s3w1
+2023-02-26 11:12:25,063 INFO    wandb-upload_53:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpnqclrwwe
+2023-02-26 11:12:27,442 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:27,808 INFO    wandb-upload_1:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpg2bv3tfc
+2023-02-26 11:12:30,697 INFO    wandb-upload_46:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp4w59av4h
+2023-02-26 11:12:32,453 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:34,404 INFO    wandb-upload_61:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpyfnxihw5
+2023-02-26 11:12:37,485 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:37,576 INFO    wandb-upload_37:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpzfbxnpfu
+2023-02-26 11:12:42,519 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:47,568 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:52,506 INFO    wandb-upload_50:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp2e11n3wm
+2023-02-26 11:12:52,569 INFO    wandb-upload_26:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpmivrr7eb
+2023-02-26 11:12:52,594 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:53,149 INFO    wandb-upload_36:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpym83husx
+2023-02-26 11:12:57,616 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:12:58,839 INFO    wandb-upload_0:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpb76oia7p
+2023-02-26 11:13:01,364 INFO    wandb-upload_34:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpke4em1j7
+2023-02-26 11:13:02,633 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:13:07,681 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:13:08,915 INFO    wandb-upload_35:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpc1k0qir1
+2023-02-26 11:13:11,554 INFO    wandb-upload_9:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpg03fw_l9
+2023-02-26 11:13:12,598 INFO    wandb-upload_31:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp2u5ntjgm
+2023-02-26 11:13:12,694 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:13:17,369 INFO    wandb-upload_39:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp8a9tmf6z
+2023-02-26 11:13:17,706 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:13:20,151 INFO    wandb-upload_11:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmp997oolni
+2023-02-26 11:13:22,763 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:13:27,750 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
+2023-02-26 11:13:31,848 INFO    wandb-upload_58:10640 [upload_job.py:push():96] Uploaded file C:\Users\liamb\AppData\Local\wandb\wandb\artifacts\staging\tmpgo8oonfx
+2023-02-26 11:13:32,774 DEBUG   HandlerThread:10640 [handler.py:handle_request():144] handle_request: keepalive
diff --git a/embeddings/wandb/run-20230226_100155-18km5yss/logs/debug.log b/embeddings/wandb/run-20230226_100155-18km5yss/logs/debug.log
new file mode 100644
index 0000000000000000000000000000000000000000..28ed76949b64941bf4a045bd72deec5c00c07674
--- /dev/null
+++ b/embeddings/wandb/run-20230226_100155-18km5yss/logs/debug.log
@@ -0,0 +1,24 @@
+2023-02-26 10:01:55,849 INFO    MainThread:11664 [wandb_setup.py:_flush():68] Configure stats pid to 11664
+2023-02-26 10:01:55,849 INFO    MainThread:11664 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\.config\wandb\settings
+2023-02-26 10:01:55,849 INFO    MainThread:11664 [wandb_setup.py:_flush():68] Loading settings from C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\settings
+2023-02-26 10:01:55,849 INFO    MainThread:11664 [wandb_setup.py:_flush():68] Loading settings from environment variables: {'_require_service': 'True'}
+2023-02-26 10:01:55,849 INFO    MainThread:11664 [wandb_setup.py:_flush():68] Inferring run settings from compute environment: {'program_relpath': 'embeddings\\hetero_GAT.py', 'program': 'C:\\Users\\liamb\\Documents\\graph4stackoverflow\\embeddings\\hetero_GAT.py'}
+2023-02-26 10:01:55,850 INFO    MainThread:11664 [wandb_init.py:_log_setup():492] Logging user logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\logs\debug.log
+2023-02-26 10:01:55,851 INFO    MainThread:11664 [wandb_init.py:_log_setup():493] Logging internal logs to C:\Users\liamb\Documents\graph4stackoverflow\embeddings\wandb\run-20230226_100155-18km5yss\logs\debug-internal.log
+2023-02-26 10:01:55,851 INFO    MainThread:11664 [wandb_init.py:init():532] calling init triggers
+2023-02-26 10:01:55,851 INFO    MainThread:11664 [wandb_init.py:init():538] wandb.init called with sweep_config: {}
+config: {}
+2023-02-26 10:01:55,851 INFO    MainThread:11664 [wandb_init.py:init():588] starting backend
+2023-02-26 10:01:55,851 INFO    MainThread:11664 [wandb_init.py:init():592] setting up manager
+2023-02-26 10:01:55,854 INFO    MainThread:11664 [backend.py:_multiprocessing_setup():106] multiprocessing start_methods=spawn, using: spawn
+2023-02-26 10:01:55,858 INFO    MainThread:11664 [wandb_init.py:init():599] backend started and connected
+2023-02-26 10:01:55,860 INFO    MainThread:11664 [wandb_init.py:init():687] updated telemetry
+2023-02-26 10:01:55,907 INFO    MainThread:11664 [wandb_init.py:init():727] communicating run to backend with 60.0 second timeout
+2023-02-26 10:01:56,307 INFO    MainThread:11664 [wandb_run.py:_on_init():2134] communicating current version
+2023-02-26 10:01:56,458 INFO    MainThread:11664 [wandb_run.py:_on_init():2143] got version response 
+2023-02-26 10:01:56,458 INFO    MainThread:11664 [wandb_init.py:init():775] starting run threads in backend
+2023-02-26 10:01:56,613 INFO    MainThread:11664 [wandb_run.py:_console_start():2114] atexit reg
+2023-02-26 10:01:56,614 INFO    MainThread:11664 [wandb_run.py:_redirect():1969] redirect: SettingsConsole.WRAP_RAW
+2023-02-26 10:01:56,614 INFO    MainThread:11664 [wandb_run.py:_redirect():2034] Wrapping output streams.
+2023-02-26 10:01:56,614 INFO    MainThread:11664 [wandb_run.py:_redirect():2059] Redirects installed.
+2023-02-26 10:01:56,614 INFO    MainThread:11664 [wandb_init.py:init():817] run started, returning control to user process
diff --git a/embeddings/wandb/run-20230226_100155-18km5yss/run-18km5yss.wandb b/embeddings/wandb/run-20230226_100155-18km5yss/run-18km5yss.wandb
new file mode 100644
index 0000000000000000000000000000000000000000..69aae08035299efb7e08e826d856932a4ba0f783
Binary files /dev/null and b/embeddings/wandb/run-20230226_100155-18km5yss/run-18km5yss.wandb differ